Ken Thomases : winemac: If the app doesn't specify a custom max. tracking size, don't restrict Cocoa.

Alexandre Julliard julliard at winehq.org
Tue Oct 8 15:41:06 CDT 2013


Module: wine
Branch: master
Commit: 9779f0ace4c4f5a0e361b6d6c2c6b9d1b92d058a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9779f0ace4c4f5a0e361b6d6c2c6b9d1b92d058a

Author: Ken Thomases <ken at 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);




More information about the wine-cvs mailing list