X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cc0c05cd9ffc1956300bf0f13098b13e16ffd751..a83ea9c15a7ac7bbdc6686164cfcbbc21ae5031a:/src/gtk1/toplevel.cpp diff --git a/src/gtk1/toplevel.cpp b/src/gtk1/toplevel.cpp index f0258fbd24..eff0e4f34e 100644 --- a/src/gtk1/toplevel.cpp +++ b/src/gtk1/toplevel.cpp @@ -28,6 +28,7 @@ #include "wx/defs.h" +#include "wx/toplevel.h" #include "wx/log.h" #include "wx/dialog.h" #include "wx/control.h" @@ -223,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 ); @@ -430,10 +432,6 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, // e.g. in wxTaskBarIconAreaGTK if (m_widget == NULL) { - GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - if (style & wxFRAME_TOOL_WINDOW) - win_type = GTK_WINDOW_POPUP; - if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) { #ifdef __WXGTK20__ @@ -450,7 +448,13 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, } else { - m_widget = gtk_window_new(win_type); + m_widget = gtk_window_new(GTK_WINDOW_TOPLEVEL); +#if GTK_CHECK_VERSION(2,1,0) + if (style & wxFRAME_TOOL_WINDOW) + gtk_window_set_type_hint(GTK_WINDOW(m_widget), + GDK_WINDOW_TYPE_HINT_UTILITY); +#endif + } } @@ -622,6 +626,15 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style ) m_fsIsShowing = show; +#if GTK_CHECK_VERSION(2,2,0) + + 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(), @@ -680,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; } @@ -702,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 ); }