jtackaberry / reaticulate

An articulation management system for REAPER
Other
100 stars 45 forks source link

Add "Reset Reaticulate window size and position" action to Reaper actions menu #199

Open DoubleGrit opened 1 year ago

DoubleGrit commented 1 year ago

As per title. Had an issue on Mac where the user had accidentally made the Reaticulate window huge (think: double the size of her monitor), and so none of the UI controls/buttons were visible because they were all way off the sides of the screen.

Reaticulate was also in "borderless" mode so it was difficult to get the OS to "grab" the window, and also it meant we couldn't resize it by grabbing the window edges (because borderless window can only be resized by the grab handle in bottom right corner, which wasn't on screen). Reaper's own "reset position (cascade) all floating windows" didn't work either.

Reinstalling Reaticulate didn't change the size or position. We were eventually able to find the resize handle by extending over to a 2nd monitor in order to "find" the top bar (to reposition) and then, finally, the resize handle.

Suggest an action (accessible via Reaper's action list) that resets the Reaticulate window size and position, as a way to solve this in the future.

Thanks! Jack

jtackaberry commented 1 year ago

Assuming you the user in question was using Reaticulate 0.5.x, I'm wondering if she tried to restart Reaticulate (or, by proxy, REAPER itself)? Reaticulate is supposed to detect this condition on startup and clamp the floating window geometry to the display it most intersects with.

Edit: sorry, not debating your suggestion here -- I think it's a good one -- just wondering if there's another bug I should be chasing. :)

DoubleGrit commented 1 year ago

Hey Tack, thanks for the quick response :)

Latest version of Reaticulate yes.

We tried restarting Reaticulate (actioning Reaticulate_Main.lua twice so that the first one terminated the running instance and the 2nd started a new one), no dice.

Tried restarting Reaper too, same problem.

Finally, I fully uninstalled Reaticulate from her machine, restarted Reaper, then re-installed (all via ReaPack).

At another point I fully restarted the Mac as well.

Nothing worked, unfortunately. Admittedly I'm not very familiar with OSX so there may have been other things we did wrong and/or could have done to fix it, but that's what I know to go off so far :)

Edit: only other thing I can think of is that the machine was initially HDMI-connected to a TV (for use as a 2nd monitor). We tried unplugging it while troubleshooting, and certainly restarted Reaticulate at one point while it was unplugged, but I think the Reaper restart and the Reaticulate reinstall was all carried out while the TV was connected. Maybe that's relevant?

jtackaberry commented 1 year ago

Hmm, only thing I can think of is that there's a bug with multi-monitor detection on OSX. I can't reproduce this on Windows with multiple displays, or on Mac with a single display (in which I force the window to be larger than the display while in borderless mode), in these cases restarting Reaticulate (the way you described) clamps the window. But I haven't tested an external display with my Macbook, so I suppose there's room for bugs there. I'll take a closer look.

Another tactic could have been to toggle borderless mode in Reaticulate's settings screen, at least assuming you were able to open it at all. :)

The reason reinstalling Reaticulate didn't help is because it persists the window geometry as external state (which reaper puts in reaper-extstate.ini) so it's able to preserve this between restarts. ReaPack doesn't provide any sort of pre-uninstall hooks for scripts like Reaticulate to do any cleanup actions (unfortunately), so Reaticulate's stored state will just linger indefinitely after uninstall. But that's why reinstalling didn't help, since the new install will just pick up where the old one left off.

I'll look further into why restarting Reaticulate didn't properly clamp the window on startup, but otherwise I'll consider your feature request for the next release. Thanks!

DoubleGrit commented 1 year ago

Turning off borderless mode was one of my (failed) tactics because when the window isn't borderless, it's much more hotkey-resizeable (through programs like Rectangle on OSX or just Win+Shift+ArrowKey on Win10). But alas the window was truly enormous so I couldn't get anywhere near a single menu control.

Thanks for the info on why the reinstall didn't work!

And once again thanks for this fantastic piece of kit. Absolute gamechanger 😇