diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gtkutil.c | 9 | ||||
| -rw-r--r-- | src/pgtkterm.c | 15 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 6822aeb4e32..3e4d6e076ff 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -1996,16 +1996,19 @@ xg_set_no_focus_on_map (struct frame *f, Lisp_Object no_focus_on_map) | |||
| 1996 | void | 1996 | void |
| 1997 | xg_set_no_accept_focus (struct frame *f, Lisp_Object no_accept_focus) | 1997 | xg_set_no_accept_focus (struct frame *f, Lisp_Object no_accept_focus) |
| 1998 | { | 1998 | { |
| 1999 | gboolean g_no_accept_focus = NILP (no_accept_focus) ? TRUE : FALSE; | ||
| 1999 | #ifdef HAVE_PGTK | 2000 | #ifdef HAVE_PGTK |
| 2000 | if (!FRAME_GTK_OUTER_WIDGET (f)) | 2001 | if (!FRAME_GTK_OUTER_WIDGET (f)) |
| 2001 | return; | 2002 | { |
| 2003 | if (FRAME_WIDGET(f)) | ||
| 2004 | gtk_widget_set_can_focus (FRAME_WIDGET(f), g_no_accept_focus); | ||
| 2005 | return; | ||
| 2006 | } | ||
| 2002 | #endif | 2007 | #endif |
| 2003 | block_input (); | 2008 | block_input (); |
| 2004 | if (FRAME_GTK_WIDGET (f)) | 2009 | if (FRAME_GTK_WIDGET (f)) |
| 2005 | { | 2010 | { |
| 2006 | GtkWindow *gwin = GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)); | 2011 | GtkWindow *gwin = GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)); |
| 2007 | gboolean g_no_accept_focus = NILP (no_accept_focus) ? TRUE : FALSE; | ||
| 2008 | |||
| 2009 | gtk_window_set_accept_focus (gwin, g_no_accept_focus); | 2012 | gtk_window_set_accept_focus (gwin, g_no_accept_focus); |
| 2010 | } | 2013 | } |
| 2011 | unblock_input (); | 2014 | unblock_input (); |
diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 75386ee6c39..978d4798d5f 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c | |||
| @@ -4702,12 +4702,12 @@ pgtk_focus_frame (struct frame *f, bool noactivate) | |||
| 4702 | { | 4702 | { |
| 4703 | struct pgtk_display_info *dpyinfo = FRAME_DISPLAY_INFO (f); | 4703 | struct pgtk_display_info *dpyinfo = FRAME_DISPLAY_INFO (f); |
| 4704 | 4704 | ||
| 4705 | GtkWidget *wid = FRAME_GTK_OUTER_WIDGET (f); | 4705 | GtkWidget *wid = FRAME_WIDGET (f); |
| 4706 | 4706 | ||
| 4707 | if (dpyinfo->x_focus_frame != f && wid != NULL) | 4707 | if (dpyinfo->x_focus_frame != f && wid != NULL) |
| 4708 | { | 4708 | { |
| 4709 | block_input (); | 4709 | block_input (); |
| 4710 | gtk_window_present (GTK_WINDOW (wid)); | 4710 | gtk_widget_grab_focus(wid); |
| 4711 | unblock_input (); | 4711 | unblock_input (); |
| 4712 | } | 4712 | } |
| 4713 | } | 4713 | } |
| @@ -6460,12 +6460,11 @@ button_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) | |||
| 6460 | if (FRAME_PARENT_FRAME (f) || (hf && frame_ancestor_p (f, hf))) | 6460 | if (FRAME_PARENT_FRAME (f) || (hf && frame_ancestor_p (f, hf))) |
| 6461 | { | 6461 | { |
| 6462 | block_input (); | 6462 | block_input (); |
| 6463 | #if 0 | 6463 | gtk_widget_grab_focus(FRAME_GTK_WIDGET(f)); |
| 6464 | XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), | 6464 | if (FRAME_GTK_OUTER_WIDGET (f)) |
| 6465 | RevertToParent, CurrentTime); | 6465 | { |
| 6466 | if (FRAME_PARENT_FRAME (f)) | 6466 | gtk_window_present (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f))); |
| 6467 | XRaiseWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f)); | 6467 | } |
| 6468 | #endif | ||
| 6469 | unblock_input (); | 6468 | unblock_input (); |
| 6470 | } | 6469 | } |
| 6471 | } | 6470 | } |