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

Provide pinch to setting that expands window into full screen #4793

Open
low-batt opened this issue Jan 26, 2024 · 7 comments · May be fixed by #4796
Open

Provide pinch to setting that expands window into full screen #4793

low-batt opened this issue Jan 26, 2024 · 7 comments · May be fixed by #4796

Comments

@low-batt
Copy link
Contributor

What you want IINA to do:
The Pinch to setting found on the Control tab of IINA's settings can be set to Adjust window size or Fullscreen. If set to Adjust window size pinching adjusts the size of the window up until it fills most of the screen, but does not does support enlarging further into full screen mode.

This issue requests supporting a setting that allows pinching to adjust the window size and automatically go into or out of full screen mode. Or enhancing the Pinch to setting to support this when set to Adjust window size.

What IINA does currently:
When Pinch to is set to Adjust window size pinching will not enter into full screen mode.

Why you think this should be added:
This was requested in IINA's Telegram group.

Jag-Marcel added a commit to Jag-Marcel/iina that referenced this issue Jan 29, 2024
…na#4793)

When the window is within 20 pixels of its largest size, it will now switch to fullscreen if the user pinches out. Likewise, it will move out of fullscreen when pinching in while in fullscreen.

- Not sure what the threshold should be, 2% of height seemed to work fine and felt responsive on a 13in macbook screen, alternatively something like 30 pixels of wiggle room could work

- May lead to confusion for users who don't want max size to turn to fullscreen; depending on experience might make sense to make this functionality the main "Fullscreen" option and have "Adjust window size" be the version without fullscreen toggle (and have it be renamed to "Only adjust window size")
@Jag-Marcel Jag-Marcel linked a pull request Jan 29, 2024 that will close this issue
2 tasks
@low-batt low-batt linked a pull request Jan 30, 2024 that will close this issue
2 tasks
@anohren
Copy link
Contributor

anohren commented Jun 23, 2024

Or enhancing the Pinch to setting to support this when set to Adjust window size.

Not recommended.

@low-batt
Copy link
Contributor Author

Hi! @anohren! This comment in the proposed implementation asks:

I wonder if the core devs might have an issue with augmenting Adjust window size to basically also do what Fullscreen does. I wonder if people would be opposed to combining the two options?

Might want to comment on the proposed implementation.

For GUI design I defer to the other developers, so I've not been involved in this issue other than entering the request made by a user on the Telegram channel.

@anohren
Copy link
Contributor

anohren commented Jun 23, 2024

Thanks. I didn't expect design discussions and rationales concerning a specific issue to be centered in a PR, so I didn't look. Though, I don't think that a design discussion should have the prerequisite to wade through implementation specific commentary in one of potentially multiple PRs (or worse, reading the code or compiling just to discuss aspects of UI), so I will invite the discussion to move back here.

I don't think it's a good idea to assume that people who want to pinch to adjust window size want to opt in to this behavior.

  • It's not expected. Changing window size and creating a new workspace might be related, but aren't the same action.
  • Fullscreening a window is already a prominent and readily available feature of every window even if you haven't bound double-clicking to it and have removed the dedicated toolbar button, further making it unexpected as a side-effect of resizing a window.
  • It's not seamless (is it?). When I go fullscreen in apps, in Mojave at least, I get thrown away from my current desktop with an accompanying disorienting animation. It's disorienting simply because it's not expected. When you're in the passenger seat, sudden acceleration and braking feels much worse compared to when you're in the driver's seat.
  • You're interrupting my gesture before knowing where it'll end. Related to the above; I might not be pinching out to make the window bigger, but simply to initiate the gesture and subsequently making the window smaller. This point is to a large extent mitigated by the quoted suggestion below though.

The proposed implementation further suggests:

So if the window was small, the user would need to pinch twice: first to expand the window to be as large as possible in windowed mode, then again to enter full screen.

Some might be annoyed at having to pinch twice if the window is only a few pixels smaller than its max size. But I don't think that would be a frequent occurence. I think more would be unhappy if they wanted only to make the window larger and they end up activating full screen.

  • I can't cancel this gesture driven action by reversing the gesture. This is not in line with the expectation set by resizing the window, or with the system gestures for changing workspace, showing launchpad, etc. A second gesture to reverse course is ok (and necessary), but this second inconvenience doesn't feel great if you never intended the first action in the first place.

Disclaimer: Some of the above may be biased by my dislike of Safari's awful pinch behavior.

It's very reminiscent behavior of Safari's "zoom out to open the tabs overview". Granted, the behavior of Safari is way worse in that a really, really frequent action like zooming out the page has been contaminated with a comparatively niche "open the tabs overview", and to compound the issue they've made it a completely irreversible action. Result: users acquire the habit of having to first zoom in before zooming out just to avoid accidentally triggering the unwanted action.

@svobs
Copy link
Contributor

svobs commented Jun 25, 2024

I wonder if the core devs might have an issue with augmenting Adjust window size to basically also do what Fullscreen does. I wonder if people would be opposed to combining the two options?

Didn't realize discussion was going on in the Telegram group 🙃... I've changed my mind on this since I wrote this, having "dogfooded" the feature for a while.

While I still think it would be great in principle to combine both Full Screen and Zoom, ultimately, doing it in a way that feels natural & useful requires a level of tuning which is perhaps not possible at present.

First - it's looking to me like the "pinch to toggle full screen" component should ideally need to meet some some minimum pinch threshold in order to be triggered, to ensure that it's not toggled by mistake. This would require some trial & error of fuzzy numbers on the level of Apple's tuning of multi-touch gesture thresholds. This is the sort of thing that is just painful to get right in open source with its consensus-driven processes (although not impossible).

Second, and this is the real killer, I can only see this being fun to use when paired with legacy full screen. I hadn't even considered native full screen. So I completely agree with this statement, and don't envision any realistic workaround:

It's not seamless (is it?). When I go fullscreen in apps, in Mojave at least, I get thrown away from my current desktop with an accompanying disorienting animation

So to bring all this together - no I don't think changing the existing behavior is a good idea. I don't personally see the harm in adding the feature as a completely new option, although I'm not as infatuated as I once was due to the points above.

@anohren
Copy link
Contributor

anohren commented Jun 25, 2024

I meant move it back from the PR to this issue (I wasn't on Telegram)

I also think a new option is harmless enough, but to be honest I can't think of where anyone would acquire an expectation for this feature enough to look for and find it. Have you seen it in the wild in other apps?

I guess the gesture is used as a discrete toggle in some places, especially on iOS, but haven't seen it in combination with window resizing before.

@svobs
Copy link
Contributor

svobs commented Jun 26, 2024

I also think a new option is harmless enough, but to be honest I can't think of where anyone would acquire an expectation for this feature enough to look for and find it. Have you seen it in the wild in other apps?

I have not seen other apps do it, but I don't think that should be disqualifying on its own. IMHO a lot of desktop apps seem to suffer from substandard UX. It's easy to see why. Many are just very old and users tend get very angry at sudden paradigm changes even if they are clearly more usable (e.g., the move to Microsoft Office's Ribbon, or the change from GNOME 2 to GNOME 3) and many just because the desktop user base itself is deeply entrenched and has been slower to accept innovations. Meanwhile, most of the innovation nowadays seems to be coming from the mobile world, exactly because of its novel status and the freedom from expectations associated with it.

I think combining pinch-to-zoom and pinch-to-toggle-FS functionality makes a lot of sense, and seems more intuitive than the existing pinch-to-toggle-FS feature alone, because when using it to exit full screen I've often forgotten what size the window was at before and the result is not the size I wanted. So this offers improved consistency of behavior.

To try to fully convey (at least my) thinking on this... I don't like the idea of "full screen" being in a separate space which has alien rules, a long disorienting entry, and hard-to-reach exits. All I really want from full screen is to just to (1) fill the screen with the window's content, and (2) hide all the extraneous cockpit controls like the Dock, menu bar, and title bar, so that the screen can be full of said content. So from that way of thinking, it should just be a brief hop visually & conceptually to change a "maximized window" to "full screen".

Alas, this is not one of the paths provided to us. The native full screen was designed for a different vision.

If using custom ("legacy") full screen, we don't have to worry about entering a separate space and we could reduce friction by speeding up the toggle animation. Unfortunately it's rather awkward to support a feature which doesn't work as well depending on whether another feature is enabled. But it's a feature I would use.

@anohren
Copy link
Contributor

anohren commented Jun 26, 2024

I don't think that should be disqualifying on its own

I agree. Though it might be relevant for the motivation of the person who's deciding whether to do the work, to know whether they're doing it for themselves and maybe three other people, since this might impact its chances of getting merged. But I get your point that someone has to get the ball rolling before anyone starts using anything, and that might be motivation enough for some.

a lot of desktop apps seem to suffer from substandard UX

Yes. Well... I don't know which ones you're thinking of, but a lot of non-paid desktop apps at least. Just start Ubuntu and you have a bunch of them pre-installed, like the horrible treemap and keyboard navigation in Disk Usage Analyzer. I mean, you just need to spend 2 minutes with Disk Inventory X, WinDirStat, Spacesniffer, or even a terminal with ncdu to realize "this isn't good"... (ironically those are also unpaid, so maybe not the best example)

users tend get very angry at sudden paradigm changes even if they are clearly more usable (e.g., the move to Microsoft Office's Ribbon, or the change from GNOME 2 to GNOME 3) and many just because the desktop user base itself is deeply entrenched and has been slower to accept innovations

I don't think it's entirely fair to users who have invested years to create strong mental pathways for how their software is expected to behave to say that they resist innovations. They were happy to accept the behaviors that were new when they started out, so in essence their desire to make the most use of their own investment is a compliment to their contemporary designers. Our brains have not evolved for our environment to move around or our objects to suddenly change behavior. This of course ties in to what you're hinting at: new innovations in user interaction is mainly for new users. This makes introduction of new concepts a very difficult line to walk, especially in non-profit software (Gnome), even if you have numbers on existing users vs. influx of new users. How much is each worth? Anyway, in that area Apple seems to master the art of gradual changes a lot better than Microsoft... (Windows 8 fullscreen start menu was a weird couple of months)

most of the innovation nowadays seems to be coming from the mobile world, exactly because of its novel status and the freedom from expectations associated with it

Are you thinking of the features that migrate from mobile to desktop, like notification centers, DnD and dark mode?

I think combining pinch-to-zoom and pinch-to-toggle-FS functionality makes a lot of sense, and seems more intuitive than the existing pinch-to-toggle-FS feature alone

I just noticed the pinch gesture is customisable to do this but is mutually exclusive with resizing. Yes, that can appear a bit annoying. If anyone had asked me to combine them I would probably have suggested that a quick upsize gesture should be interpreted as a fullscreen gesture or something, regardless of the window's current size.

when using it to exit full screen I've often forgotten what size the window was at before

Right. That would highlight another hurdle though since, in the case of having entered fullscreen the "traditional" way (non-maximized), it'd be more responsible to restore the state of the window than to throw it away. Immediately assuming forgetfulness would not be designing for error.

I don't like the idea of "full screen" being in a separate space which has alien rules, a long disorienting entry, and hard-to-reach exits.

Speaking of features that migrated from mobile to desktop 🙂 Personally I like it. I especially appreciate the assurance of not having any invisible windows underneath.

I can see the appeal of this feature if you have a small enough monitor (laptop -- then again you probably do if you use a trackpad) and use legacy fullscreen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants