comparison gtk3/dw.c @ 1185:415c25f87d57

Fix for MDI support for GTK3. Haven't tested completely... but this seems to work now. Will revisit the Mac MDI if this is stable to see if we can remove MDI from deprecated.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 27 Sep 2011 19:21:29 +0000
parents c38ec904b6d3
children 76262040ed5f
comparison
equal deleted inserted replaced
1184:31a78c16c306 1185:415c25f87d57
371 (GInstanceInitFunc) gtk_mdi_init, 371 (GInstanceInitFunc) gtk_mdi_init,
372 }; 372 };
373 373
374 mdi_type = g_type_register_static (GTK_TYPE_CONTAINER, "GtkMdi", &mdi_info, 0); 374 mdi_type = g_type_register_static (GTK_TYPE_CONTAINER, "GtkMdi", &mdi_info, 0);
375 } 375 }
376
377 return mdi_type; 376 return mdi_type;
378 } 377 }
379 378
380 /* Local data */ 379 /* Local data */
381 static GtkWidgetClass *parent_class = NULL; 380 static GtkWidgetClass *parent_class = NULL;
622 static void gtk_mdi_realize(GtkWidget *widget) 621 static void gtk_mdi_realize(GtkWidget *widget)
623 { 622 {
624 GtkMdi *mdi; 623 GtkMdi *mdi;
625 GdkWindowAttr attributes; 624 GdkWindowAttr attributes;
626 gint attributes_mask; 625 gint attributes_mask;
626 GdkWindow *thiswindow;
627 627
628 mdi = GTK_MDI (widget); 628 mdi = GTK_MDI (widget);
629 629
630 g_return_if_fail (widget != NULL); 630 g_return_if_fail (widget != NULL);
631 g_return_if_fail (GTK_IS_MDI (mdi)); 631 g_return_if_fail (GTK_IS_MDI (mdi));
645 GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | 645 GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK |
646 GDK_POINTER_MOTION_HINT_MASK; 646 GDK_POINTER_MOTION_HINT_MASK;
647 attributes.visual = gtk_widget_get_visual (widget); 647 attributes.visual = gtk_widget_get_visual (widget);
648 648
649 attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; 649 attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
650 gtk_widget_set_parent_window(widget, gdk_window_new (gtk_widget_get_parent_window(widget), &attributes, attributes_mask)); 650 thiswindow = gdk_window_new (gtk_widget_get_parent_window(widget), &attributes, attributes_mask);
651 651 gtk_widget_set_window(widget, thiswindow);
652 gtk_widget_set_style(widget, gtk_style_attach (gtk_widget_get_style(widget), gtk_widget_get_window(widget))); 652
653 gtk_widget_set_style(widget, gtk_style_attach (gtk_widget_get_style(widget), thiswindow));
653 654
654 gdk_window_set_user_data (gtk_widget_get_window(widget), widget); 655 gdk_window_set_user_data (gtk_widget_get_window(widget), widget);
655 656
656 gtk_style_set_background (gtk_widget_get_style(widget), gtk_widget_get_window(widget), GTK_STATE_NORMAL); 657 gtk_style_set_background (gtk_widget_get_style(widget), gtk_widget_get_window(widget), GTK_STATE_NORMAL);
657 } 658 }