Skip to content

Commit dbddddb

Browse files
committed
nemo-places-sidebar.c: Don't use gtk_get_current_event() for eject
The button-release handler was calling clicked_eject_button(), but didn't actually pass the event. Instead it fetched the current event from Gtk. For touch events, Gtk emits a synthesized button-press but pushes the real touch event to the event queue, which is what the gtk_get_current_event() ended up getting. The original button-release event is what should be used here, so pass that to over_eject_button() directly.
1 parent ed0bb24 commit dbddddb

1 file changed

Lines changed: 2 additions & 20 deletions

File tree

‎src/nemo-places-sidebar.c‎

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1430,25 +1430,6 @@ over_eject_button (NemoPlacesSidebar *sidebar,
14301430
return FALSE;
14311431
}
14321432

1433-
static gboolean
1434-
clicked_eject_button (NemoPlacesSidebar *sidebar,
1435-
GtkTreePath **path)
1436-
{
1437-
GdkEvent *event;
1438-
1439-
event = gtk_get_current_event ();
1440-
1441-
if (event) {
1442-
GdkEventButton *button_event = (GdkEventButton *) event;
1443-
if ((event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) &&
1444-
over_eject_button (sidebar, button_event->x, button_event->y, path)) {
1445-
return TRUE;
1446-
}
1447-
}
1448-
1449-
return FALSE;
1450-
}
1451-
14521433
static void
14531434
desktop_setting_changed_callback (gpointer user_data)
14541435
{
@@ -3598,7 +3579,8 @@ bookmarks_button_release_event_cb (GtkWidget *widget,
35983579
return TRUE;
35993580
}
36003581

3601-
if (event->button == GDK_BUTTON_PRIMARY && clicked_eject_button (sidebar, &path)) {
3582+
if (event->button == GDK_BUTTON_PRIMARY &&
3583+
over_eject_button (sidebar, (int) event->x, (int) event->y, &path)) {
36023584
eject_or_unmount_bookmark (sidebar, path);
36033585
gtk_tree_path_free (path);
36043586

0 commit comments

Comments
 (0)