From 3ef4d3ddb15adb849bd843abe72a6559174356ff Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Tue, 29 Sep 2020 20:29:42 -0400
Subject: [PATCH] smartlist: always refocus to chatview when showing a
 conversation

Gitlab: #116
Change-Id: Ibf2fdf3eeeb2e36c08450ef99ac42ca48913a0ed
---
 src/mainview/MainView.qml             | 19 ++++++++++++-------
 src/mainview/components/SidePanel.qml |  3 +++
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml
index 774614bb2..2f175fe8d 100644
--- a/src/mainview/MainView.qml
+++ b/src/mainview/MainView.qml
@@ -442,6 +442,10 @@ Window {
     SidePanel {
         id: mainViewWindowSidePanel
 
+        onFocusMessageWebViewRequested: {
+            communicationPageMessageWebView.focusMessageWebView()
+        }
+
         // TODO: remove the evil in this slot
         onConversationSmartListNeedToAccessMessageWebView: {
             communicationPageMessageWebView.headerUserAliasLabelText = currentUserAlias
@@ -475,12 +479,14 @@ Window {
             callStackView.setLinkedWebview(communicationPageMessageWebView)
 
             if (mainViewStack.find(function (item, index) {
-                return item.objectName === "communicationPageMessageWebView"
-            }) || sidePanelViewStack.find(function (item, index) {
-                return item.objectName === "communicationPageMessageWebView"
-            })) {
-                if (!callStackViewShouldShow)
+                    return item.objectName === "communicationPageMessageWebView"
+                }) || sidePanelViewStack.find(function (item, index) {
+                    return item.objectName === "communicationPageMessageWebView"
+                })) {
+                if (!callStackViewShouldShow) {
+                    communicationPageMessageWebView.focusMessageWebView()
                     return
+                }
             }
 
             // Push messageWebView or callStackView onto the correct stackview
@@ -509,9 +515,8 @@ Window {
                 }
             }
 
-            if (!callStackViewShouldShow) {
+            if (!callStackViewShouldShow)
                 communicationPageMessageWebView.focusMessageWebView()
-            }
         }
 
         Connections {
diff --git a/src/mainview/components/SidePanel.qml b/src/mainview/components/SidePanel.qml
index de122ebc7..8c107a44d 100644
--- a/src/mainview/components/SidePanel.qml
+++ b/src/mainview/components/SidePanel.qml
@@ -34,6 +34,7 @@ Rectangle {
     property int totalUnreadMessagesCount: 0
 
     signal conversationSmartListNeedToAccessMessageWebView(string currentUserDisplayName, string currentUserAlias, string currentUID, bool callStackViewShouldShow, bool isAudioOnly, int callState)
+    signal focusMessageWebViewRequested
 
     // Hack -> force redraw.
     function forceReselectConversationSmartListCurrentIndex() {
@@ -175,6 +176,8 @@ Rectangle {
         height: tabBarVisible ? sidePanelRect.height - sidePanelTabBar.height - contactSearchBar.height - 20 :
                                 sidePanelRect.height - contactSearchBar.height - 20
 
+        onCurrentIndexChanged: focusMessageWebViewRequested()
+
         Connections {
             target: ConversationsAdapter
 
-- 
GitLab