emacs-devel
[Top][All Lists]
Advanced

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

Re: raise-frame doesn't work in Fedora Core 4


From: Jan Djärv
Subject: Re: raise-frame doesn't work in Fedora Core 4
Date: Thu, 02 Nov 2006 08:30:29 +0100
User-agent: Thunderbird 1.5.0.7 (X11/20060913)



Richard Stallman skrev:
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.

What part of this is really right to do, here?

I think sending the _NET_ACTIVE_WINDOW is correct here according to the new specification.

Is it right to move the window to the current desktop?

It depends on how we want raise-frame to behave. Do we want Emacs to switch the frame to the current desktop or not? To not switch is the current implementation so if we want to change I suggest next release.

It seems strange to me that raise-frame would do that.

Would it be hard to code this in C?

No, it is simple. It is actually doable from lisp also (with an X11 enabled Emacs). The lisp drag-and-drop code for example sends client messages all the time.


    > 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.

What happens if you do this (via wmctrl or directly) and you're using
an older wm?  Does it do any harm?

No, it becomes a noop. The client message gets sent to the root window but since nobody (i.e. the window manager) isn't listening for it, nothing more happens.

        Jan D.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]