GNOME Bugzilla – Bug 546969
The GUI components do not always reflect the current situation
Last modified: 2009-02-26 01:30:12 UTC
Please describe the problem: If a user tries to set up multiple screens (e.g. one beside the other) and the operation fails (e.g. if the virtual resolution is not set) then the cairo widget and the comboboxes are not updated and therefore it looks like the settings were applied. Steps to reproduce: 1. try to set up 2 screens so that they won't fit the framebuffer 2. click on apply 3. have a look a the GUI and the cairo widget Actual results: the GUI is not refreshed Expected results: the comboboxes and the cairo widget should be updated. Does this happen every time? yes Other information:
Created attachment 116165 [details] [review] A patch which solves the bug The following patch solves the problem.
Soren/Federico, is this ok? Should I commit before doing the 2.23.90 release?
I'm not convinced it's right.
Thanks for the patch, Alberto. Indeed, we need to detect when the configuration could not be applied. There is some unfinished code in place to go in this direction... could you please look at check_required_virtual_size() and how it gets called from apply()? That's the right place to do any checks, but unfortunately we don't present the results to the user yet.
Federico, Soren: first of all I see your point and I apologise for my incomplete description of the problem since I forgot to describe an additional and perhaps more important use-case. Let's suppose that some users try to set their screen resolution and refresh rate to, say, 1600x1200 75Hz. Sometimes the graphics driver (this happened to me with both ATI and Intel in the past) won't be particularly happy about the desired settings (or modes) and therefore won't apply them. In this case the framebuffer is not the problem (and therefore no virtual resolution has to be set) and users will be lead into thinking (by the GUI) that their settings were applied even though they cannot see the results on their display. In other words bugs in the graphics drivers which support RandR 1.2 still exist therefore, in my opinion, checking that the settings were actually applied would be quite useful. Of course I'm not saying that such bugs are something you should deal with, however I still think that, until they are fixed, this capplet should check that things went well and show the current situation in the UI. Of course if you still think that check_required_virtual_size(), or some other function is the right place to do it, I will write another patch. Let me know.
Sorry for the typo: it's "led into thinking"
The code in svn trunk now checks for errors returned from gnome-settings-daemon. I'll close this now, but please reopen it if you find a case where it doesn't refresh the window correctly.