X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ca06ee0df7598b07b9150a8d478a235b6fff4755..7a5e53abb3f9ea13eba2880972306446e4e21e83:/src/gtk/toplevel.cpp?ds=inline diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index f5f5b12e73..b91b944750 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -265,7 +265,7 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW /* Callback for wxTopLevelWindowGTK. This very strange beast has to be used because * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxWindows requires different ways to insert + * virtual function here as wxWidgets requires different ways to insert * a child in container classes. */ static void wxInsertChildInTopLevelWindow( wxTopLevelWindowGTK* parent, wxWindow* child ) @@ -327,14 +327,8 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, // always create a frame of some reasonable, even if arbitrary, size (at // least for MSW compatibility) wxSize size = sizeOrig; - if ( size.x == -1 || size.y == -1 ) - { - wxSize sizeDpy = wxGetDisplaySize(); - if ( size.x == -1 ) - size.x = sizeDpy.x / 3; - if ( size.y == -1 ) - size.y = sizeDpy.y / 5; - } + size.x = WidthDefault(size.x); + size.y = HeightDefault(size.y); wxTopLevelWindows.Append( this ); @@ -351,22 +345,27 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, m_insertCallback = (wxInsertChildFunction) wxInsertChildInTopLevelWindow; - GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; + // NB: m_widget may be !=NULL if it was created by derived class' Create, + // 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 (style & wxFRAME_TOOL_WINDOW) + win_type = GTK_WINDOW_POPUP; - if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) - { - // there is no more GTK_WINDOW_DIALOG in 2.0 + if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) + { + // there is no more GTK_WINDOW_DIALOG in 2.0 #ifdef __WXGTK20__ - win_type = GTK_WINDOW_TOPLEVEL; + win_type = GTK_WINDOW_TOPLEVEL; #else - win_type = GTK_WINDOW_DIALOG; + win_type = GTK_WINDOW_DIALOG; #endif - } + } - m_widget = gtk_window_new( win_type ); + m_widget = gtk_window_new( win_type ); + } if (m_parent && (((GTK_IS_WINDOW(m_parent->m_widget)) && (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) || @@ -653,16 +652,15 @@ void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int si maxWidth = GetMaxWidth(), maxHeight = GetMaxHeight(); - if (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA) - { - // GPE's window manager doesn't like size hints - // at all, esp. when the user has to use the - // virtual keyboard. - minWidth = -1; - minHeight = -1; - maxWidth = -1; - maxHeight = -1; - } +#ifdef __WXGPE__ + // GPE's window manager doesn't like size hints + // at all, esp. when the user has to use the + // virtual keyboard. + minWidth = -1; + minHeight = -1; + maxWidth = -1; + maxHeight = -1; +#endif if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth; if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight; @@ -745,16 +743,15 @@ void wxTopLevelWindowGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), maxWidth = GetMaxWidth(), maxHeight = GetMaxHeight(); - if (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA) - { - // GPE's window manager doesn't like size hints - // at all, esp. when the user has to use the - // virtual keyboard. - minWidth = -1; - minHeight = -1; - maxWidth = -1; - maxHeight = -1; - } +#ifdef __WXGPE__ + // GPE's window manager doesn't like size hints + // at all, esp. when the user has to use the + // virtual keyboard. + minWidth = -1; + minHeight = -1; + maxWidth = -1; + maxHeight = -1; +#endif if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth; if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;