X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6d693bb4fc299b7375dd4da9d878768d80ceaf55..e08ee38353a26f5305148257028d8ad0f1fa75cc:/src/gtk/frame.cpp diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index 539fb6c9b7..3098d050c0 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -85,6 +85,7 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* (int)alloc->width, (int)alloc->height ); */ + win->m_width = alloc->width; win->m_height = alloc->height; win->UpdateSize(); @@ -542,6 +543,7 @@ void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags ) m_height = height; } +/* if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) { if (width == -1) m_width = 80; @@ -551,6 +553,7 @@ void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags ) { if (height == -1) m_height = 26; } +*/ if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; @@ -638,6 +641,8 @@ void wxFrame::DoSetClientSize( int width, int height ) { wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") ); + printf( "set size %d %d\n", width, height ); + /* menu bar */ if (m_frameMenuBar) { @@ -667,7 +672,7 @@ void wxFrame::DoSetClientSize( int width, int height ) } #endif - wxWindow::DoSetClientSize( width + m_miniEdge*2, height + m_miniEdge*2 + m_miniTitle ); + DoSetSize( -1, -1, width + m_miniEdge*2, height + m_miniEdge*2 + m_miniTitle, 0 ); } void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height ) @@ -685,7 +690,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height m_width = width; m_height = height; - + /* space occupied by m_frameToolBar and m_frameMenuBar */ int client_area_y_offset = 0; @@ -728,7 +733,8 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height } #if wxUSE_TOOLBAR - if (m_frameToolBar) + if ((m_frameToolBar) && + (m_frameToolBar->m_widget->parent == m_mainWidget)) { int xx = m_miniEdge; int yy = m_miniEdge + m_miniTitle; @@ -744,8 +750,8 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height if (m_toolBarDetached) hh = wxPLACE_HOLDER; m_frameToolBar->m_x = xx; m_frameToolBar->m_y = yy; - /* m_frameToolBar->m_height = hh; don't change the toolbar's height */ - m_frameToolBar->m_width = ww; + /* m_frameToolBar->m_height = hh; don't change the toolbar's reported size + m_frameToolBar->m_width = ww; */ gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), m_frameToolBar->m_widget, xx, yy, ww, hh ); @@ -979,16 +985,13 @@ void wxFrame::SetToolBar(wxToolBar *toolbar) if (m_frameToolBar) { /* insert into toolbar area if not already there */ - if (m_frameToolBar->m_widget->parent != m_mainWidget) + if ((m_frameToolBar->m_widget->parent) && + (m_frameToolBar->m_widget->parent != m_mainWidget)) { - gtk_widget_ref( m_frameToolBar->m_widget ); - gtk_widget_unparent( m_frameToolBar->m_widget ); - - m_insertInClientArea = TRUE; - wxInsertChildInFrame( this, m_frameToolBar ); - m_insertInClientArea = FALSE; - - gtk_widget_unref( m_frameToolBar->m_widget ); + GetChildren().DeleteObject( m_frameToolBar ); + + gtk_widget_reparent( m_frameToolBar->m_widget, m_mainWidget ); + UpdateSize(); } } }