| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We assumed that creating a window would always result in a configure
notify event, so we delayed sending the initial expose event until
receiving the configure notify.
That strategy fails in cases where the window does not need a reconfigure
after being created, such as when not running a window manager, or when
creating child windows. In those cases the window is just mapped, and
we ended up never sending an expose event.
The problem was masked by sometimes receiving an explicit expose event
from X, just after the mapped notification, which we then sent without
waiting for configure. Unfortunately we can't rely on this behavior
and need to remove the deferred expose event logic, so that we always
ensure that at least one expose event is sent to Qt.
Change-Id: I702be7f24de2a1e89c085fb6bd95bb8ff7792a27
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It can speed up window resizing using on XCB platform
(like in Qt4 or GTK). It doesn't affect QRasterWindow,
but it affects all QWidget-based windows and OpenGL windows.
This code uses XCB Sync Protocol on all windows when it is supported.
In previous code the XCB Sync Protocol was used only when window
doesn't support OpenGL (on QRasterWindow),but QWidget can use OpenGL,
so it doesn't use the XCB Sync Protocol.
With XCB Sync Protocol which is implemented in Qt XCB plugin,
windows can be resized smoother/faster. You can see bigger difference
when you use non-composited window manager to test it:
- Kwin without compositing and fast style,
- Marco,
- Xfwm4,
- Openbox.
Task-number: QTBUG-46641
Change-Id: Ia18dee94616e64ba7e11bd4b062d2326ec530748
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
| |
Removes magic 0-pointers at the call sites.
Change-Id: I6740f6b8cc75004ab5f2ebcb3b3c95cbbdc43153
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
It will be reintroduced as a cross-platform feature.
Task-number: QTBUG-46615
Change-Id: Ia6d03275018b2a25ebed438fe51f15e491f1c3ff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/global/qglobal.cpp
src/corelib/global/qglobal.h
src/corelib/global/qsysinfo.h
src/corelib/global/qsystemdetection.h
src/corelib/kernel/qobjectdefs.h
src/plugins/plugins.pro
tests/auto/widgets/itemviews/qlistview/qlistview.pro
Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/testlib/qtestblacklist.cpp
src/widgets/accessible/qaccessiblewidgets.cpp
Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce a slow path for 24 and 32 bit BGR. We don't care about
performance here but it has to show the correct colors.
Task-number: QTBUG-42776
Change-Id: Ic73e8ca3950b2b956f06643165dcfac51e7540f3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a little-used feature which only affects how minimized icons
are displayed on certain older window managers, and is not necessary
even then. It has not been implemented in Qt 5 until now.
Task-number: QTBUG-44659
Change-Id: Ie6ead7a6f922878b349a096d905bf7f675dc2f31
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|/
|
|
|
| |
Change-Id: I3504141d8130bbfe3246d81b61c8cbb010e255d6
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Outdated header.LGPL removed (use header.LGPL21 instead)
Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)
Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination
Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't crash; restore windows when all screens are removed and re-added.
xcb: on configure notify, check for screen change: it may be that a
window belonging to a screen which was removed has now gotten mapped
to the new screen. On screen change, send a synthetic expose event,
because the real expose events already happened.
Task-number: QTBUG-38326
Task-number: QTBUG-32973
Task-number: QTBUG-42985
Change-Id: If334f55c248468ad3c95e7066bb14eca377d2050
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Applications which construct a window with one screen configuration and show
the window later on after a screen configuration change crash because the
QXcbWindow::m_screen still pointed to the screen present at the time of window
construction. In QXcbWindow::handleConfigureNotifyEvent the m_screen should get
updated with the new screen, but I didn't see that method called in the
scenario outlined. Looking at the other platform backends, I however see that
they take the screen directly from the QPlatformWindow instead of storing the
instance, hence this patch which makes QXcbWindow do the same.
Change-Id: I13759a5939315c3aac36ec6e2c25bd0a6d7b1c35
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/global/global.pri
src/corelib/global/qcompilerdetection.h
src/corelib/global/qglobal.h
src/corelib/tools/qdatetime.cpp
src/plugins/platforms/xcb/qxcbscreen.h
src/plugins/platforms/xcb/qxcbwindow.h
src/widgets/dialogs/qcolordialog.cpp
src/widgets/dialogs/qcolordialog_p.h
tools/configure/configureapp.cpp
Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix screen detection and window geometry when screens have
different displayPixelRatios.
We must use the native coordinate system to figure out which
screen a window belongs to. Also, when a window moves to a
screen with a different devicePixelRatio, we must recalculate
the Qt geometry.
Task-number: QTBUG-43713
Change-Id: I93063e37354ff88f3c8a13320b76dfb272e43a9c
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA][Xcb] GLX and EGL code paths are now dynamically
resolved, making it possible for one build of a plugin to use both code
paths. Default is to use the GLX code path if available. This can be
overwritten by specifying QT_XCB_GL_INTEGRATION=xcb_egl as an
evnironment variable. Enable qt.xcb.glintegration.debug to get debug log
output of what integration is used
Change-Id: Ia9fa95fcca3d901b91dadb8c98a695fea0ae3b1e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
|
| |
Done automatically with clang-modernize on linux
(But does not add Q_DECL_OVERRIDE to the function that are marked
as inline because it a compilation error with MSVC2010)
Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
| |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL
Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
This adds support for the environment variable
QT_DEVICE_PIXEL_RATIO for the xcb platform plugin.
Task-number: QTBUG-38858
Change-Id: I7faca2f2e7dc5c601a82b3cc08456870b3e5602d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
|
|
|
|
|
|
|
|
| |
We no longer support the maemo/meego platform, so we can remove the
specific code for that platform.
Change-Id: Ia7f0730eba2d96794b97b7ca4753f63a2d7bc2a8
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issuing a metacall from swapBuffers is dangerous since the window
may get destroyed by the time the slot is invoked.
This patch changes it to use an event, which is more efficient anyway,
that can be invalidated in case the QXcbWindow is destroy()'ed before
the event is delivered.
Change-Id: I44618ac1cb8b221aecce001ea39702164dcab6a5
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
mkspecs/features/qt.prf
src/plugins/platforms/xcb/qxcbwindow.h
src/tools/qdoc/qdocindexfiles.cpp
src/widgets/kernel/qwidget_qpa.cpp
Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change improves the synced resizes of xcb windows and adds support
for synced resizes of glx windows.
The QXcbWindow keeps a better track on whether the window manager
expects a sync and can be in one of three states:
* no sync required
* sync required, but configure notify event not yet received
* sync required and configured
By tracking this in the QXcbWindow itself the backing store can make
use of this information and doesn't need an own heuristic to decide
whether a sync is needed.
Also this allows to add support for synced resizes of windows with an
OpenGLSurface. This is accomplished by checking the sync state after
swapping buffers. As the OpenGL context may be bound to a background
thread the sync is done using a QueuedConnection to ensure that the
sync happens in the thread which created the xcb window.
So far this is only added for GLX.
This significantly improves the resize experience of QQuickWindow and
also the initial mapping with a composited window manager in case the
compositor uses the sync protocol to determine whether the window is
ready to get painted on screen.
Change-Id: Ied0261873043d785dec652d2821fc3638292fa36
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
|/
|
|
|
|
|
|
|
|
|
| |
This involves exposing a new function in the QPlatformNativeInterface
which gets a public function for QGuiApplication
Proof of concept is done through implementing _NET_WM_WINDOW_TYPE
setters for xcb
Change-Id: Ic9544e775fb71cc9b30273595ec41b1cdb1c9d64
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-35302
Change-Id: I1ad7a66e530710d5338a15057254360dae676451
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First of all QT_NO_SHAPE was never set in configure script, which
means that !contains(DEFINES, QT_NO_SHAPE):LIBS += -lxcb-shape always
was true and we were linking to -lxcb-shape no matter what.
Secondly, we are providing shape.c in qtbase/src/3rdparty/xcb/libxcb, so
users always have an -qt-xcb option available to get this extension.
Change-Id: I7d14a0ac5ca6e36fb9c053225916cae41028b532
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code was using the "long" type when a 32 bit type was actually
needed. This can cause bugs in those systems where "long" is 64 bits
wide, such as Linux x86-64 (which is LP64).
Task-number: QTBUG-34861
Change-Id: Iab289b2af3847dd62d8b4ecea51896936ca4c7a2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
|
|
|
|
|
|
|
| |
This makes it possible to listen for events on xcb_window_t which are
not platformwindows inside the xcb plugin
Change-Id: Ic9ec17ed757a7f9a5302ef2759c119a72bac573c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add QWindow::alert() and QPlatformWindow::setAlertState().
Add logic to clear alertion state when the window becomes
active. The platform plugins then only need to implement a setter
and a cheap getter and need not handle activation.
Prototypically implement X11 and Windows.
Task-number: QTBUG-30416
Change-Id: Ia70c4722d812462a21f4034b7d52735c9f2bc49c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This starts Qt 5.1 release cycle
Conflicts:
src/gui/text/qfontdatabase.cpp
src/gui/text/qharfbuzz_copy_p.h
src/widgets/kernel/qapplication.cpp
src/widgets/kernel/qcoreapplication.cpp
Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a static QWindow::fromWinId(WId id) constructor which can be used to
create a QWindow object representing windows created by other processes.
Then, QWindow::setParent() can be used to embed a window into a foreign
window socket and QWindow::setTransientParent() to stick the current
window on top of a foreign window.
The changes in the QtWidgets module ensure that the focus chain (TAB
navigation) correctly works when a QtWidgets-based window is embedded
into another application.
As far as the platform implementation is concerned, this commit only
implements the embedding functionality in the XCB plugin. So, this is
roughly equivalent to the Qt4 QX11EmbedWidget functionality.
Change-Id: Iff8f7b9ee974d33fb30f36056f7838b433a413c7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
|
|/
|
|
|
|
|
|
| |
Disable sync protocol for OpenGL surfaces in the XCB plugin.
Task-number: QTBUG-29304
Change-Id: I4cb47b04637e15e012758d3b0840abd13d27df69
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
| |
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QX11Info class needs this.
This required adding the missing nativeResourceFunctionForScreen
in QPlatformNativeInterface.
Change-Id: I2c6e91c7f122f3ecdf769a177deafd2aa3896e2f
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
translateMouseButtons() was only able to correctly handle the left,
right, and mid mouse buttons. Thus, if any buttons outside of those were
pressed, the motion notify event would basically unset the mouse button
mask, leading to a release event being sent instead. Later on, when the
actual release event arrives, that button gets xor'ed into the empty
button mask generating another press, and later another motion event
will generate a release. In the end that means two press-release
sequences are sent for any extra mouse buttons.
Instead of getting the mask of the buttons currently being pressed from
the event, we need to keep track of the mask ourselves.
Task-number: QTBUG-28561
Change-Id: Iaa67e784a13d792deef8fc29dbd5456a5471a861
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Rick Stockton <rickstockton@reno-computerhelp.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
| |
Ported the rather trivial implementation from Qt 4.
Task-number: QTBUG-28477
Change-Id: I44e14a3c150af43c6b9b880242b655fe06084fd7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current implementation requests the platform window to set
the window state if it can, and return the actual window state
back.
The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowState would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window state
upon creation). As such, the window state might be left unsynched with
the platform window.
This patch suggests removing the return value from
QPlatformWindow::setWindowState. This will at least be consistent, so
that setting/getting state would produce the same result independent of
delayed window creation. If needed, we can later add new API to
QPlatformIntegration or QPlatformWindow for querying supported/actual
window state.
Change-Id: Ie43f56169656854a765ce88b47a808f8f3d51bb4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current implementation requests the platform window to set
as many of the flags it can, and return the same flags with the
unsupported flags removed.
The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowFlags would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window flags
upon creation). As such, the filtering would never be done.
Looking at the current set of plugins, most of them also seems to
ignore this protocol, returning the flags unfiltered.
This patch suggests removing the return value from
QPlatformWindow::setWindowFlags. This will at least be consistent, so
that setting/getting flags would produce the same result independent of
delayed window creation. If needed, we can later add new API to
QPlatformIntegration or QPlatformWindow for querying supported window
flags.
Change-Id: I9c759b5f9fab5ebed764a982f77fe19881118875
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
|
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
|
| |
This functionality does not need libXext. The bindings for the shape extension
from libxcb-shape is enough and is available without Xlib.
Change-Id: I9f1927024c64df00ace1666998c6c6deda2ef782
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Add functionality for window masks to QPlatformWindow, which is
required to implement QWidget::setMask() in order to fix
the regression in functionality from Qt 4.8.
Change-Id: I2c2d5629f0b4c6d90e52595ad70b13559aab1f41
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
This function just sends a ClientMessage to the window manager. XCB can
do this fine and there is no need to require Xlib for the job.
Change-Id: Iad3d78c393c1f439fff987fa19b4d82513810930
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
- Introduce API to do size grip handling (mouse press
and move).
- Move Windows code to Windows plugin.
- Move X11 code to XCB plugin and activate it.
Change-Id: I2f61d6ddc1fa07447e668554d41ecc820efca23f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
| |
Change-Id: I1908cbef0c20d3725423b559f234bd6d3ddd4167
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Rename posFromMove to posIncludesFrame in Widgets and
make the handling more fine-grained; try to clean it up
as soon as the frame margins are known
in QWidgetPrivate::fixPosIncludesFrame().
- Implement QWidgetPrivate::updateFrameStrut().
- Windows: Handle posIncludesFrame in window creation,
notify changed geometry after setting window flags.
- XCB: Do not change the window gravity in propagateSizeHint()
as this causes the window to jump around. Determine
the gravity in window creation, leave it constant and
fix the geometry when setting instead.
- Store the normal geometry when maximize/fullscreen
state change events are received.
- Remove xfails from fixed tests
Task-number: QTBUG-25331
Task-number: QTBUG-24905
Task-number: QTBUG-24294
Change-Id: I89c7229d86aaf88f02247d63915da7905e4a27ea
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|