[Panel-devel] Latest changes screwed Xinerama setups

cedric cedric.borgese at gmail.com
Sat Oct 27 20:25:43 CEST 2007


sorry if this break the flow of mail on the list, but I'm not suscribed, so I 
cannot simply reply to the message.

the bug is cause by a change in containment.cpp line 427 (for me, as I have 
some local change in my file, it may differ for you)
in void Containment::setScreen(int screen)
r.moveLeft(INTER_CONTAINMENT_MARGIN * screen);

this set the geometry of the second screen to (6, y, w-old_x+6, h) as 
according to the doc QRect::moveLeft doesn't do a translation but set the x 
coortinate to its parameter.
So I guess what you would do is :
r.moveLeft(r.x() + INTER_CONTAINMENT_MARGIN * screen);

but even in that case, I don't think it is semantically correct, you assume 
here the second screen of your setup is always at right of the first and 
begin at the end of the first.
What if the user already defined a pan area in its configuration ? or a dead 
zone between screen ?
it doesn't work too with right-to-left configurations : in that case, the 
second screen geometry is (0-w, 0, w, h) or top-bottom and bottom-top 
configuration.


More information about the Panel-devel mailing list