X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..e6adf05834e880312efa3d59914ecc1d4f5f78a6:/src/generic/splash.cpp?ds=inline diff --git a/src/generic/splash.cpp b/src/generic/splash.cpp index d4103aeba0..2c0d403645 100644 --- a/src/generic/splash.cpp +++ b/src/generic/splash.cpp @@ -6,7 +6,7 @@ // Created: 28/6/2000 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -23,7 +23,7 @@ #if wxUSE_SPLASH #ifndef WX_PRECOMP -#include "wx/wx.h" +#include "wx/dcmemory.h" #endif #include "wx/splash.h" @@ -39,8 +39,13 @@ BEGIN_EVENT_TABLE(wxSplashScreen, wxFrame) EVT_CLOSE(wxSplashScreen::OnCloseWindow) END_EVENT_TABLE() +/* Note that unless we pass a non-default size to the frame, SetClientSize + * won't work properly under Windows, and the splash screen frame is sized + * slightly too small. + */ + wxSplashScreen::wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int milliseconds, wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style): - wxFrame(parent, id, wxEmptyString, pos, size, style) + wxFrame(parent, id, wxEmptyString, wxPoint(0, 0), wxSize(100, 100), style) { m_window = NULL; m_splashStyle = splashStyle; @@ -48,15 +53,7 @@ wxSplashScreen::wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int mil m_window = new wxSplashScreenWindow(bitmap, this, -1, pos, size, wxNO_BORDER); - // For some reason, we need to make the client size a couple of pixels - // bigger for all of the bitmap to show. - // Or do we? -#ifdef __WXMSW__ - int fudge = 0; -#else - int fudge = 0; -#endif - SetClientSize(bitmap.GetWidth()+fudge, bitmap.GetHeight()+fudge); + SetClientSize(bitmap.GetWidth(), bitmap.GetHeight()); if (m_splashStyle & wxSPLASH_CENTRE_ON_PARENT) CentreOnParent(); @@ -71,7 +68,11 @@ wxSplashScreen::wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int mil Show(TRUE); m_window->SetFocus(); - wxYield(); // Without this, you see a blank screen for an instant +#ifdef __WXMSW__ + Update(); // Without this, you see a blank screen for an instant +#else + wxYieldIfNeeded(); // Should eliminate this +#endif } wxSplashScreen::~wxSplashScreen()