mirror of
https://github.com/reactos/wine.git
synced 2024-11-23 11:49:50 +00:00
winemac: Scale cursors for Retina mode, now that user32 scales them with DPI.
When they were always 32x32, treating that size as though it were in Cocoa's virtual "points" rather than pixels produced good results even though it wasn't really correct. Signed-off-by: Ken Thomases <ken@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
cbfa90c390
commit
611c15953e
@ -992,12 +992,14 @@ static NSString* WineLocalizedString(unsigned int stringID)
|
|||||||
{
|
{
|
||||||
NSDictionary* frame = [cursorFrames objectAtIndex:cursorFrame];
|
NSDictionary* frame = [cursorFrames objectAtIndex:cursorFrame];
|
||||||
CGImageRef cgimage = (CGImageRef)[frame objectForKey:@"image"];
|
CGImageRef cgimage = (CGImageRef)[frame objectForKey:@"image"];
|
||||||
NSImage* image = [[NSImage alloc] initWithCGImage:cgimage size:NSZeroSize];
|
CGSize size = CGSizeMake(CGImageGetWidth(cgimage), CGImageGetHeight(cgimage));
|
||||||
|
NSImage* image = [[NSImage alloc] initWithCGImage:cgimage size:NSSizeFromCGSize(cgsize_mac_from_win(size))];
|
||||||
CFDictionaryRef hotSpotDict = (CFDictionaryRef)[frame objectForKey:@"hotSpot"];
|
CFDictionaryRef hotSpotDict = (CFDictionaryRef)[frame objectForKey:@"hotSpot"];
|
||||||
CGPoint hotSpot;
|
CGPoint hotSpot;
|
||||||
|
|
||||||
if (!CGPointMakeWithDictionaryRepresentation(hotSpotDict, &hotSpot))
|
if (!CGPointMakeWithDictionaryRepresentation(hotSpotDict, &hotSpot))
|
||||||
hotSpot = CGPointZero;
|
hotSpot = CGPointZero;
|
||||||
|
hotSpot = cgpoint_mac_from_win(hotSpot);
|
||||||
self.cursor = [[[NSCursor alloc] initWithImage:image hotSpot:NSPointFromCGPoint(hotSpot)] autorelease];
|
self.cursor = [[[NSCursor alloc] initWithImage:image hotSpot:NSPointFromCGPoint(hotSpot)] autorelease];
|
||||||
[image release];
|
[image release];
|
||||||
[self unhideCursor];
|
[self unhideCursor];
|
||||||
|
Loading…
Reference in New Issue
Block a user