[iagno/arnaudb/wip/gtk4: 54/54] Fix HistoryButton popover.



commit 49396cac1250ad3d21243bacfc5ba85516660cd0
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Thu Apr 30 14:44:42 2020 +0200

    Fix HistoryButton popover.

 src/history-button.vala | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/src/history-button.vala b/src/history-button.vala
index 2b4607c..624a7f4 100644
--- a/src/history-button.vala
+++ b/src/history-button.vala
@@ -25,17 +25,22 @@ private class HistoryButton : ToggleButton, AdaptativeWidget
 {
     [CCode (notify = false)] public ThemeManager theme_manager { private get; protected construct; }
 
-    ulong toggled_handler = 0;
+    private ulong toggled_handler = 0;
+    private ulong close_handler = 0;
     [CCode (notify = false)] public MenuModel menu_model
     {
         internal construct set
         {
             if (toggled_handler != 0)
                 disconnect (toggled_handler);
+            if (close_handler != 0)
+                popover.disconnect (close_handler);
+
             popover = new PopoverMenu.from_model (value);
             popover.set_parent (this);
             popover.set_autohide (false);
             toggled_handler = toggled.connect ((_this) => { if (_this.get_active ()) ((HistoryButton) 
_this).popover.popup (); else ((HistoryButton) _this).popover.popdown (); }); // toggled is run-first
+            close_handler = popover.closed.connect (() => set_active (false));
         }
     }
 
@@ -51,6 +56,9 @@ private class HistoryButton : ToggleButton, AdaptativeWidget
 
     construct
     {
+        BinLayout layout = new BinLayout ();
+        set_layout_manager (layout);
+
         drawing.size_allocate.connect (on_drawing_size_allocate);
         drawing.set_draw_func (update_drawing);
         theme_manager.theme_changed.connect (() => {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]