[geany/geany] b64642: Only close reload infobar if the response succeeded

Nick Treleaven git-noreply at xxxxx
Wed Sep 24 11:21:32 UTC 2014


Branch:      refs/heads/master
Author:      Nick Treleaven <nick.treleaven at btinternet.com>
Committer:   Nick Treleaven <nick.treleaven at btinternet.com>
Date:        Wed, 24 Sep 2014 11:21:32 UTC
Commit:      b646424ddb715382a937d233a75bc684c22e18ec
             https://github.com/geany/geany/commit/b646424ddb715382a937d233a75bc684c22e18ec

Log Message:
-----------
Only close reload infobar if the response succeeded


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

Modified: src/document.c
18 lines changed, 15 insertions(+), 3 deletions(-)
===================================================================
@@ -3218,7 +3218,6 @@ static GtkWidget* document_show_message(GeanyDocument *doc, GtkMessageType msgty
 	g_free(markup);
 
 	g_signal_connect(info_widget, "response", G_CALLBACK(response_cb), doc);
-	g_signal_connect_after(info_widget, "response", G_CALLBACK(gtk_widget_destroy), NULL);
 
 	hbox = gtk_hbox_new(FALSE, 12);
 	gtk_box_pack_start(GTK_BOX(content_area), hbox, TRUE, TRUE, 0);
@@ -3266,15 +3265,28 @@ static GtkWidget* document_show_message(GeanyDocument *doc, GtkMessageType msgty
 
 static void on_monitor_reload_file_response(GtkWidget *bar, gint response_id, GeanyDocument *doc)
 {
+	gboolean close = FALSE;
+
+	// disable info bar so actions complete normally
 	unprotect_document(doc);
 	doc->priv->info_bars[MSG_TYPE_RELOAD] = NULL;
 
 	if (response_id == RESPONSE_DOCUMENT_RELOAD)
-		document_reload_prompt(doc, doc->encoding);
+		close = document_reload_prompt(doc, doc->encoding);
 	else if (response_id == RESPONSE_DOCUMENT_SAVE)
-		document_save_file(doc, TRUE);
+		close = document_save_file(doc, TRUE);	// force overwrite
 	else if (response_id == GTK_RESPONSE_CANCEL)
+	{
 		document_set_text_changed(doc, TRUE);
+		close = TRUE;
+	}
+	if (!close)
+	{
+		doc->priv->info_bars[MSG_TYPE_RELOAD] = bar;
+		protect_document(doc);
+		return;
+	}
+	gtk_widget_destroy(bar);
 }
 
 



--------------
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