Closed ArsenArsen closed 7 years ago
Which key did you try to register? I cannot test unless I am able to reproduce this myself.
Oh whoops. Sorry. It fails if a keybind is already registered. Does not matter which one.
EDIT: I assume it tries to unregister it. My suggested solution would be failing the bind and leaving it as unregistered, with no sequence.
Bug confirmed, I was able to reproduce it. Working on a solution
Okay, it's a simple copy paste error… Of course, trying to unregister when unregistering fails is a nogo.
Apparently, the call to XSync has more sideeffects than expected. As soon as one registration fails, all subsequent ones will as well. In other words, XSync renders QHotkey unusable after the first fail.
Without using this, however, no errors are reported at all. I will keep this issue open, until I can find a way to report errors properly, but I will remove XSync to make it usable again.
EDIT: With the laters qpm release, You should already have a "working" version (I replaced XSync by XFlush a while ago). but the log error persists
Seems to have been fixed. Thanks! One question stands though, how do we actually properly handle registration failures?
Actually, seems that isRegistered()
keeps returning true, which would be wrong because the hotkey is not really registered.
Just like I said, error detection is not working yet. Neither can I receive error messages, nor can I detect whether registerings works or not.
Right now, there is no way to detect errors. I will have to find out why it is not possible to register hotkeys after the first fail (if error reporting is enabled) and find a fix.
Ah, I see. Excuse me. I'll keep the issue open for future reference. Thanks!
Apparently, it was just me not clearing the static error flag...
When a
BadAccess
failure occurs during registering shortcuts QHotkey will go into an infinite loop, spamming the console each iteration.This time I tested it seems to have crashed. Segmentation fault @![](http://i.imgur.com/1n6B6pp.png)
qhotkey_x11.cpp:133
(TheXSync
line).Tried again, the SIGSEGV is reproducable.