X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1832043f93af07af3f4891d9a95c4d4e1f70eec5..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/x11/toplevel.cpp diff --git a/src/x11/toplevel.cpp b/src/x11/toplevel.cpp index 58248bf16f..36804b3ae6 100644 --- a/src/x11/toplevel.cpp +++ b/src/x11/toplevel.cpp @@ -6,7 +6,7 @@ // Created: 24.09.01 // RCS-ID: $Id$ // Copyright: (c) 2002 Julian Smart -// License: wxWindows licence +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -198,9 +198,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 +220,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 +268,7 @@ void wxTopLevelWindowX11::OnInternalIdle() { wxSizeEvent event( GetClientSize(), GetId() ); event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); + HandleWindowEvent( event ); m_needResizeInIdle = false; } @@ -285,7 +285,7 @@ bool wxTopLevelWindowX11::Show(bool show) wxSizeEvent event(GetSize(), GetId()); event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); + HandleWindowEvent(event); m_needResizeInIdle = false; } @@ -299,7 +299,7 @@ bool wxTopLevelWindowX11::Show(bool show) // wxTopLevelWindowX11 maximize/minimize // ---------------------------------------------------------------------------- -void wxTopLevelWindowX11::Maximize(bool maximize) +void wxTopLevelWindowX11::Maximize(bool WXUNUSED(maximize)) { // TODO } @@ -312,10 +312,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 +334,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 +377,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 +391,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 +403,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 +417,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 +484,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 +523,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 +693,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 +726,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 ;