]> Pileus Git - ~andy/gtk/commitdiff
GtkPlug: preserve map/unmap invariants
authorMatthias Clasen <mclasen@redhat.com>
Sat, 3 Sep 2011 01:40:42 +0000 (21:40 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 3 Sep 2011 01:40:42 +0000 (21:40 -0400)
gtk/gtkplug.c

index e0c38366912e3f8539b2d1110ec5dee97d11b459..1d4240d0c394b02bd4b81c391ec5c8898389b2b6 100644 (file)
@@ -1131,14 +1131,14 @@ gtk_plug_map (GtkWidget *widget)
       GtkBin *bin = GTK_BIN (widget);
       GtkPlug *plug = GTK_PLUG (widget);
       GtkWidget *child;
-      
+
       gtk_widget_set_mapped (widget, TRUE);
 
       child = gtk_bin_get_child (bin);
       if (child != NULL &&
           gtk_widget_get_visible (child) &&
-         !gtk_widget_get_mapped (child))
-       gtk_widget_map (child);
+          !gtk_widget_get_mapped (child))
+        gtk_widget_map (child);
 
       xembed_set_info (gtk_widget_get_window (GTK_WIDGET (plug)), XEMBED_MAPPED);
 
@@ -1157,6 +1157,7 @@ gtk_plug_unmap (GtkWidget *widget)
     {
       GtkPlug *plug = GTK_PLUG (widget);
       GdkWindow *window;
+      GtkWidget *child;
 
       window = gtk_widget_get_window (widget);
 
@@ -1164,6 +1165,10 @@ gtk_plug_unmap (GtkWidget *widget)
 
       gdk_window_hide (window);
 
+      child = gtk_bin_get_child (GTK_BIN (widget));
+      if (child != NULL)
+        gtk_widget_unmap (child);
+
       xembed_set_info (gtk_widget_get_window (GTK_WIDGET (plug)), 0);
 
       gdk_synthesize_window_state (window,