[gedit] EncodingsDialog: don't use gtk_dialog_run()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] EncodingsDialog: don't use gtk_dialog_run()
- Date: Sun, 10 May 2015 17:49:23 +0000 (UTC)
commit d0aec4638d5447c283e41a5ac845b3d21a86b5ce
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun May 10 19:43:57 2015 +0200
EncodingsDialog: don't use gtk_dialog_run()
If two gedit main windows are opened (e.g. on two different desktops),
gtk_dialog_run() blocks the second window, so it's Bad™.
gedit/gedit-encodings-dialog.c | 34 ++++++++++++++++++++++------------
1 files changed, 22 insertions(+), 12 deletions(-)
---
diff --git a/gedit/gedit-encodings-dialog.c b/gedit/gedit-encodings-dialog.c
index c27c24c..4ef8c1d 100644
--- a/gedit/gedit-encodings-dialog.c
+++ b/gedit/gedit-encodings-dialog.c
@@ -159,11 +159,27 @@ init_liststores (GeditEncodingsDialog *dialog,
}
static void
+reset_dialog_response_cb (GtkDialog *msg_dialog,
+ gint response,
+ GeditEncodingsDialog *dialog)
+{
+ if (response == GTK_RESPONSE_ACCEPT)
+ {
+ gtk_list_store_clear (dialog->liststore_available);
+ gtk_list_store_clear (dialog->liststore_chosen);
+
+ init_liststores (dialog, TRUE);
+ dialog->state = STATE_RESET;
+ }
+
+ gtk_widget_destroy (GTK_WIDGET (msg_dialog));
+}
+
+static void
reset_button_clicked_cb (GtkWidget *button,
GeditEncodingsDialog *dialog)
{
GtkDialog *msg_dialog;
- gint response;
msg_dialog = GTK_DIALOG (gtk_message_dialog_new (GTK_WINDOW (dialog),
GTK_DIALOG_DESTROY_WITH_PARENT |
@@ -179,18 +195,12 @@ reset_button_clicked_cb (GtkWidget *button,
_("_Reset"), GTK_RESPONSE_ACCEPT,
NULL);
- response = gtk_dialog_run (msg_dialog);
-
- if (response == GTK_RESPONSE_ACCEPT)
- {
- gtk_list_store_clear (dialog->liststore_available);
- gtk_list_store_clear (dialog->liststore_chosen);
-
- init_liststores (dialog, TRUE);
- dialog->state = STATE_RESET;
- }
+ g_signal_connect (msg_dialog,
+ "response",
+ G_CALLBACK (reset_dialog_response_cb),
+ dialog);
- gtk_widget_destroy (GTK_WIDGET (msg_dialog));
+ gtk_widget_show_all (GTK_WIDGET (msg_dialog));
}
static GSList *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]