]> git.0d.be Git - empathy.git/commitdiff
Reload the main window geometry when deiconify to workaround WM bugs.
authorXavier Claessens <xclaesse@gmail.com>
Sun, 15 Nov 2009 20:38:57 +0000 (21:38 +0100)
committerXavier Claessens <xclaesse@gmail.com>
Mon, 16 Nov 2009 12:24:22 +0000 (13:24 +0100)
src/empathy-main-window.c

index 2a316b99e5887aa3a5f1b3ac19cabc459df418b2..bfd6b89919435dde81f0345580db7e176c276f0f 100644 (file)
@@ -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,