GtkPlug: preserve map/unmap invariants
This commit is contained in:
		@ -1137,8 +1137,8 @@ gtk_plug_map (GtkWidget *widget)
 | 
			
		||||
      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,
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user