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.
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!
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.).
I made kwin obey the given position despite the xinerama placement for now, until this gets implemented properly.
I assume this one is fixed after all those years...