Summary: | Xinerama - position should be transformed to another screen | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Thomas Zander <zander> |
Component: | xinerama | Assignee: | 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
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... |