Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Id511850002d9274d17891c063376ac4b3ff939dd
This commit is contained in:
commit
04479f1952
@ -131,7 +131,7 @@ qtPrepareTool(QMAKE_QFLOAT16_TABLES, qfloat16-tables)
|
||||
|
||||
qfloat16_tables.commands = $$QMAKE_QFLOAT16_TABLES ${QMAKE_FILE_OUT}
|
||||
qfloat16_tables.output = global/qfloat16tables.cpp
|
||||
qfloat16_tables.depends = $$QMAKE_QFLOAT16_TABLES
|
||||
qfloat16_tables.depends = $$QMAKE_QFLOAT16_TABLES_EXE
|
||||
qfloat16_tables.input = QMAKE_QFLOAT16_TABLES_GENERATE
|
||||
qfloat16_tables.variable_out = SOURCES
|
||||
QMAKE_EXTRA_COMPILERS += qfloat16_tables
|
||||
|
@ -1047,6 +1047,7 @@ static int ucstrncmp(const QChar *a, const uchar *c, size_t l)
|
||||
__m128i nullmask = _mm_setzero_si128();
|
||||
qptrdiff offset = 0;
|
||||
|
||||
# if !defined(__OPTIMIZE_SIZE__)
|
||||
// Using the PMOVMSKB instruction, we get two bits for each character
|
||||
// we compare.
|
||||
int retval;
|
||||
@ -1059,6 +1060,7 @@ static int ucstrncmp(const QChar *a, const uchar *c, size_t l)
|
||||
retval = uc[offset + idx / 2] - c[offset + idx / 2];
|
||||
return true;
|
||||
};
|
||||
# endif
|
||||
|
||||
// we're going to read uc[offset..offset+15] (32 bytes)
|
||||
// and c[offset..offset+15] (16 bytes)
|
||||
|
@ -755,11 +755,9 @@ static inline int qSafeFloatToQ16Dot16(qreal x)
|
||||
|
||||
void QRasterizer::rasterizeLine(const QPointF &a, const QPointF &b, qreal width, bool squareCap)
|
||||
{
|
||||
if (a == b || width == 0 || d->clipRect.isEmpty())
|
||||
if (a == b || !(width > 0.0) || d->clipRect.isEmpty())
|
||||
return;
|
||||
|
||||
Q_ASSERT(width > 0.0);
|
||||
|
||||
QPointF pa = a;
|
||||
QPointF pb = b;
|
||||
|
||||
|
@ -49,6 +49,7 @@
|
||||
#include "qwindowswindow.h"
|
||||
#include "qwindowsmousehandler.h"
|
||||
#include "qwindowscursor.h"
|
||||
#include "qwindowskeymapper.h"
|
||||
|
||||
#include <QtGui/qevent.h>
|
||||
#include <QtGui/qpixmap.h>
|
||||
@ -205,6 +206,9 @@ static inline Qt::MouseButtons toQtMouseButtons(DWORD keyState)
|
||||
return buttons;
|
||||
}
|
||||
|
||||
static Qt::KeyboardModifiers lastModifiers = Qt::NoModifier;
|
||||
static Qt::MouseButtons lastButtons = Qt::NoButton;
|
||||
|
||||
/*!
|
||||
\class QWindowsOleDropSource
|
||||
\brief Implementation of IDropSource
|
||||
@ -403,7 +407,7 @@ QWindowsOleDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
|
||||
case DRAGDROP_S_DROP:
|
||||
case DRAGDROP_S_CANCEL:
|
||||
if (!m_windowUnderMouse.isNull() && m_mode != TouchDrag && fEscapePressed == FALSE
|
||||
&& buttons != QGuiApplicationPrivate::mouse_buttons) {
|
||||
&& buttons != lastButtons) {
|
||||
// QTBUG 66447: Synthesize a mouse release to the window under mouse at
|
||||
// start of the DnD operation as Windows does not send any.
|
||||
const QPoint globalPos = QWindowsCursor::mousePosition();
|
||||
@ -503,13 +507,14 @@ void QWindowsOleDropTarget::handleDrag(QWindow *window, DWORD grfKeyState,
|
||||
|
||||
QWindowsDrag *windowsDrag = QWindowsDrag::instance();
|
||||
const Qt::DropActions actions = translateToQDragDropActions(*pdwEffect);
|
||||
const Qt::KeyboardModifiers keyboardModifiers = toQtKeyboardModifiers(grfKeyState);
|
||||
const Qt::MouseButtons mouseButtons = toQtMouseButtons(grfKeyState);
|
||||
|
||||
lastModifiers = toQtKeyboardModifiers(grfKeyState);
|
||||
lastButtons = toQtMouseButtons(grfKeyState);
|
||||
|
||||
const QPlatformDragQtResponse response =
|
||||
QWindowSystemInterface::handleDrag(window, windowsDrag->dropData(),
|
||||
m_lastPoint, actions,
|
||||
mouseButtons, keyboardModifiers);
|
||||
lastButtons, lastModifiers);
|
||||
|
||||
m_answerRect = response.answerRect();
|
||||
const Qt::DropAction action = response.acceptedAction();
|
||||
@ -521,7 +526,7 @@ void QWindowsOleDropTarget::handleDrag(QWindow *window, DWORD grfKeyState,
|
||||
*pdwEffect = m_chosenEffect;
|
||||
qCDebug(lcQpaMime) << __FUNCTION__ << m_window
|
||||
<< windowsDrag->dropData() << " supported actions=" << actions
|
||||
<< " mods=" << keyboardModifiers << " mouse=" << mouseButtons
|
||||
<< " mods=" << lastModifiers << " mouse=" << lastButtons
|
||||
<< " accepted: " << response.isAccepted() << action
|
||||
<< m_answerRect << " effect" << *pdwEffect;
|
||||
}
|
||||
@ -572,6 +577,9 @@ QWindowsOleDropTarget::DragLeave()
|
||||
|
||||
qCDebug(lcQpaMime) << __FUNCTION__ << ' ' << m_window;
|
||||
|
||||
lastModifiers = QWindowsKeyMapper::queryKeyboardModifiers();
|
||||
lastButtons = QWindowsMouseHandler::queryMouseButtons();
|
||||
|
||||
QWindowSystemInterface::handleDrag(m_window, nullptr, QPoint(), Qt::IgnoreAction,
|
||||
Qt::NoButton, Qt::NoModifier);
|
||||
|
||||
@ -598,12 +606,15 @@ QWindowsOleDropTarget::Drop(LPDATAOBJECT pDataObj, DWORD grfKeyState,
|
||||
|
||||
QWindowsDrag *windowsDrag = QWindowsDrag::instance();
|
||||
|
||||
lastModifiers = toQtKeyboardModifiers(grfKeyState);
|
||||
lastButtons = toQtMouseButtons(grfKeyState);
|
||||
|
||||
const QPlatformDropQtResponse response =
|
||||
QWindowSystemInterface::handleDrop(m_window, windowsDrag->dropData(),
|
||||
m_lastPoint,
|
||||
translateToQDragDropActions(*pdwEffect),
|
||||
toQtMouseButtons(grfKeyState),
|
||||
toQtKeyboardModifiers(grfKeyState));
|
||||
lastButtons,
|
||||
lastModifiers);
|
||||
|
||||
m_lastKeyState = grfKeyState;
|
||||
|
||||
|
@ -185,11 +185,13 @@ QIconEngine * QXdgDesktopPortalTheme::createIconEngine(const QString &iconName)
|
||||
return d->baseTheme->createIconEngine(iconName);
|
||||
}
|
||||
|
||||
#if QT_CONFIG(shortcut)
|
||||
QList<QKeySequence> QXdgDesktopPortalTheme::keyBindings(QKeySequence::StandardKey key) const
|
||||
{
|
||||
Q_D(const QXdgDesktopPortalTheme);
|
||||
return d->baseTheme->keyBindings(key);
|
||||
}
|
||||
#endif
|
||||
|
||||
QString QXdgDesktopPortalTheme::standardButtonText(int button) const
|
||||
{
|
||||
|
@ -76,7 +76,9 @@ public:
|
||||
|
||||
QIconEngine *createIconEngine(const QString &iconName) const override;
|
||||
|
||||
#if QT_CONFIG(shortcut)
|
||||
QList<QKeySequence> keyBindings(QKeySequence::StandardKey key) const override;
|
||||
#endif
|
||||
|
||||
QString standardButtonText(int button) const override;
|
||||
|
||||
|
@ -166,6 +166,7 @@ namespace QTest
|
||||
Q_DECL_UNUSED inline static void keyPress(QWindow *window, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay=-1)
|
||||
{ keyEvent(Press, window, key, modifier, delay); }
|
||||
|
||||
#if QT_CONFIG(shortcut)
|
||||
Q_DECL_UNUSED inline static void keySequence(QWindow *window, const QKeySequence &keySequence)
|
||||
{
|
||||
for (int i = 0; i < keySequence.count(); ++i) {
|
||||
@ -174,6 +175,7 @@ namespace QTest
|
||||
keyClick(window, key, modifiers);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef QT_WIDGETS_LIB
|
||||
static void simulateEvent(QWidget *widget, bool press, int code,
|
||||
@ -305,6 +307,7 @@ namespace QTest
|
||||
inline static void keyClick(QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay=-1)
|
||||
{ keyEvent(Click, widget, key, modifier, delay); }
|
||||
|
||||
#if QT_CONFIG(shortcut)
|
||||
inline static void keySequence(QWidget *widget, const QKeySequence &keySequence)
|
||||
{
|
||||
for (int i = 0; i < keySequence.count(); ++i) {
|
||||
@ -313,6 +316,7 @@ namespace QTest
|
||||
keyClick(widget, key, modifiers);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // QT_WIDGETS_LIB
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user