mirror of
https://github.com/aclist/dztui.git
synced 2026-10-31 15:12:48 +01:00
fix: unblock signals during continuous keypress
This commit is contained in:
1 parent
d56bc5a57d
commit
62b00507e5
1 file changed
+18
-14
+18
-14
@@ -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,12 +2040,13 @@ class TreeView(Gtk.TreeView):
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
if is_navkey(event.keyval):
|
if is_navkey(event.keyval):
|
||||||
suppress_signal(
|
if self.sel_blocked is False:
|
||||||
App.treeview,
|
suppress_signal(
|
||||||
App.treeview.selected_row,
|
App.treeview,
|
||||||
"_on_tree_selection_changed",
|
App.treeview.selected_row,
|
||||||
True,
|
"_on_tree_selection_changed",
|
||||||
)
|
True,
|
||||||
|
)
|
||||||
if keyname.isnumeric() and int(keyname) > 0:
|
if keyname.isnumeric() and int(keyname) > 0:
|
||||||
digit = int(keyname) - 1
|
digit = int(keyname) - 1
|
||||||
grid.right_panel.filters_vbox.toggle_check(digit)
|
grid.right_panel.filters_vbox.toggle_check(digit)
|
||||||
@@ -2078,12 +2081,13 @@ class TreeView(Gtk.TreeView):
|
|||||||
Suppresses spamming on keydown
|
Suppresses spamming on keydown
|
||||||
"""
|
"""
|
||||||
if is_navkey(event.keyval):
|
if is_navkey(event.keyval):
|
||||||
suppress_signal(
|
if self.sel_blocked is True:
|
||||||
App.treeview,
|
suppress_signal(
|
||||||
App.treeview.selected_row,
|
App.treeview,
|
||||||
"_on_tree_selection_changed",
|
App.treeview.selected_row,
|
||||||
False,
|
"_on_tree_selection_changed",
|
||||||
)
|
False,
|
||||||
|
)
|
||||||
selection = self.get_selection()
|
selection = self.get_selection()
|
||||||
self._on_tree_selection_changed(selection)
|
self._on_tree_selection_changed(selection)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user