surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.16k stars 399 forks source link

Logic Pro AU cursor disappears permanently #7024

Open skersten opened 1 year ago

skersten commented 1 year ago

Bug Description: When clicking a control - button, slider - the mouse cursor is hidden - I guess this might be intended for sliders (?). When releasing the mouse cursor does not re-appear. At the moment, the mouse cursor has to be moved out of the plugin window in order to re-appear.

Surge XT Version

Reproduction Steps: Steps to reproduce the behavior:

  1. Click ( mouse down ) on a button or a slider
  2. Move the mouse cursor at least a pixel
  3. Mouse cursor is hidden
  4. Release the mouse button ( mouse up )
  5. Mouse cursor stays hidden

Expected Behavior: Mouse cursor should re-appear after releasing the mouse / mouse-capture.

Computer Information (please complete the following!):

skersten commented 1 year ago

Update: Playing around here a little bit, effect described above is gone, new effect appeared: Mouse cursor changes shape in an useless way ( e.g. clicking on button, mouse cursor becomes SizeWE cursor, which then is not reset until clicing somewhere else ). I will watch the behaviour in detail and update the ticket if required.

mkruselj commented 1 year ago

This is by design on multibuttons (buttons that have multiple states rather than just a single state that is on/off), because you can drag the mouse on those to change the value (they're kind of a blend between a button and a slider, in a way).

Cursor should reappear though, on mouse up. It always does that over here.

That said, you can modify this behavior with Menu->Mouse behavior->Show mouse cursor while editing.

baconpaul commented 1 year ago

i think there's actually a ventura bug here potentially though. Sounds like skertsen is having the cursor change to unexpected things and stick there.

baconpaul commented 1 year ago

So I noticed in logic the other night that when I had logic in scissor mode that I unhid in surge to a scissor icon. I couldn’t make it happen again.

I wonder if there’s some state like grab focus by pressing with hidden and we restore to the wrong thing

I’ll try and poke at it more in august

im in osx12 still so not a Ventura thing but may be a logic surge interaction

baconpaul commented 1 year ago

OK so I upgraded to Sonoma and LPX 10.8 and with 1.2.3 this happens for me consistently. I click a slider and drag and the mouse doesn't unhide until i leave the surge window (but hovers and tooltips move). The same happens at head also, so this is a real problem on 10.8 / 14.1. Hmmm. Will look at the JUCE unhide mouse code. The bug must be there.

baconpaul commented 1 year ago

And maddeningly sonoma / reaper / au and sonoma / ableton / au don't exhibit this problem.

baconpaul commented 1 year ago

Advice from another dev I know which I want to record

have you tried reading the cursor to see what Logic has done with it? Or is JUCE hiding all that from you NSCursor has a stack API as well as a plain "set", I wonder if JUCE and Logic are tripping over one another there.

baconpaul commented 1 year ago

For some reason, the reset to a cursor type just doesnt' happen

if i change hide cursor to use WaitCursor rather than NoCursor you can see it comes back to Wait Cursor and stays there

If I mouse over something with a cursor change when hidden it restores

This is some crazy logic + juce combo bug. I just can't see it :(

baconpaul commented 1 year ago

There’s no fix I can make to this. Trying to reach Apple somehow and flagged to juce but I’m gonna keep this open and move it out of the milestone

mkruselj commented 1 month ago

@baconpaul Maybe link to the thread on JUCE forum and close this issue then?

skersten commented 2 weeks ago

Sorry for being quiet so long, I totally lost sight of this thing.... Yes, sure, closing is fine, but I cannot locate the useful thread in the juce-forum .... sorry for the inconvenience!