[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