diff --git a/CHANGELOG.md b/CHANGELOG.md index 74b021bf..554a4d24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Minor: Add an option for the reduced opacity of message history. (#6121) - Minor: Make paused chat indicator more visible, and fix its zoom behavior. (#6123) - Minor: Added WebSocket API for plugins. (#6076) +- Minor: Popup overlay now only draws an outline when being interacted with. (#6140) - Bugfix: Don't create native messaging manifest file if browser directory doesn't exist. (#6116) - Bugfix: Fixed scrolling now working on inputs in the settings. (#6128) - Bugfix: Make reply-cancel button less coarse-grained. (#6106) diff --git a/src/widgets/BaseWindow.cpp b/src/widgets/BaseWindow.cpp index 27d52113..787b0690 100644 --- a/src/widgets/BaseWindow.cpp +++ b/src/widgets/BaseWindow.cpp @@ -974,14 +974,17 @@ void BaseWindow::scaleChangedEvent(float scale) void BaseWindow::paintEvent(QPaintEvent *) { QPainter painter(this); + this->drawOutline(painter); + this->drawCustomWindowFrame(painter); +} +void BaseWindow::drawOutline(QPainter &painter) +{ if (this->frameless_) { painter.setPen(QColor("#999")); painter.drawRect(0, 0, this->width() - 1, this->height() - 1); } - - this->drawCustomWindowFrame(painter); } float BaseWindow::desiredScale() const diff --git a/src/widgets/BaseWindow.hpp b/src/widgets/BaseWindow.hpp index 919ab893..8b8d01b4 100644 --- a/src/widgets/BaseWindow.hpp +++ b/src/widgets/BaseWindow.hpp @@ -120,6 +120,7 @@ protected: void scaleChangedEvent(float) override; void paintEvent(QPaintEvent *) override; + virtual void drawOutline(QPainter &); void changeEvent(QEvent *) override; void leaveEvent(QEvent *) override; diff --git a/src/widgets/OverlayWindow.cpp b/src/widgets/OverlayWindow.cpp index 8ef8d30d..54976b89 100644 --- a/src/widgets/OverlayWindow.cpp +++ b/src/widgets/OverlayWindow.cpp @@ -611,4 +611,8 @@ void OverlayWindow::setInert(bool inert) } } +void OverlayWindow::drawOutline(QPainter & /* painter */) +{ +} + } // namespace chatterino diff --git a/src/widgets/OverlayWindow.hpp b/src/widgets/OverlayWindow.hpp index 42da931e..668c02c5 100644 --- a/src/widgets/OverlayWindow.hpp +++ b/src/widgets/OverlayWindow.hpp @@ -34,6 +34,7 @@ public: bool isInert() const; void setInert(bool inert); void toggleInertia(); + void drawOutline(QPainter &painter) override; protected: #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) diff --git a/src/widgets/helper/OverlayInteraction.cpp b/src/widgets/helper/OverlayInteraction.cpp index d4a0d84f..ba918692 100644 --- a/src/widgets/helper/OverlayInteraction.cpp +++ b/src/widgets/helper/OverlayInteraction.cpp @@ -85,6 +85,11 @@ bool OverlayInteraction::isInteracting() const void OverlayInteraction::paintEvent(QPaintEvent * /*event*/) { + if (this->interactionProgress() <= 0.0) + { + return; + } + QPainter painter(this); QColor highlightColor( 255, 255, 255, std::max(int(255.0 * this->interactionProgress()), 50)); @@ -94,11 +99,6 @@ void OverlayInteraction::paintEvent(QPaintEvent * /*event*/) auto bounds = this->rect(); painter.drawRect(bounds); - if (this->interactionProgress() <= 0.0) - { - return; - } - highlightColor.setAlpha(highlightColor.alpha() / 4); painter.setBrush(highlightColor); painter.setPen(Qt::transparent);