X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9cf7a6c06b7c8a22084e911cfca78f8ade5b9f89..994453b843b007de6367fedbf4a49ac9d920c63c:/src/gtk/toplevel.cpp diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index a43befb6c5..33ef92100e 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -237,8 +237,13 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* (int)alloc->height ); */ + // Tell the wxWindow class about the new size win->m_width = alloc->width; win->m_height = alloc->height; + + if (win->m_mainWidget) + GTK_PIZZA(win->m_mainWidget)->m_width = win->m_width; + win->GtkUpdateSize(); } } @@ -559,6 +564,8 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, GTK_WIDGET_UNSET_FLAGS( m_mainWidget, GTK_CAN_FOCUS ); gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget ); + GTK_PIZZA(m_mainWidget)->m_width = m_width; + if (m_miniEdge == 0) // wxMiniFrame has its own version. { // For m_mainWidget themes @@ -852,6 +859,9 @@ void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int si } if (width != -1) m_width = width; if (height != -1) m_height = height; + + if (m_mainWidget) + GTK_PIZZA(m_mainWidget)->m_width = m_width; /* if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) @@ -915,18 +925,16 @@ void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const if (height) { - *height = m_height; - - // mini edge - *height -= m_miniEdge*2 + m_miniTitle; + *height = m_height - 2 * m_miniEdge + m_miniTitle; + if (*height < 0) + *height = 0; } if (width) { - *width = m_width; - - *width -= m_miniEdge*2; + *width = m_width - 2 * m_miniEdge; + if (*width < 0) + *width = 0; } - } void wxTopLevelWindowGTK::DoSetClientSize( int width, int height ) @@ -1026,6 +1034,7 @@ void wxTopLevelWindowGTK::GtkOnSize() if (client_h < 0) client_h = 0; + // Let the parent perform the resize gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), m_wxwindow, client_x, client_y, client_w, client_h );