From 832f70496a6e175d7ce1ee5008db36900c306fde Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Wed, 15 Apr 2026 14:14:30 +0200 Subject: [PATCH] [EDHRec] Fix unintentional navigation on card right click (#6814) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't double emit cardClicked and also pass along the mouseEvent so we can check if it's a left or right click. Took 26 minutes Co-authored-by: Lukas BrĂ¼bach --- .../interface/widgets/cards/card_info_picture_widget.cpp | 4 +--- .../src/interface/widgets/cards/card_info_picture_widget.h | 2 +- .../edhrec_api_response_card_details_display_widget.cpp | 7 +++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp b/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp index 816940b0f..555d69381 100644 --- a/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp +++ b/cockatrice/src/interface/widgets/cards/card_info_picture_widget.cpp @@ -343,11 +343,9 @@ void CardInfoPictureWidget::mousePressEvent(QMouseEvent *event) QWidget::mousePressEvent(event); if (event->button() == Qt::RightButton) { createRightClickMenu()->popup(QCursor::pos()); - } else { - emit cardClicked(); } - emit cardClicked(); + emit cardClicked(event); } void CardInfoPictureWidget::hideEvent(QHideEvent *event) diff --git a/cockatrice/src/interface/widgets/cards/card_info_picture_widget.h b/cockatrice/src/interface/widgets/cards/card_info_picture_widget.h index 1095d7d74..5eb2d88d9 100644 --- a/cockatrice/src/interface/widgets/cards/card_info_picture_widget.h +++ b/cockatrice/src/interface/widgets/cards/card_info_picture_widget.h @@ -43,7 +43,7 @@ signals: void hoveredOnCard(const ExactCard &hoveredCard); void cardScaleFactorChanged(int _scale); void cardChanged(const ExactCard &card); - void cardClicked(); + void cardClicked(QMouseEvent *event); protected: void resizeEvent(QResizeEvent *event) override; diff --git a/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp b/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp index c01c7fa43..9d45f254b 100644 --- a/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp +++ b/cockatrice/src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp @@ -3,6 +3,7 @@ #include "../../../../../general/display/background_plate_widget.h" #include "../../tab_edhrec_main.h" +#include #include EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWidget( @@ -48,7 +49,7 @@ EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWi if (parentTab) { cardPictureWidget->setScaleFactor(parentTab->getCardSizeSlider()->getSlider()->value()); connect(cardPictureWidget, &CardInfoPictureWidget::cardClicked, this, - &EdhrecApiResponseCardDetailsDisplayWidget::actRequestPageNavigation); + &EdhrecApiResponseCardDetailsDisplayWidget::mousePressEvent); connect(parentTab->getCardSizeSlider()->getSlider(), &QSlider::valueChanged, cardPictureWidget, &CardInfoPictureWidget::setScaleFactor); connect(this, &EdhrecApiResponseCardDetailsDisplayWidget::requestUrl, parentTab, @@ -59,7 +60,9 @@ EdhrecApiResponseCardDetailsDisplayWidget::EdhrecApiResponseCardDetailsDisplayWi void EdhrecApiResponseCardDetailsDisplayWidget::mousePressEvent(QMouseEvent *event) { QWidget::mousePressEvent(event); - actRequestPageNavigation(); + if (event->button() == Qt::LeftButton) { + actRequestPageNavigation(); + } } #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)