another attempt to fix the keybinding problem for plugins.
This commit is contained in:
@ -23,5 +23,5 @@
|
|||||||
# Fork of Orca Screen Reader (GNOME)
|
# Fork of Orca Screen Reader (GNOME)
|
||||||
# Original source: https://gitlab.gnome.org/GNOME/orca
|
# Original source: https://gitlab.gnome.org/GNOME/orca
|
||||||
|
|
||||||
version = "2025.04.20"
|
version = "2025.06.05"
|
||||||
codeName = "plugins"
|
codeName = "plugins"
|
||||||
|
@ -182,7 +182,14 @@ class PluginSystemManager:
|
|||||||
bindings = plugin.get_bindings()
|
bindings = plugin.get_bindings()
|
||||||
for binding in bindings.keyBindings:
|
for binding in bindings.keyBindings:
|
||||||
logger.info(f"Adding binding: {binding.keysymstring} with modifiers {binding.modifiers}")
|
logger.info(f"Adding binding: {binding.keysymstring} with modifiers {binding.modifiers}")
|
||||||
|
# Check if binding already exists to avoid duplicates
|
||||||
|
if not active_script.getKeyBindings().hasKeyBinding(binding, "keysNoMask"):
|
||||||
active_script.getKeyBindings().add(binding)
|
active_script.getKeyBindings().add(binding)
|
||||||
|
# Register key grab at system level - this was missing!
|
||||||
|
from . import cthulhu
|
||||||
|
grab_ids = cthulhu.addKeyGrab(binding)
|
||||||
|
if grab_ids:
|
||||||
|
binding._grab_ids = grab_ids
|
||||||
|
|
||||||
def _on_settings_changed(self, app=None):
|
def _on_settings_changed(self, app=None):
|
||||||
"""Re-register all plugin keybindings when settings change."""
|
"""Re-register all plugin keybindings when settings change."""
|
||||||
|
Reference in New Issue
Block a user