[gnome-taquin/arnaudb/wip/gtk4: 18/56] Use ToggleButton instead of ModelButton.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-taquin/arnaudb/wip/gtk4: 18/56] Use ToggleButton instead of ModelButton.
- Date: Wed, 30 Sep 2020 13:55:32 +0000 (UTC)
commit 9162541b3338a42f13b72b097f4e58a7a74c84f9
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Wed Feb 19 22:54:14 2020 +0100
Use ToggleButton instead of ModelButton.
data/ui/history-button.ui | 2 +-
src/history-button.vala | 12 ++++++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/data/ui/history-button.ui b/data/ui/history-button.ui
index e7c74dd..e29f5d8 100644
--- a/data/ui/history-button.ui
+++ b/data/ui/history-button.ui
@@ -17,7 +17,7 @@
-->
<interface>
<requires lib="gtk+" version="3.99"/>
- <template class="HistoryButton" parent="GtkMenuButton">
+ <template class="HistoryButton" parent="GtkToggleButton">
<property name="valign">center</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
diff --git a/src/history-button.vala b/src/history-button.vala
index 83f4c50..bfb6cbd 100644
--- a/src/history-button.vala
+++ b/src/history-button.vala
@@ -21,8 +21,11 @@
using Gtk;
[GtkTemplate (ui = "/org/gnome/Taquin/ui/history-button.ui")]
-private class HistoryButton : MenuButton
+private class HistoryButton : ToggleButton
{
+ ulong toggled_handler = 0;
+ private PopoverMenu popover;
+
construct
{
update_state (/* label */ "0", /* sensitive */ false);
@@ -60,7 +63,12 @@ private class HistoryButton : MenuButton
if (best_score != 0)
generate_best_score_section (ref best_score, ref menu);
menu.freeze ();
- set_menu_model (menu);
+
+ if (toggled_handler != 0)
+ disconnect (toggled_handler);
+ popover = new PopoverMenu.from_model (this, menu);
+ popover.set_autohide (false);
+ toggled_handler = toggled.connect (() => { if (get_active ()) popover.popup (); else popover.popdown
(); }); // toggled is run-first
}
private static inline void generate_undo_actions_section (ref GLib.Menu menu)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]