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
This commit is contained in:
Robert Roebling
2004-11-20 00:00:49 +00:00
parent 1d65e535d5
commit 32f2ebbf2f
2 changed files with 30 additions and 4 deletions

View File

@@ -224,6 +224,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX
if (!win->m_hasVMT || !win->IsShown()) if (!win->m_hasVMT || !win->IsShown())
return FALSE; return FALSE;
int x = 0; int x = 0;
int y = 0; int y = 0;
gdk_window_get_root_origin( win->m_widget->window, &x, &y ); 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; 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; GdkWindow *window = m_widget->window;
wxX11FullScreenMethod method = wxX11FullScreenMethod method =
wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(), wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
@@ -683,7 +693,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style )
SetSize(m_fsSaveFrame.x, m_fsSaveFrame.y, SetSize(m_fsSaveFrame.x, m_fsSaveFrame.y,
m_fsSaveFrame.width, m_fsSaveFrame.height); m_fsSaveFrame.width, m_fsSaveFrame.height);
} }
#endif
return TRUE; return TRUE;
} }
@@ -706,6 +716,9 @@ bool wxTopLevelWindowGTK::Show( bool show )
GtkOnSize( m_x, m_y, m_width, m_height ); 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 ); return wxWindow::Show( show );
} }

View File

@@ -224,6 +224,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX
if (!win->m_hasVMT || !win->IsShown()) if (!win->m_hasVMT || !win->IsShown())
return FALSE; return FALSE;
int x = 0; int x = 0;
int y = 0; int y = 0;
gdk_window_get_root_origin( win->m_widget->window, &x, &y ); 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; 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; GdkWindow *window = m_widget->window;
wxX11FullScreenMethod method = wxX11FullScreenMethod method =
wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(), wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
@@ -683,7 +693,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style )
SetSize(m_fsSaveFrame.x, m_fsSaveFrame.y, SetSize(m_fsSaveFrame.x, m_fsSaveFrame.y,
m_fsSaveFrame.width, m_fsSaveFrame.height); m_fsSaveFrame.width, m_fsSaveFrame.height);
} }
#endif
return TRUE; return TRUE;
} }
@@ -706,6 +716,9 @@ bool wxTopLevelWindowGTK::Show( bool show )
GtkOnSize( m_x, m_y, m_width, m_height ); 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 ); return wxWindow::Show( show );
} }