Yay! What a great feeling to contribute, even if it's just a tiny bit :) Anyway, I found an issue which seems to be either a bug in Qt (mind I'm using 4.8 beta) or KWin (seems not unlikely, see below) as far as I can tell.
Before I start babbling: at the moment of writing this, I do not have a second screen to investigate this further and will not until two days from now... I'll just describe the problem and my source-reading-only findings - so I think most people can just skip this mail. I'll follow up with results from a testcase and debugging to narrow this down. Unless someone says "stop it", of course :) Problem (in KDialog::centerOnScreen): If a second screen was connected and has been disconnected (upon disconnection the laptop display's absolute coordinates are reset to (0,0) in kcontrol) the dialog is not centered on the screen but is only half-visible. Put another way: when two displays are connected, the dialog is centered either on (0,0 1920x1080) or (1920,0 1920x1080) - in the situation just described the dialog seems to be centered on (0,0 3840x1080), i.e. only half visible. Note: after disconnecting the second display, my mouse pointer can not leave the screen - so X is well aware that the display dimensions are back from 3840x1080 to 1920x1080. KDIalog::centerOnScreen calls KDailog::screenRect, which has two code paths to follow: return QDesktopWidget::availableGeometry or QDesktopWidget::geometry. QDesktopWidget::availableGeometry queries (according to current Qt sources from git) _NET_WORKAREA from the root window. According to the freedesktop spec [0] "This property MUST be set by the Window Manager" - so it seems (to me, just jumping to conclusions here) like KWin didn't react properly to the fact that the display config changed. If instead QDesktopWidget::geometry is returned, I'm at my whit's end, QDesktopWidget only reimplements resizeEvent and I have no idea how or where QDesktopWidget is instantiated/handled in QApplication. Anyway, as I said before, I will build a testcase to investigate QDesktopWidget's behaviour further (my suspicion is that availableGeometry is wrong while screenGeometry is correct) and I'll debug KDialog to narrow this down. While I'm at it: Reading this mail you might've noticed that a) I'm talking (writing) a lot ;) b) I'm unsure how/when to approach kde-core-devel... I noticed a usability issue, investigated it, wrote a patch and sent a mail here - would it've been better to file a bugreport and attach the patch there? I'd really hate to unnecessarily "spam" the list if another measure would be more appropriate. Cheers and thanks, Thomas [0] http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html On Wednesday 07 September 2011 20:31:07 Aaron J. Seigo wrote: > On Tuesday, September 6, 2011 20:17:54 Thomas Gahr wrote: > > So I cooked up this little patch which adds 6 characters of code and a > > lot of joy for me ;) > > thanks Thomas; i've applied the patch and it seems to work nicely! you can > expect to see it in Plasma Workspaces 4.8... :)
