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


Commits:
f3d11359 by Philipp Hörist at 2025-04-08T20:12:51+02:00
cq: Migration: Improve type annotations

- - - - -
44df6534 by Philipp Hörist at 2025-04-08T18:20:16+00:00
fix: EmojiChooser: Fix segfault after choosing emoji

- - - - -


3 changed files:

- gajim/common/storage/archive/migration.py
- gajim/gtk/emoji_chooser.py
- gajim/gtk/main.py


Changes:

=====================================
gajim/common/storage/archive/migration.py
=====================================
@@ -236,7 +236,7 @@ def _v10(self) -> None:
                 sa.select(mod.Moderation.fk_occupant_pk),
                 sa.select(mod.DisplayedMarker.fk_occupant_pk),
             )
-            occupant_pks = set(conn.scalars(stmt))
+            occupant_pks: set[int | None] = set(conn.scalars(stmt))
             occupant_pks.discard(None)
 
             
conn.execute(sa.delete(mod.Occupant).where(mod.Occupant.pk.not_in(occupant_pks)))
@@ -255,7 +255,7 @@ def _v10(self) -> None:
                 sa.select(mod.Message.fk_remote_pk),
             )
 
-            occupant_pks = set(conn.scalars(stmt))
+            occupant_pks: set[int | None] = set(conn.scalars(stmt))
             occupant_pks.discard(None)
 
             
conn.execute(sa.delete(mod.Remote).where(mod.Remote.pk.not_in(occupant_pks)))


=====================================
gajim/gtk/emoji_chooser.py
=====================================
@@ -5,7 +5,6 @@
 from __future__ import annotations
 
 from typing import Any
-from typing import cast
 
 from gi.repository import GLib
 from gi.repository import Gtk
@@ -25,9 +24,9 @@ def set_emoji_picked_func(self, func: Any) -> None:
 
     def _on_closed(self, _popover: Gtk.EmojiChooser) -> None:
         def _cleanup() -> None:
-            parent = cast(Gtk.MenuButton, self.get_parent())
-            parent.set_popover(None)
             self.disconnect_by_func(self._emoji_picked_func)
             self._emoji_picked_func = None
 
+        # We don't want to assume the 'emoji-picked' signal
+        # is raised before 'closed'
         GLib.idle_add(_cleanup)


=====================================
gajim/gtk/main.py
=====================================
@@ -176,6 +176,11 @@ def get_chat_stack(self) -> ChatStack:
     def get_emoji_chooser(self) -> EmojiChooser:
         if self._emoji_chooser is None:
             self._emoji_chooser = EmojiChooser()
+
+        parent = cast(Gtk.MenuButton | None, self._emoji_chooser.get_parent())
+        if parent is not None:
+            parent.set_popover(None)
+
         return self._emoji_chooser
 
     def show(self) -> None:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/3517144f68bd1ef137e87e748690794d564d71a8...44df6534f371823335a4df88ae4116e90c8fbf4c

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/3517144f68bd1ef137e87e748690794d564d71a8...44df6534f371823335a4df88ae4116e90c8fbf4c
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