Philipp Hörist pushed to branch master at gajim / gajim
Commits:
d828a0ea by Nicoco at 2023-10-15T19:32:04+00:00
feat: ChatBanner: Show contact tooltip when hovering the avatar
- - - - -
2 changed files:
- gajim/data/gui/chat_banner.ui
- gajim/gtk/chat_banner.py
Changes:
=====================================
gajim/data/gui/chat_banner.ui
=====================================
@@ -118,6 +118,8 @@
<object class="GtkImage" id="avatar_image">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="has-tooltip">True</property>
+ <signal name="query-tooltip" handler="_on_query_tooltip" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
=====================================
gajim/gtk/chat_banner.py
=====================================
@@ -43,6 +43,7 @@
from gajim.gtk.menus import get_private_chat_menu
from gajim.gtk.menus import get_self_contact_menu
from gajim.gtk.menus import get_singlechat_menu
+from gajim.gtk.tooltips import ContactTooltip
from gajim.gtk.util import AccountBadge
@@ -276,6 +277,20 @@ def _update_avatar(self) -> None:
assert isinstance(surface, cairo.ImageSurface)
self._ui.avatar_image.set_from_surface(surface)
+ self._avatar_image_tooltip = ContactTooltip()
+
+ def _on_query_tooltip(self,
+ _img: Gtk.Image,
+ _x_coord: int,
+ _y_coord: int,
+ _keyboard_mode: bool,
+ tooltip: Gtk.Tooltip) -> bool:
+ if not isinstance(self._contact, BareContact):
+ return False
+ res, widget = self._avatar_image_tooltip.get_tooltip(self._contact)
+ tooltip.set_custom(widget)
+ return res
+
def _update_visitor_button(self) -> None:
if not isinstance(self._contact, GroupchatContact):
self._ui.visitor_box.set_visible(False)
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/d828a0eadb7af45de9887fa6f2d35cbf90c37c1b
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/d828a0eadb7af45de9887fa6f2d35cbf90c37c1b
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]