contour-terminal / contour

Modern C++ Terminal Emulator
http://contour-terminal.org/
Apache License 2.0
2.42k stars 105 forks source link

A borderless-fullscreen option #1093

Open brian6932 opened 1 year ago

brian6932 commented 1 year ago

Coming from Alacritty, when you alt enter into fullscreen mode, it uses a borderless-fullscreen option, which first, looks smoother, has less lag when swapping back and forth, and works with window manager's (since on Windows dwm) transparency options.

Specification

When I say borderless-fullscreen, I mean like the option often found in games, where the program does not try to take exclusive always-on-top prio when focused.

Yaraslaut commented 1 year ago

Hi, From what I see contour behaves the same way as alacritty in ToggleFullscreen, am I missing something?

brian6932 commented 1 year ago

Well effectively what is described here: https://github.com/alacritty/alacritty/issues/6124 is the experience I have with alacritty, but rather the solution is what I have. It doesn't flicker, feels smooth to alt enter and toggle, but contour flickers and takes like a solid second when pressing alt enter.

Yaraslaut commented 1 year ago

Well effectively what is described here: alacritty/alacritty#6124 is the experience I have with alacritty, but rather the solution is what I have. It doesn't flicker, feels smooth to alt enter and toggle, but contour flickers and takes like a solid second when pressing alt enter.

Oh, I see I can confirm that contour does not toggle fullscreen mode correctly at the first time when trying to switch to fullscreen mode, second time it works though. Performance is also lacking in comparison to alacritty, not sure if it is pure Qt or not

christianparpart commented 1 year ago

Thanks for your report @brian6932. Technically, what is happening in the background, is, that the windowed terminal closes and gets recreated as fully sized window without borders already. So this is the case already. What you might see as flicker is the fact, that it is in fact a window close plus window recreate operation going on, with the recreated window taking up the full screen space.

We are using Qt API for doing that though, and I cannot guarantee to make it 100% flickerless. But we can surely try to.

@Yaraslaut maybe it's not worth fixing that on master (using QtWidgets) when the QML branch is near merge. Maybe we can see for a good solution in the QML branch right away? What do you think?

Yaraslaut commented 1 year ago

I can see this performance issue only on Windows, @brian6932 you were referring to windows as well?

brian6932 commented 1 year ago

yes