fuhsjr00 / bug.n

Tiling Window Manager for Windows
GNU General Public License v3.0
3.34k stars 214 forks source link

Config_verticalBarPos=tray behaves undesirable with multiple taskbars #227

Open jagaimoworks opened 4 years ago

jagaimoworks commented 4 years ago
Config_verticalBarPos=tray
Config_showTaskBar=1

These settings don't seem to get along with Windows 10's 'Show taskbar on all displays' taskbar setting.

The monitors in the screenshot are recognized in order from 1 -> 2 -> 3. On monitor 1, the status bar works fine with exception that it's not in the taskbar. Monitor 3 has the status bar in the taskbar but the colors glitch as soon as any window is opened on it. No problems on monitor 2.

2019-09-21_22-23-56

joten commented 4 years ago

Config_verticalBarPos=tray is a feature dating back to Windows 7; the first version only put the status bar in the first taskbar and on top of any additional monitor. I only ever had two monitors to test with, therefor I could add "Shell_SecondaryTrayWnd" to the list of taskbar window class names.

Your description reflects the current implementation: put the status bar on the first and second monitor (as recognized by bug.n) in the taskbar and on top of the third monitor; it looks as if your monitor 1 is recognized as the third one by bug.n. You may focus the taskbar on the third monitor and get the window information with WinI; it would go to the list in line 150 of src/Monitor.ahk.

I rarely used this feature but could see the glitch, too; it looks as if the shell tray window gets focus and over the bug.n status bar. I did not find a solution to this issue.

swebra commented 4 years ago

@joten I was also seeing this issue and tested it myself (W10). As expected, the taskbar on the primary display has the window class name of Shell_TrayWnd, but perhaps unexpectedly, both the secondary and the tertiary taskbars show up as Shell_SecondaryTrayWnd. I'm guessing additional logic would be required to distinguish between the two taskbars in the parse loop starting at line 154?