Mercurial > dwindows
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 } |