From 2cec57786293b83c859c0f00c429dac688a60803 Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 22 Nov 2005 03:59:35 +0000 Subject: remember the last compose window position. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@769 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 7 +++++++ ChangeLog.ja | 7 +++++++ libsylph/prefs_common.c | 2 ++ libsylph/prefs_common.h | 2 ++ src/compose.c | 24 ++++++++++++++++++++++++ src/sourcewindow.c | 3 ++- 6 files changed, 44 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index fc0abf34..080aec1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-11-22 + + * libsylph/prefs_common.[ch] + src/compose.c: remember the last window position. + * src/sourcewindow.c: win32: fixed window appeared always top-left. + Added margin to the TextView. + 2005-11-21 * src/compose.c: compose_create(): win32: fixed window appeared always diff --git a/ChangeLog.ja b/ChangeLog.ja index e548a3bc..b55778cc 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,10 @@ +2005-11-22 + + * libsylph/prefs_common.[ch] + src/compose.c: 最後のウィンドウ位置を記憶するようにした。 + * src/sourcewindow.c: win32: ウィンドウが常に左上に出現していたのを + 修正。 TextView にマージンを追加。 + 2005-11-21 * src/compose.c: compose_create(): win32: ウィンドウが常に左上に diff --git a/libsylph/prefs_common.c b/libsylph/prefs_common.c index fdc935da..7858fb6a 100644 --- a/libsylph/prefs_common.c +++ b/libsylph/prefs_common.c @@ -213,6 +213,8 @@ static PrefParam param[] = { {"messagewin_height", "540", &prefs_common.msgwin_height, P_INT}, {"sourcewin_width", "600", &prefs_common.sourcewin_width, P_INT}, {"sourcewin_height", "500", &prefs_common.sourcewin_height, P_INT}, + {"compose_x", "32", &prefs_common.compose_x, P_INT}, + {"compose_y", "32", &prefs_common.compose_y, P_INT}, {"compose_width", "600", &prefs_common.compose_width, P_INT}, {"compose_height", "560", &prefs_common.compose_height, P_INT}, diff --git a/libsylph/prefs_common.h b/libsylph/prefs_common.h index 71305bcb..929170a0 100644 --- a/libsylph/prefs_common.h +++ b/libsylph/prefs_common.h @@ -151,6 +151,8 @@ struct _PrefsCommon gint sourcewin_width; gint sourcewin_height; + gint compose_x; + gint compose_y; gint compose_width; gint compose_height; diff --git a/src/compose.c b/src/compose.c index 8a12ae3a..d8e7b67b 100644 --- a/src/compose.c +++ b/src/compose.c @@ -166,6 +166,8 @@ static GList *compose_list = NULL; static Compose *compose_create (PrefsAccount *account, ComposeMode mode); static Compose *compose_find_window_by_target (MsgInfo *msginfo); +static gboolean compose_window_exist (gint x, + gint y); static void compose_connect_changed_callbacks (Compose *compose); static GtkWidget *compose_toolbar_create (Compose *compose); static GtkWidget *compose_account_option_menu_create @@ -4023,6 +4025,10 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode) gtk_window_set_wmclass(GTK_WINDOW(window), "compose", "Sylpheed"); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE); gtk_widget_set_size_request(window, -1, prefs_common.compose_height); + if (!compose_window_exist(prefs_common.compose_x, + prefs_common.compose_y)) + gtk_window_move(GTK_WINDOW(window), prefs_common.compose_x, + prefs_common.compose_y); if (!geometry.max_width) { geometry.max_width = gdk_screen_width(); @@ -4552,6 +4558,22 @@ static Compose *compose_find_window_by_target(MsgInfo *msginfo) return NULL; } +static gboolean compose_window_exist(gint x, gint y) +{ + GList *cur; + Compose *compose; + gint x_, y_; + + for (cur = compose_list; cur != NULL; cur = cur->next) { + compose = cur->data; + gtkut_widget_get_uposition(compose->window, &x_, &y_); + if (x == x_ && y == y_) + return TRUE; + } + + return FALSE; +} + static void compose_connect_changed_callbacks(Compose *compose) { GtkTextView *text = GTK_TEXT_VIEW(compose->text); @@ -4995,6 +5017,8 @@ static void compose_destroy(Compose *compose) if (addressbook_get_target_compose() == compose) addressbook_set_target_compose(NULL); + gtkut_widget_get_uposition(compose->window, &prefs_common.compose_x, + &prefs_common.compose_y); prefs_common.compose_width = compose->scrolledwin->allocation.width; prefs_common.compose_height = compose->window->allocation.height; diff --git a/src/sourcewindow.c b/src/sourcewindow.c index 21b48af9..a135899a 100644 --- a/src/sourcewindow.c +++ b/src/sourcewindow.c @@ -74,7 +74,6 @@ SourceWindow *source_window_create(void) G_CALLBACK(source_window_delete_cb), sourcewin); g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(key_pressed), sourcewin); - gtk_widget_realize(window); scrolledwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin), @@ -87,6 +86,8 @@ SourceWindow *source_window_create(void) text = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); + gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text), 6); + gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text), 6); if (!font_desc && prefs_common.textfont) font_desc = pango_font_description_from_string (prefs_common.textfont); -- cgit v1.2.3