xpra icon
Bug tracker and wiki

Opened 7 years ago

Closed 7 years ago

#302 closed enhancement (fixed)

honour the window manager initial position hint

Reported by: aradtech Owned by: aradtech
Priority: minor Milestone: 0.10
Component: core Version: trunk
Keywords: Cc:

Description (last modified by Antoine Martin)

All the windows are currently opening in the top left corner no matter where they are set or programmed to be.


Change History (3)

comment:1 Changed 7 years ago by Antoine Martin

Component: clientcore
Description: modified (diff)
Milestone: 0.90.10
Priority: majorminor
Status: newassigned
Summary: All windows are opening top left corner win 7 64 bit opengl on and off.honour the window manager initial position hint
Type: defectenhancement
Version: 0.0.7.31trunk

Note:

  • this has nothing to do with Windows 7, happens on all platforms
  • nothing to do with 64 bits either
  • nothing to do with OpenGL
  • this is not a regression (this has always been the case)

(standard ticket guidelines do apply.. I've updated the description)


Now, I'm not certain what "programmed to be" means (a simple code sample would certainly help - for testing if anything).
In the X11 world, you can only ask politely that the window manager places your window somewhere - it may or may not oblige.
See method gtkwindow move:
The move() method asks the window manager to move the window to the position specified by x and y. Window managers are free to ignore this. In fact, most window managers ignore requests for initial window positions (instead using a user-defined placement algorithm) and honor requests after the window has already been shown.
And in our case, it is going to be very hard to honour moves safely, see #212

The problem is that according to the wm-normal-hints spec:
The x, y, width, and height members are now obsolete and are left solely for compatibility reasons.
We'll just have to use them and hope that the toolkits still set them, this is both easier and safer than #212.
It will also be worth reviewing the gravity stuff whilst we're at it.

comment:2 Changed 7 years ago by Antoine Martin

Owner: changed from Antoine Martin to aradtech
Status: assignednew

Oh, the fix was actually relatively simple.
The bug was due to the confusion between the window position and its parent (once we reparent it, it is always at 0x0) and also the source of the position and size in update_client_geometry (we now honour the initial hints we record)
More details in r3292.

Please confirm (bearing in mind that trunk is rough around the edges at the moment) and I will backport in 0.9.1 - note to self: the client may need another update from trunk to honour the position given:

self.move(*self._pos)
Last edited 7 years ago by Antoine Martin (previous) (diff)

comment:3 Changed 7 years ago by Antoine Martin

Resolution: fixed
Status: newclosed

not heard back, closing.

Feel free to re-open if this is not fixed.

Note: See TracTickets for help on using tickets.