From 5e67d969962a8d6b073a58c2338c293114ce167e Mon Sep 17 00:00:00 2001 From: cg2121 Date: Tue, 30 Aug 2022 00:45:59 -0500 Subject: [PATCH] UI: Fix source tree hovering being inconsistent When hovering over the source tree items, sometimes the preview would show the item hovered, sometimes not. This is caused by the SourceTree mouseMoveEvent/leaveEvent calling the same functions as the SourceTreeItem enterEvent/leaveEvent, therefore competing with each other, causing some jankiness. --- UI/source-tree.cpp | 27 --------------------------- UI/source-tree.hpp | 2 -- 2 files changed, 29 deletions(-) diff --git a/UI/source-tree.cpp b/UI/source-tree.cpp index 349f967e3..8bb9bfa50 100644 --- a/UI/source-tree.cpp +++ b/UI/source-tree.cpp @@ -1082,8 +1082,6 @@ SourceTree::SourceTree(QWidget *parent_) : QListView(parent_) "*[bgColor=\"7\"]{background-color:rgba(68,68,68,33%);}" "*[bgColor=\"8\"]{background-color:rgba(255,255,255,33%);}")); - setMouseTracking(true); - UpdateNoSourcesMessage(); connect(App(), &OBSApp::StyleChanged, this, &SourceTree::UpdateNoSourcesMessage); @@ -1491,31 +1489,6 @@ void SourceTree::dropEvent(QDropEvent *event) QListView::dropEvent(event); } -void SourceTree::mouseMoveEvent(QMouseEvent *event) -{ - QPoint pos = event->pos(); - SourceTreeItem *item = qobject_cast(childAt(pos)); - - OBSBasicPreview *preview = OBSBasicPreview::Get(); - - QListView::mouseMoveEvent(event); - - std::lock_guard lock(preview->selectMutex); - preview->hoveredPreviewItems.clear(); - if (item) - preview->hoveredPreviewItems.push_back(item->sceneitem); -} - -void SourceTree::leaveEvent(QEvent *event) -{ - OBSBasicPreview *preview = OBSBasicPreview::Get(); - - QListView::leaveEvent(event); - - std::lock_guard lock(preview->selectMutex); - preview->hoveredPreviewItems.clear(); -} - void SourceTree::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) { diff --git a/UI/source-tree.hpp b/UI/source-tree.hpp index 184b31bb9..4067e6ab7 100644 --- a/UI/source-tree.hpp +++ b/UI/source-tree.hpp @@ -211,8 +211,6 @@ public slots: protected: virtual void mouseDoubleClickEvent(QMouseEvent *event) override; virtual void dropEvent(QDropEvent *event) override; - virtual void mouseMoveEvent(QMouseEvent *event) override; - virtual void leaveEvent(QEvent *event) override; virtual void paintEvent(QPaintEvent *event) override; virtual void