From 32f2ebbf2f3a81ae2cc82595789fdc1e245c0efb Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 20 Nov 2004 00:00:49 +0000 Subject: [PATCH] Use GTK+ calls for fullscreen mode. Fix bug with wrong tlw position after a sequence of hide/show. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/toplevel.cpp | 17 +++++++++++++++-- src/gtk1/toplevel.cpp | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index be1cfa845b..29eed82776 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -224,6 +224,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX if (!win->m_hasVMT || !win->IsShown()) return FALSE; + int x = 0; int y = 0; gdk_window_get_root_origin( win->m_widget->window, &x, &y ); @@ -625,6 +626,15 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) m_fsIsShowing = show; +#ifdef __WXGTK20__ + + if (show) + gtk_window_fullscreen( GTK_WINDOW( m_widget ) ); + else + gtk_window_unfullscreen( GTK_WINDOW( m_widget ) ); + +#else + GdkWindow *window = m_widget->window; wxX11FullScreenMethod method = wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(), @@ -683,7 +693,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) SetSize(m_fsSaveFrame.x, m_fsSaveFrame.y, m_fsSaveFrame.width, m_fsSaveFrame.height); } - +#endif return TRUE; } @@ -705,7 +715,10 @@ bool wxTopLevelWindowGTK::Show( bool show ) GtkOnSize( m_x, m_y, m_width, m_height ); } - + + if (show) + gtk_widget_set_uposition( m_widget, m_x, m_y ); + return wxWindow::Show( show ); } diff --git a/src/gtk1/toplevel.cpp b/src/gtk1/toplevel.cpp index be1cfa845b..29eed82776 100644 --- a/src/gtk1/toplevel.cpp +++ b/src/gtk1/toplevel.cpp @@ -224,6 +224,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX if (!win->m_hasVMT || !win->IsShown()) return FALSE; + int x = 0; int y = 0; gdk_window_get_root_origin( win->m_widget->window, &x, &y ); @@ -625,6 +626,15 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) m_fsIsShowing = show; +#ifdef __WXGTK20__ + + if (show) + gtk_window_fullscreen( GTK_WINDOW( m_widget ) ); + else + gtk_window_unfullscreen( GTK_WINDOW( m_widget ) ); + +#else + GdkWindow *window = m_widget->window; wxX11FullScreenMethod method = wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(), @@ -683,7 +693,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) SetSize(m_fsSaveFrame.x, m_fsSaveFrame.y, m_fsSaveFrame.width, m_fsSaveFrame.height); } - +#endif return TRUE; } @@ -705,7 +715,10 @@ bool wxTopLevelWindowGTK::Show( bool show ) GtkOnSize( m_x, m_y, m_width, m_height ); } - + + if (show) + gtk_widget_set_uposition( m_widget, m_x, m_y ); + return wxWindow::Show( show ); } -- 2.45.2