Re: wms offsetting XMoveWindow() coords



On Thu, 23 Sep 1999, Tim Janik wrote:

> Date: Thu, 23 Sep 1999 13:02:01 +0200 (CEST)
> From: Tim Janik <timj@gtk.org>
> Reply-To: wm-spec-list@gnome.org
> To: wm-spec-list@gnome.org
> Cc: John Harper <john@dcs.warwick.ac.uk>
> Subject: wms offsetting XMoveWindow() coords
> Resent-Date: 23 Sep 1999 19:35:26 -0000
> Resent-From: wm-spec-list@gnome.org
> Resent-cc: recipient list not shown: ;
> 
> hello everyone,
> 
> i was just trying to fix up desk-guide (the GNOME pager) movement in a
> window manager independant fashion and encountered two different window
> manager behaviours (probably due to window manager families):
> 
> for a window MyApp being managed by the window manager, and its window
> manager decoration window Frame, with MyApp being offsetted within
> Frame by (fx, fy),
> 
> XMoveWindow (D, MyApp, x, y);
> 
> 1) will move MyApp to (x, y) and thus Frame to (x-fx, y-fy) for
>    Enlightenment,
>    IceWM,
>    AfterStep,
>    fvwm
> 
> 2) will move Frame to (x, y) and thus MyApp to (x+fx, y+fy) for
>    Sawmill
>    twm, ctwm, vtwm,
>    olvwm
>    wm2
>    WindowMaker
> 
> 
> since the application and pagers can hardly tell where exactly the window
> will be moved to, i'd like to propose the addition of another property to
> the new window manager spec:
> 
> _NET_WIN_MOVE_OFFSET xoffset,yoffset CARDINAL[2]/32
>     An array of two cardinals to be set on all window managed by the window
>     manager. The two cardinals xoffset and yoffset specify the offset in pixels
>     that will be added to the window position by the window manager upon
>     XMoveWindow() requests for mapped windows.
>     Note: This is required by applications (pagers) that need to determine
>           where exactly the application window will end up after movement
>           requests, if the window manager will actually move its decorative
>           frame window to the specified coordinates, instead of the real
>           application window.

in my opinion... this is not needed... if we consult the ICCCM, section
4.1.5 says that a client that wants to move a window should place the
upper-left outer corner coordinates in the configure notify (hence... case
1 WM's are correctly handling the XMoveWindow from the client)... also...
this section also states that the window manager should send a synthetic
configure notify to the moved window, with the appropriate coordinates
etc...  in my opinion... we should have this mechanism apply to pagers and
the like... since this the simplest and most correct way to get the apps
coordinates in root space (without using XTranslateCoordinates)...  i have
been working on this kind of stuff very diligently the past few weeks with
John Kennis (author of the bbtools)...

and i may as well let the cat out of the bag... everyone knows that i
disapprove of the current gnome spec (that's why we're on this list right?
:))

i've been working with blackbox in trying to code up my own spec draft, and
i do have some apps to test the interface... it's quite neat, and quite
simple... it's not complete, but i'm working on it... if anyone is
interested... i could write up a .txt spec and post it here for the list

oh... and on a side note... i'm surprised that *twm don't belong to case
1... i've read over the configure request event handler for twm and i seem
to recall that is places the frame a x-fx,y-fy... but that's a different
dicussion all together :)

> so for case 2) window managers, these properties will contain the application
> windows' offsets within their frame windows, and for case 1) window managers,
> they will simply contain (0, 0).
> 
> 
> [john, are you actually subscribed to the wm-spec-list?
>  to subscribe: mail wm-spec-list-request@gnome.org with "subscribe"
>  as the subject
> ]
> 
> ---
> ciaoTJ
> 
> 
> 
> 
> 
> 
> 
> -- 
> To unsubscribe: mail wm-spec-list-request@gnome.org with "unsubscribe"
> as the Subject.
> 

Blackbox - An X11R6 Window Manager
    http://blackbox.alug.org/
__________________________________

Bradley T. Hughes <bhughes@tcac.net>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]