[empathy] Reload the main window geometry when deiconify to workaround WM bugs.



commit 13b916845f7bd4762e2709a99456986bde12b3d9
Author: Xavier Claessens <xclaesse gmail com>
Date:   Sun Nov 15 21:38:57 2009 +0100

    Reload the main window geometry when deiconify to workaround WM bugs.

 src/empathy-main-window.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index 2a316b9..bfd6b89 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -1194,6 +1194,21 @@ account_manager_prepared_cb (GObject *source_object,
 	g_list_free (accounts);
 }
 
+static gboolean
+main_window_state_event_cb (GtkWidget           *widget,
+			    GdkEventWindowState *event,
+			    EmpathyMainWindow   *window)
+{
+	/* Force reloading geometry because some WM lose it in the
+	 * iconify/deiconify process */
+	if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) != 0 &&
+	    (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) == 0) {
+		empathy_geometry_load (GTK_WINDOW (window->window), GEOMETRY_NAME);
+	}
+
+	return FALSE;
+}
+
 GtkWidget *
 empathy_main_window_show (void)
 {
@@ -1242,6 +1257,7 @@ empathy_main_window_show (void)
 
 	empathy_builder_connect (gui, window,
 			      "main_window", "destroy", main_window_destroy_cb,
+			      "main_window", "window-state-event", main_window_state_event_cb,
 			      "chat_quit", "activate", main_window_chat_quit_cb,
 			      "chat_new_message", "activate", main_window_chat_new_message_cb,
 			      "view_history", "activate", main_window_view_history_cb,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]