From 9144c25beaf0fe63cb668c730bbaaa532069c2d3 Mon Sep 17 00:00:00 2001 From: Denis Gorodnichev Date: Mon, 13 Oct 2014 00:24:10 +0400 Subject: Fix segfault: gtk_get_current_event can return null fix segfault when gtk_get_current_event return null fix memory leak: gtk_get_current_event return value must be freed Closes https://github.com/mate-desktop/mate-panel/pull/243 --- mate-panel/panel.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mate-panel/panel.c b/mate-panel/panel.c index 666a62b7..ce22432e 100644 --- a/mate-panel/panel.c +++ b/mate-panel/panel.c @@ -351,11 +351,14 @@ panel_popup_menu (PanelToplevel *toplevel, panel_data = g_object_get_data (G_OBJECT (toplevel), "PanelData"); current_event = gtk_get_current_event (); - if (current_event->type == GDK_BUTTON_PRESS) + if (current_event && current_event->type == GDK_BUTTON_PRESS) panel_data->insertion_pos = panel_widget_get_cursorloc (panel_widget); else panel_data->insertion_pos = -1; - + + if (current_event) + gdk_event_free (current_event); + menu = make_popup_panel_menu (panel_widget); if (!menu) return FALSE; -- cgit v1.2.1