Skip to content

Commit cfbfd6a

Browse files
authored
Header: Use Gtk.Gesture (#882)
1 parent 89cc26f commit cfbfd6a

1 file changed

Lines changed: 26 additions & 5 deletions

File tree

src/Grid/Header.vala

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ public class Header : Gtk.EventBox {
3131
private static GLib.Settings show_weeks;
3232
private static Gtk.CssProvider style_provider;
3333

34+
private Gtk.GestureMultiPress click_gesture;
35+
private Gtk.GestureLongPress long_press_gesture;
36+
3437
static construct {
3538
style_provider = new Gtk.CssProvider ();
3639
style_provider.load_from_resource ("/io/elementary/calendar/Header.css");
@@ -43,8 +46,6 @@ public class Header : Gtk.EventBox {
4346
}
4447

4548
construct {
46-
events |= Gdk.EventMask.BUTTON_PRESS_MASK;
47-
4849
header_grid = new Gtk.Grid ();
4950
header_grid.insert_column (7);
5051
header_grid.insert_row (1);
@@ -85,12 +86,32 @@ public class Header : Gtk.EventBox {
8586
attach_widget = this
8687
};
8788

88-
button_press_event.connect ((event) => {
89-
if (event.type == Gdk.EventType.BUTTON_PRESS && event.button == Gdk.BUTTON_SECONDARY) {
89+
click_gesture = new Gtk.GestureMultiPress (this) {
90+
button = 0
91+
};
92+
click_gesture.pressed.connect ((n_press, x, y) => {
93+
var sequence = click_gesture.get_current_sequence ();
94+
var event = click_gesture.get_last_event (sequence);
95+
96+
if (event.triggers_context_menu ()) {
9097
gtk_menu.popup_at_pointer (event);
98+
99+
click_gesture.set_state (CLAIMED);
100+
click_gesture.reset ();
91101
}
102+
});
103+
104+
long_press_gesture = new Gtk.GestureLongPress (this) {
105+
touch_only = true
106+
};
107+
long_press_gesture.pressed.connect ((x, y) => {
108+
var sequence = long_press_gesture.get_current_sequence ();
109+
var event = long_press_gesture.get_last_event (sequence);
110+
111+
gtk_menu.popup_at_pointer (event);
92112

93-
return false;
113+
long_press_gesture.set_state (CLAIMED);
114+
long_press_gesture.reset ();
94115
});
95116
}
96117

0 commit comments

Comments
 (0)