diff --git a/callwidget.cpp b/callwidget.cpp
index f418d502ffbe987783ec9a4144f5826d87c54a7e..493de5a37bfd4fd62bbcf4c901725c22e8b63dd2 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -1021,6 +1021,12 @@ CallWidget::connectConversationModel()
         currentConversationModel, &lrc::api::ConversationModel::newInteraction,
         [this](const std::string& convUid, uint64_t interactionId, const lrc::api::interaction::Info& interaction) {
             onIncomingMessage(convUid, interactionId, interaction);
+            if (interaction.type == lrc::api::interaction::Type::CALL) {
+                return;
+            }
+            if (convUid == selectedConvUid()) {
+                ui->videoWidget->simulateShowChatview(true);
+            }
         }
     );
     interactionRemovedConnection_ = QObject::connect(
diff --git a/videoview.cpp b/videoview.cpp
index 9db5fb9a74ad0e5bc98e9c3f0b5823b6f032562a..b0831874e39d277adf152128fa1bd4dfe70caf11 100644
--- a/videoview.cpp
+++ b/videoview.cpp
@@ -70,20 +70,6 @@ VideoView::VideoView(QWidget* parent) :
         emit this->setChatVisibility(visible);
     });
     connect(overlay_, &VideoOverlay::videoCfgBtnClicked, [=](){emit videoSettingsClicked();});
-
-
-    auto convModel = LRCInstance::getCurrentConversationModel();
-    connect(convModel, &lrc::api::ConversationModel::newInteraction,
-        [this](const std::string& uid, uint64_t, lrc::api::interaction::Info info) {
-        if (info.type == lrc::api::interaction::Type::CALL) {
-            return;
-        }
-        auto selectedConvUid = LRCInstance::getSelectedConvUid();
-        if (uid == selectedConvUid) {
-            overlay_->simulateShowChatview(true);
-        }
-    });
-
 }
 
 VideoView::~VideoView()
@@ -189,6 +175,12 @@ VideoView::showChatviewIfToggled()
     emit setChatVisibility(overlay_->getShowChatView());
 }
 
+void
+VideoView::simulateShowChatview(bool checked)
+{
+    overlay_->simulateShowChatview(true);
+}
+
 void
 VideoView::updateCall()
 {
diff --git a/videoview.h b/videoview.h
index ec71e88f36542d57755cb992a8f929c3da902e1a..f2f388cf984f0549cfe9cf1304b388dd790ae94c 100644
--- a/videoview.h
+++ b/videoview.h
@@ -43,6 +43,7 @@ public:
     ~VideoView();
     void pushRenderer(const std::string& callUid);
     void showChatviewIfToggled();
+    void simulateShowChatview(bool checked);
 
 protected:
     void resizeEvent(QResizeEvent* event);