[evolution/webkit] Bug #608203 - Left pane of mailer window is narrow at startup
- From: Dan VrÃtil <dvratil src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/webkit] Bug #608203 - Left pane of mailer window is narrow at startup
- Date: Mon, 11 Jul 2011 14:53:40 +0000 (UTC)
commit 2bf0fbe1f70dbe2b666f5ffd4f510badf9674cbb
Author: Milan Crha <mcrha redhat com>
Date: Mon Jun 6 12:15:15 2011 +0200
Bug #608203 - Left pane of mailer window is narrow at startup
e-util/gconf-bridge.c | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/e-util/gconf-bridge.c b/e-util/gconf-bridge.c
index 9741f6c..e1fc377 100644
--- a/e-util/gconf-bridge.c
+++ b/e-util/gconf-bridge.c
@@ -727,6 +727,25 @@ window_binding_state_event_cb (GtkWindow *window,
if (binding->sync_timeout_id > 0)
g_source_remove (binding->sync_timeout_id);
+ if (event
+ && (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) != 0
+ && (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) == 0) {
+ /* the window was restored from a maximized state; make sure its
+ width and height is the one user stored before maximization */
+ gint width, height;
+
+ width = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "binding-premax-width"));
+ height = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "binding-premax-height"));
+
+ if (width && height) {
+ gtk_window_resize (window, width, height);
+
+ /* do this only once, as it is restore after loading maximized state */
+ g_object_set_data (G_OBJECT (window), "binding-premax-width", NULL);
+ g_object_set_data (G_OBJECT (window), "binding-premax-height", NULL);
+ }
+ }
+
window_binding_perform_scheduled_sync (binding);
return FALSE;
@@ -842,6 +861,22 @@ gconf_bridge_bind_window (GConfBridge *bridge,
if (maximized_val) {
if (gconf_value_get_bool (maximized_val)) {
+ /* maximize is not done immediately, but to count with proper
+ window size, resize it before. The previous size is restored
+ after the maximization is changed, in window_binding_state_event_cb()
+ */
+ gint width = 0, height = 0;
+ GdkScreen *screen;
+
+ gtk_window_get_size (window, &width, &height);
+ g_object_set_data (G_OBJECT (window), "binding-premax-width", GINT_TO_POINTER (width));
+ g_object_set_data (G_OBJECT (window), "binding-premax-height", GINT_TO_POINTER (height));
+
+ screen = gtk_window_get_screen (window);
+ gtk_window_resize (window,
+ gdk_screen_get_width (screen),
+ gdk_screen_get_height (screen));
+
gtk_window_maximize (window);
}
gconf_value_free (maximized_val);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]