[geany/geany] 03e5bb: Fix crash if plugin manager is opened more than once (#1564)

Colomban Wendling git-noreply at xxxxx
Fri Jul 28 04:15:55 UTC 2017


Branch:      refs/heads/master
Author:      Colomban Wendling <lists.ban at herbesfolles.org>
Committer:   Matthew Brush <mbrush at codebrainz.ca>
Date:        Fri, 28 Jul 2017 04:15:55 UTC
Commit:      03e5bb9facd4e35ac0757781e054c7389362d129
             https://github.com/geany/geany/commit/03e5bb9facd4e35ac0757781e054c7389362d129

Log Message:
-----------
Fix crash if plugin manager is opened more than once (#1564)

Do not allow more than one plugin manager dialog at a time.  It doesn't
make sense and the code is not fully re-entrant and leads to a crash
toggling plugins in both dialogs.

Fixes #1563.


Modified Paths:
--------------
    src/plugins.c

Modified: src/plugins.c
7 lines changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -1902,6 +1902,7 @@ static void pm_dialog_response(GtkDialog *dialog, gint response, gpointer user_d
 				plugin_list = NULL;
 			}
 			gtk_widget_destroy(GTK_WIDGET(dialog));
+			pm_widgets.dialog = NULL;
 
 			configuration_save();
 			break;
@@ -1919,6 +1920,12 @@ static void pm_show_dialog(GtkMenuItem *menuitem, gpointer user_data)
 {
 	GtkWidget *vbox, *vbox2, *swin, *label, *menu_item, *filter_entry;
 
+	if (pm_widgets.dialog != NULL)
+	{
+		gtk_window_present(GTK_WINDOW(pm_widgets.dialog));
+		return;
+	}
+
 	/* before showing the dialog, we need to create the list of available plugins */
 	load_all_plugins();
 



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list