Ken Thomases : winemac: Scale large system tray icons down to fit status bar.

Alexandre Julliard julliard at winehq.org
Fri Apr 5 14:02:15 CDT 2013


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

Author: Ken Thomases <ken at codeweavers.com>
Date:   Fri Apr  5 03:34:20 2013 -0500

winemac: Scale large system tray icons down to fit status bar.

---

 dlls/winemac.drv/cocoa_status_item.m |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/dlls/winemac.drv/cocoa_status_item.m b/dlls/winemac.drv/cocoa_status_item.m
index 27908ab..5b4ee94 100644
--- a/dlls/winemac.drv/cocoa_status_item.m
+++ b/dlls/winemac.drv/cocoa_status_item.m
@@ -149,8 +149,21 @@ void macdrv_set_status_item_image(macdrv_status_item s, CGImageRef cgimage)
         NSImage* image = nil;
         if (cgimage)
         {
+            NSSize size;
+            CGFloat maxSize = [[NSStatusBar systemStatusBar] thickness];
+            BOOL changed = FALSE;
+
             image = [[NSImage alloc] initWithCGImage:cgimage size:NSZeroSize];
             CGImageRelease(cgimage);
+            size = [image size];
+            while (size.width > maxSize || size.height > maxSize)
+            {
+                size.width /= 2.0;
+                size.height /= 2.0;
+                changed = TRUE;
+            }
+            if (changed)
+                [image setSize:size];
         }
         [statusItem.item setImage:image];
         [image release];




More information about the wine-cvs mailing list