From 6f6f19847c045271ae2d39f330576d92a88c1667 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Tue, 31 Jul 2012 14:36:11 +0200 Subject: prevent recursive quickopen_item_on_activate() invocations (fixes issue #1) --- src/quick-open.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/quick-open.c b/src/quick-open.c index d55fe50..ce47a6d 100644 --- a/src/quick-open.c +++ b/src/quick-open.c @@ -220,9 +220,17 @@ refresh_quickopen_menu(GtkMenu *menu) static void reconfigure_all_check_menu_items_cb(GtkWidget *widget, gpointer user_data) { - if (GTK_IS_CHECK_MENU_ITEM(widget)) - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), - widget == GTK_WIDGET(user_data)); + if (!GTK_IS_CHECK_MENU_ITEM(widget)) + return; + + g_signal_handlers_block_matched(widget, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, + quickopen_item_on_activate, NULL); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), + widget == GTK_WIDGET(user_data)); + g_signal_handlers_unblock_matched(widget, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, + quickopen_item_on_activate, NULL); } static void -- cgit v1.2.3