Daniel Brötzmann pushed to branch gtk4 at gajim / gajim
Commits:
5dfffcf3 by wurstsalat at 2024-11-07T19:35:55+01:00
refactor: Rosters: Don't unfocus row when showing popoper
- - - - -
2 changed files:
- gajim/gtk/groupchat_roster.py
- gajim/gtk/roster.py
Changes:
=====================================
gajim/gtk/groupchat_roster.py
=====================================
@@ -87,8 +87,9 @@ def __init__(self) -> None:
self._roster = self._ui.roster_treeview
- self._menu_popover = GajimPopover(None)
- self._ui.box.append(self._menu_popover)
+ self._popover_menu = GajimPopover(None)
+ self._connect(self._popover_menu, "closed",
self._on_popover_menu_closed)
+ self._ui.box.append(self._popover_menu)
self._filter_string = ""
self._modelfilter = self._store.filter_new()
@@ -180,9 +181,6 @@ def switch_contact(self, contact: types.ChatContactT) ->
None:
if self._contact.is_joined:
self._load_roster()
- def _on_focus_out(self, _event_controller_focus: Gtk.EventControllerFocus)
-> None:
- self._ui.roster_treeview.get_selection().unselect_all()
-
def _query_tooltip(
self,
widget: Gtk.Widget,
@@ -474,9 +472,18 @@ def _show_contact_menu(self, nick: str, x: float, y:
float) -> None:
self._contact.account, self_contact, contact
)
- self._menu_popover.set_menu_model(menu)
- self._menu_popover.set_pointing_to_coord(x, y)
- self._menu_popover.popup()
+ self._popover_menu.set_menu_model(menu)
+ self._popover_menu.set_pointing_to_coord(x, y)
+ self._popover_menu.popup()
+ self._popover_menu_open = True
+
+ def _on_popover_menu_closed(self, _popover: GajimPopover) -> None:
+ self._popover_menu_open = False
+ self._ui.roster_treeview.get_selection().unselect_all()
+
+ def _on_focus_out(self, _event_controller_focus: Gtk.EventControllerFocus)
-> None:
+ if not self._popover_menu:
+ self._ui.roster_treeview.get_selection().unselect_all()
def _on_muc_state_changed(
self, contact: GroupchatContact, _signal_name: str
=====================================
gajim/gtk/roster.py
=====================================
@@ -78,6 +78,7 @@ def __init__(self, account: str) -> None:
self.set_child(box)
self._popover_menu = GajimPopover(None)
+ self._connect(self._popover_menu, "closed",
self._on_popover_menu_closed)
box.append(self._popover_menu)
gesture_middle_click = Gtk.GestureClick(button=Gdk.BUTTON_MIDDLE)
@@ -398,10 +399,16 @@ def _show_contact_menu(self, jid: str, x: float, y:
float) -> None:
self._popover_menu.set_menu_model(menu)
self._popover_menu.set_pointing_to_coord(x, y)
self._popover_menu.popup()
+ self._popover_menu_open = True
- def _on_focus_out(self, _event_controller_focus: Gtk.EventControllerFocus)
-> None:
+ def _on_popover_menu_closed(self, _popover: GajimPopover) -> None:
+ self._popover_menu_open = False
self._roster.get_selection().unselect_all()
+ def _on_focus_out(self, _event_controller_focus: Gtk.EventControllerFocus)
-> None:
+ if not self._popover_menu:
+ self._roster.get_selection().unselect_all()
+
def set_search_string(self, text: str) -> None:
self._filter_string = text.lower()
self._filter_enabled = bool(text)
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/5dfffcf32cccf94a9ce0b27deaf0cd5e9a065704
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/5dfffcf32cccf94a9ce0b27deaf0cd5e9a065704
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]