From 193e19cfdfc0506d9ddc19b3532d340fd7421bae Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sun, 14 Apr 2002 14:42:43 +0000 Subject: [PATCH] Three more attempts to get metal look. - Added a few flags for inheriting background. - Added wxWindow param to wxR::DrawBackground() - Added wxR::DrawButtonSurface() - Removed wxR::DrawBackground() from wxR::DrawButtonBorder() - Adde DrawMetal to Metal theme Fixed minor bug in wxGTK scrollbar. Changed code in wxX11 wxTLW so that startup flicker no longer occurs in wxFrame. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/panelg.h | 4 ++ include/wx/univ/button.h | 2 + include/wx/univ/checkbox.h | 2 + include/wx/univ/renderer.h | 16 ++++++-- include/wx/univ/statbmp.h | 2 + include/wx/univ/statbox.h | 2 + include/wx/univ/stattext.h | 2 + include/wx/univ/toplevel.h | 2 + include/wx/univ/window.h | 17 ++++---- src/gtk/scrolbar.cpp | 4 +- src/gtk1/scrolbar.cpp | 4 +- src/univ/button.cpp | 25 ++++++++++++ src/univ/checkbox.cpp | 2 - src/univ/renderer.cpp | 3 +- src/univ/statbmp.cpp | 2 - src/univ/statbox.cpp | 2 - src/univ/stattext.cpp | 2 - src/univ/themes/gtk.cpp | 14 ++++--- src/univ/themes/metal.cpp | 77 ++++++++++++++++++++++--------------- src/univ/themes/win32.cpp | 14 ++++--- src/univ/winuniv.cpp | 4 +- src/x11/app.cpp | 6 +-- src/x11/toplevel.cpp | 23 +++-------- 23 files changed, 142 insertions(+), 89 deletions(-) diff --git a/include/wx/generic/panelg.h b/include/wx/generic/panelg.h index 076011ac79..cc40e39182 100644 --- a/include/wx/generic/panelg.h +++ b/include/wx/generic/panelg.h @@ -81,6 +81,10 @@ public: virtual void InitDialog(); +#ifdef __WXUNIV__ + virtual bool ProvidesBackground() { return TRUE; } +#endif + WX_DECLARE_CONTROL_CONTAINER(); protected: diff --git a/include/wx/univ/button.h b/include/wx/univ/button.h index 6d4b24ced0..524d873f09 100644 --- a/include/wx/univ/button.h +++ b/include/wx/univ/button.h @@ -109,6 +109,8 @@ protected: long numArg = -1, const wxString& strArg = wxEmptyString); virtual wxSize DoGetBestClientSize() const; + + virtual bool DoDrawBackground(wxDC& dc); virtual void DoDraw(wxControlRenderer *renderer); virtual bool CanBeHighlighted() const { return TRUE; } diff --git a/include/wx/univ/checkbox.h b/include/wx/univ/checkbox.h index 7d41902227..db3eadda07 100644 --- a/include/wx/univ/checkbox.h +++ b/include/wx/univ/checkbox.h @@ -101,6 +101,8 @@ public: // overridden base class virtuals virtual bool IsPressed() const { return m_isPressed; } + virtual bool HasTransparentBackground() { return TRUE; } + protected: virtual bool PerformAction(const wxControlAction& action, long numArg = -1, diff --git a/include/wx/univ/renderer.h b/include/wx/univ/renderer.h index f1c2f9c5b9..3aead22044 100644 --- a/include/wx/univ/renderer.h +++ b/include/wx/univ/renderer.h @@ -69,7 +69,16 @@ public: virtual void DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags) = 0; + int flags, + wxWindow *window = NULL ) = 0; + + // draw the button surface + virtual void DrawButtonSurface(wxDC& dc, + const wxColour& col, + const wxRect& rect, + int flags ) + { DrawBackground( dc, col, rect, flags ); } + // draw the label inside the given rectangle with the specified alignment // and optionally emphasize the character with the given index @@ -497,8 +506,9 @@ public: virtual void DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags) - { m_renderer->DrawBackground(dc, col, rect, flags); } + int flags, + wxWindow *window = NULL ) + { m_renderer->DrawBackground(dc, col, rect, flags, window ); } virtual void DrawLabel(wxDC& dc, const wxString& label, const wxRect& rect, diff --git a/include/wx/univ/statbmp.h b/include/wx/univ/statbmp.h index 42fbf0b0ee..fcfdf802ae 100644 --- a/include/wx/univ/statbmp.h +++ b/include/wx/univ/statbmp.h @@ -63,6 +63,8 @@ public: wxIcon GetIcon() const; + virtual bool HasTransparentBackground() { return TRUE; } + private: virtual void DoDraw(wxControlRenderer *renderer); diff --git a/include/wx/univ/statbox.h b/include/wx/univ/statbox.h index 382f2a9eb6..646bd11902 100644 --- a/include/wx/univ/statbox.h +++ b/include/wx/univ/statbox.h @@ -51,6 +51,8 @@ public: // take account of this virtual wxPoint GetBoxAreaOrigin() const; + virtual bool HasTransparentBackground() { return TRUE; } + protected: // draw the control virtual void DoDraw(wxControlRenderer *renderer); diff --git a/include/wx/univ/stattext.h b/include/wx/univ/stattext.h index 371d197b3c..810aa35869 100644 --- a/include/wx/univ/stattext.h +++ b/include/wx/univ/stattext.h @@ -55,6 +55,8 @@ public: virtual void SetLabel(const wxString& label); + virtual bool HasTransparentBackground() { return TRUE; } + protected: // calculate the optimal size for the label virtual wxSize DoGetBestClientSize() const; diff --git a/include/wx/univ/toplevel.h b/include/wx/univ/toplevel.h index 4a15051a46..9edcf899f6 100644 --- a/include/wx/univ/toplevel.h +++ b/include/wx/univ/toplevel.h @@ -143,6 +143,8 @@ public: virtual int GetMinWidth() const; virtual int GetMinHeight() const; + virtual bool ProvidesBackground() { return TRUE; } + protected: // handle titlebar button click event virtual void ClickTitleBarButton(long button); diff --git a/include/wx/univ/window.h b/include/wx/univ/window.h index d3a845d84a..673dddf1e3 100644 --- a/include/wx/univ/window.h +++ b/include/wx/univ/window.h @@ -171,6 +171,16 @@ public: // control (e.g. a button, checkbox, ...) virtual bool IsContainerWindow() const { return FALSE; } + // returns TRUE if the control has "transparent" areas such + // as a wxStaticText and wxCheckBox and the background should + // be adapted from a parent window + virtual bool HasTransparentBackground() { return FALSE; } + + // to be used with function above: transparent windows get + // their background from parents that return TRUE here, + // so this is mostly for wxPanel, wxTopLevelWindow etc. + virtual bool ProvidesBackground() { return FALSE; } + // return TRUE if this control can be highlighted when the mouse is over // it (the theme decides itself whether it is really highlighted or not) virtual bool CanBeHighlighted() const { return FALSE; } @@ -201,9 +211,6 @@ public: // erase part of the control virtual void EraseBackground(wxDC& dc, const wxRect& rect); - // see below - bool HasDialogBackground() { return m_hasDialogBackground; } - // overridden base class methods // ----------------------------- @@ -270,10 +277,6 @@ protected: // the renderer we use wxRenderer *m_renderer; - // background like a dialog (e.g. wxStaticText, - // wxRadioButton), not with a surface (wxButton) - bool m_hasDialogBackground; - // background bitmap info wxBitmap m_bitmapBg; int m_alignBgBitmap; diff --git a/src/gtk/scrolbar.cpp b/src/gtk/scrolbar.cpp index b8fc5dbf97..0f65b4b34e 100644 --- a/src/gtk/scrolbar.cpp +++ b/src/gtk/scrolbar.cpp @@ -114,9 +114,9 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget), { wxEventType command = wxEVT_SCROLL_THUMBRELEASE; int value = (int)ceil(win->m_adjust->value); - int dir = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL; + int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL; - wxScrollEvent event( command, value, dir ); + wxScrollEvent event( command, win->GetId(), value, orient ); event.SetEventObject( win ); win->GetEventHandler()->ProcessEvent( event ); } diff --git a/src/gtk1/scrolbar.cpp b/src/gtk1/scrolbar.cpp index b8fc5dbf97..0f65b4b34e 100644 --- a/src/gtk1/scrolbar.cpp +++ b/src/gtk1/scrolbar.cpp @@ -114,9 +114,9 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget), { wxEventType command = wxEVT_SCROLL_THUMBRELEASE; int value = (int)ceil(win->m_adjust->value); - int dir = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL; + int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL; - wxScrollEvent event( command, value, dir ); + wxScrollEvent event( command, win->GetId(), value, orient ); event.SetEventObject( win ); win->GetEventHandler()->ProcessEvent( event ); } diff --git a/src/univ/button.cpp b/src/univ/button.cpp index 23a4d96eea..b06789a25d 100644 --- a/src/univ/button.cpp +++ b/src/univ/button.cpp @@ -39,6 +39,7 @@ #include "wx/univ/renderer.h" #include "wx/univ/inphand.h" #include "wx/univ/theme.h" +#include "wx/univ/colschem.h" // ---------------------------------------------------------------------------- // constants @@ -162,6 +163,30 @@ void wxButton::DoDraw(wxControlRenderer *renderer) renderer->DrawLabel(m_bitmap, m_marginBmpX, m_marginBmpY); } +bool wxButton::DoDrawBackground(wxDC& dc) +{ + wxRect rect; + wxSize size = GetSize(); + rect.width = size.x; + rect.height = size.y; + + if ( GetBackgroundBitmap().Ok() ) + { + // get the bitmap and the flags + int alignment; + wxStretch stretch; + wxBitmap bmp = GetBackgroundBitmap(&alignment, &stretch); + wxControlRenderer::DrawBitmap(dc, bmp, rect, alignment, stretch); + } + else + { + m_renderer->DrawButtonSurface(dc, wxTHEME_BG_COLOUR(this), + rect, GetStateFlags()); + } + + return TRUE; +} + // ---------------------------------------------------------------------------- // input processing // ---------------------------------------------------------------------------- diff --git a/src/univ/checkbox.cpp b/src/univ/checkbox.cpp index c15ebca4ba..c9a95a6318 100644 --- a/src/univ/checkbox.cpp +++ b/src/univ/checkbox.cpp @@ -70,8 +70,6 @@ bool wxCheckBox::Create(wxWindow *parent, if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) ) return FALSE; - m_hasDialogBackground = TRUE; - SetLabel(label); SetBestSize(size); diff --git a/src/univ/renderer.cpp b/src/univ/renderer.cpp index 3d55a23cfb..75539ac04c 100644 --- a/src/univ/renderer.cpp +++ b/src/univ/renderer.cpp @@ -468,7 +468,8 @@ void wxControlRenderer::DrawButtonBorder() m_renderer->DrawButtonBorder(m_dc, m_rect, flags, &m_rect); - m_renderer->DrawBackground(m_dc, wxTHEME_BG_COLOUR(m_window), m_rect, flags); + // Why do this here? + // m_renderer->DrawButtonSurface(m_dc, wxTHEME_BG_COLOUR(m_window), m_rect, flags ); } void wxControlRenderer::DrawBitmap(const wxBitmap& bitmap) diff --git a/src/univ/statbmp.cpp b/src/univ/statbmp.cpp index ee56f372a5..39282b88d0 100644 --- a/src/univ/statbmp.cpp +++ b/src/univ/statbmp.cpp @@ -60,8 +60,6 @@ bool wxStaticBitmap::Create(wxWindow *parent, if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) ) return FALSE; - m_hasDialogBackground = TRUE; - // set bitmap first SetBitmap(label); diff --git a/src/univ/statbox.cpp b/src/univ/statbox.cpp index 0f878f5685..3c8b948466 100644 --- a/src/univ/statbox.cpp +++ b/src/univ/statbox.cpp @@ -58,8 +58,6 @@ bool wxStaticBox::Create(wxWindow *parent, if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) ) return FALSE; - m_hasDialogBackground = TRUE; - SetLabel(label); return TRUE; diff --git a/src/univ/stattext.cpp b/src/univ/stattext.cpp index e09644b5b1..5bb880a96e 100644 --- a/src/univ/stattext.cpp +++ b/src/univ/stattext.cpp @@ -59,8 +59,6 @@ bool wxStaticText::Create(wxWindow *parent, if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) ) return FALSE; - m_hasDialogBackground = TRUE; - SetLabel(label); SetBestSize(size); diff --git a/src/univ/themes/gtk.cpp b/src/univ/themes/gtk.cpp index 0fb2adda78..87973d24cb 100644 --- a/src/univ/themes/gtk.cpp +++ b/src/univ/themes/gtk.cpp @@ -77,7 +77,8 @@ public: virtual void DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags = 0); + int flags = 0, + wxWindow *window = NULL ); virtual void DrawLabel(wxDC& dc, const wxString& label, const wxRect& rect, @@ -336,7 +337,8 @@ protected: // draw the background with any colour, not only the default one(s) void DoDrawBackground(wxDC& dc, const wxColour& col, - const wxRect& rect); + const wxRect& rect, + wxWindow *window = NULL); // DrawBorder() helpers: all of them shift and clip the DC after drawing // the border @@ -2280,7 +2282,8 @@ void wxGTKRenderer::GetComboBitmaps(wxBitmap *bmpNormal, void wxGTKRenderer::DoDrawBackground(wxDC& dc, const wxColour& col, - const wxRect& rect) + const wxRect& rect, + wxWindow *window ) { wxBrush brush(col, wxSOLID); dc.SetBrush(brush); @@ -2291,10 +2294,11 @@ void wxGTKRenderer::DoDrawBackground(wxDC& dc, void wxGTKRenderer::DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags) + int flags, + wxWindow *window ) { wxColour colBg = col.Ok() ? col : GetBackgroundColour(flags); - DoDrawBackground(dc, colBg, rect); + DoDrawBackground(dc, colBg, rect, window ); } // ---------------------------------------------------------------------------- diff --git a/src/univ/themes/metal.cpp b/src/univ/themes/metal.cpp index 56f4bdd92b..78db94c56f 100644 --- a/src/univ/themes/metal.cpp +++ b/src/univ/themes/metal.cpp @@ -143,12 +143,20 @@ public: // ctor wxMetalRenderer(const wxColourScheme *scheme); + + // Metal gradient + void DrawMetal(wxDC &dc, const wxRect &rect ); // implement the base class pure virtuals virtual void DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags = 0); + int flags = 0, + wxWindow *window = NULL ); + virtual void DrawButtonSurface(wxDC& dc, + const wxColour& col, + const wxRect& rect, + int flags ); virtual void DrawLabel(wxDC& dc, const wxString& label, const wxRect& rect, @@ -404,7 +412,8 @@ protected: // DrawButtonBorder() helper void DoDrawBackground(wxDC& dc, const wxColour& col, - const wxRect& rect); + const wxRect& rect, + wxWindow *window = NULL ); // DrawBorder() helpers: all of them shift and clip the DC after drawing // the border @@ -1331,12 +1340,6 @@ wxColour wxMetalColourScheme::GetBackground(wxWindow *win) const } else { - if ( win->HasDialogBackground() ) - { - col = win->GetParent()->GetBackgroundColour(); - return col; - } - int flags = win->GetStateFlags(); // the colour set by the user should be used for the normal state @@ -3203,40 +3206,53 @@ void wxMetalRenderer::GetComboBitmaps(wxBitmap *bmpNormal, } } +// ---------------------------------------------------------------------------- +// metal gradient +// ---------------------------------------------------------------------------- + +void wxMetalRenderer::DrawMetal(wxDC &dc, const wxRect &rect ) +{ + dc.SetPen(*wxTRANSPARENT_PEN); + for (int y = rect.y; y < rect.height+rect.y; y++) + { + int intens = 230 + 80 * (rect.y-y) / rect.height; + dc.SetBrush( wxBrush( wxColour(intens,intens,intens), wxSOLID ) ); + dc.DrawRectangle( rect.x, y, rect.width, 1 ); + } +} + // ---------------------------------------------------------------------------- // background // ---------------------------------------------------------------------------- +void wxMetalRenderer::DrawButtonSurface(wxDC& dc, + const wxColour& col, + const wxRect& rect, + int flags ) +{ + DrawMetal( dc, rect ); +} + void wxMetalRenderer::DoDrawBackground(wxDC& dc, const wxColour& col, - const wxRect& rect) + const wxRect& rect, + wxWindow *window ) { dc.SetPen(*wxTRANSPARENT_PEN); - if (col == wxTheme::Get()->GetColourScheme()->Get( wxColourScheme::CONTROL )) - { - for (int y = rect.y; y < rect.height+rect.y; y++) - { - int intens = 230 + 80 * (rect.y-y) / rect.height; - dc.SetBrush( wxBrush( wxColour(intens,intens,intens), wxSOLID ) ); - dc.DrawRectangle( rect.x, y, rect.width, 1 ); - } - } - else - { - wxBrush brush(col, wxSOLID); - dc.SetBrush(brush); - dc.DrawRectangle(rect); - } + wxBrush brush(col, wxSOLID); + dc.SetBrush(brush); + dc.DrawRectangle(rect); } void wxMetalRenderer::DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags) + int flags, + wxWindow *window ) { // just fill it with the given or default bg colour wxColour colBg = col.Ok() ? col : wxSCHEME_COLOUR(m_scheme, CONTROL); - DoDrawBackground(dc, colBg, rect); + DoDrawBackground(dc, colBg, rect, window); } // ---------------------------------------------------------------------------- @@ -3302,7 +3318,7 @@ void wxMetalRenderer::DrawArrowButton(wxDC& dc, wxArrowStyle arrowStyle) { wxRect rect = rectAll; - DoDrawBackground(dc, wxSCHEME_COLOUR(m_scheme, CONTROL), rect); + DrawMetal( dc, rect ); DrawArrowBorder(dc, &rect, arrowStyle == Arrow_Pressed); DrawArrow(dc, rect, arrowDir, arrowStyle); } @@ -3315,7 +3331,7 @@ void wxMetalRenderer::DrawScrollbarThumb(wxDC& dc, // we don't use the flags, the thumb never changes appearance wxRect rectThumb = rect; DrawArrowBorder(dc, &rectThumb); - DrawBackground(dc, wxNullColour, rectThumb); + DrawMetal( dc, rectThumb ); } void wxMetalRenderer::DrawScrollbarShaft(wxDC& dc, @@ -3323,10 +3339,7 @@ void wxMetalRenderer::DrawScrollbarShaft(wxDC& dc, const wxRect& rectBar, int flags) { - wxColourScheme::StdColour col = flags & wxCONTROL_PRESSED - ? wxColourScheme::SCROLLBAR_PRESSED - : wxColourScheme::SCROLLBAR; - DoDrawBackground(dc, m_scheme->Get(col), rectBar); + DrawMetal( dc, rectBar ); } void wxMetalRenderer::DrawScrollCorner(wxDC& dc, const wxRect& rect) diff --git a/src/univ/themes/win32.cpp b/src/univ/themes/win32.cpp index ab245bd069..4f02fc9394 100644 --- a/src/univ/themes/win32.cpp +++ b/src/univ/themes/win32.cpp @@ -148,7 +148,8 @@ public: virtual void DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags = 0); + int flags = 0, + wxWindow *window = NULL); virtual void DrawLabel(wxDC& dc, const wxString& label, const wxRect& rect, @@ -404,7 +405,8 @@ protected: // DrawButtonBorder() helper void DoDrawBackground(wxDC& dc, const wxColour& col, - const wxRect& rect); + const wxRect& rect, + wxWindow *window = NULL ); // DrawBorder() helpers: all of them shift and clip the DC after drawing // the border @@ -3203,7 +3205,8 @@ void wxWin32Renderer::GetComboBitmaps(wxBitmap *bmpNormal, void wxWin32Renderer::DoDrawBackground(wxDC& dc, const wxColour& col, - const wxRect& rect) + const wxRect& rect, + wxWindow *window ) { wxBrush brush(col, wxSOLID); dc.SetBrush(brush); @@ -3214,11 +3217,12 @@ void wxWin32Renderer::DoDrawBackground(wxDC& dc, void wxWin32Renderer::DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, - int flags) + int flags, + wxWindow *window ) { // just fill it with the given or default bg colour wxColour colBg = col.Ok() ? col : wxSCHEME_COLOUR(m_scheme, CONTROL); - DoDrawBackground(dc, colBg, rect); + DoDrawBackground(dc, colBg, rect, window ); } // ---------------------------------------------------------------------------- diff --git a/src/univ/winuniv.cpp b/src/univ/winuniv.cpp index f3ab3b3f23..9662665813 100644 --- a/src/univ/winuniv.cpp +++ b/src/univ/winuniv.cpp @@ -111,8 +111,6 @@ void wxWindow::Init() m_oldSize.x = -1; m_oldSize.y = -1; - - m_hasDialogBackground = FALSE; } bool wxWindow::Create(wxWindow *parent, @@ -304,7 +302,7 @@ bool wxWindow::DoDrawBackground(wxDC& dc) void wxWindow::EraseBackground(wxDC& dc, const wxRect& rect) { // TODO: handle bg bitmaps here! - + m_renderer->DrawBackground(dc, wxTHEME_BG_COLOUR(this), rect, GetStateFlags()); } diff --git a/src/x11/app.cpp b/src/x11/app.cpp index 3408003de4..1ca16bb8e2 100644 --- a/src/x11/app.cpp +++ b/src/x11/app.cpp @@ -924,8 +924,6 @@ bool wxApp::SendIdleEvents(wxWindow* win) win->GetEventHandler()->ProcessEvent(event); - win->OnInternalIdle(); - if (event.MoreRequested()) needMore = TRUE; @@ -939,6 +937,8 @@ bool wxApp::SendIdleEvents(wxWindow* win) node = node->Next(); } + win->OnInternalIdle(); + return needMore; } @@ -1202,7 +1202,7 @@ void wxApp::OnAssert(const wxChar *file, int line, const wxChar *msg) { // While the GUI isn't working that well, just print out the // message. -#if 0 +#if 1 wxAppBase::OnAssert(file, line, msg); #else wxString msg2; diff --git a/src/x11/toplevel.cpp b/src/x11/toplevel.cpp index eb297ec92d..c9babe3825 100644 --- a/src/x11/toplevel.cpp +++ b/src/x11/toplevel.cpp @@ -264,7 +264,10 @@ void wxTopLevelWindowX11::OnInternalIdle() { wxWindow::OnInternalIdle(); - if (m_needResizeInIdle) + // Do this only after the last idle event so that + // all windows have been updated before a new + // round of size events is sent + if (m_needResizeInIdle && !wxTheApp->Pending()) { wxSizeEvent event( GetClientSize(), GetId() ); event.SetEventObject( this ); @@ -280,31 +283,15 @@ void wxTopLevelWindowX11::OnInternalIdle() bool wxTopLevelWindowX11::Show(bool show) { - // Nano-X has to force a size event, - // else there's no initial size. -#if wxUSE_NANOX if (show) -#else - if (show && m_needResizeInIdle) -#endif { wxSizeEvent event(GetSize(), GetId()); + event.SetEventObject(this); GetEventHandler()->ProcessEvent(event); m_needResizeInIdle = FALSE; } - if (show) - { - // This does the layout _before_ the - // window is shown, else the items are - // drawn first at the wrong positions, - // then at the correct positions. - if (GetAutoLayout()) - { - Layout(); - } - } bool ret = wxWindowX11::Show(show); -- 2.45.2