X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/06efac1f8d6acde1610ba23a7b315ade8ed46679..669b65b94575865adc226d35a0de0dd81dde1e5f:/src/msw/display.cpp diff --git a/src/msw/display.cpp b/src/msw/display.cpp index 28cc8067b8..fc25e3f476 100644 --- a/src/msw/display.cpp +++ b/src/msw/display.cpp @@ -17,7 +17,7 @@ // headers // --------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "display.h" #endif @@ -166,10 +166,10 @@ static wxDisplayInfoArray *gs_displays = NULL; // ---------------------------------------------------------------------------- static BOOL CALLBACK wxmswMonitorEnumProc ( - HMONITOR hMonitor, // handle to display monitor - HDC hdcMonitor, // handle to monitor-appropriate device context (NULL) - LPRECT lprcMonitor, // pointer to monitor intersection rectangle - LPARAM dwData // data passed from EnumDisplayMonitors (unused) + HMONITOR hMonitor, // handle to display monitor + HDC WXUNUSED(hdcMonitor), // handle to monitor-appropriate device context + LPRECT lprcMonitor, // pointer to monitor intersection rectangle + LPARAM WXUNUSED(dwData) // data passed from EnumDisplayMonitors (unused) ) { wxDisplayInfo *info = new wxDisplayInfo(); @@ -193,9 +193,9 @@ static BOOL CALLBACK wxmswMonitorEnumProc ( BOOL PASCAL wxDDEnumExCallback(GUID *pGuid, - LPTSTR driverDescription, + LPTSTR WXUNUSED(driverDescription), LPTSTR driverName, - LPVOID lpContext, + LPVOID WXUNUSED(lpContext), HMONITOR hmon) { if ( pGuid ) @@ -297,7 +297,7 @@ static void InitDisplays() gs_displays = new wxDisplayInfoArray(); - if ( gs_useDirectX && !DoInitDirectX() ) + if ( !gs_useDirectX || !DoInitDirectX() ) { // either we were told not to try to use DirectX or fall back to std // functions if DirectX method failed @@ -539,7 +539,7 @@ wxString wxDisplay::GetNameForEnumSettings() const // ---------------------------------------------------------------------------- wxArrayVideoModes -wxDisplay::DoGetModesDirectX(const wxVideoMode& modeMatch) const +wxDisplay::DoGetModesDirectX(const wxVideoMode& WXUNUSED(modeMatch)) const { wxArrayVideoModes modes; @@ -729,6 +729,18 @@ bool wxDisplay::DoChangeModeWindows(const wxVideoMode& mode) { case DISP_CHANGE_SUCCESSFUL: // ok + { + // If we have a top-level, full-screen frame, emulate + // the DirectX behavior and resize it. This makes this + // API quite a bit easier to use. + wxWindow *winTop = wxTheApp->GetTopWindow(); + wxFrame *frameTop = wxDynamicCast(winTop, wxFrame); + if (frameTop && frameTop->IsFullScreen()) + { + wxVideoMode current = GetCurrentMode(); + frameTop->SetClientSize(current.w, current.h); + } + } return true; case DISP_CHANGE_BADMODE: