On Tue, 2010-12-21 at 13:25 +0900, Teika Kazura wrote: > Now, what exactly happens in focus_in()? It updates window frames, and > call focus-in-hook. In focus-in-hook, two things are done: > > 1. _NET_ACTIVATE_WINDOW is set, in `update-focus-state' in > state/wm-spec.jl. I lose track here, since I don't know ewmh.
That should be _NET_ACTIVE_WINDOW, but thank you, that is exactly the problem, and you probably saved me a lot of time finding that. gnome-globalmenu uses this (via a handler for libwnck's active_window_changed event) to determine which menu bar to show. So, for the global menu bar to work, this should not be set. And if this is called via focus-in-hook, it already gets an argument 'grab. It currently ignores any arguments, but it can be made to use it without any problems. I will prepare a patch to only set _NET_ACTIVE_WINDOW for 'normal focus events later. Cheers, Harald
