Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: 05184e42 by wurstsalat at 2022-05-31T16:23:47+02:00 imprv: Windows: Enable native emoji chooser
- - - - -
5 changed files:
- gajim/gtk/application.py - gajim/gtk/controls/base.py - gajim/gtk/conversation/plain_widget.py - gajim/gtk/message_input.py - gajim/gtk/preferences.py
Changes:
===================================== gajim/gtk/application.py ===================================== @@ -232,7 +232,9 @@ def _startup(self, _application: GajimApplication) -> None: idle.Monitor.set_interval(app.settings.get('autoawaytime') * 60, app.settings.get('autoxatime') * 60)
- if sys.platform in ('win32', 'darwin'): + if sys.platform == 'darwin': + # TODO: Remove if colored emoji rendering works well on + # Windows and MacOS from gajim.gui.emoji_chooser import emoji_chooser emoji_chooser.load()
===================================== gajim/gtk/controls/base.py ===================================== @@ -491,7 +491,9 @@ def delegate_action(self, action: str) -> int: return Gdk.EVENT_STOP
if action == 'show-emoji-chooser': - if sys.platform in ('win32', 'darwin'): + if sys.platform == 'darwin': + # TODO: Remove if colored emoji rendering works well on + # Windows and MacOS self.xml.emoticons_button.get_popover().show() return Gdk.EVENT_STOP self.msg_textview.emit('insert-emoji') @@ -1297,7 +1299,9 @@ def set_emoticon_popover(self) -> None: if not app.settings.get('emoticons_theme'): return
- if sys.platform in ('win32', 'darwin'): + if sys.platform == 'darwin': + # TODO: Remove if colored emoji rendering works well on + # Windows and MacOS emoji_chooser.text_widget = self.msg_textview self.xml.emoticons_button.set_popover(emoji_chooser) return
===================================== gajim/gtk/conversation/plain_widget.py ===================================== @@ -17,6 +17,7 @@ from typing import Any
import logging +import sys
from gi.repository import Gtk from gi.repository import Pango @@ -52,15 +53,17 @@ def __init__(self, account: str, selectable: bool) -> None:
self._account = account
- # We use a Gtk.Textview on Windows and MacOS, since there is no support - # for rendering color fonts (Emojis) on Windows/MacOS yet, see: - # https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/244 + # We use a Gtk.Textview on MacOS, since there is no support + # for rendering color fonts (Emojis) on MacOS yet, see: + # https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/289 # https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/9 - # if app.settings.get('dev_use_message_label'): - # self._text_widget = MessageLabel(self._account, selectable) - # else: - # self._text_widget = MessageTextview(self._account) - self._text_widget = MessageLabel(self._account, selectable) + if sys.platform == 'darwin': + if app.settings.get('dev_use_message_label'): + self._text_widget = MessageLabel(self._account, selectable) + else: + self._text_widget = MessageTextview(self._account) + else: + self._text_widget = MessageLabel(self._account, selectable) self.add(self._text_widget)
def add_content(self, block: PlainBlock) -> None:
===================================== gajim/gtk/message_input.py ===================================== @@ -19,6 +19,8 @@
from typing import Any
+import sys + from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf @@ -222,6 +224,10 @@ def apply_formatting(self, formatting: str) -> None: buf.get_iter_at_offset(end_offset + 2))
def replace_emojis(self) -> None: + if sys.platform != 'darwin': + # TODO: Remove if colored emoji rendering works well on MacOS + return + theme = app.settings.get('emoticons_theme') if not theme or theme == 'font': return
===================================== gajim/gtk/preferences.py ===================================== @@ -116,7 +116,9 @@ def __init__(self) -> None: self._ui.connect_signals(self)
self.show_all() - if sys.platform not in ('win32', 'darwin'): + if sys.platform != 'darwin': + # TODO: Remove if colored emoji rendering works well on + # Windows and MacOS self._ui.emoji.hide()
def get_ui(self): @@ -701,7 +703,9 @@ def _on_dark_theme(value: str, *args: Any) -> None:
class Emoji(PreferenceBox): def __init__(self, *args: Any) -> None: - if sys.platform not in ('win32', 'darwin'): + if sys.platform != 'darwin': + # TODO: Remove if colored emoji rendering works well on + # Windows and MacOS PreferenceBox.__init__(self, []) return
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/05184e4292fb6b027f33bbe14ea59fcc0...