aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-11-22 03:59:35 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-11-22 03:59:35 +0000
commit2cec57786293b83c859c0f00c429dac688a60803 (patch)
tree0b7b2de458b682f920f6b7a02d7d0f4668b5afa8
parentde47e5e4a58acf41d5506b90950d6dc9518b4ff8 (diff)
remember the last compose window position.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@769 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog7
-rw-r--r--ChangeLog.ja7
-rw-r--r--libsylph/prefs_common.c2
-rw-r--r--libsylph/prefs_common.h2
-rw-r--r--src/compose.c24
-rw-r--r--src/sourcewindow.c3
6 files changed, 44 insertions, 1 deletions
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);