emojichooser: Put event controllers into ui file
authorBenjamin Otte <otte@redhat.com>
Fri, 9 Mar 2018 01:10:52 +0000 (02:10 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 26 Apr 2018 15:59:41 +0000 (17:59 +0200)
gtk/gtkemojichooser.c
gtk/ui/gtkemojichooser.ui

index ba287b1ae428ec17ffff901e4d308edbf82b1e6f..69701ffcf1c364ac2990ded146cb698fd52b22c5 100644 (file)
@@ -64,13 +64,6 @@ struct _GtkEmojiChooser
   EmojiSection symbols;
   EmojiSection flags;
 
-  GtkGesture *recent_long_press;
-  GtkGesture *recent_multi_press;
-  GtkGesture *people_long_press;
-  GtkGesture *people_multi_press;
-  GtkGesture *body_long_press;
-  GtkGesture *body_multi_press;
-
   GVariant *data;
 
   GSettings *settings;
@@ -97,13 +90,6 @@ gtk_emoji_chooser_finalize (GObject *object)
   g_variant_unref (chooser->data);
   g_object_unref (chooser->settings);
 
-  g_clear_object (&chooser->recent_long_press);
-  g_clear_object (&chooser->recent_multi_press);
-  g_clear_object (&chooser->people_long_press);
-  g_clear_object (&chooser->people_multi_press);
-  g_clear_object (&chooser->body_long_press);
-  g_clear_object (&chooser->body_multi_press);
-
   G_OBJECT_CLASS (gtk_emoji_chooser_parent_class)->finalize (object);
 }
 
@@ -633,24 +619,6 @@ gtk_emoji_chooser_init (GtkEmojiChooser *chooser)
     g_object_unref (layout);
   }
 
-  chooser->recent_long_press = gtk_gesture_long_press_new (chooser->recent.box);
-  g_signal_connect (chooser->recent_long_press, "pressed", G_CALLBACK (long_pressed_cb), chooser);
-  chooser->recent_multi_press = gtk_gesture_multi_press_new (chooser->recent.box);
-  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (chooser->recent_multi_press), GDK_BUTTON_SECONDARY);
-  g_signal_connect (chooser->recent_multi_press, "pressed", G_CALLBACK (pressed_cb), chooser);
-
-  chooser->people_long_press = gtk_gesture_long_press_new (chooser->people.box);
-  g_signal_connect (chooser->people_long_press, "pressed", G_CALLBACK (long_pressed_cb), chooser);
-  chooser->people_multi_press = gtk_gesture_multi_press_new (chooser->people.box);
-  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (chooser->people_multi_press), GDK_BUTTON_SECONDARY);
-  g_signal_connect (chooser->people_multi_press, "pressed", G_CALLBACK (pressed_cb), chooser);
-
-  chooser->body_long_press = gtk_gesture_long_press_new (chooser->body.box);
-  g_signal_connect (chooser->body_long_press, "pressed", G_CALLBACK (long_pressed_cb), chooser);
-  chooser->body_multi_press = gtk_gesture_multi_press_new (chooser->body.box);
-  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (chooser->body_multi_press), GDK_BUTTON_SECONDARY);
-  g_signal_connect (chooser->body_multi_press, "pressed", G_CALLBACK (pressed_cb), chooser);
-
   adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (chooser->scrolled_window));
   g_signal_connect (adj, "value-changed", G_CALLBACK (adj_value_changed), chooser);
 
@@ -750,6 +718,8 @@ gtk_emoji_chooser_class_init (GtkEmojiChooserClass *klass)
 
   gtk_widget_class_bind_template_callback (widget_class, emoji_activated);
   gtk_widget_class_bind_template_callback (widget_class, search_changed);
+  gtk_widget_class_bind_template_callback (widget_class, pressed_cb);
+  gtk_widget_class_bind_template_callback (widget_class, long_pressed_cb);
 }
 
 GtkWidget *
index 6e6e88258dc2f00b97290cdb5de653ab32ee5309..4cbc604fc2fc2b0996b6d51348ac6a11a9fc0105 100644 (file)
                             <property name="homogeneous">1</property>
                             <property name="selection-mode">none</property>
                             <signal name="child-activated" handler="emoji_activated"/>
+                            <child>
+                              <object class="GtkGestureLongPress">
+                                <signal name="pressed" handler="long_pressed_cb"/>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkGestureMultiPress">
+                                <property name="button">3</property>
+                                <signal name="pressed" handler="pressed_cb"/>
+                              </object>
+                            </child>
                           </object>
                         </child>
                         <child>
                             <property name="homogeneous">1</property>
                             <property name="selection-mode">none</property>
                             <signal name="child-activated" handler="emoji_activated"/>
+                            <child>
+                              <object class="GtkGestureLongPress">
+                                <signal name="pressed" handler="long_pressed_cb"/>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkGestureMultiPress">
+                                <property name="button">3</property>
+                                <signal name="pressed" handler="pressed_cb"/>
+                              </object>
+                            </child>
                           </object>
                         </child>
                         <child>
                             <property name="homogeneous">1</property>
                             <property name="selection-mode">none</property>
                             <signal name="child-activated" handler="emoji_activated"/>
+                            <child>
+                              <object class="GtkGestureLongPress">
+                                <signal name="pressed" handler="long_pressed_cb"/>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkGestureMultiPress">
+                                <property name="button">3</property>
+                                <signal name="pressed" handler="pressed_cb"/>
+                              </object>
+                            </child>
                           </object>
                         </child>
                         <child>