aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--composer/ChangeLog6
-rw-r--r--composer/e-msg-composer.c28
2 files changed, 27 insertions, 7 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog
index 32c1ec2376..7962fc01a7 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-13 Radek Doulik <rodo@ximian.com>
+
+ * e-msg-composer.c (create_composer): get default composer size
+ from gconf, hook to unrealize event and save size to gconf
+ (e_msg_composer_unmap): new handler, saves composer window size
+
2004-02-06 Rodney Dawes <dobey@ximian.com>
* e-msg-composer-attachment-bar.c: add accel and icon for
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 80ab2873f7..864ae540ed 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -114,10 +114,6 @@
#define d(x) x
-
-#define DEFAULT_WIDTH 600
-#define DEFAULT_HEIGHT 500
-
enum {
SEND,
SAVE_DRAFT,
@@ -3025,6 +3021,22 @@ composer_settings_update (GConfClient *gconf, guint cnxn_id, GConfEntry *entry,
NULL);
}
+static void
+e_msg_composer_unmap (GtkWidget *widget, gpointer data)
+{
+ EMsgComposer *composer = E_MSG_COMPOSER (widget);
+ GConfClient *gconf;
+ int width, height;
+
+ gtk_window_get_size (GTK_WINDOW (composer), &width, &height);
+ printf ("composer width: %d height: %d\n", width, height);
+
+ gconf = gconf_client_get_default ();
+ gconf_client_set_int (gconf, "/apps/evolution/mail/composer/width", width, NULL);
+ gconf_client_set_int (gconf, "/apps/evolution/mail/composer/height", height, NULL);
+ g_object_unref (gconf);
+}
+
static EMsgComposer *
create_composer (int visible_mask)
{
@@ -3048,9 +3060,7 @@ create_composer (int visible_mask)
g_signal_connect (composer, "destroy",
G_CALLBACK (msg_composer_destroy_notify),
NULL);
-
- gtk_window_set_default_size (GTK_WINDOW (composer),
- DEFAULT_WIDTH, DEFAULT_HEIGHT);
+
gnome_window_icon_set_from_file (GTK_WINDOW (composer), EVOLUTION_IMAGESDIR
"/compose-message.png");
@@ -3121,6 +3131,10 @@ create_composer (int visible_mask)
gconf_client_add_dir (gconf, "/apps/evolution/mail/composer", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
composer->notify_id = gconf_client_notify_add (gconf, "/apps/evolution/mail/composer",
composer_settings_update, composer, NULL, NULL);
+ gtk_window_set_default_size (GTK_WINDOW (composer),
+ gconf_client_get_int (gconf, "/apps/evolution/mail/composer/width", NULL),
+ gconf_client_get_int (gconf, "/apps/evolution/mail/composer/height", NULL));
+ g_signal_connect (composer, "unrealize", G_CALLBACK (e_msg_composer_unmap), NULL);
g_object_unref (gconf);
editor_server = bonobo_widget_get_objref (BONOBO_WIDGET (composer->editor));