mirror of
https://github.com/aclist/dztui.git
synced 2026-11-13 05:11:52 +01:00
fix: multiple signals being stacked
This commit is contained in:
1 parent
0907f5a474
commit
65e04c2fc4
1 file changed
+10
-1
@@ -230,10 +230,19 @@ class ToggleField(Gtk.Box):
|
|||||||
self.pack_start(self.radio1, expand=False, fill=False, padding=0)
|
self.pack_start(self.radio1, expand=False, fill=False, padding=0)
|
||||||
self.pack_start(self.radio2, expand=False, fill=False, padding=0)
|
self.pack_start(self.radio2, expand=False, fill=False, padding=0)
|
||||||
|
|
||||||
|
self.signal_id: int | None = None
|
||||||
|
|
||||||
|
def disconnect_signal(self) -> None:
|
||||||
|
if self.signal_id is not None:
|
||||||
|
self.radio1.disconnect(self.signal_id)
|
||||||
|
|
||||||
def set_suboption_active(self, state: bool) -> None:
|
def set_suboption_active(self, state: bool) -> None:
|
||||||
# NOTE: defer connection of signal until after state is set
|
# NOTE: defer connection of signal until after state is set
|
||||||
self.radio2.set_active(state)
|
self.radio2.set_active(state)
|
||||||
self.radio1.connect("toggled", self._on_radio_toggled, self.context)
|
self.disconnect_signal()
|
||||||
|
self.signal_id = self.radio1.connect(
|
||||||
|
"toggled", self._on_radio_toggled, self.context
|
||||||
|
)
|
||||||
|
|
||||||
def _on_radio_toggled(self, button: Gtk.RadioButton, context: Preferences) -> None:
|
def _on_radio_toggled(self, button: Gtk.RadioButton, context: Preferences) -> None:
|
||||||
self.controller.toggle_config(context)
|
self.controller.toggle_config(context)
|
||||||
|
|||||||
Reference in new issue
Block a user