From 37d79fb313ef49571b5a11c7db5395a282cebfd2 Mon Sep 17 00:00:00 2001
From: Nico Alt <nicoalt@posteo.org>
Date: Sun, 7 Mar 2021 12:00:00 +0000
Subject: [PATCH] Stay on top of chat input

Fixes #89
---
 briar-gtk/briar_gtk/private_chat/private_chat_presenter.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/briar-gtk/briar_gtk/private_chat/private_chat_presenter.py b/briar-gtk/briar_gtk/private_chat/private_chat_presenter.py
index 53f7e3f..34b49bc 100644
--- a/briar-gtk/briar_gtk/private_chat/private_chat_presenter.py
+++ b/briar-gtk/briar_gtk/private_chat/private_chat_presenter.py
@@ -201,7 +201,7 @@ class PrivateChatPresenter:
         self._vscrollbar_min_height = vscollbar.get_preferred_height()[0]
 
         vadjustment = chat_input_scroll.get_vadjustment()
-        vadjustment.connect_after("notify", self._on_upper_notify)
+        vadjustment.connect_after("notify::upper", self._on_upper_notify)
 
     # pylint: disable=unused-argument, line-too-long
     def _on_upper_notify(self, g_object, param_spec):
@@ -210,7 +210,7 @@ class PrivateChatPresenter:
         """
         chat_input_scroll = self._view.builder.get_object("chat_input_scroll")
         vadjustment = chat_input_scroll.get_vadjustment()
-        vadjustment.value = vadjustment.get_upper() - vadjustment.get_page_size()  # noqa
+        vadjustment.set_value(vadjustment.get_upper() - vadjustment.get_page_size())  # noqa
 
         # Hack for vscrollbar not requiring space and making TextView higher
         vscollbar = chat_input_scroll.get_vscrollbar()
@@ -272,7 +272,8 @@ class PrivateChatPresenter:
         # Shift is not pressed
         if (event.state & Gdk.ModifierType.SHIFT_MASK) == \
                 Gdk.ModifierType.SHIFT_MASK:
-            return False
+            widget.get_buffer().insert_at_cursor("\n", 1)
+            return True
         # Text does not only contain whitespace
         if len(self._get_text_from_text_view(widget).strip()) == 0:
             return False
-- 
GitLab