[gnome-music/wip/mschraal/gtk4: 49/73] disclistboxwidget: Make song_widget click controller somewhat work



commit c7c91691680766fac9800016f4ffe17ec1ae190f
Author: Marinus Schraal <mschraal gnome org>
Date:   Thu Oct 31 22:14:56 2019 +0100

    disclistboxwidget: Make song_widget click controller somewhat work

 gnomemusic/widgets/disclistboxwidget.py | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/gnomemusic/widgets/disclistboxwidget.py b/gnomemusic/widgets/disclistboxwidget.py
index 58505bd1..6b239730 100644
--- a/gnomemusic/widgets/disclistboxwidget.py
+++ b/gnomemusic/widgets/disclistboxwidget.py
@@ -108,7 +108,9 @@ class DiscBox(Gtk.ListBoxRow):
             "show-song-numbers", song_widget, "show-song-number",
             GObject.BindingFlags.SYNC_CREATE)
 
-        # song_widget.connect('button-release-event', self._song_activated)
+        ctrl = Gtk.GestureClick()
+        song_widget.add_controller(ctrl)
+        ctrl.connect("released", self._song_activated)
 
         row = Gtk.ListBoxRow()
         row.props.activatable = False
@@ -117,20 +119,22 @@ class DiscBox(Gtk.ListBoxRow):
 
         return row
 
-    def _song_activated(self, widget, event):
+    def _song_activated(self, controller, n_click, x, y):
+        widget = controller.get_widget()
+
         if widget.props.select_click:
             widget.props.select_click = False
             return
 
-        mod_mask = Gtk.accelerator_get_default_mod_mask()
-        if ((event.get_state() & mod_mask) == Gdk.ModifierType.CONTROL_MASK
-                and not self.props.selection_mode):
-            self.props.selection_mode = True
-            widget.props.select_click = True
-            widget.props.coresong.props.selected = True
-            return
+        # mod_mask = Gtk.accelerator_get_default_mod_mask()
+        # if ((event.get_state() & mod_mask) == Gdk.ModifierType.CONTROL_MASK
+        #         and not self.props.selection_mode):
+        #     self.props.selection_mode = True
+        #     widget.props.select_click = True
+        #     widget.props.coresong.props.selected = True
+        #     return
 
-        (_, button) = event.get_button()
+        button = controller.get_current_button()
         if (button == Gdk.BUTTON_PRIMARY
                 and not self.props.selection_mode):
             self.emit('song-activated', widget)


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