From: megacz Date: Fri, 30 Jan 2004 06:49:18 +0000 (+0000) Subject: 2002/07/19 05:28:11 X-Git-Tag: RC3~1612 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=8116ab6dab5058c54126cf7a74142d6fdfddc1d5;p=org.ibex.core.git 2002/07/19 05:28:11 darcs-hash:20040130064918-2ba56-a042b554b7fed02c9b83a9734d02b494710c5934.gz --- diff --git a/CHANGES b/CHANGES index 2002f14..770c66e 100644 --- a/CHANGES +++ b/CHANGES @@ -294,3 +294,5 @@ 18-Jul megacz POSIX.cc: better capslock handling +18-Jul megacz Win32.cc: fixed MINMAXINFO bug + diff --git a/src/org/xwt/plat/Win32.cc b/src/org/xwt/plat/Win32.cc index 28023a1..851bc4a 100644 --- a/src/org/xwt/plat/Win32.cc +++ b/src/org/xwt/plat/Win32.cc @@ -636,9 +636,9 @@ void org::xwt::plat::Win32$Win32Surface::setSize(jint w, jint h) { RECT client_rect, window_rect; GetClientRect((HWND)hwnd, &client_rect); GetWindowRect((HWND)hwnd, &window_rect); - int addwidth = (window_rect.right - window_rect.left) - (client_rect.right - client_rect.left); - int addheight = (window_rect.bottom - window_rect.top) - (client_rect.bottom - client_rect.top); - SetWindowPos((HWND)hwnd, NULL, 0, 0, w + addwidth, h + addheight, SWP_NOZORDER | SWP_NOMOVE); + int width = (window_rect.right - window_rect.left) - (client_rect.right - client_rect.left) + w; + int height = (window_rect.bottom - window_rect.top) - (client_rect.bottom - client_rect.top) + h; + SetWindowPos((HWND)hwnd, NULL, 0, 0, width, height, SWP_NOZORDER | SWP_NOMOVE); } void org::xwt::plat::Win32$Win32Surface::setTitleBarText(java::lang::String* title) { @@ -695,9 +695,11 @@ jint org::xwt::plat::Win32$Win32Surface::WndProc(jint _hwnd, jint _iMsg, jint _w POINT point; HWND hwnd2; RECT rect, rect2; + RECT client_rect, window_rect; jboolean newinside; int16_t mouse_x; int16_t mouse_y; + int addwidth, addheight; switch(iMsg) { case WM_DEVMODECHANGE: break; // FEATURE: color depth changed @@ -804,11 +806,15 @@ jint org::xwt::plat::Win32$Win32Surface::WndProc(jint _hwnd, jint _iMsg, jint _w return 0; case WM_GETMINMAXINFO: + GetClientRect((HWND)hwnd, &client_rect); + GetWindowRect((HWND)hwnd, &window_rect); + addwidth = (window_rect.right - window_rect.left) - (client_rect.right - client_rect.left); + addheight = (window_rect.bottom - window_rect.top) - (client_rect.bottom - client_rect.top); mmi = (MINMAXINFO*)lParam; - mmi->ptMinTrackSize.x = root->dmin(0); - mmi->ptMinTrackSize.y = root->dmin(1); - mmi->ptMaxTrackSize.x = root->dmax(0); - mmi->ptMaxTrackSize.y = root->dmax(1); + mmi->ptMinTrackSize.x = ((uint32_t)root->dmin(0)) + addwidth; + mmi->ptMinTrackSize.y = ((uint32_t)root->dmin(1)) + addheight; + mmi->ptMaxTrackSize.x = min(org::xwt::plat::Win32::getScreenWidth(), ((uint32_t)root->dmax(0)) + addwidth); + mmi->ptMaxTrackSize.y = min(org::xwt::plat::Win32::getScreenHeight(), ((uint32_t)root->dmax(1)) + addheight); return 0; case WM_PAINT: