From e281fb6839034f904f49c787bbbd5e17cb2f7a1b Mon Sep 17 00:00:00 2001
From: Andrey Gursky <andrey.gursky@e-mail.ua>
Date: Thu, 8 Nov 2018 02:25:45 +0100
Subject: [PATCH] Fix clipboard paste in inactive window

Fixes #9427
---
 gajim/message_textview.py | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/gajim/message_textview.py b/gajim/message_textview.py
index dcafbc1da6..deb169a60c 100644
--- a/gajim/message_textview.py
+++ b/gajim/message_textview.py
@@ -98,13 +98,9 @@ class MessageTextView(Gtk.TextView):
 
         self.connect('paste-clipboard', self._paste_clipboard)
         self.connect_after('paste-clipboard', self._after_paste_clipboard)
-        self.connect('focus-in-event', self._on_focus_in)
+        self.connect('grab-focus', self._on_grab_focus)
         self.connect('focus-out-event', self._on_focus_out)
 
-        start = buffer_.get_bounds()[0]
-        buffer_.insert_with_tags(
-            start, self.PLACEHOLDER, self.placeholder_tag)
-
     def _on_buffer_changed(self, *args):
         text = self.get_text()
         # Because of inserting and removing PLACEHOLDER text
@@ -136,11 +132,14 @@ class MessageTextView(Gtk.TextView):
         text = buf.get_text(start, end, True)
         return text == self.PLACEHOLDER
 
-    def _on_focus_in(self, *args):
+    def remove_placeholder(self):
         if self.is_placeholder():
             self.get_buffer().set_text('')
         self.toggle_speller(True)
 
+    def _on_grab_focus(self, *args):
+        self.remove_placeholder()
+
     def _on_focus_out(self, *args):
         buf = self.get_buffer()
         start, end = buf.get_bounds()
@@ -155,9 +154,6 @@ class MessageTextView(Gtk.TextView):
             spell_view = Gspell.TextView.get_from_gtk_text_view(self)
             spell_view.set_inline_spell_checking(activate)
 
-    def remove_placeholder(self):
-        self._on_focus_in()
-
     @staticmethod
     def _paste_clipboard(textview):
         if textview.is_placeholder():
-- 
GitLab