gnome-terminal r2740 - trunk/src
- From: chpe svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-terminal r2740 - trunk/src
- Date: Thu, 29 May 2008 19:49:52 +0000 (UTC)
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]