Enable non-client-area mouse events by default for widgets.
Task-number: QTBUG-30530 Task-number: QTBUG-29012 Change-Id: Iaddbb89bbb198e2b04419407e0871951650552ce Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This commit is contained in:
parent
eb11f67dd9
commit
f2fcf75381
@ -137,6 +137,9 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
||||
qt_window_private(win)->positionPolicy = topData()->posIncludesFrame ?
|
||||
QWindowPrivate::WindowFrameInclusive : QWindowPrivate::WindowFrameExclusive;
|
||||
win->create();
|
||||
// Enable nonclient-area events for QDockWidget and other NonClientArea-mouse event processing.
|
||||
if ((flags & Qt::Desktop) == Qt::Window)
|
||||
win->handle()->setFrameStrutEventsEnabled(true);
|
||||
|
||||
data.window_flags = win->flags();
|
||||
|
||||
|
@ -55,7 +55,6 @@
|
||||
#include <qtoolbutton.h>
|
||||
#include <qdebug.h>
|
||||
|
||||
#include <qpa/qplatformwindow.h>
|
||||
#include <private/qwidgetresizehandler_p.h>
|
||||
|
||||
#include "qdockwidget_p.h"
|
||||
@ -1000,14 +999,6 @@ void QDockWidgetPrivate::plug(const QRect &rect)
|
||||
setWindowState(false, false, rect);
|
||||
}
|
||||
|
||||
static void setFrameStrutEventsEnabled(const QWidget *w, bool enabled)
|
||||
{
|
||||
if (const QWindow *window = w->windowHandle())
|
||||
if (QPlatformWindow *platformWindow = window->handle())
|
||||
if (platformWindow->frameStrutEventsEnabled() != enabled)
|
||||
platformWindow->setFrameStrutEventsEnabled(enabled);
|
||||
}
|
||||
|
||||
void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect &rect)
|
||||
{
|
||||
Q_Q(QDockWidget);
|
||||
@ -1060,9 +1051,6 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect
|
||||
}
|
||||
}
|
||||
|
||||
if (floating && nativeDeco)
|
||||
setFrameStrutEventsEnabled(q, true);
|
||||
|
||||
resizer->setActive(QWidgetResizeHandler::Resize, !unplug && floating && !nativeDeco);
|
||||
}
|
||||
|
||||
@ -1397,8 +1385,6 @@ bool QDockWidget::event(QEvent *event)
|
||||
emit visibilityChanged(false);
|
||||
break;
|
||||
case QEvent::Show:
|
||||
if (static_cast<QDockWidgetLayout *>(QDockWidget::layout())->nativeWindowDeco(isFloating()))
|
||||
setFrameStrutEventsEnabled(this, true);
|
||||
d->toggleViewAction->setChecked(true);
|
||||
emit visibilityChanged(geometry().right() >= 0 && geometry().bottom() >= 0);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user