X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/db71eb0640221199170ac9ea83371c2d467fa456..5c4035d6868c3bed72779e7abb66469a3b51d760:/src/gtk/toplevel.cpp diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 8a294525a4..d243ce4b58 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -443,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; @@ -693,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 ) { @@ -714,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 @@ -759,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 @@ -919,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; }