Bug 70943

Summary: Xinerama - position should be transformed to another screen
Product: [Plasma] kwin Reporter: Thomas Zander <zander>
Component: xineramaAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Thomas Zander 2003-12-20 23:05:00 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

On my xinerama setup (I actually reproduced this on two machines) I have set the second monitor to be the one to place unmanaged windows on.

Now when I start a new KDE application (konsole for example) and I have my pointer on the second monitor the window shows up on that monitor (which is what I expect).
The problem is that those windows are always completely to the left of the screen, so starting a couple of konsoles shows a couple of windows overlapping on the left of my screen and background on the right of my screen.
Comment 1 Thomas Zander 2004-01-10 13:14:08 UTC
Using the patch I got from Lubos applications like Konqueror/konsole now start correctly; my Java applications do not.
Java Applications don't know the concept of non-positioned showing; in other words I _have_ to specify a position for those windows.

MainWindow being placed on my left monitor; was shown centered like                              I expected it to be.

kwin: FLAGS:524
kwin: PLACE1:'ID:39845957;WMCLASS:com.woonactueel.publisher.extention.productcomposer.Gui:uic.widgets.MainWindow$1;Caption:Product Composer'
kwin: PLACE2:[0, 0 - 1599, 1199]
kwin: PLACE3:[386, 283 - 1211, 921
kwin: placementDone: true
kwin: PLACE4:[386, 283 - 1211, 921]
kwin: PLACE5:[0, 0 - 1599, 1199]
kwin: PLACE6:[386, 283 - 1211, 921]
kwin: User timestamp, initial:4294967295                                                         kwin: User timestamp, ASN:4294967295
kwin: User timestamp, already exists:0

Notice that my application requested the following size/location when starting:
     [java] screenBounds: java.awt.Rectangle[x=0,y=0,width=1600,height=1200]
     [java] InnserSize:   java.awt.Rectangle[x=386,y=283,width=829,height=635]

Same application being started but with my mouse on the right monitor.

kwin: FLAGS:524
kwin: PLACE1:'ID:39845957;WMCLASS:com.woonactueel.publisher.extention.productcomposer.Gui:uic.widgets.MainWindow$1;Caption:Product Composer'
kwin: PLACE2:[1600, 0 - 3199, 1199]
kwin: PLACE3:[386, 283 - 1211, 921]
kwin: placementDone: true
kwin: PLACE4:[386, 283 - 1211, 921]
kwin: PLACE5:[0, 0 - 1599, 1199]
kwin: PLACE6:[1600, 283 - 2425, 921]
kwin: User timestamp, initial:4294967295
kwin: User timestamp, ASN:4294967295
kwin: User timestamp, already exists:0

Notice that my application requested the following size/location when starting:
     [java] screenBounds: java.awt.Rectangle[x=0,y=0,width=1600,height=1200]
     [java] InnserSize:   java.awt.Rectangle[x=386,y=283,width=829,height=635]

My conclusion is that the window's position (geometry) did not get adjusted to the second monitors coordinate space leading to it being clipped later.

Hope this helps!
Comment 2 Lubos Lunak 2004-01-12 17:35:51 UTC
Yes, that's the reason. Java requests position on the first screen, but KWin places it on the second screen where the cursor is, and later checks that the window is inside the second screen. There should be some way how to transform coordinates between screens, but I'm not sure how (because of differently sizes screens, window groups, etc.).
Comment 3 Lubos Lunak 2004-03-22 17:45:38 UTC
I made kwin obey the given position despite the xinerama placement for now, until this gets implemented properly.
Comment 4 Martin Flöser 2011-12-10 09:36:45 UTC
I assume this one is fixed after all those years...