This function returns the position you need to pass to
gtkWindowMove to keep
window in its current position. This
means that the meaning of the returned value varies with window
gtkWindowMove for more details.
If you haven't changed the window gravity, its gravity will be
GDK_GRAVITY_NORTH_WEST. This means that
gets the position of the top-left corner of the window manager
frame for the window.
gtkWindowMove sets the position of this
same top-left corner.
gtkWindowGetPosition is not 100% reliable because the X Window System
does not specify a way to obtain the geometry of the
decorations placed on a window by the window manager.
Thus GTK+ is using a "best guess" that works with most
Moreover, nearly all window managers are historically broken with
respect to their handling of window gravity. So moving a window to
its current position as returned by
to result in moving the window slightly. Window managers are
slowly getting better over time.
If a window has gravity
GDK_GRAVITY_STATIC the window manager
frame is not relevant, and thus
always produce accurate results. However you can't use static
gravity to do things like place a window in a corner of the screen,
because static gravity ignores the window manager decorations.
If you are saving and restoring your application's window
positions, you should know that it's impossible for applications to
do this without getting it somewhat wrong because applications do
not have sufficient knowledge of window manager state. The Correct
Mechanism is to support the session management protocol (see the
"GnomeClient" object in the GNOME libraries for example) and allow
the window manager to save your window sizes and positions.
A list containing the following elements:
- return location for X coordinate of gravity-determined reference point. [ out ]
- return location for Y coordinate of gravity-determined reference point. [ out ]