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