mirror of
https://github.com/mumble-voip/mumble.git
synced 2026-03-03 00:46:56 -05:00
Global shortcuts not registered when dragging Mumble windows #2501
Labels
No labels
GlobalShortcuts
Hacktoberfest
accessibility
acl
asio
audio
bonjour
bsd
bug
build
certificate
ci
client
code
documentation
external-bug
feature-request
gRPC
github
good first issue
help wanted
help-needed
ice
installer
linux
macOS
needs-ckeck-with-latest-version
needs-more-input
overlay
positional audio
priority/P0 - Blocker
priority/P1 - Critical
priority/P2 - Important
priority/P3 - Somewhat important
priority/P4 - Low
public-server-registration
qt
recording
release-management
server
stale-no-response
stale-support
support
task
test
theme
translation
triage
ui
windows
wontfix
x64
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/mumble-mumble-voip#2501
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Snowknight26 on GitHub (May 30, 2022).
Description
Whenever a window is being dragged that belongs to the Mumble process, global shortcuts aren't registered. This seems to affect all windows that I tried: main window, settings window, help window, etc. Both keyboard and mouse shortcuts are affected as well.
For example, if you have Push-to-Talk bound to Mouse 5, dragging any Mumble prevents Mouse 5 from being registered as being pressed until the drag event stops.
In the video below, I have a low-level keyboard/mouse hook set, with each key/button press output to the console application on the left. You can see that Mouse 5 (WM_XBUTTON with a 'B' value of '5') corresponds to PTT. When dragging (anything shown after WM_LBUTTONDOWN and before WM_LBUTTONUP [left mouse button down, left mouse button down, respectively]), however, even though Mouse 5 is pressed, Mumble doesn't recognize it.
Steps to reproduce
Mumble version
1.4.230
Mumble component
Client
OS
Windows
Reproducible?
Yes
Additional information
No response
Relevant log output
No response
Screenshots
https://user-images.githubusercontent.com/5608270/170920865-7ab56d64-1a10-4937-acff-010b61561d5b.mp4
@Krzmbrzl commented on GitHub (May 30, 2022):
My gut feeling tells me that this might be a limitation of the Windows API that we use for shortcuts 🤔
@davidebeatrici could this be the case?
@Snowknight26 commented on GitHub (Aug 15, 2022):
I've only minimally researched this but it appears that that Windows blocks messages to the main thread during a window move/resize operation. The solution seems to be to create a new thread, separate from the main GUI thread, to process input messages.
I've tested other programs such as foobar2000 which allow global hotkeys to continue to be registered during window move/resize events, so it's definitely possible.
References:
@davidebeatrici commented on GitHub (Aug 15, 2022):
Yes, that's why in a lot of programs the progress bar freezes during a move/resize operation.
I guess we'll have to create a hidden invisible window.
@Flupster commented on GitHub (Aug 22, 2022):
Another note to add
If you drag a user or channel while your push to talk is activated and then let go of your push to talk while the user / channel is now off the mumble window the push to talk will not register the deactivation of the push to talk and will be activated indefinitely or until you activate your push to talk for a second time
@Krzmbrzl commented on GitHub (Aug 22, 2022):
@Flupster does this also happen with Mumble 1.4.274 (released yesterday)? 'cause there has been a fix thst I think might also apply to your scenario
@Snowknight26 commented on GitHub (Aug 22, 2022):
Yep, definitely happens with 1.4.274 as well.
@Flupster commented on GitHub (Aug 24, 2022):
As an example I've created a quick video to demonstrate the unwanted behaviour
Any time the PTT is activated in the video for an extended period of time the PTT is actually not being held anymore
https://user-images.githubusercontent.com/8060924/186397566-659df633-9022-462a-828e-d47bbc414337.mp4