Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: 73d269db by wurstsalat at 2022-05-26T14:33:08+02:00 imprv: Avatars: Render emojis correctly
Fixes: #10905
- - - - -
2 changed files:
- gajim/gtk/avatar.py - gajim/gtk/emoji_data.py
Changes:
===================================== gajim/gtk/avatar.py ===================================== @@ -38,6 +38,8 @@ from gajim.common.const import StyleAttr
from .const import DEFAULT_WORKSPACE_COLOR +from .emoji_data import is_emoji +from .emoji_data import get_emoji_font from .util import load_icon_surface from .util import load_pixbuf from .util import text_to_color @@ -79,7 +81,11 @@ def generate_avatar(letters: str, context.fill()
# Draw letters - context.select_font_face('sans-serif', + if is_emoji(letters): + font_face = get_emoji_font() + else: + font_face = 'sans-serif' + context.select_font_face(font_face, cairo.FontSlant.NORMAL, cairo.FontWeight.NORMAL) context.set_font_size(font_size)
===================================== gajim/gtk/emoji_data.py ===================================== @@ -17,6 +17,7 @@ from typing import Optional
import re +import sys import weakref from enum import IntEnum from collections import OrderedDict @@ -61,6 +62,12 @@ def get_emoji_pixbuf(codepoints: str) -> Optional[GdkPixbuf.Pixbuf]: return pixbuf
+def get_emoji_font() -> str: + if sys.platform == 'win32': + return 'Segoe UI Emoji' + return 'Noto Color Emoji' + + class EmojiData(OrderedDict): def __getitem__(self, key): try:
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/73d269db1a3a72a5a4b91c9d24b35a3c2...