Daniel Brötzmann pushed to branch newcontrol at gajim / gajim
Commits: ae457655 by wurstsalat at 2022-07-23T21:59:56+02:00 fix: Preserve primary clipboard throughout switching chats
- - - - -
1 changed file:
- gajim/gtk/chat_stack.py
Changes:
===================================== gajim/gtk/chat_stack.py ===================================== @@ -20,6 +20,7 @@ import sys import logging
+from gi.repository import Gdk from gi.repository import GLib from gi.repository import Gio from gi.repository import Gtk @@ -97,6 +98,10 @@ def get_control_stack(self) -> ControlStack: return self._control_stack
def show_chat(self, account: str, jid: JID) -> None: + # Store (preserve) primary clipboard and restore it after switching + clipboard = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY) + old_primary_clipboard = clipboard.wait_for_text() + if self._current_contact is not None: self._current_contact.disconnect_all_from_obj(self)
@@ -151,6 +156,10 @@ def show_chat(self, account: str, jid: JID) -> None:
self.set_transition_type(Gtk.StackTransitionType.NONE) self.set_visible_child_name('controls') + + if old_primary_clipboard is not None: + GLib.idle_add(clipboard.set_text, old_primary_clipboard, -1) + GLib.idle_add(self._message_action_box.msg_textview.grab_focus)
def _on_room_password_required(self,
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/ae45765584c4a0ff321ea37aef49a92c8...