From 420d9427621588cef46bfd9a009a99a0eb36aacf Mon Sep 17 00:00:00 2001 From: Altair Wei Date: Wed, 6 Oct 2021 20:53:24 +0800 Subject: [PATCH] fix examples on Windows --- examples/mainwindow/mainwindow.cpp | 14 ++++++++++++++ examples/mainwindow/mainwindow.h | 3 +++ examples/widget/widget.cpp | 10 ++++++++++ 3 files changed, 27 insertions(+) diff --git a/examples/mainwindow/mainwindow.cpp b/examples/mainwindow/mainwindow.cpp index 158748f..3ad1f56 100644 --- a/examples/mainwindow/mainwindow.cpp +++ b/examples/mainwindow/mainwindow.cpp @@ -107,6 +107,20 @@ void MainWindow::showEvent(QShowEvent *event) } } + +#ifdef Q_OS_WIN +bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result) +{ + if (!m_helper) + return QWidget::nativeEvent(eventType, message, result); + + if (m_helper->handleNativeEvent(this->windowHandle(), eventType, message, result)) + return true; + else + return QWidget::nativeEvent(eventType, message, result); +} +#endif // Q_OS_WIN + void MainWindow::changeEvent(QEvent *event) { QWidget::changeEvent(event); diff --git a/examples/mainwindow/mainwindow.h b/examples/mainwindow/mainwindow.h index 775a0be..febafc4 100644 --- a/examples/mainwindow/mainwindow.h +++ b/examples/mainwindow/mainwindow.h @@ -41,6 +41,9 @@ protected: void showEvent(QShowEvent *event) override; void paintEvent(QPaintEvent *event) override; void changeEvent(QEvent *event) override; +#ifdef Q_OS_WIN + bool nativeEvent(const QByteArray &eventType, void *message, long *result) override; +#endif // Q_OS_WIN Q_SIGNALS: void windowStateChanged(); diff --git a/examples/widget/widget.cpp b/examples/widget/widget.cpp index 1a06768..be98da9 100644 --- a/examples/widget/widget.cpp +++ b/examples/widget/widget.cpp @@ -334,6 +334,15 @@ bool Widget::nativeEvent(const QByteArray &eventType, void *message, qintptr *re bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *result) #endif { +#ifdef Q_OS_WIN + if (m_helper) { + if (m_helper->handleNativeEvent(this->windowHandle(), eventType, message, result)) + return true; + else + return QWidget::nativeEvent(eventType, message, result); + } +#endif + if (message) { if (Utilities::isThemeChanged(message)) { updateStyleSheet(); @@ -349,5 +358,6 @@ bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *resul } } } + return QWidget::nativeEvent(eventType, message, result); }