X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/545176521071a4edd242a2cd4163b363e818ec56..77902671753529da1345efb71ff6017cb882bedc:/utils/glcanvas/gtk/glcanvas.cpp diff --git a/utils/glcanvas/gtk/glcanvas.cpp b/utils/glcanvas/gtk/glcanvas.cpp index a59ceaed95..735da31179 100644 --- a/utils/glcanvas/gtk/glcanvas.cpp +++ b/utils/glcanvas/gtk/glcanvas.cpp @@ -95,7 +95,7 @@ void wxGLContext::SwapBuffers() { if (m_glContext) { - GdkWindow *window = GTK_MYFIXED(m_widget)->bin_window; + GdkWindow *window = GTK_PIZZA(m_widget)->bin_window; glXSwapBuffers( GDK_DISPLAY(), GDK_WINDOW_XWINDOW( window ) ); } } @@ -104,7 +104,7 @@ void wxGLContext::SetCurrent() { if (m_glContext) { - GdkWindow *window = GTK_MYFIXED(m_widget)->bin_window; + GdkWindow *window = GTK_PIZZA(m_widget)->bin_window; glXMakeCurrent( GDK_DISPLAY(), GDK_WINDOW_XWINDOW(window), m_glContext ); } } @@ -186,6 +186,24 @@ gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxG rect->width, rect->height ); } +//----------------------------------------------------------------------------- +// "size_allocate" of m_wxwindow +//----------------------------------------------------------------------------- + +static void +gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + if (!win->m_hasVMT) + return; + + wxSizeEvent event( wxSize(win->m_width,win->m_height), win->GetId() ); + event.SetEventObject( win ); + win->GetEventHandler()->ProcessEvent( event ); +} + //--------------------------------------------------------------------------- // wxGlCanvas //--------------------------------------------------------------------------- @@ -228,6 +246,7 @@ bool wxGLCanvas::Create( wxWindow *parent, m_exposed = FALSE; m_noExpose = TRUE; + m_nativeSizeEvent = TRUE; if (!attribList) { @@ -285,7 +304,7 @@ bool wxGLCanvas::Create( wxWindow *parent, m_glWidget = m_wxwindow; - gtk_my_fixed_set_clear( GTK_MYFIXED(m_wxwindow), FALSE ); + gtk_pizza_set_clear( GTK_PIZZA(m_wxwindow), FALSE ); gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize", GTK_SIGNAL_FUNC(gtk_glwindow_realized_callback), (gpointer) this ); @@ -296,6 +315,9 @@ bool wxGLCanvas::Create( wxWindow *parent, gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw", GTK_SIGNAL_FUNC(gtk_glwindow_draw_callback), (gpointer)this ); + gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", + GTK_SIGNAL_FUNC(gtk_glcanvas_size_callback), (gpointer)this ); + gtk_widget_pop_visual(); gtk_widget_pop_colormap();