From 030ed1502109d1e73b5763129795080606565810 Mon Sep 17 00:00:00 2001
From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com>
Date: Tue, 28 Feb 2023 17:40:53 -0300
Subject: [PATCH] conversationview: fix focus on callview

THis fixes mic and cam shortcuts

Change-Id: I51f8ea975a5d8bee0e9ceab712a58953646ce048
---
 src/app/currentconversation.cpp               |  2 +-
 src/app/mainview/ConversationView.qml         | 19 +++++++++++++++++++
 src/app/mainview/components/CallStackView.qml |  1 +
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/app/currentconversation.cpp b/src/app/currentconversation.cpp
index a0f940dbe..d662f8f45 100644
--- a/src/app/currentconversation.cpp
+++ b/src/app/currentconversation.cpp
@@ -51,7 +51,6 @@ void
 CurrentConversation::updateData()
 {
     auto convId = lrcInstance_->get_selectedConvUid();
-    set_id(convId);
     if (convId.isEmpty())
         return;
     try {
@@ -133,6 +132,7 @@ CurrentConversation::updateData()
     } catch (...) {
         qWarning() << "Can't update current conversation data for" << convId;
     }
+    set_id(convId);
     updateErrors(convId);
 }
 
diff --git a/src/app/mainview/ConversationView.qml b/src/app/mainview/ConversationView.qml
index fc8240822..f96de59f9 100644
--- a/src/app/mainview/ConversationView.qml
+++ b/src/app/mainview/ConversationView.qml
@@ -80,6 +80,7 @@ BaseView {
                         Qt.callLater(focusChatView)
                     } else {
                         dismiss()
+                        callStackView.contentView.forceActiveFocus()
                     }
                 }
 
@@ -88,6 +89,17 @@ BaseView {
                         root.dismiss()
                     } else {
                         callStackView.chatViewContainer.visible = false
+                        callStackView.contentView.forceActiveFocus()
+                    }
+                }
+
+                onVisibleChanged: {
+                    if (!inCallView)
+                        return
+                    if (visible && !parent.showDetails) {
+                        focusChatView()
+                    } else {
+                        callStackView.contentView.forceActiveFocus()
                     }
                 }
             }
@@ -97,6 +109,13 @@ BaseView {
             id: callStackView
             Layout.fillWidth: true
             Layout.fillHeight: true
+
+            onVisibleChanged: {
+                if (visible)
+                    contentView.forceActiveFocus()
+                else
+                    chatView.focusChatView()
+            }
         }
     }
 }
diff --git a/src/app/mainview/components/CallStackView.qml b/src/app/mainview/components/CallStackView.qml
index c5b4419fe..f867989c3 100644
--- a/src/app/mainview/components/CallStackView.qml
+++ b/src/app/mainview/components/CallStackView.qml
@@ -30,6 +30,7 @@ Item {
     id: root
 
     property alias chatViewContainer: ongoingCallPage.chatViewContainer
+    property alias contentView: callStackMainView
 
     property var sipKeys: [
         "1", "2", "3", "A",
-- 
GitLab