X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4eb8ef2d4369675899401ce144cf8261d5c06ad5..5c4035d6868c3bed72779e7abb66469a3b51d760:/src/gtk/toplevel.cpp diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 7b883348dc..d243ce4b58 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -243,9 +243,6 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* 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(); } } @@ -446,6 +443,7 @@ void wxTopLevelWindowGTK::Init() m_insertInClientArea = true; m_isIconized = false; m_fsIsShowing = false; + m_fsSaveFlag = 0; m_themeEnabled = true; m_gdkDecor = m_gdkFunc = 0; m_grabbed = false; @@ -566,8 +564,6 @@ 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 @@ -698,7 +694,18 @@ wxTopLevelWindowGTK::~wxTopLevelWindowGTK() g_lastActiveFrame = NULL; } - +bool wxTopLevelWindowGTK::EnableCloseButton( bool enable ) +{ + if (enable) + m_gdkFunc |= GDK_FUNC_CLOSE; + else + m_gdkFunc &= ~GDK_FUNC_CLOSE; + + if (GTK_WIDGET_REALIZED(m_widget) && (m_widget->window)) + gdk_window_set_functions( m_widget->window, (GdkWMFunction)m_gdkFunc ); + + return true; +} bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) { @@ -719,9 +726,15 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) if ( (method == wxX11_FS_WMSPEC) && !gtk_check_version(2,2,0) ) { if (show) + { + m_fsSaveFlag = style; gtk_window_fullscreen( GTK_WINDOW( m_widget ) ); + } else + { + m_fsSaveFlag = 0; gtk_window_unfullscreen( GTK_WINDOW( m_widget ) ); + } } else #endif // GTK+ >= 2.2.0 @@ -764,6 +777,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) } else // hide { + m_fsSaveFlag = 0; if (method != wxX11_FS_WMSPEC) { // don't do it always, Metacity hates it @@ -862,9 +876,6 @@ 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) { @@ -927,7 +938,7 @@ void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const if (height) { - *height = m_height - 2 * m_miniEdge + m_miniTitle; + *height = m_height - 2 * m_miniEdge - m_miniTitle; if (*height < 0) *height = 0; }