summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-11 22:41:26 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-04-11 22:41:26 +0000
commit2a7b5a5156eb07a92d913ca866cb7e10c51db6ed (patch)
tree45a19e8595551111cf45f5dbfa24f1cedd9ff0fb
parent6712106c25cbd9605bed09dc987ef544787e2619 (diff)
parentae41697d83b884ace141d731c2cfaed0b870e0c5 (diff)
downloadgtk+-2a7b5a5156eb07a92d913ca866cb7e10c51db6ed.tar.gz
Merge branch 'matthiasc/for-master' into 'master'
menubutton: Propagate focus-on-click See merge request GNOME/gtk!3424
-rw-r--r--demos/gtk-demo/main.ui3
-rw-r--r--demos/icon-browser/window.ui4
-rw-r--r--demos/node-editor/node-editor-window.ui7
-rw-r--r--demos/widget-factory/widget-factory.ui1
-rw-r--r--gtk/gtkmenubutton.c17
5 files changed, 32 insertions, 0 deletions
diff --git a/demos/gtk-demo/main.ui b/demos/gtk-demo/main.ui
index b602c9a246..fb9064cc5c 100644
--- a/demos/gtk-demo/main.ui
+++ b/demos/gtk-demo/main.ui
@@ -25,6 +25,7 @@
<object class="GtkButton">
<property name="valign">center</property>
<property name="action-name">win.run</property>
+ <property name="focus-on-click">0</property>
<property name="label" translatable="yes">Run</property>
</object>
</child>
@@ -32,6 +33,7 @@
<object class="GtkToggleButton">
<property name="icon-name">edit-find-symbolic</property>
<property name="valign">center</property>
+ <property name="focus-on-click">0</property>
<property name="active" bind-source="searchbar" bind-property="search-mode-enabled" bind-flags="bidirectional|sync-create"/>
<accessibility>
<property name="label" translatable="yes">Search</property>
@@ -41,6 +43,7 @@
<child type="end">
<object class="GtkMenuButton" id="gear_menu_button">
<property name="valign">center</property>
+ <property name="focus-on-click">0</property>
<property name="menu-model">gear_menu</property>
<property name="icon-name">open-menu-symbolic</property>
<accessibility>
diff --git a/demos/icon-browser/window.ui b/demos/icon-browser/window.ui
index 17d745c218..137d3c7581 100644
--- a/demos/icon-browser/window.ui
+++ b/demos/icon-browser/window.ui
@@ -25,12 +25,14 @@
</style>
<child>
<object class="GtkToggleButton" id="normal_radio">
+ <property name="focus-on-click">0</property>
<property name="label" translatable="yes">Normal</property>
<property name="active">1</property>
</object>
</child>
<child>
<object class="GtkToggleButton" id="symbolic_radio">
+ <property name="focus-on-click">0</property>
<property name="label" translatable="yes">Symbolic</property>
<property name="group">normal_radio</property>
<signal name="notify::active" handler="symbolic_toggled" swapped="yes" after="yes"/>
@@ -40,6 +42,7 @@
</child>
<child type="end">
<object class="GtkMenuButton" id="gear_menu_button">
+ <property name="focus-on-click">0</property>
<property name="valign">center</property>
<property name="menu-model">gear_menu</property>
<property name="icon-name">open-menu-symbolic</property>
@@ -47,6 +50,7 @@
</child>
<child type="end">
<object class="GtkToggleButton" id="search">
+ <property name="focus-on-click">0</property>
<style>
<class name="image-button"/>
</style>
diff --git a/demos/node-editor/node-editor-window.ui b/demos/node-editor/node-editor-window.ui
index fc26719819..6b492390d6 100644
--- a/demos/node-editor/node-editor-window.ui
+++ b/demos/node-editor/node-editor-window.ui
@@ -102,6 +102,7 @@
<object class="GtkHeaderBar" id="header">
<child type="start">
<object class="GtkButton">
+ <property name="focus-on-click">0</property>
<property name="icon-name">document-open-symbolic</property>
<property name="tooltip-text">Open node file</property>
<signal name="clicked" handler="open_cb"/>
@@ -109,6 +110,7 @@
</child>
<child type="start">
<object class="GtkButton">
+ <property name="focus-on-click">0</property>
<property name="icon-name">document-save-symbolic</property>
<property name="tooltip-text">Save to node file</property>
<signal name="clicked" handler="save_cb"/>
@@ -116,6 +118,7 @@
</child>
<child type="start">
<object class="GtkButton">
+ <property name="focus-on-click">0</property>
<property name="icon-name">insert-image-symbolic</property>
<property name="tooltip-text">Export to image</property>
<signal name="clicked" handler="export_image_cb"/>
@@ -123,6 +126,7 @@
</child>
<child type="start">
<object class="GtkButton">
+ <property name="focus-on-click">0</property>
<property name="icon-name">edit-copy-symbolic</property>
<property name="tooltip-text">Copy image to clipboard</property>
<signal name="clicked" handler="clip_image_cb"/>
@@ -130,12 +134,14 @@
</child>
<child type="start">
<object class="GtkMenuButton">
+ <property name="focus-on-click">0</property>
<property name="label">Save Testcase</property>
<property name="popover">testcase_popover</property>
</object>
</child>
<child type="end">
<object class="GtkMenuButton" id="gear_menu_button">
+ <property name="focus-on-click">0</property>
<property name="valign">center</property>
<property name="menu-model">gear_menu</property>
<property name="icon-name">open-menu-symbolic</property>
@@ -143,6 +149,7 @@
</child>
<child type="end">
<object class="GtkToggleButton" id="dark_bg_button">
+ <property name="focus-on-click">0</property>
<property name="valign">center</property>
<property name="has-frame">0</property>
<property name="icon-name">display-brightness-symbolic</property>
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index 269b3f459f..485776c1ba 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -438,6 +438,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<child type="end">
<object class="GtkMenuButton" id="gear_menu_button">
<property name="valign">center</property>
+ <property name="focus-on-click">0</property>
<property name="popover">
<object class="GtkPopoverMenu" id="gear_menu">
<property name="menu-model">gear_menu_model</property>
diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c
index eee296e37f..15f06eb23a 100644
--- a/gtk/gtkmenubutton.c
+++ b/gtk/gtkmenubutton.c
@@ -215,6 +215,22 @@ gtk_menu_button_get_property (GObject *object,
}
static void
+gtk_menu_button_notify (GObject *object,
+ GParamSpec *pspec)
+{
+ if (strcmp (pspec->name, "focus-on-click") == 0)
+ {
+ GtkMenuButton *self = GTK_MENU_BUTTON (object);
+
+ gtk_widget_set_focus_on_click (self->button,
+ gtk_widget_get_focus_on_click (GTK_WIDGET (self)));
+ }
+
+ if (G_OBJECT_CLASS (gtk_menu_button_parent_class)->notify)
+ G_OBJECT_CLASS (gtk_menu_button_parent_class)->notify (object, pspec);
+}
+
+static void
gtk_menu_button_state_flags_changed (GtkWidget *widget,
GtkStateFlags previous_state_flags)
{
@@ -318,6 +334,7 @@ gtk_menu_button_class_init (GtkMenuButtonClass *klass)
gobject_class->set_property = gtk_menu_button_set_property;
gobject_class->get_property = gtk_menu_button_get_property;
+ gobject_class->notify = gtk_menu_button_notify;
gobject_class->dispose = gtk_menu_button_dispose;
widget_class->measure = gtk_menu_button_measure;