fix: unblock signals during continuous keypress

This commit is contained in:
aclist committed 2025-09-10 16:28:33 +09:00
1 parent d56bc5a57d
commit 62b00507e5
1 file changed
+6 -2
+6 -2
View File
@@ -669,11 +669,12 @@ def suppress_signal(
) -> None: ) -> None:
func = getattr(owner, func_name) func = getattr(owner, func_name)
if state: if state:
logger.debug(f"Unblocking {func_name} for {widget}") logger.debug(f"Blocking {func_name} for {widget}")
widget.handler_block_by_func(func) widget.handler_block_by_func(func)
else: else:
logger.debug(f"Blocking {func_name} for {widget}") logger.debug(f"Unblocking {func_name} for {widget}")
widget.handler_unblock_by_func(func) widget.handler_unblock_by_func(func)
App.treeview.sel_blocked = state
def pluralize(plural: str, count: int) -> str: def pluralize(plural: str, count: int) -> str:
@@ -1650,6 +1651,7 @@ class TreeView(Gtk.TreeView):
self.view = WindowContext.MAIN_MENU self.view = WindowContext.MAIN_MENU
self.page = WindowContext.MAIN_MENU self.page = WindowContext.MAIN_MENU
self.subpage = None self.subpage = None
self.sel_blocked = False
self.set_fixed_height_mode(True) self.set_fixed_height_mode(True)
@@ -2038,6 +2040,7 @@ class TreeView(Gtk.TreeView):
return False return False
else: else:
if is_navkey(event.keyval): if is_navkey(event.keyval):
if self.sel_blocked is False:
suppress_signal( suppress_signal(
App.treeview, App.treeview,
App.treeview.selected_row, App.treeview.selected_row,
@@ -2078,6 +2081,7 @@ class TreeView(Gtk.TreeView):
Suppresses spamming on keydown Suppresses spamming on keydown
""" """
if is_navkey(event.keyval): if is_navkey(event.keyval):
if self.sel_blocked is True:
suppress_signal( suppress_signal(
App.treeview, App.treeview,
App.treeview.selected_row, App.treeview.selected_row,