|
From: | Jan Djärv |
Subject: | Re: raise-frame doesn't work in Fedora Core 4 |
Date: | Wed, 01 Nov 2006 08:24:59 +0100 |
User-agent: | Thunderbird 1.5.0.7 (X11/20060913) |
Richard Stallman skrev:
Now I realized I can use the program called `wmctrl'[1] to solve the problem. Here's an new advice: (defadvice raise-frame (after make-it-work (&optional frame) activate) "Make it work." (call-process "wmctrl" nil nil nil "-i" "-R" (frame-parameter (or frame (selected-frame)) 'outer-window-id))) That is an ugly solution. How does the wmctrl program actually do this?
It figures out the current desktop (i.e. if you have more than one workspace/desktop) by inspecting the property _NET_WM_DESKTOP or _WIN_WORKSPACE on the root window. It then switches the window to the current desktop by sending a client message _NET_CURRENT_DESKTOP. Finally it activates the window by sending the client message _NET_ACTIVE_WINDOW.
So it does more than the patch sent erlier in this thread.
I have only the knowledge that Fedora Core 4 uses the metacity window manager, sorry. Does this use of wmctrl work correctly with other window managers?
It works with window managers that understand and comply with the newest freedesktop Window Manager Specification (http://freedesktop.org/wiki/Standards_2fwm_2dspec), i.e. Metacity (Gnome), KWin (KDE), xfwm4 (xfce) and other newer window managers. There is a list on the web page. Certainly not with older VM:s like twm and mwm.
Jan D.
[Prev in Thread] | Current Thread | [Next in Thread] |