aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2015-01-16 09:59:48 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2015-01-16 09:59:48 +0000
commita393dea07a3c7472725de3b236c8c3bce446d1ff (patch)
tree3857d7b27f489e525f9999953b178104df5adebd
parent1fcff6946e9a2579514539c73a747519b2c19680 (diff)
win32: fixed a bug that maximized state was unset on minimize.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3459 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog5
-rw-r--r--src/mainwindow.c17
2 files changed, 22 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c575fbf0..6c4cdb3a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-16
+
+ * src/mainwindow.c: main_window_window_state_cb():
+ win32: fixed a bug that maximized state was unset on minimize.
+
2014-12-12
* libsylph/procmime.[ch]
diff --git a/src/mainwindow.c b/src/mainwindow.c
index c601b32e..2dc03c66 100644
--- a/src/mainwindow.c
+++ b/src/mainwindow.c
@@ -3242,13 +3242,25 @@ static gboolean main_window_window_state_cb(GtkWidget *widget,
MainWindow *mainwin = (MainWindow *)data;
gboolean minimized = FALSE;
+ debug_print("main_window_window_state_cb\n");
+
if ((event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) != 0) {
if ((event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0) {
debug_print("main_window_window_state_cb: maximized\n");
prefs_common.mainwin_maximized = TRUE;
} else {
debug_print("main_window_window_state_cb: unmaximized\n");
+#ifdef G_OS_WIN32
+ if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) != 0 &&
+ (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0) {
+ debug_print("main_window_window_state_cb: unmaximized by minimize\n");
+ /* don't change mainwin_maximized */
+ } else {
+ prefs_common.mainwin_maximized = FALSE;
+ }
+#else
prefs_common.mainwin_maximized = FALSE;
+#endif
}
}
if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) != 0) {
@@ -3275,6 +3287,7 @@ static gboolean main_window_window_state_cb(GtkWidget *widget,
if (minimized &&
prefs_common.show_trayicon && prefs_common.minimize_to_tray) {
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), TRUE);
+ debug_print("main_window_window_state_cb: hide window\n");
gtk_widget_hide(widget);
#else
if (mainwin->window_hidden &&
@@ -3283,6 +3296,10 @@ static gboolean main_window_window_state_cb(GtkWidget *widget,
#endif
} else if (!mainwin->window_hidden) {
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), FALSE);
+#ifdef G_OS_WIN32
+ if (prefs_common.mainwin_maximized)
+ gtk_window_maximize(GTK_WINDOW(widget));
+#endif
}
return FALSE;