X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2Fplat%2FWin32.cc;h=851bc4a5a4f218b226a28f7349e8eec4ec3f6033;hb=8116ab6dab5058c54126cf7a74142d6fdfddc1d5;hp=28023a1d7b1a4b78cdf750947aebe9d36f4bd699;hpb=d552d57b59b5255f8bf4fcaf937367c67a9e4ecc;p=org.ibex.core.git 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: