Module: wine Branch: master Commit: 9779f0ace4c4f5a0e361b6d6c2c6b9d1b92d058a URL: http://source.winehq.org/git/wine.git/?a=commit;h=9779f0ace4c4f5a0e361b6d6c2...
Author: Ken Thomases ken@codeweavers.com Date: Tue Oct 8 02:21:31 2013 -0500
winemac: If the app doesn't specify a custom max. tracking size, don't restrict Cocoa.
---
dlls/winemac.drv/window.c | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c index 1afe294..6e92d13 100644 --- a/dlls/winemac.drv/window.c +++ b/dlls/winemac.drv/window.c @@ -479,8 +479,6 @@ static void sync_window_min_max_info(HWND hwnd) WINDOWPLACEMENT wpl; HMONITOR monitor; struct macdrv_win_data *data; - RECT min_rect, max_rect; - CGSize min_size, max_size;
TRACE("win %p\n", hwnd);
@@ -573,12 +571,22 @@ static void sync_window_min_max_info(HWND hwnd)
if ((data = get_win_data(hwnd)) && data->cocoa_window) { + RECT min_rect, max_rect; + CGSize min_size, max_size; + SetRect(&min_rect, 0, 0, minmax.ptMinTrackSize.x, minmax.ptMinTrackSize.y); - SetRect(&max_rect, 0, 0, minmax.ptMaxTrackSize.x, minmax.ptMaxTrackSize.y); macdrv_window_to_mac_rect(data, style, &min_rect); - macdrv_window_to_mac_rect(data, style, &max_rect); min_size = CGSizeMake(min_rect.right - min_rect.left, min_rect.bottom - min_rect.top); - max_size = CGSizeMake(max_rect.right - max_rect.left, max_rect.bottom - max_rect.top); + + if (minmax.ptMaxTrackSize.x == GetSystemMetrics(SM_CXMAXTRACK) && + minmax.ptMaxTrackSize.y == GetSystemMetrics(SM_CYMAXTRACK)) + max_size = CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX); + else + { + SetRect(&max_rect, 0, 0, minmax.ptMaxTrackSize.x, minmax.ptMaxTrackSize.y); + macdrv_window_to_mac_rect(data, style, &max_rect); + max_size = CGSizeMake(max_rect.right - max_rect.left, max_rect.bottom - max_rect.top); + }
TRACE("min_size (%g,%g) max_size (%g,%g)\n", min_size.width, min_size.height, max_size.width, max_size.height); macdrv_set_window_min_max_sizes(data->cocoa_window, min_size, max_size);