gnome-terminal r2740 - trunk/src



Author: chpe
Date: Thu May 29 19:49:51 2008
New Revision: 2740
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2740&view=rev

Log:
Only have one encoding dialogue.


Modified:
   trunk/src/encoding.c
   trunk/src/encoding.h
   trunk/src/terminal-app.c

Modified: trunk/src/encoding.c
==============================================================================
--- trunk/src/encoding.c	(original)
+++ trunk/src/encoding.c	Thu May 29 19:49:51 2008
@@ -138,6 +138,8 @@
   GtkWidget *remove_button;
 } EncodingDialogData;
 
+static GtkWidget *encoding_dialog = NULL;
+
 static void update_active_encoding_tree_models (void);
 
 static void encodings_notify_cb (GConfClient *client,
@@ -327,7 +329,6 @@
   update_active_encoding_tree_models ();
 }
 
-
 static void
 update_active_encodings_gconf (void)
 {
@@ -475,12 +476,9 @@
     return;
 
   gtk_list_store_insert_with_values (store, &iter, -1,
-                                     COLUMN_CHARSET,
-                                     encoding->charset,
-                                     COLUMN_NAME,
-                                     encoding->name,
-                                     COLUMN_DATA,
-                                     encoding,
+                                     COLUMN_CHARSET, encoding->charset,
+                                     COLUMN_NAME, encoding->name,
+                                     COLUMN_DATA, encoding,
                                      -1);
 }
 
@@ -544,14 +542,21 @@
   g_object_weak_ref (G_OBJECT (data->dialog), unregister_liststore, data);
 }
 
-GtkWidget*
-terminal_encoding_dialog_new (GtkWindow *transient_parent)
+void
+terminal_encoding_dialog_show (GtkWindow *transient_parent)
 {
   GtkCellRenderer *cell_renderer;
   GtkTreeViewColumn *column;
   GtkTreeModel *model;
   EncodingDialogData *data;
 
+  if (encoding_dialog)
+    {
+      gtk_window_set_transient_for (GTK_WINDOW (encoding_dialog), transient_parent);
+      gtk_window_present (GTK_WINDOW (encoding_dialog));
+      return;
+    }
+
   data = g_new (EncodingDialogData, 1);
 
   if (!terminal_util_load_builder_file ("encodings-dialog.ui",
@@ -563,7 +568,7 @@
                                         NULL))
     {
       g_free (data);
-      return NULL;
+      return;
     }
 
   g_object_set_data_full (G_OBJECT (data->dialog), "GT::Data", data, (GDestroyNotify) g_free);
@@ -649,7 +654,11 @@
 
   g_object_unref (data->base_store);
 
-  return data->dialog;
+  gtk_window_present (GTK_WINDOW (data->dialog));
+
+  encoding_dialog = data->dialog;
+  g_signal_connect (data->dialog, "destroy",
+                    G_CALLBACK (gtk_widget_destroyed), &encoding_dialog);
 }
 
 void

Modified: trunk/src/encoding.h
==============================================================================
--- trunk/src/encoding.h	(original)
+++ trunk/src/encoding.h	Thu May 29 19:49:51 2008
@@ -37,7 +37,7 @@
 
 void terminal_encoding_init (void);
 
-GtkWidget* terminal_encoding_dialog_new (GtkWindow *transient_parent);
+void terminal_encoding_dialog_show (GtkWindow *transient_parent);
 
 GSList* terminal_get_active_encodings (void);
 

Modified: trunk/src/terminal-app.c
==============================================================================
--- trunk/src/terminal-app.c	(original)
+++ trunk/src/terminal-app.c	Thu May 29 19:49:51 2008
@@ -78,7 +78,6 @@
   GObject parent_instance;
 
   GList *windows;
-  GtkWidget *edit_encodings_dialog;
   GtkWidget *new_profile_dialog;
   GtkWidget *manage_profiles_dialog;
   GtkWidget *manage_profiles_list;
@@ -1848,28 +1847,7 @@
 terminal_app_edit_encodings (TerminalApp     *app,
                              GtkWindow       *transient_parent)
 {
-  GtkWindow *old_transient_parent;
-
-  if (app->edit_encodings_dialog == NULL)
-    {      
-      old_transient_parent = NULL;      
-
-      app->edit_encodings_dialog = terminal_encoding_dialog_new (transient_parent);
-      if (app->edit_encodings_dialog == NULL)
-        return;
-      
-      g_signal_connect (G_OBJECT (app->edit_encodings_dialog),
-                        "destroy",
-                        G_CALLBACK (gtk_widget_destroyed),
-                        &(app->edit_encodings_dialog));
-    }
-  else 
-    {
-      gtk_window_set_transient_for (GTK_WINDOW (app->edit_encodings_dialog),
-                                    transient_parent);
-    }
-  
-  gtk_window_present (GTK_WINDOW (app->edit_encodings_dialog));
+  terminal_encoding_dialog_show (transient_parent);
 }
 
 TerminalWindow *



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]