From 55c23d2b22096ae062af82383f21922ad8649d41 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 24 Jul 2007 04:56:47 +0000 Subject: [PATCH] Restructure the code to make sense, and don't leak an empty accel. 2007-07-24 Matthias Clasen * gtk/gtkmenubar.c (window_key_press_handler): * gtk/gtkmenu.c (gtk_menu_key_press): Restructure the code to make sense, and don't leak an empty accel. (#459515, Owen Taylor) svn path=/trunk/; revision=18535 --- ChangeLog | 6 ++++++ gtk/gtkmenu.c | 17 ++++++++--------- gtk/gtkmenubar.c | 4 ++-- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 114d9bb85c..7b6ba7fb40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-07-24 Matthias Clasen + + * gtk/gtkmenubar.c (window_key_press_handler): + * gtk/gtkmenu.c (gtk_menu_key_press): Restructure the code + to make sense, and don't leak an empty accel. (#459515, Owen Taylor) + 2007-07-23 Matthias Clasen * gtk/gtktooltip.c (gtk_tooltip_set_custom): Protect against diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 66fd3108df..6e99ce0bf1 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -2786,7 +2786,6 @@ gtk_menu_key_press (GtkWidget *widget, { guint keyval = 0; GdkModifierType mods = 0; - gboolean handled = FALSE; gtk_accelerator_parse (accel, &keyval, &mods); @@ -2797,15 +2796,15 @@ gtk_menu_key_press (GtkWidget *widget, * thing, to properly consider i18n etc., but that probably requires * AccelGroup changes etc. */ - if (event->keyval == keyval && - (mods & event->state) == mods) - gtk_menu_shell_cancel (menu_shell); - - g_free (accel); - - if (handled) - return TRUE; + if (event->keyval == keyval && (mods & event->state) == mods) + { + gtk_menu_shell_cancel (menu_shell); + g_free (accel); + return TRUE; + } } + + g_free (accel); switch (event->keyval) { diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c index ad8fc2e68b..6cf8a04103 100644 --- a/gtk/gtkmenubar.c +++ b/gtk/gtkmenubar.c @@ -634,10 +634,10 @@ window_key_press_handler (GtkWidget *widget, retval = TRUE; } } - - g_free (accel); } + g_free (accel); + return retval; }