]> git.saurik.com Git - wxWidgets.git/commitdiff
Store pointer to owning wxWindow in wxPizza widget
authorRobert Roebling <robert@roebling.de>
Thu, 29 Jan 2009 22:32:25 +0000 (22:32 +0000)
committerRobert Roebling <robert@roebling.de>
Thu, 29 Jan 2009 22:32:25 +0000 (22:32 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/private/win_gtk.h
src/gtk/popupwin.cpp
src/gtk/toplevel.cpp
src/gtk/win_gtk.cpp
src/gtk/window.cpp

index f98a775a3df2786371c097da7d201b15e924d0ac..c1f55a85becfbedc72565a80da7b40745f0576ba 100644 (file)
@@ -21,7 +21,7 @@ struct WXDLLIMPEXP_CORE wxPizza
     enum { BORDER_STYLES =
         wxBORDER_SIMPLE | wxBORDER_RAISED | wxBORDER_SUNKEN | wxBORDER_THEME };
 
-    static GtkWidget* New(long windowStyle = 0);
+    static GtkWidget* New(long windowStyle, void *owner);
     static GType type();
     void move(GtkWidget* widget, int x, int y);
     void scroll(int dx, int dy);
@@ -33,6 +33,7 @@ struct WXDLLIMPEXP_CORE wxPizza
     int m_scroll_y;
     int m_border_style;
     bool m_is_scrollable;
+    void *m_owner;
 };
 
 #endif // _WX_GTK_PIZZA_H_
index 641a9248eaf34e85fad15ca0ca89f552b4037b4b..dd0fd634e51ff6eb357bc705edcbe45b5b9b22eb 100644 (file)
@@ -133,7 +133,7 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
     g_signal_connect (m_widget, "delete_event",
                       G_CALLBACK (gtk_dialog_delete_callback), this);
 
-    m_wxwindow = wxPizza::New(m_windowStyle);
+    m_wxwindow = wxPizza::New(m_windowStyle, this);
     gtk_widget_show( m_wxwindow );
 
     gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
index 8990d423040e489ee8d8e37457b7e96fab72f6f3..b83113197f7eac813086f6730e6e8c2e7d657c4b 100644 (file)
@@ -552,7 +552,7 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent,
     gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget );
 
     // m_wxwindow is the client area
-    m_wxwindow = wxPizza::New();
+    m_wxwindow = wxPizza::New(0,this);
     gtk_widget_show( m_wxwindow );
     gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow );
 
index 8fb91683eb15931d46ccd08637be0f019e21bfde..13f596d26cfa85d4907f53430394c4f59df6601c 100644 (file)
@@ -282,10 +282,11 @@ GType wxPizza::type()
     return type;
 }
 
-GtkWidget* wxPizza::New(long windowStyle)
+GtkWidget* wxPizza::New(long windowStyle,void* owner)
 {
     GtkWidget* widget = GTK_WIDGET(g_object_new(type(), NULL));
     wxPizza* pizza = WX_PIZZA(widget);
+    pizza->m_owner = owner;
     pizza->m_backing_window = NULL;
     pizza->m_scroll_x = 0;
     pizza->m_scroll_y = 0;
index d6cbbfdc196dccd30111b7f71ccef7d732c397eb..7fc84be9129a2b9e789681eb16bf3efd7536a2d6 100644 (file)
@@ -2113,7 +2113,7 @@ bool wxWindowGTK::Create( wxWindow *parent,
 #endif
 
 
-    m_wxwindow = wxPizza::New(m_windowStyle);
+    m_wxwindow = wxPizza::New(m_windowStyle,this);
 #ifndef __WXUNIVERSAL__
     if (HasFlag(wxPizza::BORDER_STYLES))
     {