X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5e31cc8e2c4e5399548a637e3b9705d37a19335..994453b843b007de6367fedbf4a49ac9d920c63c:/src/gtk/toplevel.cpp?ds=sidebyside diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 278629e5fa..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 ) @@ -1021,7 +1029,12 @@ void wxTopLevelWindowGTK::GtkOnSize() int client_y = m_miniEdge + m_miniTitle; int client_w = m_width - 2*m_miniEdge; int client_h = m_height - 2*m_miniEdge - m_miniTitle; + if (client_w < 0) + client_w = 0; + 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 );