As soon as we receive an event not related to dragging
a QDockWidget out of its area (or a similar use case),
we no longer need the forward window.
Task-number: QTBUG-37265
Change-Id: I310e9cc2cf099c76e7a88427826d4b97ca0cd9b9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
A key event with no unicode would get a text of "\0" instead of
the empty string. This would lead to various widgets interpreting
the Key_Back event as text input, meaning that it would be grabbed
by the widget instead of being propagated.
Task-number: QTBUG-35784
Change-Id: Ibdb0e491572e41dd1aaf3b03ae1a780731f0559a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Change the code so that it doesn't force application windows to full
screen when the no-fullscreen parameter is used in the QT_QPA_PLATFORM
environment variable.
Task-number: QTBUG-37456
Change-Id: If9612cc2ca69f829d45e7fd4b83338c3a41cf986
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Use QPointer to make sure that we are not trying to destroy already
deleted object.
Task-number: QTBUG-35702
Change-Id: Ib746996787488e636f25e6ea5be0571607ee2ded
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QXcbDrag inherits QBasicDrag which takes care of calling
updateAction() when needed, we don't need to call it explicitly.
Task-number: QTBUG-33057
Change-Id: I754408f74f56de36ace8ffa40a61bd7c64619899
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Changed clip rectangle handling from bounding rect to region. Now also
sub region rectangles are taken in to account.
Task-number: QTBUG-37199
Change-Id: I9e09376e2c6d3fee8f85db753295a6138a03096f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Janne Koskinen <janne.p.koskinen@digia.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Add a screenChanged handler slot to QWidgetWindow,
which calls markDirty() on the backing store with
the BufferInvalid and UpdateNow flags set.
Update CocoaBackingStore to create a new buffer on
window devicePixelRatio change. Use the
QCocoaWindow::devicePixelRatio() implementation instead
of a duplicate implementation in the backing store.
The plan is to replace this implementation with one
based on QUpdateWindowRequestEvent for Qt 5.4
Change-Id: I8e521c53df4ac90815613e730fe821996334721f
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
xcb_randr_get_screen_resources() and xcb_randr_get_screen_resources_current()
do basically the same, but for one case: if nothing has queried these
information ever before. So if an application is the very first client ever
to connect to an X server it may just return nothing. A call to
xcb_randr_get_screen_info_reply() will then cause the X server to allocate the
needed information and send an update notification, resulting in a second
QXcbScreen being created, but the other one is still around and probably used.
The behavior I observed with a simple test application was that the application
was not visible on the screen when it was the first client ever on the X
server. Killing the application and starting it again made it work just fine.
Change-Id: Id64f267e8ebcfa5b39d21d98307170a09e5169df
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
As was done in Qt 4, where QFileDialog sets NameFilterDisables() to true
for Q_WS_MAC only.
Task-number: QTBUG-37302
Change-Id: I162f9e79762aa4fa68aba02d1bdfc6322d472a9d
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
The correct function is setOptions().
Change-Id: Ife9ff75c409c843b4871804fcfd06b9d2a7733d3
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Some mouse event may result in the window being deleted
so we need to take extra precaution when calling the super
class' 'sendEvent:' method.
Task-number: QTBUG-37287
Change-Id: Idf89ea177c78053bcdef52c54a197409e20bf38e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
If the GL context cannot be made current in the backing store's
constructor, the framebuffer resources won't be allocated. Fix this
by creating an initialization routine that can be called again if it
fails.
The issue was revealed by the GUI Analog Clock demo, which creates the
backing store before the window has a native handle.
Task-number: QTBUG-36008
Change-Id: I875f8183eff60908fc2b46f441bb553b42ff500d
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
This manifested itself for some continuous integration machine, all
regular macs have wireless. In case there is no wifi, we would never
emit updateCompleted().
Change-Id: I1c5b0da6e1d73fef2588beb1796207326d430e26
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
After QPA refactoring, QWindowsFontDatabase::fontEngine() was returning
a multi font engine w/o any particular reason.
This makes the code more obvious and opens the road to further improvements.
Change-Id: I4858026ddf774d3159c89357b1c905f5112b1c51
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The API is chosen via QSurfaceFormat, the constructor argument is ignored.
Remove this historical artifact.
Change-Id: I4a5c1e12cb297de22f239ad0a6747c1c36168eed
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
The use of Qt::Dialog as a way to signal that a parentless window be created
as a child proved problematic as some applications use dialogs as their sole
window.
Instead, rely on the existence of a dynamic property called 'qnxWindowGroup'.
If found, the window will be created as a child window and that window group
will be joined.
Also added the ability to set the id string window property via another
dynamic property 'qnxWindowId'. While strictly related to the original
issue, one typically needs the ability to set the window id if one
is joining a group.
Added extensive documentation on the mysterious rules of the QNX QPA as
regards windows, at least covering the areas affected by this patch.
This patch was originally implemented by Roger McLean.
Change-Id: I0ef88d654b794ddcb54d4c4d9804bef750da5a33
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
It's impossible to get the distance between two touch events
down to 5 pixels on e.g. my Nexus 5.
This patch makes it possible to tweak the distance through
the platform theme, and sets the distance to 15% of an inch
on Android. Also provides a way to override the default minimum
of 5 pixels by using an environment variable.
[ChangeLog][Android] Fixed double click events
Task-number: QTBUG-36974
Change-Id: I23d94020c531747d6638b645133611614a2a0703
Reviewed-by: BogDan Vatra <bogdan@kde.org>
If the theme name is not recognized we should not create a QPlatformTheme, but rather return 0.
If no platform theme can be created on creation of the QGuiApplication,a default QPlatformTheme
will be created automatically.
Change-Id: I685fa352c87d74c225c7f91c10cb84fb5128a3f6
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This chooses the appropriate file dialog type based on the nameFilters that were set.
Change-Id: I0c674eacbaebf862ce4359e744271c0d6382c216
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
The interface for invoking the file dialog has been changed. Instead of a Json object we now
passing a pps object to the invoke target.
Change-Id: I3c5bc8f0e1af1a84d4afb6bc1923f23db2b43d5e
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This change exports the root window to the native interface as there
is QX11Info::appRootWindow which so far goes over the QDesktopWidget
to get the window id of the root window. Which is a rather hackish way
considering that the root window is known to the QXcbConnection.
But even more it's a very fragile way and can result in crashes on
startup of applications if the application accesses the appRootWindow
too early.
Change-Id: Ibb09a7fa714cb355f579298fc6df33bf80f73f58
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
When the back button is pressed, send an immediate key event to the
topmost window (or the application if there is no window). If it is
accepted, mark the native event as accepted and send a key release event.
This way, the application may call accept() on the KeyPress event for
Qt::Key_Back in order to create backstepping behaviors within the app.
This is in line with Android, which quits the app when the event is
ignored. On Windows Phone, the default behavior occurs when the event is
ignored, which is to back out of the application and leave it running
in the background.
Task-number: QTBUG-35951
Change-Id: I46d15478f441f73d3660370370689b2f9fa11f25
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Expose events should be sent to application windows when the main view
becomes visible (again). This fixes a blank screen which may occur when
resuming an app from suspend.
Change-Id: I33dc00482ef17cdc954a71626a8ad3cd24361a64
Reviewed-by: Oliver Wolff <oliver.wolff@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>
Change-Id: Ia30a18c988986f8c20bc4e4475c5e24b06493035
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This patch only implements the dark palette and returns it by default.
Change-Id: Ieab39c2d5c8f35b9479719b78843b13355c5f123
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This will implement support for copy/paste operations
inside, and between, applications.
Change-Id: I50031b89bdb07f106950dc90fb8b1accbd1191bb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Prepare qmacmime to be moved to platform support by
removing unused includes and function declarations and
other dependencies on carbon or cocoa.
Also remove unneeded QCFString convertions, and use
UTI strings directly (fetched from apple docs) rather
than querying the system.
Change-Id: I8f622664c13f3fd05862720c3658cfc1b59baf28
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Change-Id: Id20df8b80f3064ac0d193124fb790a075a89e53c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Prepare to move qmacmime out of the cocoa port and into
QPlatformSupport for sharing with iOS. This patch will
start by moving tiff out, since it depends too much on
old carbon image manipulation code that will not compile
on iOS (depends on ApplicationServices etc).
Change-Id: Id7a9b919c8f51fa9beb2f4ee2f13cca96894f6a6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Even if the normal mode is used the release events may have zero coordinates.
Change-Id: I2eac8cf50dfcf9e62d8cec2423419a6579266849
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
In Qt 4 there is a factor of 2 in qapplication_win.cpp,
this got lost, so all our cursors were blinking twice as
fast.
Task-number: QTBUG-37200
Change-Id: I11ce61c51279d9ceb8bc9ba01c1bb9640a31ade8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
To utilize the new xkb_x11_* API from libxkbcommon 0.4.0, we need to update
the bundled libxcb-xkb version to 1.10, which is the minimal required version.
Change-Id: I0b72a2684bd11cbe5ae65d6dab7292be3a76464c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Size hints will not be implemented. Grabs maybe some day but the
warnings should be silenced for now.
Change-Id: I1f4861454d45e668c4d758c7f82940cd1136d0c8
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
On FreeBSD Compose files are stored in different place than on Linux
distributions, this patch adds new search paths.
Change-Id: Ic1e745801a2f9a53d1af058be8a1dfaced5032a7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
GLX_NONE is not 0, so it doesn't work as end-of-list marker
The documentation explicitly mentions to use None or NULL
Fixes valgrind warning
==22686== Conditional jump or move depends on uninitialised value(s)
==22686== at 0x78949AF: glXCreatePbuffer (glx_pbuffer.c:709)
==22686== by 0xDD7F0E1: QGLXPbuffer::QGLXPbuffer(QOffscreenSurface*) (qglxintegration.cpp:515)
==22686== by 0xDD624B0: QXcbIntegration::createPlatformOffscreenSurface(QOffscreenSurface*) const (qxcbintegration.cpp:259)
==22686== by 0x4F1D6A2: QOffscreenSurface::create() (in /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.2.1)
==22686== by 0xDD80248: QGLXContext::queryDummyContext() (qglxintegration.cpp:454)
==22686== by 0xDD803F0: QGLXContext::supportsThreading() (qglxintegration.cpp:488)
==22686== by 0x5BD9927: QSGRenderLoop::instance() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==22686== by 0x5BF969E: QQuickWindowPrivate::init(QQuickWindow*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==22686== by 0x5C97BFC: QQuickView::QQuickView(QWindow*) (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.2.1)
==22686== by 0x40636F: startShell(int, char const**, void*) (main.cpp:91)
==22686== by 0x407125: main (main.cpp:193)
Change-Id: Ib4f5ae50f7e31d3fbeb5acf67753e1d8b9e434b0
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This patch aims to fix a memory leak that occurs when the platform
clipboard is used on Android. The QMimeData from the clipboard is
recreated each time mimeData is called
[ChangeLog][QtCore][QPA/Android] Fixed a memory leak in the clipboard
Task-number: QTBUG-36025
Change-Id: I241f586589ff256885caee5e5f737313d24d942d
Reviewed-by: BogDan Vatra <bogdan@kde.org>
It was only used in QFontCache debug output,
and some engines weren't even report a name.
Change-Id: I6cec4b75f105f5a4e1405f50188bebb3a3f04e33
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Remove the opengl proxy for now. Later it will either be moved into
a separate library or replaced by a QOpenGLFunctions-based approach.
This means that the -opengl dynamic configuration is not usable
for the time being. The rest of the enablers remain in place.
The convenience function QOpenGLFunctions::isES() is now moved to
QOpenGLContext and is changed to check the renderable type. This is
extremely useful since besides supporting dynamic GL it solves also
the problem of GL_ARB_ES2_compatibility (i.e. it triggers the real ES
path when creating an ES-compatible context with a desktop OpenGL
implementation).
Task-number: QTBUG-36483
Task-number: QTBUG-37172
Change-Id: I045be3fc16e9043e1528cf48e6bf0903da4fa7ca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
For some reason, the [] access into NSDictionary causes
a crash on iOS 5. So instead use the API as listed in
the documentation: objectForKey.
Task-number: QTBUG-36532
Change-Id: I19fdf0f4ba1aebaf9477e2bd45040c389923605d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>