RoundedTB/RoundedTB

Automatically hiding the taskbar is buggy, flickers and doesn't respond correctly.

shanyan-wcx opened this issue · 38 comments

When the taskbar is automatically hidden, the application cannot be full screen, and there will be a process of turning into a fillet when the taskbar is displayed.

屏幕截图 2021-09-05 130900

I found that the former seems to be a bug in win11 system.

Auto-hide isn't completely supported, although it appears you have some additional taskbar mods that may be interfering. Please let me know what they are so I can look into this issue further.

I just tried out the auto-hide taskbar feature while RoundedTB is running.

I observed that when RTB is running, I cannot hover near the bottom edge to bring up the taskbar. Hovering would not bring it up. Pressing Start button or pressing Win+T would still bring it up.

As soon as I closed RTB, it started working correctly again. After running RTB again, taskbar stopped opening on hover again.

I am on the latest version of RoundedTB, and I noticed that after having autohiding taskbar enabled, the taskbar would flicker when bringing the mouse to the bottom, and when trying to open the right click menu on the tray, i would get a busy cursor with the app crashing after a while.

I used trafficmonitor. Can you be compatible with it in the future?

I used trafficmonitor. Can you be compatible with it in the future?

@shanyan-wcx your request is not connected to this issue. It would be better to either look if there is already an issue or open one yourself :)

I get the same flickering of the whole-length normal taskbar on Windows 11 (Beta) with the current version of RoundedTB when I move my mouse towards the edge of the screen as @Cyberdroid1 reported.
When I move my mouse towards the auto-hidden taskbar, first the whole taskbar appears, then only your mod parts are showing (only docked icons in the middle, or additional systray on the right). No other taskbar mods running. Also, there is a constant flickering (a few pixels high) along the whole width at the bottom as soon as RoundedTB is running.

EdOPiLylAr.mp4

Yeah, turns out Windows' autohide feature directly interferes with RoundedTB as it also tries to set regions. I've given up supporting it.

However, I am working on an alternative autohide mode as part of RoundedTB that should entirely mitigate any flickering issues, be a lot snappier and also have a toggleable animation. No word on when exactly it'll be implemented or if it will even be feasible, but from my initial tests it seems to be something that I can hopefully have ready for the next couple of updates.

Yeah, turns out Windows' autohide feature directly interferes with RoundedTB as it also tries to set regions. I've given up supporting it.

However, I am working on an alternative autohide mode as part of RoundedTB that should entirely mitigate any flickering issues, be a lot snappier and also have a toggleable animation. No word on when exactly it'll be implemented or if it will even be feasible, but from my initial tests it seems to be something that I can hopefully have ready for the next couple of updates.

@torchgm Too bad that this is the case so far. Classic MacOS-style docks often hide the taskbar completely and implement their very own (working) version of auto-hiding docks, so I assume there must be ways of achieving this.

Thanks for letting us know you'll be working on some kind of version of that! I understand this takes time. I for one wouldn't want to live without an auto-hiding taskbar, as I barely use it when I actively work in an app for hours :) .

Yeah, most other docks are just windows with their own completely custom animations/triggers. Because it's the process' own window, it has a lot more control in how it customises it.

Meanwhile, the taskbar is a special type of window called an Application Desktop Toolbar, or AppBar. AppBars are pretty cool in that they can automatically snap to monitor edges, resize the work area (the space maximised windows take up), and stack on top of each other.

They can also autohide, which they do by just actually moving the AppBar across the screen (which is also why the autohide animation can be so inconsistent - it depends on how busy DWM is). Problem is it can then run onto other monitors and overhang, so they use a region to prevent that. All of this applies to the taskbar as well, which uses the same autohide behaviour. As a result of it constantly setting a region as it moves, it resets the rounded/split effects that RTB applies. This means the taskbar either becomes solid again as it slides down or it flickers significantly as it moves.

Luckily, Windows lets programs specify the work area themselves, and also alter the visibility, opacity etc. of windows, which means I can implement my own autohide. This was a very early experimental attempt just to see if it'd be possible, it'll obviously be more fully-fleshed out and customisable by the time it makes it into an update:

AggravatingSoupyIvorybilledwoodpecker.mp4

@torchgm Man, that is a very well-explained way of describing the problems with the taskbar and its auto-hiding. I'm surprised how easily understandable you made that - got it! As for the animation, that looks very pleasing, and I'm happy to see you found your way around the native auto-hide feature. By all means, take your time, I'm nonetheless looking forward to testing it out.
I assume you'll also give users the option to choose an animation style for the hide feature?

Animations are hard with how limited customisation of the taskbar is, but the current plan is for an (optional) fade-in/out.

Thanks for letting me know 🙂!

Can we get a compiled early version with this included? :D This is awesome!

XXVtc commented

Hey man, I would love to test this feature already.
Is there any way for interested people to test it out for now?

Not yet - I've actually stripped out all the code for it. It was in some Canary build from a while ago but I'm focusing on finalising R3.1 first as that fixes a lot of other minor issues that cause confusion.

Please be patient with @torchgm regarding this feature and others. There are many many reasons a developer may not want to share RC/beta/alpha code or builds.

Torch, I wish I could contribute more meaningfully via code, but unfortunately do not have much experience with native code

Thanks for working on this issue - honestly even windows's implementation of autohide sucks (some apps will not let you see the taskbar when you move cursor to bottom, and the popups for stuff like language settings and start are built without the autohide feature in mind). A fade-in fade-out sounds more promising than the pop-in pop-out that exists.

That looks awesome!
An additional feature I would be really interested in would be to show the taskbar as long as it isn't (partially) covered by another window and automatically hide it as soon as there's an overlap (not only for maximized windows), similar to some docks on Linux.
I guess that's a feature which can be worked on once auto-hiding itself is finished 🙂

bigQY commented

That looks awesome! An additional feature I would be really interested in would be to show the taskbar as long as it isn't (partially) covered by another window and automatically hide it as soon as there's an overlap (not only for maximized windows), similar to some docks on Linux. I guess that's a feature which can be worked on once auto-hiding itself is finished 🙂

2021-12-19.15-09-44.mp4

The solution of this project(https://github.com/ChanpleCai/SmartTaskbar) may be helpful to you

But when my mouse pointer moves to the bottom of the screen, the taskbar still doesn't appear normally.This is the problem caused by RoundedTB

Ah, I actually used that app a few years ago. Unfortunately, their approach doesn't work well with multiple monitors.
I'm already curious to see @torchgm's code 😁

Animations are hard with how limited customisation of the taskbar is, but the current plan is for an (optional) fade-in/out.

So when are we gonna get something like this in a canary/RC build: https://twitter.com/TorchCTI/status/1478450406837653509?cxt=HHwWisC42fqzwYQpAAAA?

I don't know why, but I found out, that auto-hide works perfectly fine, when you have TranslucentTB on, and margin set to zero.

I don't know why, but I found out, that auto-hide works perfectly fine, when you have TranslucentTB on, and margin set to zero.

You are a legend. Works perfect.

Yep that works perfectly, seems as though having a tiny sliver of the taskbar at the bottom of the screen visible even when "hidden" by setting the margin to 0 or 1 (so your mouse can actually overlap it) makes it work

Apparently the flicking bug is gone 🤩

Apparently.the.flicking.bug.is.gone.mp4

Apparently the flicking bug is gone 🤩
Apparently.the.flicking.bug.is.gone.mp4

oooh what build is this? and what version of windows?

Hi :)
RoundedTB version 3.1

Windows 11 Home Single Language
Version 21H2
Compilação do SO 22000.795

I can confirm, no more flickering. Only on Windows 11 22621.440 (Beta Preview), RoundedTB in Dynamic Mode isn't centred completely by default but needs a re-setting in the Windows Taskbar settings to be centred again (it would be centered, but the taskbar still goes to the very left edge, until you re-set it in settings). Other than that, consider me happy!

for @torchgm, I have an idea for the auto-hide issue but I am not sure about it.

From what I have seen, what triggers autohide is a 1px tall border on top of the taskbar, which you can slightly see when the unmodified taskbar is hidden. If you cannot hover over that border, in a case such as roundedTB's margins hiding that border, you cannot make it appear. What can be done (as I said, if possible, I don't know it's feasibility on the code side) is to show that top border while the TB is hidden, and hide it back again when the TB is up.

Or you can custom make some sort of pressure-activated auto-hide, which I would prefer. Honestly, f*ck the way Windows handles auto-hide where my slightest touch makes it appear. But for this one, I know it would be heavy for you, so don't even count it as a suggestion 😛

So what basically should be done is to drop the top margin to 0 while taskbar is hidden and back to whatever value it was when it is risen. I think it can be done since you mentioned the windows class of TB does the autohide by shifting the window (correct me if I am wrong) so you can watch the vertical position of the TB and change depending on that.

-Emir Öven

for @torchgm and for everyone that wants to fix the auto-hide issue and start to use this amazing personalitation-tool. This bug can be fixed easily if you click on "..." and set each parameter to -0. This is going to solutionate your problems :)
This solution can make the task bar start blinking if you also have translucentTB and the compatibility option activated, you simply have to deactivate it and everything will work perfectly.

taskbar not showing on hover... i want to fix this bug....please help

for @torchgm and for everyone that wants to fix the auto-hide issue and start to use this amazing personalitation-tool. This bug can be fixed easily if you click on "..." and set each parameter to -0. This is going to solutionate your problems :) This solution can make the task bar start blinking if you also have translucentTB and the compatibility option activated, you simply have to deactivate it and everything will work perfectly.

Thank you! This works perfectly for me. :D

I got the auto hide to work fine with no problems on windows 11 Home 22621.1413 22H2

2023-04-16.15-14-38.mp4

Currently receiving the flashing like from the OP post, Windows 11 Version 22H2, Build: 22624.1610 with the following settings:
image

When the taskbar is automatically hidden, the application cannot be full screen, and there will be a process of turning into a fillet when the taskbar is displayed.

屏幕截图 2021-09-05 130900

Just update the margin to 0 or 1
image

Void48 commented

Yeah, most other docks are just windows with their own completely custom animations/triggers. Because it's the process' own window, it has a lot more control in how it customises it.

Meanwhile, the taskbar is a special type of window called an Application Desktop Toolbar, or AppBar. AppBars are pretty cool in that they can automatically snap to monitor edges, resize the work area (the space maximised windows take up), and stack on top of each other.

They can also autohide, which they do by just actually moving the AppBar across the screen (which is also why the autohide animation can be so inconsistent - it depends on how busy DWM is). Problem is it can then run onto other monitors and overhang, so they use a region to prevent that. All of this applies to the taskbar as well, which uses the same autohide behaviour. As a result of it constantly setting a region as it moves, it resets the rounded/split effects that RTB applies. This means the taskbar either becomes solid again as it slides down or it flickers significantly as it moves.

Luckily, Windows lets programs specify the work area themselves, and also alter the visibility, opacity etc. of windows, which means I can implement my own autohide. This was a very early experimental attempt just to see if it'd be possible, it'll obviously be more fully-fleshed out and customisable by the time it makes it into an update:

AggravatingSoupyIvorybilledwoodpecker.mp4

Do you still plan on releasing this? The current default auto hide animation in Windows 11 is terrible