]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/toplevel.cpp
avoid setting initial position if it was not specified, broken in r70734
[wxWidgets.git] / src / x11 / toplevel.cpp
index 58248bf16fd686b373b5423ec6f571cea0e18eba..15d2772ce7df0ef32a22518a933e3fa5add590b0 100644 (file)
@@ -4,9 +4,8 @@
 // Author:      Julian Smart
 // Modified by:
 // Created:     24.09.01
-// RCS-ID:      $Id$
 // Copyright:   (c) 2002 Julian Smart
-// License:     wxWindows licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -198,9 +197,9 @@ bool wxTopLevelWindowX11::Create(wxWindow *parent,
     {
        if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
        {
-            if (GetParent() && GetParent()->GetMainWindow())
+            if (GetParent() && GetParent()->X11GetMainWindow())
             {
-                Window xparentwindow = (Window) GetParent()->GetMainWindow();
+                Window xparentwindow = (Window) GetParent()->X11GetMainWindow();
                 XSetTransientForHint( xdisplay, xwindow, xparentwindow );
             }
         }
@@ -220,7 +219,7 @@ bool wxTopLevelWindowX11::Create(wxWindow *parent,
     if (GetParent())
     {
         wm_hints.flags |= WindowGroupHint;
-        wm_hints.window_group = (Window) GetParent()->GetMainWindow();
+        wm_hints.window_group = (Window) GetParent()->X11GetMainWindow();
     }
     wm_hints.input = True;
     wm_hints.initial_state = NormalState;
@@ -268,7 +267,7 @@ void wxTopLevelWindowX11::OnInternalIdle()
     {
         wxSizeEvent event( GetClientSize(), GetId() );
         event.SetEventObject( this );
-        GetEventHandler()->ProcessEvent( event );
+        HandleWindowEvent( event );
 
         m_needResizeInIdle = false;
     }
@@ -285,7 +284,7 @@ bool wxTopLevelWindowX11::Show(bool show)
         wxSizeEvent event(GetSize(), GetId());
 
         event.SetEventObject(this);
-        GetEventHandler()->ProcessEvent(event);
+        HandleWindowEvent(event);
 
         m_needResizeInIdle = false;
     }
@@ -299,7 +298,7 @@ bool wxTopLevelWindowX11::Show(bool show)
 // wxTopLevelWindowX11 maximize/minimize
 // ----------------------------------------------------------------------------
 
-void wxTopLevelWindowX11::Maximize(bool maximize)
+void wxTopLevelWindowX11::Maximize(bool WXUNUSED(maximize))
 {
     // TODO
 }
@@ -312,10 +311,16 @@ bool wxTopLevelWindowX11::IsMaximized() const
 
 void wxTopLevelWindowX11::Iconize(bool iconize)
 {
-    if (!m_iconized && GetMainWindow())
+    if ( !iconize )
+    {
+        Restore();
+        return;
+    }
+
+    if (!m_iconized && X11GetMainWindow())
     {
         if (XIconifyWindow(wxGlobalDisplay(),
-            (Window) GetMainWindow(), DefaultScreen(wxGlobalDisplay())) != 0)
+            (Window) X11GetMainWindow(), DefaultScreen(wxGlobalDisplay())) != 0)
             m_iconized = true;
     }
 }
@@ -328,9 +333,9 @@ bool wxTopLevelWindowX11::IsIconized() const
 void wxTopLevelWindowX11::Restore()
 {
     // This is the way to deiconify the window, according to the X FAQ
-    if (m_iconized && GetMainWindow())
+    if (m_iconized && X11GetMainWindow())
     {
-        XMapWindow(wxGlobalDisplay(), (Window) GetMainWindow());
+        XMapWindow(wxGlobalDisplay(), (Window) X11GetMainWindow());
         m_iconized = false;
     }
 }
@@ -371,10 +376,9 @@ bool wxTopLevelWindowX11::ShowFullScreen(bool show, long style)
 
 void wxTopLevelWindowX11::DoSetIcon(const wxIcon& icon)
 {
-    if (icon.Ok() && GetMainWindow())
+    if (icon.IsOk() && X11GetMainWindow())
     {
-#if wxUSE_NANOX
-#else
+#if !wxUSE_NANOX
         XWMHints *wmHints = XAllocWMHints();
         wmHints->icon_pixmap = (Pixmap) icon.GetPixmap();
 
@@ -386,7 +390,7 @@ void wxTopLevelWindowX11::DoSetIcon(const wxIcon& icon)
             wmHints->icon_mask = (Pixmap) icon.GetMask()->GetBitmap();
         }
 
-        XSetWMHints(wxGlobalDisplay(), (Window) GetMainWindow(), wmHints);
+        XSetWMHints(wxGlobalDisplay(), (Window) X11GetMainWindow(), wmHints);
         XFree(wmHints);
 #endif
     }
@@ -398,13 +402,13 @@ void wxTopLevelWindowX11::SetIcons(const wxIconBundle& icons )
     wxTopLevelWindowBase::SetIcons( icons );
 
     DoSetIcon( icons.GetIcon( -1 ) );
-    wxSetIconsX11( wxGlobalDisplay(), GetMainWindow(), icons );
+    wxSetIconsX11( wxGlobalDisplay(), X11GetMainWindow(), icons );
 }
 
 bool wxTopLevelWindowX11::SetShape(const wxRegion& region)
 {
     return wxDoSetShape( wxGlobalDisplay(),
-                         (Window)GetMainWindow(),
+                         (Window)X11GetMainWindow(),
                          region );
 }
 
@@ -412,18 +416,18 @@ void wxTopLevelWindowX11::SetTitle(const wxString& title)
 {
     m_title = title;
 
-    if (GetMainWindow())
+    if (X11GetMainWindow())
     {
 #if wxUSE_UNICODE
         //  I wonder of e.g. Metacity takes UTF-8 here
-        XStoreName(wxGlobalDisplay(), (Window) GetMainWindow(),
+        XStoreName(wxGlobalDisplay(), (Window) X11GetMainWindow(),
             (const char*) title.ToAscii() );
-        XSetIconName(wxGlobalDisplay(), (Window) GetMainWindow(),
+        XSetIconName(wxGlobalDisplay(), (Window) X11GetMainWindow(),
             (const char*) title.ToAscii() );
 #else
-        XStoreName(wxGlobalDisplay(), (Window) GetMainWindow(),
+        XStoreName(wxGlobalDisplay(), (Window) X11GetMainWindow(),
             (const char*) title);
-        XSetIconName(wxGlobalDisplay(), (Window) GetMainWindow(),
+        XSetIconName(wxGlobalDisplay(), (Window) X11GetMainWindow(),
             (const char*) title);
 #endif
     }
@@ -479,7 +483,7 @@ void wxTopLevelWindowX11::DoSetClientSize(int width, int height)
     size_hints.flags = PSize;
     size_hints.width = width;
     size_hints.height = height;
-    XSetWMNormalHints( wxGlobalDisplay(), (Window) GetMainWindow(), &size_hints );
+    XSetWMNormalHints( wxGlobalDisplay(), (Window) X11GetMainWindow(), &size_hints );
 #endif
 
     wxWindowX11::DoSetClientSize(width, height);
@@ -518,7 +522,7 @@ void wxTopLevelWindowX11::DoSetSize(int x, int y, int width, int height, int siz
     size_hints.y = m_y;
     size_hints.width = m_width;
     size_hints.height = m_height;
-    XSetWMNormalHints( wxGlobalDisplay(), (Window) GetMainWindow(), &size_hints);
+    XSetWMNormalHints( wxGlobalDisplay(), (Window) X11GetMainWindow(), &size_hints);
 #endif
 
     wxWindowX11::DoSetSize(x, y, width, height, sizeFlags);
@@ -688,8 +692,7 @@ bool wxSetWMDecorations(Window w, long style)
     }
 
     if ((style & wxCAPTION) ||
-        (style & wxTINY_CAPTION_HORIZ) ||
-        (style & wxTINY_CAPTION_VERT))
+        (style & wxTINY_CAPTION))
     {
         wmProp.props |= GR_WM_PROPS_CAPTION ;
         wmProp.flags |= GR_WM_FLAGS_PROPS ;
@@ -722,8 +725,7 @@ bool wxSetWMDecorations(Window w, long style)
         wmProp.flags |= GR_WM_FLAGS_PROPS ;
     }
 
-    if (((style & wxBORDER) != wxBORDER) && ((style & wxRESIZE_BORDER) != wxRESIZE_BORDER)
-        && ((style & wxRESIZE_BORDER) != wxRESIZE_BORDER))
+    if ( !(style & wxBORDER) && !(style & wxRESIZE_BORDER) )
     {
         wmProp.props |= GR_WM_PROPS_NODECORATE ;
         wmProp.flags |= GR_WM_FLAGS_PROPS ;