From 06cfa9352e1da8ffb44e35a28523755db8dbf7e2 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 24 Sep 2026 16:58:48 +0200 Subject: fix: swallow the calendar more-line double-click and clear the agenda selection --- src/agendaview.cpp | 6 ++++++ src/monthview.cpp | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/agendaview.cpp b/src/agendaview.cpp index 1808906..50f8a3f 100644 --- a/src/agendaview.cpp +++ b/src/agendaview.cpp @@ -73,6 +73,12 @@ void AgendaView::setItems(const QList &items) void AgendaView::setSelected(int item) { + // Headers carry -1 in kItemRole, so a bare loop would match the first + // header for "nothing selected" and leave the previous row highlighted. + if (item < 0) { + clearSelection(); + return; + } for (int r = 0; r < count(); ++r) { if (this->item(r)->data(kItemRole).toInt() == item) { setCurrentRow(r); diff --git a/src/monthview.cpp b/src/monthview.cpp index 7d0df3b..b1c5520 100644 --- a/src/monthview.cpp +++ b/src/monthview.cpp @@ -156,6 +156,8 @@ void MonthView::paintEvent(QPaintEvent *) void MonthView::mousePressEvent(QMouseEvent *event) { + if (event->button() != Qt::LeftButton) + return; const MonthLayout l = layout(); const int cell = l.cellAt(event->position().toPoint()); if (cell < 0) @@ -178,10 +180,14 @@ void MonthView::mouseDoubleClickEvent(QMouseEvent *event) const int cell = l.cellAt(event->position().toPoint()); if (cell < 0) return; - // A double-click on a chip is two clicks on the chip, not a new event. + // A double-click on a chip, or on the "+N more" line, is two clicks on + // that thing, not a new event. const QList items = itemsPerCell(l)[cell]; - for (int slot = 0; slot < l.visibleChips(items.size()); ++slot) + const int shown = l.visibleChips(items.size()); + for (int slot = 0; slot < shown; ++slot) if (l.chipRect(cell, slot).contains(event->position().toPoint())) return; + if (shown < items.size() && l.chipRect(cell, shown).contains(event->position().toPoint())) + return; emit dayDoubleClicked(l.dateAt(cell)); } -- cgit v1.2.3