[gtk] eventcontrollerkey: Change behavior of contains-focus
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] eventcontrollerkey: Change behavior of contains-focus
- Date: Mon, 7 Oct 2019 02:55:40 +0000 (UTC)
commit a3cfb42888b3cc377ed1e1d0e5fe491fcc1b395d
Author: Benjamin Otte <otte redhat com>
Date: Fri Oct 4 00:42:28 2019 +0200
eventcontrollerkey: Change behavior of contains-focus
contains-focus now returns TRUE when is-focus is TRUE instead of FALSE.
Fixes #2184
gtk/gtkeventcontrollerkey.c | 11 ++++++-----
gtk/gtktreeview.c | 1 -
testsuite/gtk/focus.c | 8 ++++----
3 files changed, 10 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtkeventcontrollerkey.c b/gtk/gtkeventcontrollerkey.c
index d11f68b441..07c8b8150c 100644
--- a/gtk/gtkeventcontrollerkey.c
+++ b/gtk/gtkeventcontrollerkey.c
@@ -112,11 +112,11 @@ update_focus (GtkEventControllerKey *key,
case GDK_NOTIFY_ANCESTOR:
case GDK_NOTIFY_NONLINEAR:
is_focus = focus_in;
- contains_focus = FALSE;
+ contains_focus = is_focus;
break;
case GDK_NOTIFY_INFERIOR:
is_focus = focus_in;
- contains_focus = !focus_in;
+ contains_focus = TRUE;
break;
case GDK_NOTIFY_UNKNOWN:
default:
@@ -257,7 +257,7 @@ gtk_event_controller_key_class_init (GtkEventControllerKeyClass *klass)
* GtkEventControllerKey:is-focus:
*
* Whether focus is in the controllers widget itself,
- * as opposed to in a descendent widget. See
+ * opposed to in a descendent widget. See also
* #GtkEventControllerKey:contains-focus.
*
* When handling focus events, this property is updated
@@ -274,8 +274,9 @@ gtk_event_controller_key_class_init (GtkEventControllerKeyClass *klass)
/**
* GtkEventControllerKey:contains-focus:
*
- * Whether focus is in a descendant of the controllers widget.
- * See #GtkEventControllerKey:is-focus.
+ * Whether focus is contain in the controllers widget. See
+ * See #GtkEventControllerKey:is-focus for whether the focus is in the widget itself
+ * or inside a descendent.
*
* When handling focus events, this property is updated
* before #GtkEventControllerKey::focus-in or
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 9c2354450e..aa449479ae 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -5619,7 +5619,6 @@ gtk_tree_view_key_controller_focus_out (GtkEventControllerKey *key,
/* destroy interactive search dialog */
if (tree_view->priv->search_window &&
- !gtk_event_controller_key_is_focus (key) &&
!gtk_event_controller_key_contains_focus (key))
gtk_tree_view_search_window_hide (tree_view->priv->search_window, tree_view,
gtk_get_current_event_device ());
diff --git a/testsuite/gtk/focus.c b/testsuite/gtk/focus.c
index a8f11e15de..73b777a05f 100644
--- a/testsuite/gtk/focus.c
+++ b/testsuite/gtk/focus.c
@@ -139,7 +139,7 @@ test_window_focus (void)
g_assert_cmpstr (s->str, ==,
"window: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_VIRTUAL is-focus: 0 contains-focus: 1\n"
-"box: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_ANCESTOR is-focus: 1 contains-focus: 0\n");
+"box: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_ANCESTOR is-focus: 1 contains-focus: 1\n");
g_string_truncate (s, 0);
gtk_widget_grab_focus (entry1);
@@ -150,7 +150,7 @@ test_window_focus (void)
g_assert_cmpstr (s->str, ==,
"box: focus-out GDK_CROSSING_NORMAL GDK_NOTIFY_INFERIOR is-focus: 0 contains-focus: 1\n"
"box1: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_VIRTUAL is-focus: 0 contains-focus: 1\n"
-"entry1: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_ANCESTOR is-focus: 1 contains-focus: 0\n");
+"entry1: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_ANCESTOR is-focus: 1 contains-focus: 1\n");
g_string_truncate (s, 0);
@@ -165,7 +165,7 @@ test_window_focus (void)
"entry1: focus-out GDK_CROSSING_NORMAL GDK_NOTIFY_NONLINEAR is-focus: 0 contains-focus: 0\n"
"box1: focus-out GDK_CROSSING_NORMAL GDK_NOTIFY_NONLINEAR_VIRTUAL is-focus: 0 contains-focus: 0\n"
"box2: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_NONLINEAR_VIRTUAL is-focus: 0 contains-focus: 1\n"
-"entry2: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_NONLINEAR is-focus: 1 contains-focus: 0\n");
+"entry2: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_NONLINEAR is-focus: 1 contains-focus: 1\n");
g_string_truncate (s, 0);
@@ -179,7 +179,7 @@ test_window_focus (void)
g_assert_cmpstr (s->str, ==,
"entry2: focus-out GDK_CROSSING_NORMAL GDK_NOTIFY_ANCESTOR is-focus: 0 contains-focus: 0\n"
"box2: focus-out GDK_CROSSING_NORMAL GDK_NOTIFY_VIRTUAL is-focus: 0 contains-focus: 0\n"
-"box: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_INFERIOR is-focus: 1 contains-focus: 0\n");
+"box: focus-in GDK_CROSSING_NORMAL GDK_NOTIFY_INFERIOR is-focus: 1 contains-focus: 1\n");
g_string_truncate (s, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]