| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In GNOME/Unity XCB, logical DPI is scaled by device pixel ratio, and on
Macs logical DPI is constant but pixel ratio is based on physical DPI,
making logical DPI effectively physical DPI divided by pixel ratio.
This patch ensure the same logic is used for other XCB desktops.
Change-Id: I60f24618cd49f6b34a6ff1eff317883d191d3491
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
By setting QT_XCB_GL_INTEGRATION to the special value "none", no plugins
will be considered for loading. This matches what eglfs does with
QT_QPA_EGLFS_INTEGRATION.
This allows widget or raster-QWindow-only apps to start up faster by not
spending time on plugin loading and potential initialization steps there.
Task-number: QTBUG-46765
Change-Id: Ifeec3548a9b58f619a18e0be75fe4a9f489677a9
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add QPointF overloads for QXcbScreen::mapToNative() and
QXcbScreen::mapFromNative(). Use mapFromNative() to map
the coordinates of a touch point to screen coordinates
as we do it for mouse events. It fixes touch events when
QT_DEVICE_PIXEL_RATIO is set.
Change-Id: Id8362cda526e0f837b76899eba21d9bfc895988c
Task-number: QTBUG-44840
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Do not attempt to resolve dynamically in static builds. This is not
wrong, but if the GL library is statically linked just like the rest
of Qt, it won't work. Therefore just call the function directly in static
builds, it should be no problem on modern systems.
Task-number: QTBUG-46499
Change-Id: I35fd7c3b5b180d753becbb57377b27dd1a8747ad
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge QXcbWindow::setNetWmWindowFlags(), which was called from
QXcbWindow::setWindowFlags(), into QXcbWindow::setWmWindowType().
Now setWindowFlags() can't override window type set by
QXcbWindowFunctions::setWmWindowType().
Also reorder _NET_WM_WINDOW_TYPE atoms in QXcbWindow::setWmWindowType()
as it was in Qt 4.
Change-Id: Id1752d78f91caf04e9d16bb1ac40ed180597df7b
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Caused by the refactor in 05351b0cde3e80d2d0ae3a838e802ff6086e4b59.
The count was probably wrong in the creation of the QKeyEvent, so this
commit keeps it wrong.
Change-Id: I049a653beeb5454c9539ffff13e573bba826e927
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
X server sends emulated XI_Motion events before each touch sequence.
Filter them out to avoid a mess with mouse events synthesized in
QGuiApplication.
Change-Id: Ic919c86b41e2467a594de7c903cc0f3fc88a6804
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
wm_window_type_property_id is a dynamic property, so we should
check that it is set by using QObject::dynamicPropertyNames()
instead of QMetaObject::indexOfProperty().
Change-Id: Ic7f3408a0d028f349538e0538c40c4b58360f7df
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Until now there was no connection between the tracked touch points and
the touch device. So the touch point for one device could be updated
by the touch event from another device.
Change-Id: I09fcf03a171cc361c6b5b4995758aa53d29ff414
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Reduces internal memory fragmentation.
The search criteria was:
QVector::append(), QVector::push_back(), QVector::operator<<()
and QVector::operator+=() calls inside for, do and while loops.
Statements inside ifs and out of loops weren't considered.
Change-Id: Ie5aaf3cdfac938994e6e5dfa5f51de501ed79a0c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I9f218bdd65a97ad9c867b695f3ba27ab64a54d2a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I4bd5d8534abd9a585a4a641d01931de687eeae77
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This prevents compiler warnings on less common branches of certain
ifdefs.
Change-Id: I89bae68491151b21cf6887a854cc4c9f68838cf9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/corelib/global/qnamespace.qdoc
src/corelib/io/qwindowspipereader.cpp
src/corelib/io/qwindowspipereader_p.h
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/plugins/platforms/xcb/qxcbconnection.h
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/tools/qmake/tst_qmake.cpp
tests/manual/touch/main.cpp
Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
|
| |/
| |
| |
| |
| |
| |
| |
| | |
It should also be possible to use QT_STRICT_ITERATORS in Qt's own code base
Change-Id: I0914db480d4d2b06e71e3a2588163efdd3ff6d27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Switch to using the pointer events from XI2 when touch is available (i.e.
version is >= 2.2). This allows us to select and grab the button and motion
events together with the touch ones. This prevents the issue of not getting
touch events when grabbing via the plain xcb functions.
To prevent touch sequences from being replayed after ungrabbing (for example after
dismissing a popup that caused a grab), we try to accept touches via XIAllowTouchEvents.
Unfortunately this leads to a deadlock and therefore we can only do it when we know
we have a new enough libXi. This is a configure time check which is not ideal since
the system on which apps run can have a newer libXi than the machine that did the Qt
build, but seems like the best we can do.
The environment variable QT_XCB_NO_XI2_MOUSE can be set to 1 in order to prevent
processing mouse events through XInput. This restores the old behavior with broken
grabbing.
[ChangeLog][QtGui] Pointer event delivery on X11 is now done via XInput 2.2+ when available.
Done-with: Michal Klocek <michal.klocek@theqtcompany.com>
Done-with: Alexander Volkov <a.volkov@rusbitech.ru>
Task-number: QTBUG-43525
Task-number: QTBUG-45054
Task-number: QTBUG-30417
Change-Id: I7cb2002b31bef4cd527aa427549dcf2d5467968e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ABS_MT_TOUCH_MAJOR is given in surface units rather than in finger units.
Also it's not the width of the touch rect but the length of the major axis
of the contact. Currently we don't support the orientation of touch rects,
so report square rects with side length of ABS_MT_TOUCH_MAJOR.
Change-Id: I16c861f30128438ec4a1cae983700f8da4b7b4b7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We should divide the fractional part of the FP1616 value by 0x10000
instead of 0xFFFF, otherwise 1.FFFF will be converted to 2.0.
And right-shifting the integer part by 16 is equal to dividing it
by 0x10000. So just divide the whole FP1616 value by 0x10000.
Change-Id: Ia89a274b81be9cf502e1f311f696a610a7f37d7f
Task-number: QTBUG-45378
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it easier to change the version numbers by changing
the macros in QtGui.
Task-number: QTBUG-46009
Change-Id: I94c9591ec6f7c9173a698df9e1fe8fd6a904caf4
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add version guards to prevent compiler error:
'XITouchClass' was not declared in this scope
in systems having XInput version < 2.2.
Change-Id: Ib1308f29ef97288eb994ab8bdd668199ca2ee1d7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When EGL is autodetected but -no-opengl is specified the backend
must be skipped, just like the GLX one.
Task-number: QTBUG-44998
Change-Id: I1ccbaf540f3777a1fc39aaf12bded4febf20faa0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The GLX and EGL integrations are skipped correctly but the base class still
contained createPlatformOpenGLContext() with OpenGL-specific types.
Task-number: QTBUG-44998
Change-Id: I727ded7ca8589b163fc1271709dd718572b51c3e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\|
| |
| |
| | |
Change-Id: I487a4b7c05687a10c498ac219c31367d4db6fbc0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
X server may return an empty physical screen size, for example
on VNC, Xephyr or some not very well supported hardware.
In this case it's possible to use the size of the virtual desktop,
but until now it was done only in the QXcbScreen constructor.
Move it to QXcbScreen::updateGeometry() and calculate physical screen
size using the DPI of the virtual desktop.
Task-number: QTBUG-45564
Change-Id: I6b757818a2fcefdd7b2c0aa31b840a88d625d6ae
Reviewed-by: Daniel Vrátil <dvratil@redhat.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I0ad74de8aef7d8a3cb707b61438096c67cd7626e
Reviewed-by: David Faure <david.faure@kdab.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/tools/qdoc/tree.cpp
tests/auto/gui/painting/qcolor/tst_qcolor.cpp
Change-Id: Iaa78f601a63191fa643aabf853520f913f2f0fdc
|
| |
| |
| |
| |
| |
| |
| |
| | |
As per GL_EXT_swap_control this results in BadWindow.
Task-number: QTBUG-45705
Change-Id: Ia3e3f66f326d8f6145d82f33f964b0d6996f0959
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| | |
Change-Id: I4069fdb75c2ef27fd4ac30de0963472c89165b20
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/gui/painting/qdrawhelper.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
src/plugins/platforms/xcb/qxcbwindow.h
src/testlib/qtestblacklist.cpp
src/tools/qdoc/node.cpp
src/tools/qdoc/node.h
tests/auto/gui/painting/qcolor/tst_qcolor.cpp
Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This error message was a result of calling *_randr_* functions
in QXcbWindow::updateGeometry without checking if the X server
provides the XRandR extension.
Change-Id: I165f201c32ca0f4976f9ff9b9f17323098940511
Task-number: QTBUG-45624
Task-number: QTBUG-45388
Task-number: QTBUG-45312
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jan Kundrát <jkt@kde.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add a missing mapping for the X11 media key AudioPause.
Change-Id: I2888854a021192942c7e8d47d581d834e1f39736
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we got two rapid screen changes in a row, we would disregard
the second change. This happens because QPlatformScreen::screen()
is updated asynchronously, so if we got a screen change A --> B
immediately followed by B --> A, before the first screen change
event had been processed, we would compare with the old value
and conclude nothing had changed. This can happen on creation: if
the initial geometry of the window is outside all physical screens,
the window manager will immediately move it.
The solution is to compare the new screen to the locally cached
value.
Change-Id: I5440dc035cac4fba4f29ac563e36dfe3e2f82aea
Task-number: QTBUG-45076
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Make sure the plugins are actually using the 3rdparty headers we ship,
not the system ones.
Change-Id: I5c857abee8e62c207843f9d29c369620be0d7da8
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
for xcb applications to use a specific visual id when creating windows.
Also make it possible to retrieve the visual id of a specific window
with QXcbWindowFunctions::visualId(QWindow *window).
UINT_MAX is used as an invalid visualId.
Change-Id: If62ada119ce8f9174cc211f53bbf1ce1bb7d021a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The simple mapping of dividing each position by the
devicePixelRatio does not work when screens have different
DPR. If the low-DPR screen above or to the left of the high-DPR
screen, the geometries will overlap in the Qt coordinate system.
This change introduces a new mapping where the origin of each screen
does not move. This mapping is not perfect: it will have gaps between
contiguous screens. However, it will keep non-overlapping screens
non-overlapping in the Qt coordinate system.
Since there is no longer a simple linear coordinate transform, we
have to add screen-dependent mapping functions, and distinguish between
local and non-local coordinates. A side benefit is that the code is
now easier to read, since we remove most manual coordinate transformation.
We also have to cache the screen of each window: since we send resize events
before screen change events, we cannot rely on QPlatformWindow::screen()
(which is set from the screen change event).
Task-number: QTBUG-45076
Change-Id: Ie95a0b71ae274e02903caa102a98af2050a44129
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update QXcbWMSupport::net_virtual_roots instead of QXcbWMSupport::net_wm_atoms.
It's a copy/paste error.
Change-Id: If146955d954850f02980f473ad2318d67f193ec9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The virtual desktop may be composed of several outputs which are
represented by the QXcbScreen class. XSettings are related to
the virtual desktop, so introduce a QXcbVirtualDesktop class and
store QXcbXSettings in it.
Change-Id: Ib2261675ef8e5136592d4b856bc84646db3a3af4
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt does not support having different fontMetrics for different screens
Also add environment variable for overriding logicalDpi
Change-Id: I0baf73026d97fec590597ee304ad9fa119d7a328
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
And replace Xlib define GenericEvent with
XCB define XCB_GE_GENERIC.
Change-Id: Ie82cb7f58b18fc0d253e4b7fd65495608df0a7d9
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For the common case of strings smaller than 32 chars this removes a
temporary QByteArray allocation and the second call to
xkb_state_key_get_utf8.
Change-Id: I81cbbf2df683476b38c2ffb96119293cd5b09a90
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On my platform (Archlinux, libxcb 1.11-1) and a recent build of Qt dev
I noticed that writing anything to a QLineEdit was broken, as not only
the character for the pressed key was inserted, but also what looks
like whitespace. A simple debug program showed that a "\u0000" is
appended to every character in the QString text associated with a
QKeyEvent, which brought me to QXcbKeyboard::lookupString.
The QByteArray to QString conversion using QString::fromUtf8 includes
the \x00 byte at the end of the buffer.
By leveraging the size returned by the xcb API and passing that to
QString::fromUtf8 we can prevent this problem from arising.
Change-Id: Ic1d4390e4154e9ed729cd23286811d6eecdf54f6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
This is dead code since 05351b0cde3e80d2d0ae3a838e802ff6086e4b59.
Change-Id: I6ea37046f48bedf85730c5e5a6dc27e08de4de54
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
|
|\|
| |
| |
| | |
Change-Id: If9fd98525b6b4ca07e5e006fc98bf372a73b8a21
|
| |\ |
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
mkspecs/android-g++/qmake.conf
qmake/generators/unix/unixmake2.cpp
src/gui/image/qimage_conversions.cpp
Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It may change after the window has been created.
Change-Id: Ib81a7ad7353b1909cc42684fc70d6b7d2556106f
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This change is related to 6a7ee92b3958e3a3ebc16be15f8bd34217ec7bd2
which added handling for SelectionClientClose. Further testing showed
that with e.g. Qt 4 applications the SelectionClientClose is not
emitted, but the selection window seems to be destroyed before the
client is destroyed.
Fur a destroyed selection window the same applies: the clipboard
content is no longer valid and we should emit the changed signal.
Change-Id: Id3778a28b9f5601bf2c6e0106981316e0efa6e7c
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If shmget() does not work (probably because the backingstore size is
bigger than SHMMAX), don't create a QImage with the previous buffer and
the new size. That does not end well when we try to draw to the image
later. Instead, fall back to the malloc path, like we do when the system
doesn't support shared memory.
[ChangeLog][X11] Don't crash when resizing windows to bigger than 3840x2160
Task-number: QTBUG-45071
Change-Id: I009de7c2179ffde28e252593067756877cad1b1c
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/testlib/qtestblacklist.cpp
src/widgets/accessible/qaccessiblewidgets.cpp
Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some older window managers and utilities still ignore _NET_WM_NAME.
Task-number: QTBUG-42209
Change-Id: Iff93c8188a0a73b04cdf361add153cd818ac670f
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|