ralph-irving / squeezeplay

Squeezeplay software player for Lyrion Music Server.
https://sourceforge.net/projects/lmsclients/files/squeezeplay/
50 stars 14 forks source link

macOS 10.13: black square under mouse pointer #3

Closed michaelherger closed 6 years ago

michaelherger commented 6 years ago

I'm currently running r1016 on macOS 10.13.1, but was seeing this with r1000, too: when the mouse pointer is hovering over Squeezeplay, it would be framed by a black square. Just a little square around the mouse pointer.

TBH I'm not sure whether it started with macOS 10.13.1 or SP r1000. I'll double check later on a 10.12 system.

michaelherger commented 6 years ago

Ok, this is a macOS 10.13 issue: latest build would run fine on 10.12.6, but even an ancient r242 would show the issue on 10.13.1. Changed subject line accordingly.

ralph-irving commented 6 years ago

I don't have 10.13 installed to test the fix I found on the Sheepsaver forum but 10.6, 10.11 and 10.12 still render the cursor correctly with the change. Please try SqueezePlay-7.8.0r1019.dmg If it works, I'll push the SDLquartz code change to github and upload a new build to SF.

EDIT: Failed. Build removed.

michaelherger commented 6 years ago

r1019 doesn't fix the issue.

ralph-irving commented 6 years ago

Can you confirm that System Preferences -> Accessibility -> Zoom -> Zoom Style options -> Show Preview rectangle when zoomed out is NOT checked.

The issue described in https://www.emaculation.com/forum/viewtopic.php?f=20&t=9483 appears to be the same SDL issue with High Sierra you describe. I don't want to upgrade my Sierra machine yet. So this may have to wait a while.

ralph-irving commented 6 years ago

Here is the diff I appled in r1019, perhaps I misinterpreted the change described in post #18 by kanjitalk755 SDL_QuartzWM.m.txt

michaelherger commented 6 years ago

Yes, that option is NOT checked.

michaelherger commented 6 years ago

Further down that thread they discuss more changes:

(6) comment out #94 of SDL_QuartsVideo.h // CGDirectPaletteRef palette; / palette of an 8-bit display /

Or:

"Search for "video_can_change_cursor" in BasiliskII/src/SDL/video_sdl.cpp. Make it to return false always. Though not very elegant, just changing "return quartzok;" to "return false;" will do."

No idea what really is needed though...

ralph-irving commented 6 years ago

The SDL in SP includes this line using defines based on the OSX SDK used to build it. Unfortunately, the videco_can_change_cursor function is part of sheepsaver not SDL. The thread also discusses building on a newer OSX version, I'm still using 10.6. I'll build r1019 again on 10.11 using a newer SDK to see if that makes a difference. It not, I'll try to setup a 10.13 vm so I can figure this out.

ralph-irving commented 6 years ago

Here's another SP build to try SqueezePlay-x86_64-7.8.0r1031.dmg Includes the patch from above and requires 10.7 minimum per item (3) from the sheepshaver thread post #18.

EDIT: Removed test build URL

michaelherger commented 6 years ago

That did the trick! Working nicely again. Thanks for your effort!

ralph-irving commented 6 years ago

Thanks for confirming it worked. I've pushed the fix in 988b3a7fe20bdc1471d614e7e36da52c166eced8 and uploaded SqueezePlay-x86_64-7.8.0r1034.dmg to https://sourceforge.net/projects/lmsclients/files/squeezeplay/osx/