diff --git a/Telegram/SourceFiles/boxes/calendar_box.cpp b/Telegram/SourceFiles/boxes/calendar_box.cpp index 48cfdd794..a9d5158f7 100644 --- a/Telegram/SourceFiles/boxes/calendar_box.cpp +++ b/Telegram/SourceFiles/boxes/calendar_box.cpp @@ -599,4 +599,19 @@ void CalendarBox::keyPressEvent(QKeyEvent *e) { } } +void CalendarBox::wheelEvent(QWheelEvent *e) { + // Only a mouse wheel is accepted. + constexpr auto step = static_cast(QWheelEvent::DefaultDeltasPerStep); + const auto delta = e->angleDelta().y(); + if (std::abs(delta) != step) { + return; + } + + if (delta < 0) { + goPreviousMonth(); + } else { + goNextMonth(); + } +} + CalendarBox::~CalendarBox() = default; diff --git a/Telegram/SourceFiles/boxes/calendar_box.h b/Telegram/SourceFiles/boxes/calendar_box.h index 066d0425f..391f25bed 100644 --- a/Telegram/SourceFiles/boxes/calendar_box.h +++ b/Telegram/SourceFiles/boxes/calendar_box.h @@ -46,6 +46,7 @@ protected: void keyPressEvent(QKeyEvent *e) override; void resizeEvent(QResizeEvent *e) override; + void wheelEvent(QWheelEvent *e) override; private: void monthChanged(QDate month);