[Click on empty taskbar space] Double clicks and single clicks actions are wrongly executed when the user double-clicks or single-clicks on the taskbar space that is not empty
jed84 opened this issue · 6 comments
Mods installed:
- Click on empty taskbar space 1.3
- Middle click to close on the taskbar 1.0.6
OS: Win 11 23H2 22631.3593
Logs:
Click.on.empty.taskbar.space.-.LOGS.txt
Please note that the following are the results of a single and double-click action performed on the pinned Calculator app:
16:38:27.307 13296 explorer.exe [WH] [taskbar-empty-space-clicks] [1680:ShowDesktop]: INFO: Sending ShowDesktop message
16:38:29.590 13296 explorer.exe [WH] [taskbar-empty-space-clicks] [1905:StartProcess]: INFO: Starting process: C:\Program Files (x86)\SoundVolumeView.exe /Switch Soundbar & /Switch Speakers
Given I have the following mod enabled: [Click on empty taskbar space]
When I double-click or single-click on the taskbar space that is not empty (for example pinned apps, opened apps or icons in the notification area)
Then the action set in the mod's settings is executed.
Expected:
- the double click and single click actions must only be executed when the user clicks on the empty areas.
Actual:
- double clicks and single clicks actions are executed when the user double-clicks or single-clicks on the taskbar space that is not empty (for example pinned apps, opened apps or icons in the notification area)
- if the user also has the following mod enabled: [Middle click to close on the taskbar], then middle-clicking on the opened app icon triggers the execution of two actions: app closure and action that it set in the mod [Click on empty taskbar space].
This is weird. I am on the same OS version and all works for me. I am using both plugins as you do. However there is no "Click on empty taskbar space 1.4". The latest version is v1.3. Double check that for a start please.
The plugin is using Microsoft UIAutomation API to get the name of the element clicked. It is an accessibility API used in e.g. click to talk feature for visually impaired users. I found it weird that this thing would get broken. Only thing I can think of is that the elements would get renamed. But we are running the same version of the OS.
However what you can do to further debug is the following:
- Disable Click on empty taskbar space plugin
- Click on Fork option to clone the plugin and open the editor
- Enable all logging defines starting on line 671
- Click compile mod. Make sure it compiles.
- Click Preview Mod and select an action for e.g. a double click event
- Doubleclick the empty space on the taskbar
- Doubleclick some element on the taskbar where no action should occur
- Now on your Desktop a file empty_space_clicks_log.txt is created with verbose logs
- Share the log. Log is appended so share only the latest section delimited by === and "Log started at" lines
- You can delete (or at least disable) the cloned plugin once you are done
Now what you are interested in are log prints similar to these when you click on an empty space:
DEBUG: Clicked UI element ClassName: Taskbar.TaskbarFrameAutomationPeer
DEBUG: Taskbar clicked clicked at x=1883, y=1752
TRACE: Entering ShowDesktop at line 1678
...
and similarly when you click on some other UI element
DEBUG: Clicked UI element ClassName: Taskbar.TaskListButtonAutomationPeer
TRACE: Leaving OnMouseClick (1929)
...
Classname determines whether an action should take place or not. Also please clarify if this happens on your primary screen or on secondary screens (taskbar). Clarify whether you are using vanilla Windows 11 taskbar or something else.
Thx
Hi @m1lhaus
Thank you for your response!
-
Yes, the mod version is 1.3.
-
I only use one screen.
-
I used the Explorer Patcher before, but now it is uninstalled.
After reinstallation, I run all the repair commands, such us:
- sfc /scannow
- dism /online /cleanup-image /scanhealth
- dism /online /cleanup-image /restorehealth
- dism /online /cleanup-image /checkhealth
- dism /online /cleanup-image /analyzecomponentstore
- dism /online /cleanup-image /startcomponentcleanup
- sfc /scannow
-
I have the taskbar widgets disabled via Shut Up 10++.
-
I followed your steps and then executed the following two actions:
- Doubleclick the empty space on the taskbar
- Doubleclick some element on the taskbar where no action should occur
- The results:
DEBUG: Clicked UI element ClassName: Shell_TrayWnd
DEBUG: Taskbar clicked clicked at x=2553, y=2089
TRACE: Entering ShowDesktop at line 1678
INFO: Sending ShowDesktop message
DEBUG: Clicked UI element ClassName: Shell_TrayWnd
DEBUG: Taskbar clicked clicked at x=2102, y=2100
TRACE: Entering ShowDesktop at line 1678
INFO: Sending ShowDesktop message
It seems the class name is not set correctly.
- Full logs:
empty_space_clicks_log.txt
I much appreciate your help!
Huh, it almost seems like something is broken on your end after uninstallation of explorer patcher. Can you please try to use inspect.exe from Windows 10 SDK and click on the taskbar. It will shows full heiearchy of Windows. Here is an example if I click empty space on my taskbar.
I am attaching inspect.exe binary. I hope it doesn't need any additional .dll that comes with the SDK.
You should see classname of elements changing when you click around on the taskbar.
When I run the app, I am getting an error: "One or more keyboard shortcuts for Inspect may not work since
another application is already using them".
Here is what the inspector says when I click on the empty space (sorry, some text strings are in Polish):
inspect.txt
In the past I also used the following mods:
- 7+ taskbar tweaker combined with ExplorerPatcher and Translucent
- StartAllBack
EDIT:
I discovered that the problem occurs when I start File Explorer with QTTabBar installed: http://qttabbar.wikidot.com/
It looks like that this mod is not compatible with Click on the empty taskbar space.
To reproduce:
- Install QTTabBar http://qttabbar.wdfiles.com/local--files/qttabbar1/QTTabBar%202048%20Beta2.zip
- Run File Explorer;
- Open at least two tabs in FE;
- Close File Explorer and run it again;
- The issue described in the topic now starts to occur.
I was able to reproduce it the VM. Cursor position evaluated by UIAutomation API returns top level classname and not child element as it should on Windows 11. And since top level class is the original taskbar name (before Windows 11 taskbar was introduced) that is returned on Windows 10 (or Windows 11 with Explorer Patcher), the plugin still works. Even on taskbar UI elements where it should not work. I have no idea how to get around that and I really don't wish to spend more time on this.
So I would recommend you to use either mentioned extension or this plugin - not both.