Philipp Hörist pushed to branch master at gajim / gajim


Commits:
1d556e2a by Philipp Hörist at 2025-01-24T22:56:38+01:00
cfix: Settings: Fix infinite loops with entry settings

- - - - -


1 changed file:

- gajim/gtk/settings.py


Changes:

=====================================
gajim/gtk/settings.py
=====================================
@@ -452,8 +452,8 @@ def __init__(self, *args: Any) -> None:
 
         self.entry = Gtk.Entry()
         self.entry.set_text(str(self.setting_value))
-        self._text_handler_id = self._connect(
-            self.entry, "notify::text", self.on_text_change
+        self._changed_handler_id = self._connect(
+            self.entry, "changed", self._on_text_change
         )
         self.entry.set_valign(Gtk.Align.CENTER)
         self.entry.set_alignment(1)
@@ -470,11 +470,13 @@ def __init__(self, *args: Any) -> None:
         )
 
     def _on_setting_changed(self, value: str, *args: Any) -> None:
-        with self.entry.handler_block(self._text_handler_id):
-            # If the handler is not blocked we enter a infinite loop
+        if self.entry.get_text() == value:
+            return
+
+        with self.entry.handler_block(self._changed_handler_id):
             self.entry.set_text(value)
 
-    def on_text_change(self, *args: Any) -> None:
+    def _on_text_change(self, *args: Any) -> None:
         text = self.entry.get_text()
         self.set_value(text)
 



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/1d556e2a364c79e03be9535a4956050f07d3369a

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/1d556e2a364c79e03be9535a4956050f07d3369a
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to