Fix process exit when dconf doesn't exist


#1

A recent commit broke *all* juce UI code for me:

https://github.com/julianstorer/JUCE/commit/dd249faae4bb77c09cc9625c24b80aceb8e784d6

 

I don't have dconf installed, and for some reason juce is calling "exit()" when the ChildProcess fails to start
(because the tool it wants to launch doesn't exist).

A simple fix is to check if dconf actually exists before trying to call it. Patch here:

https://github.com/DISTRHO/juce/commit/1dc4aae1900a88fdf89e17b3a9543a72f5bb9a58.patch

 


#2

+1

highly ubuntu dependent this commit... should we get something better here that works on other distro too ?


#3

There is already a fix for this in our pipeline which uses xrandr instead of dconf. The dconf solution was just a quick workaround. This should be on the public master branch very soon.


#4

As posted above, I've been working on proper multi-monitor and per display scaling support on linux. Before I push this on to the public master branch, it would be good if you could give it a quick test run on your distributions. I've published the code on my private JUCE git repository which you can find here.  

 

Features:

* queries display properties with Xrandr, then falls back to Xinerama and then to old generic X11 code

* supports per-monitor scaling factors: you can move JUCE windows between monitors with different scale factors and JUCE will redraw components with the correct scale factors applied

 

Known limitations:

* JUCE will only query the display configuration on startup. Any changes to your display configuration will be respected after re-launching your JUCE app. To be honest, I don't think this is something I will fix as many linux apps (Firefox, Chrome, all QT based apps) behave this way.

* If a single window is positioned in a way that it is on two displays with different scaling factors at the same time, then the scaling factor of the display with the greater overlap with the window will be used. There is no easy to fix this and I know of no linux app that actually applies a different scaling factor to one half of the window with respect to another half

 


#5

I only have 1 monitor and it's normal size, so can't really test the scaling factor stuff.

Should I still test it?

 


#6

Well just test if it doesn't crash or do anything stupid then.


#7

ok, I compiled the demo and played with it a bit.

everything looks fine, no crashes.


#8

OK, linux scaling is on the newest tip now.


#9

i'm very happy the linux native code is getting some love !!!

thanx. will test it asap ;)