mirror of https://github.com/PCSX2/pcsx2.git
wx: make position validation multi-monitor aware
This commit is contained in:
parent
0e3401da2c
commit
0bd65614d0
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#include <wx/app.h>
|
#include <wx/app.h>
|
||||||
#include <wx/window.h>
|
#include <wx/window.h>
|
||||||
|
#include <wx/display.h>
|
||||||
|
|
||||||
const pxAlignmentType
|
const pxAlignmentType
|
||||||
pxCentre = {pxAlignmentType::Center}, // Horizontal centered alignment
|
pxCentre = {pxAlignmentType::Center}, // Horizontal centered alignment
|
||||||
|
@ -199,8 +200,17 @@ bool pxIsValidWindowPosition(const wxWindow &window, const wxPoint &windowPos)
|
||||||
// all we need visible for the user to be able to drag the window into view. But
|
// all we need visible for the user to be able to drag the window into view. But
|
||||||
// there's no way to get that info from wx, so we'll just have to guesstimate...
|
// there's no way to get that info from wx, so we'll just have to guesstimate...
|
||||||
|
|
||||||
wxSize sizeMatters(window.GetSize().GetWidth(), 32); // if some gui has 32 pixels of undraggable title bar, the user deserves to suffer.
|
const wxSize sizeMatters(window.GetSize().GetWidth(), 32);
|
||||||
return wxGetDisplayArea().Contains(wxRect(windowPos, sizeMatters));
|
|
||||||
|
for (unsigned int i = 0; i < wxDisplay::GetCount(); i++)
|
||||||
|
{
|
||||||
|
const auto rect = wxDisplay(i).GetGeometry();
|
||||||
|
|
||||||
|
if (rect.Contains(wxRect(windowPos, sizeMatters)))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieves the area of the screen, which can be used to enforce a valid zone for
|
// Retrieves the area of the screen, which can be used to enforce a valid zone for
|
||||||
|
|
Loading…
Reference in New Issue