diff options
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qdatetimeedit.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qdatetimeedit_p.h | 3 | ||||
-rw-r--r-- | src/widgets/widgets/qlabel_p.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 6 |
4 files changed, 12 insertions, 3 deletions
diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp index bff1ff6c67..c2ed0d33e2 100644 --- a/src/widgets/widgets/qdatetimeedit.cpp +++ b/src/widgets/widgets/qdatetimeedit.cpp @@ -1687,6 +1687,10 @@ QDateTimeEditPrivate::QDateTimeEditPrivate() #endif } +QDateTimeEditPrivate::~QDateTimeEditPrivate() +{ +} + void QDateTimeEditPrivate::updateTimeSpec() { minimum = minimum.toDateTime().toTimeSpec(spec); diff --git a/src/widgets/widgets/qdatetimeedit_p.h b/src/widgets/widgets/qdatetimeedit_p.h index 50e2cde8cc..4a6014000b 100644 --- a/src/widgets/widgets/qdatetimeedit_p.h +++ b/src/widgets/widgets/qdatetimeedit_p.h @@ -62,11 +62,12 @@ QT_BEGIN_NAMESPACE class QCalendarPopup; -class QDateTimeEditPrivate : public QAbstractSpinBoxPrivate, public QDateTimeParser +class Q_AUTOTEST_EXPORT QDateTimeEditPrivate : public QAbstractSpinBoxPrivate, public QDateTimeParser { Q_DECLARE_PUBLIC(QDateTimeEdit) public: QDateTimeEditPrivate(); + ~QDateTimeEditPrivate(); void init(const QVariant &var); void readLocaleSettings(); diff --git a/src/widgets/widgets/qlabel_p.h b/src/widgets/widgets/qlabel_p.h index bd7a9d1e8f..b4da56c290 100644 --- a/src/widgets/widgets/qlabel_p.h +++ b/src/widgets/widgets/qlabel_p.h @@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE -class QLabelPrivate : public QFramePrivate +class Q_AUTOTEST_EXPORT QLabelPrivate : public QFramePrivate { Q_DECLARE_PUBLIC(QLabel) public: diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 4239e7f3d4..ea3e4c4488 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -2586,7 +2586,11 @@ void QMenu::mousePressEvent(QMouseEvent *e) Q_D(QMenu); if (d->aboutToHide || d->mouseEventTaken(e)) return; - if (!rect().contains(e->pos())) { + // Workaround for XCB on multiple screens which doesn't have offset. If the menu is open on one screen + // and mouse clicks on second screen, e->pos() is QPoint(0,0) and the menu doesn't hide. This trick makes + // possible to hide the menu when mouse clicks on another screen (e->screenPos() returns correct value). + // Only when mouse clicks in QPoint(0,0) on second screen, the menu doesn't hide. + if ((e->pos().isNull() && !e->screenPos().isNull()) || !rect().contains(e->pos())) { if (d->noReplayFor && QRect(d->noReplayFor->mapToGlobal(QPoint()), d->noReplayFor->size()).contains(e->globalPos())) setAttribute(Qt::WA_NoMouseReplay); |