diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-10-25 15:55:54 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-10-25 16:00:00 -0400 |
commit | 041ccd7f878f6412c3a47eec4665ea86123ea048 (patch) | |
tree | 30dbf566372efbc25586fe2759f2bbda9d622e7f | |
parent | e35d91d18f2deab7238dfcd2ad96451acce73f51 (diff) | |
download | gtk+-041ccd7f878f6412c3a47eec4665ea86123ea048.tar.gz |
GtkPlacesSidebar: Don't crash on dnd
gtk_get_current_event() can return NULL. Don't crash if it does.
https://bugzilla.gnome.org/show_bug.cgi?id=739150
-rw-r--r-- | gtk/gtkplacessidebar.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c index c6d53f7358..cdc5ce1f8f 100644 --- a/gtk/gtkplacessidebar.c +++ b/gtk/gtkplacessidebar.c @@ -1420,11 +1420,13 @@ static gboolean clicked_eject_button (GtkPlacesSidebar *sidebar, GtkTreePath **path) { - GdkEvent *event = gtk_get_current_event (); - GdkEventButton *button_event = (GdkEventButton *) event; + GdkEvent *event; - if ((event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) && - over_eject_button (sidebar, button_event->x, button_event->y, path)) + event = gtk_get_current_event (); + + if (event && + (event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) && + over_eject_button (sidebar, ((GdkEventButton *)event)->x, ((GdkEventButton *)event)->y, path)) return TRUE; return FALSE; |