Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warp mouse cursor on Command + click in a PIP window #612

Closed
waydabber opened this issue May 25, 2022 · 53 comments
Closed

Warp mouse cursor on Command + click in a PIP window #612

waydabber opened this issue May 25, 2022 · 53 comments
Assignees
Labels
done All tasks are completed enhancement New feature or request PIP/Stream PIP or full screen streaming released Released
Milestone

Comments

@waydabber
Copy link
Owner

When streaming a dummy to a real display, it is possible to move the mouse over to the stream target display itself. This might be confusing as it looks like the mouse is on the dummy desktop while in reality it is not, but hovering over the stream target full screen window.

There should be an option to enable mouse warp - when the user clicks on the stream full screen window, the mouse should warp to the dummy screen's proper location and the click event should be applied there.

@waydabber waydabber added the enhancement New feature or request label May 25, 2022
@waydabber waydabber added this to the 1.2.x (TBD) milestone Jun 3, 2022
@waydabber
Copy link
Owner Author

It could also work for PIP windows (but not in headerless mode or during resizing).

@waydabber waydabber self-assigned this Jun 3, 2022
@waydabber waydabber modified the milestones: v1.3.x (TBD), v1.4.0 Dec 8, 2022
@waydabber waydabber removed this from the v1.3.10 milestone Dec 26, 2022
@schlomo
Copy link

schlomo commented Jan 18, 2023

To help reduce the confusion maybe it would be possible to change or annotate the mouse pointer if it won't work. For example, while the mouse pointer is over the PiP window, change it to the grab/hand symbol to show me that here I can only move the window itself and not interact with the content.

@waydabber
Copy link
Owner Author

Right, that is a good idea.

@waydabber
Copy link
Owner Author

#1355

@waydabber waydabber added the PIP/Stream PIP or full screen streaming label Jan 27, 2023
@waydabber waydabber changed the title Option to warp mouse cursor on click to the full screen stream target display Option to warp mouse cursor on click to the full screen stream target display or PIP source Apr 17, 2023
@waydabber waydabber changed the title Option to warp mouse cursor on click to the full screen stream target display or PIP source Option to warp mouse cursor on click on the full screen stream target display or PIP window Apr 17, 2023
@devnoname120
Copy link

@schlomo I agree, just showing a different cursor so I know whether I'm just hovering above the PIP or if I'm inside the virtual screen would already go a long way!

@nov1n
Copy link

nov1n commented Mar 4, 2024

Is it possible to prevent the cursor from going from the streamed display to the target display? My use-case is that I use a virtual screen that is smaller than my actual screen (a large TV) because I can't see everything at once otherwise. When my mouse reaches the edge of the screen I can see it teleporting to the other side of the screen.

@waydabber
Copy link
Owner Author

waydabber commented Mar 5, 2024

Not right now, but I plan to add this feature back: #1442

@nov1n
Copy link

nov1n commented Mar 5, 2024 via email

@nov1n
Copy link

nov1n commented Mar 5, 2024

Is this something you plan to do in the short term? Otherwise I might have to look for a different solution.

@waydabber waydabber added in progress Implementing internal pre-release Enable internal pre-releases under Settings/Applications/Updates labels Oct 17, 2024
@waydabber waydabber added this to the TBD milestone Oct 17, 2024
@PuzzledUser
Copy link

Good to see the ideas from #1550 popping up here. Thanks and good luck!

@cansar
Copy link

cansar commented Oct 19, 2024

I'd be amazing to have this or #1442 or some other kind of mechanism to help from the mouse getting "lost" on the target display.

@devnoname120
Copy link

@waydabber I'm glad it's part of the roadmap now, I can't wait!

@waydabber
Copy link
Owner Author

waydabber commented Oct 27, 2024

Right, I am working on this and other PIP improvements, albeit rather slowly due to various circumstances. Thanks for the patience.

Anyway, my idea is to have something like this shown in the bottom of the PIP window when the user is hovering over it:

Screenshot 2024-10-27 at 19 27 40

(note: it's Command+Click because Ctrl+Click is often used as a right click replacement in macOS and Option+Click would trigger Sequoia's window snapping feature which is enabled on PIP windows at the moment. Shift+Click would feel strange).

I also plan to add a hotkey option to extract the mouse back to a PIP window easily. This should make it possible to quickly move back and forth.

@PuzzledUser
Copy link

Great to hear you’re looking at this! Is there not a more intuitive solution most times?
Just warp the cursor position to the appropriate location on the source screen when it enters a pip.

Reverse the warp when the cursor gets to the edge of a source screen, if there is a visible part of that edge of the pip’s host screen.

of course this would make clicking on the pip or dragging the position of the pip impossible. But mostly I curse when I accidentally move my pip; a command-drag could move the pip.

i may be missing a use case where auto warping would be undesirable, so maybe use an setting to choose the appropriate behaviour.

@waydabber
Copy link
Owner Author

While this makes sense in a remote access or virtual machine context (where there are two cursors, one local and one remote), on a local desktop where there is only one system cursor this approach might create various issues. In the former context the mouse is not actually teleported, there is still a local mouse (but its cursor is hidden) and the local mouse location is simply replicated at the destination - this way the mouse movement (speed, etc) remains consistent and the experience is not jarring. Auto-teleporting a local mouse however would create a very different experience. It would also create a number of issues when the image is rotated, mirrored, cropped or the PiP window is on the source screen or there are embedded PiP windows (PiP inside an other PiP). In practice this would simply not work I think most of the time.

@schlomo
Copy link

schlomo commented Oct 28, 2024

@waydabber maybe treating the PIP screen like a "remote display" is actually a good idea?

I think that WYSIWYG is really important here, meaning that users shouldn't be confused by the tool.

Maybe there are different use cases that require different configuration and features? And then it would make sense to be more specific about the use cases and implement them. In the configuration you could have something like "PIP behaviour" with different secnarios to choose from:

  1. presenting via a virtual screen → clicking into the PIP should propagate the click approximately where I clicked. High precision not required. Dragging might be important to support annotating the slides during the presentation, same for just moving the mouse in highlighter / laser pointer mode
  2. something else...

We should also keep in mind that besides the mouse input there could be also touch input (e.g. via a Wacom touch display with pen & touch support) and keyboard input. So being more specific about the limitations of a PIP behaviour mode would be good here.

@waydabber waydabber changed the title Option to warp mouse cursor on click on the full screen stream target display or PIP window Warp mouse cursor on Command + click in a PIP window Nov 6, 2024
@waydabber waydabber added done All tasks are completed and removed in progress Implementing labels Nov 6, 2024
@waydabber
Copy link
Owner Author

Screenshot 2024-11-08 at 19 18 24

@waydabber
Copy link
Owner Author

(added warp as a context menu option as well with a pointer/anchor to where the warp will go)

@PuzzledUser
Copy link

PuzzledUser commented Nov 8, 2024

You can enable interim pre-releases under Settings/Application/Updates - enable pre-release and then interim. Please note that as long as interim pre-releases are enabled, you might receive rather frequent updates (provided that I can progress with stuff - due to some circumstances I was able to work at a snail's pace lately, sorry about that).

Sorry for being thick, but I got one pre-release, but haven't been able to get the next two you mentioned. It just says
image
image

@PuzzledUser
Copy link

PuzzledUser commented Nov 11, 2024

I noticed the release is available today:
image

Downloaded and working as expected, thank you. For me, I look forward to auto-warp as a future feature as that would suit my workflow better.

P.S. If you dismiss the PiP hint, how do you get it back if you want? Should it be an option in the contextual menu maybe. (Oh, the contextual menu will be unavailable if you implement auto-warp.)

P.P.S This version reset the position of my carefully positioned PiP :-(

@waydabber
Copy link
Owner Author

waydabber commented Nov 11, 2024

The context menu already has the warp option + has the explanation as well. If you dismissed it, you can get it back by resetting all warning dismissals under Settings/Applications/Advanced.

Screenshot 2024-11-11 at 11 47 37

(note: this is from a yet unreleased build, but the released one should have the warp in the context menu as well)

I am not sure why the PIP location would reset - it should not do that.

@PuzzledUser
Copy link

Thank you. Looking forward to Unmovable Window too.

@waydabber
Copy link
Owner Author

Unmovable window is available in older releases as well, but in a more limited form (the option appears when title bar is turned off and the window is set to float above menu, dock, spaces).

@PuzzledUser
Copy link

Aha, I use Keep Above Other Windows, so didn't see that option and its handy sounding disabled friend Mouse Click-through. Shame it's not available at other times 😉

@PuzzledUser
Copy link

I added the auto-traverse to a separate enhancement.

The standard mouse warp is available in the latest internal pre-release for PIP windows (for the window->source screen direction).

Great to see progress on Warping (and unmovable). Just wanted to drop a bread-crumb to the auto-traverse request: #3569. As I just struggled to spot it. Thanks

@devnoname120
Copy link

@PuzzledUser

handy sounding disabled friend Mouse Click-through

Note that in this context “click-through” actually means “click on the window below the PIP, just as if this PIP didn't exist at all”. So probs not what you had in mind!

@PuzzledUser
Copy link

@PuzzledUser

handy sounding disabled friend Mouse Click-through

Note that in this context “click-through” actually means “click on the window below the PIP, just as if this PIP didn't exist at all”. So probs not what you had in mind!

Aha, Mouse Click-through is not what I thought it was! Thanks for clarifying. I can see that would be helpful at times.

@devnoname120
Copy link

devnoname120 commented Nov 15, 2024

@PuzzledUser I must admit that I got a little overexcited when I first saw this option. 😄 But it explains why this option is disabled unless you set the PIP transparency to <100% (for example setting it to 99% works for enabling the option toggle). It wouldn't make sense to enable you to click through a perfectly opaque window.

@waydabber waydabber added pre-release available Released as beta version and removed internal pre-release Enable internal pre-releases under Settings/Applications/Updates labels Nov 22, 2024
@waydabber waydabber added released Released and removed pre-release available Released as beta version labels Nov 26, 2024
@waydabber
Copy link
Owner Author

waydabber commented Nov 27, 2024

I added the auto warp feature discussed here - #3569. However this will be an unexposed option (you can enable it using a terminal command - see inside the issue) as I don't think it works very well. Will be in the next internal pre-release.

@PuzzledUser
Copy link

Just got round to trying this. It works well, but is exactly half of the solution. As it stands, it is entertainingly awkward as the mouse doesn't auto-escape again. Because I position my PiP near the edge of my primary screen, I end up in a cycle of re-entering my PiP when I try to escape. 😂

Also, I noticed a delay or lag (≈0.25-0.5 s) of the mouse pointer after it warps into the PiP. Is this deliberate? For me it would be nice if there was no lag or stickiness to the cursor movement.

So, thank you. I hope you can add auto-warp back out of the PiP as discussed above.

PiP.stall.mp4

@PuzzledUser
Copy link

I just re-read your release notes back in #3569 (comment) and realise that the delay/stutter when moving the cursor into the PiP is likely the momentum break you mentioned. If I move the cursor slowly, the effect is much less.

So no big shakes — in fact, let's call it a feature as it helps you realise that auto-warp just happened!! 😊

@waydabber
Copy link
Owner Author

Right. :)

@devnoname120
Copy link

@PuzzledUser I'd recommend disabling mouse acceleration altogether in general 😄 You are much more precise and faster when you get used to it because then the movements of the cursor predictably match your movements. That's why all gamers disable mouse acceleration.

@PuzzledUser
Copy link

@PuzzledUser I'd recommend disabling mouse acceleration altogether in general 😄 You are much more precise and faster when you get used to it because then the movements of the cursor predictably match your movements. That's why all gamers disable mouse acceleration.

Oh, I just had such a giggle when I tried it @devnoname120! I literally laughed out loud. Each to their own eh (I'm not a gamer)!? I hear you saying you have to get used to it! I just drew a virtual spiral as I aimed into my target location! 🤣

Importantly, the stagger/delay/lag still happens when entering a PiP even with acceleration turned off. I don't mind that (warp) effect now I've rationalised it as a helpful feature. 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
done All tasks are completed enhancement New feature or request PIP/Stream PIP or full screen streaming released Released
Projects
None yet
Development

No branches or pull requests

6 participants