aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2007-09-26 07:14:14 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2007-09-26 07:14:14 +0000
commit2ec0bd9523f4ddeef1c3550b3bc3604abea7b0e6 (patch)
treeba8827e9ef5594c79eaf479829e86e5b0ad33e06
parentd73e3bb581deb1e1b9645780785bc78af3796b41 (diff)
keep previous focus when separation changed.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1911 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--src/mainwindow.c6
3 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a2239354..7004202a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-26
+
+ * src/mainwindow.c: main_window_separation_change(): keep previous
+ focus when separation changed.
+
2007-09-20
libsylph/utils.c
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 7bbb4082..599d2120 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,3 +1,8 @@
+2007-09-26
+
+ * src/mainwindow.c: main_window_separation_change(): 分離状態が変更
+ された場合、以前のフォーカスを保持するようにした。
+
2007-09-20
libsylph/utils.c
diff --git a/src/mainwindow.c b/src/mainwindow.c
index 490bffe1..af3ed9bb 100644
--- a/src/mainwindow.c
+++ b/src/mainwindow.c
@@ -1403,12 +1403,16 @@ void main_window_separation_change(MainWindow *mainwin, SeparateType type)
GtkWidget *folder_wid = GTK_WIDGET_PTR(mainwin->folderview);
GtkWidget *summary_wid = GTK_WIDGET_PTR(mainwin->summaryview);
GtkWidget *message_wid = GTK_WIDGET_PTR(mainwin->messageview);
+ GtkWidget *focus_widget;
debug_print(_("Changing window separation type from %d to %d\n"),
mainwin->type, type);
if (mainwin->type == type) return;
+ /* keep previous focus */
+ focus_widget = gtk_window_get_focus(GTK_WINDOW(mainwin->window));
+
/* remove widgets from those containers */
gtk_widget_ref(folder_wid);
gtk_widget_ref(summary_wid);
@@ -1442,6 +1446,8 @@ void main_window_separation_change(MainWindow *mainwin, SeparateType type)
gtk_widget_hide(mainwin->window);
main_window_set_widgets(mainwin, type);
gtk_widget_show(mainwin->window);
+ if (focus_widget)
+ gtk_widget_grab_focus(focus_widget);
gtk_widget_unref(folder_wid);
gtk_widget_unref(summary_wid);