On Sat, 17 Jan 2009 21:24:50 +0100 Stephen Berman <stephen.berman@gmx.net
> wrote:
On Thu, 18 Dec 2008 21:46:27 +0100 Stephen Berman <stephen.berman@gmx.net
> wrote:
On Thu, 18 Dec 2008 19:50:22 +0100 Jan Djärv <jan.h.d@swipnet.se
> wrote:
Stephen Berman skrev:
On Sun, 23 Nov 2008 12:01:09 +0100 Jan Djärv <jan.h.d@swipne
t.se> wrote:
I'd rather see if the focus can be kept to the frame. We can
perhaps put some
hints to the window manager. I'll look in to it. Can the OP
please tell us
what window manager he is using and what kind of focus model he
has (click to
focus, focus follows mouse)?
I'm using KDE/kwin and click to focus. But I also see the same
behavior
(i.e. focus not returning to the window/frame the tool bar was
detached
from) with a focus follows mouse policy.
I've made a change, can you test it?
Thanks,
Jan D.
I just did, and confirm that focus now switches back to the frame
after
clicking a button on the detached tool bar. Thanks!
I just learned about the variable x-gtk-whole-detached-tool-bar; when
this is non-nil and the tool bar is detached, focus fails to switch
back
to the frame after clicking a button on the detached tool bar. So
your
fix does not work with x-gtk-whole-detached-tool-bar non-nil.
In GNU Emacs 23.0.60.29 (i686-pc-linux-gnu, GTK+ Version 2.14.4) of
2009-01-11 on escher
Steve Berman
The patch below (against the current CVS trunk) makes focus return to
the frame regardless of the value of x-gtk-whole-detached-tool-bar
(i.e., it works both with the proxy (arrow) and the whole detached
tool
bar). Jan D. or somebody else who's familiar with GTK+ should check
to
make sure it does not cause any problems elsewhere.
Steve Berman
2009-03-01 Stephen Berman <stephen.berman@gmx.net>
* gtkutil.c (xg_tool_bar_callback): Return focus to the frame
after we have clicked on a detached tool bar button (bug#1405).
This replaces the reverted change below.
(xg_tool_bar_proxy_callback): Revert previous change (bug#1405).
*** emacs/src/gtkutil.c.~1.146.~ 2009-03-01 17:06:07.000000000
+0100
--- emacs/src/gtkutil.c 2009-03-01 17:41:39.000000000 +0100
***************
*** 3461,3466 ****
--- 3461,3470 ----
this is written. */
event.modifiers = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO
(f), mod);
kbd_buffer_store_event (&event);
+
+ /* Return focus to the frame after we have clicked on a detached
+ tool bar button. */
+ Fx_focus_frame (frame);
}
/* Callback function invoked when a tool bar item is pressed in a
detached
***************
*** 3480,3490 ****
xg_tool_bar_callback (wbutton, client_data);
FRAME_PTR f = (FRAME_PTR) g_object_get_data (G_OBJECT (wbutton),
XG_FRAME_DATA);
- /* Put focus back to the frame after we have clicked on a detached
- tool bar button. */
- Lisp_Object frame;
- XSETFRAME (frame, f);
- Fx_focus_frame (frame);
}
/* This callback is called when a tool item should create a proxy
item,
--- 3484,3489 ----