]> git.0d.be Git - empathy.git/commitdiff
Make the sidebar nicely pop in and out
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Sun, 8 Mar 2009 20:18:54 +0000 (20:18 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Sun, 8 Mar 2009 20:18:54 +0000 (20:18 +0000)
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
svn path=/trunk/; revision=2645

src/empathy-call-window.c

index cfa65f7d310460a1b8fad09116b408ce9dab70e7..99b273fd425961b21ede1b9d02d6bdd16e60311d 100644 (file)
@@ -1118,19 +1118,32 @@ empathy_call_window_sidebar_toggled_cb (GtkToggleButton *toggle,
 {
   EmpathyCallWindowPriv *priv = GET_PRIV (window);
   GtkWidget *arrow;
+  GtkWidget *pane;
+  int w,h, handle_size;
+
+  w = GTK_WIDGET (window)->allocation.width;
+  h = GTK_WIDGET (window)->allocation.height;
+
+  pane = glade_xml_get_widget (priv->glade, "pane");
+  gtk_widget_style_get (pane, "handle_size", &handle_size, NULL);
 
   if (gtk_toggle_button_get_active (toggle))
     {
       arrow = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE);
       gtk_widget_show (priv->sidebar);
+      w += priv->sidebar->allocation.width + handle_size;
     }
   else
     {
       arrow = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
+      w -= priv->sidebar->allocation.width + handle_size;
       gtk_widget_hide (priv->sidebar);
     }
 
   gtk_button_set_image (GTK_BUTTON (priv->sidebar_button), arrow);
+
+  if (w > 0 && h > 0)
+    gtk_window_resize (GTK_WINDOW (window), w, h);
 }
 
 static void