[mcclim-devel] [PATCH] cooperate with window manager
Christophe Rhodes
csr21 at cantab.net
Mon Apr 20 10:18:13 UTC 2009
Juliusz Chroboczek <jch at pps.jussieu.fr> writes:
> The attached patch makes the CLX backend cooperate better with X11 window
> managers by marking frames as top-level windows.
Thank you; I've merged this, but I have some questions...
> Index: Backends/CLX/port.lisp
> ===================================================================
> RCS file: /project/mcclim/cvsroot/mcclim/Backends/CLX/port.lisp,v
> retrieving revision 1.137
> diff -u -r1.137 port.lisp
> --- Backends/CLX/port.lisp 18 Feb 2009 17:34:44 -0000 1.137
> +++ Backends/CLX/port.lisp 2 Mar 2009 21:03:36 -0000
> @@ -456,7 +462,14 @@
> (setf (xlib:wm-hints window) (xlib:make-wm-hints :input :on))
> (setf (xlib:wm-name window) (frame-pretty-name frame))
> (setf (xlib:wm-icon-name window) (frame-pretty-name frame))
> - (setf (xlib:wm-protocols window) `(:wm_delete_window)))))
> + (xlib:set-wm-class
> + window
> + (string-downcase (frame-name frame))
> + (string-capitalize (string-downcase (frame-name frame))))
This WM_CLASS is the same thing as is looked up in the Xresources
database, isn't it? Does it have any other effect? Do window
managers group windows by either of these names?
> + (setf (xlib:wm-protocols window) `(:wm_delete_window))
> + (xlib:change-property window
> + :WM_CLIENT_LEADER (list (xlib:window-id window))
> + :WINDOW 32))))
Here, we make each window its own leader, right? What effect would
this have on multiple windows opened by a single client (such as those
opened with open-window-stream)? Would it be better to have those
child windows have their WM_CLIENT_LEADER be the parent application
frame?
Best,
Christophe
More information about the mcclim-devel
mailing list