wordpad: Fall back to the default position if the saved position is off-screen.
This condition is particularly easy to trigger when switching from a multi-head setup to a virtual desktop. Inspired by some fairly similar code in notepad. Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
fd578822dd
commit
ff0a34e9c9
|
@ -2731,6 +2731,9 @@ int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hOldInstance, LPSTR szCmdPar
|
|||
HWND hRulerWnd;
|
||||
POINTL EditPoint;
|
||||
DWORD bMaximized;
|
||||
MONITORINFO info;
|
||||
HMONITOR monitor;
|
||||
int x, y;
|
||||
static const WCHAR wszAccelTable[] = {'M','A','I','N','A','C','C','E','L',
|
||||
'T','A','B','L','E','\0'};
|
||||
|
||||
|
@ -2767,8 +2770,18 @@ int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hOldInstance, LPSTR szCmdPar
|
|||
RegisterClassExW(&wc);
|
||||
|
||||
registry_read_winrect(&rc);
|
||||
monitor = MonitorFromRect(&rc, MONITOR_DEFAULTTOPRIMARY);
|
||||
info.cbSize = sizeof(info);
|
||||
GetMonitorInfoW(monitor, &info);
|
||||
|
||||
x = rc.left;
|
||||
y = rc.top;
|
||||
IntersectRect(&info.rcWork, &info.rcWork, &rc);
|
||||
if (IsRectEmpty(&info.rcWork))
|
||||
x = y = CW_USEDEFAULT;
|
||||
|
||||
hMainWnd = CreateWindowExW(0, wszMainWndClass, wszAppTitle, WS_CLIPCHILDREN|WS_OVERLAPPEDWINDOW,
|
||||
rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, NULL, NULL, hInstance, NULL);
|
||||
x, y, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL);
|
||||
registry_read_maximized(&bMaximized);
|
||||
if ((nCmdShow == SW_SHOWNORMAL || nCmdShow == SW_SHOWDEFAULT)
|
||||
&& bMaximized)
|
||||
|
|
Loading…
Reference in New Issue