diff --git a/ChangeLog b/ChangeLog index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index e8ad7db355..0087c0eaf5 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Mon Feb 15 11:13:01 1999 Owen Taylor + + * gtk/gtkwindow.c (gtk_window_set_focus): + gtk/gtkwidget.c (gtk_widget_real_grab_focus): + + If the focus widget is the same, but does not currently + have the focus, call gtk_window_set_focus(). This is needed + so that click focusing with GtkPlug works correctly. + Mon Feb 15 07:45:28 1999 Tim Janik * configure.in (--enable-debug): default to yes for development trees. diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 09794e0d88..ef1954241c 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3047,7 +3047,16 @@ gtk_widget_real_grab_focus (GtkWidget *focus_widget) widget = GTK_WINDOW (toplevel)->focus_widget; if (widget == focus_widget) - return; + { + /* We call gtk_window_set_focus() here so that the + * toplevel window can request the focus if necessary. + * This is needed when the toplevel is a GtkPlug + */ + if (!GTK_WIDGET_HAS_FOCUS (widget)) + gtk_window_set_focus (GTK_WINDOW (toplevel), focus_widget); + + return; + } if (widget) { diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 706783c29a..d6edabca10 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -361,7 +361,8 @@ gtk_window_set_focus (GtkWindow *window, g_return_if_fail (GTK_WIDGET_CAN_FOCUS (focus)); } - if (window->focus_widget != focus) + if ((window->focus_widget != focus) || + (focus && !GTK_WIDGET_HAS_FOCUS (focus))) gtk_signal_emit (GTK_OBJECT (window), window_signals[SET_FOCUS], focus); }