summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* macOS: Make alpha-based click-trough work againMorten Johan Sørvig2017-12-151-2/+12
| | | | | | | | | | | | | | | | | | | | Commit 3ea04c7d made it so that we always set the ignoresMouseEvent property on the NSWindow, based on the WindowTransparentForInput flag. However, this overwrites the magical secret initial state where click-trough is determined based on window content transparency - setting the property to false makes the window capture all events. Restore 5.5 behavior by not modifying ignoresMouseEvent if we can. Toggling WindowTransparentForInput on and off again is still broken. Task-number: QTBUG-54830 Change-Id: I5f44ce14d9a7dc1713f9efb1ef929e2969838d90 (cherry picked from commit c35fc435950437d3d046b17d06593873d7b82011) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix build error with macOS 10.13 SDKJake Petroules2017-10-092-13/+2
| | | | | | | | | | | | | Several of these variables/macros are no longer defined. We didn't validate the preconditions on iOS, tvOS, or watchOS, so no need to bother validating them on macOS either. Nor did we check the OSStatus result on any platform anyways. Task-number: QTBUG-63401 Change-Id: Ife64dff767cf6d3f4b839fc53ec486181c176bf3 (cherry-picked from 861544583511d4e6f7745d2339b26ff1cd44132b) Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use correct DRM event context versionJonathan Liu2017-07-281-1/+1
| | | | | | | | | | | | | | | Explicitly declare which DRM event context version we want to use, rather than just the latest one libdrm supports. New versions may change semantics, or extend the structure, in ways we're unaware of. Stick with version 2, which is the version that introduced page_flip_handler. Change-Id: I1d2066d5ab485ea571f016a8660829f435821c82 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 50275fbcaf60ed41bd4486f8239cc7914c8af0f5)
* Use pkg-config for libdrm in eglfs_kms_egldevice backend if possibleJonathan Liu2017-07-191-1/+6
| | | | | | | | | | | | Without pkg-config, /usr/include/libdrm is not added to the include search path so xf86drm.h may be unable to include drm.h. This change is being applied directly to 5.6 because it's not applicable to 5.9 or dev. Those versions of Qt have moved to using QMAKE_USE which will already use pkg-config if available. Change-Id: I875c1e5f1b3cce63fd6b529d9d8ac97fd5bb56e8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* macOS: Don't keep WA_MacAlwaysShowToolWindow windows always on topTor Arne Vestbø2017-06-302-5/+84
| | | | | | | | | | | | | | | | | | | | | | | | | On macOS if an application is no longer active then it will cause any tool windows to hide until the application is active again. For applications that did not want this behavior and thus wanted the tool window to stay visible, the WA_MacAlwaysShowToolWindow flag is available. In order to ensure that this flag is respected, the tool window needs to have its level changed when the application active status changes. Once it is no longer active the window needs to be seen as a normal window, and when it is active then it needs to be set to be a window that is always on top to get the right behavior. Due to various bugs in AppKit we need to explicitly order windows in front during this process, which requires us to then iterate the windows in back-to-front order. For macOS versions < 10.12 there is no way to get an ordered list of windows, so we fall back to using the window creation order. Task-number: QTBUG-57581 Change-Id: If20b4698616707685f83b1378f87593f8169c8c6 (cherry picked from commit 4c346b6e2bfab976bc9b16275b8382aee38aefa4) Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Fix build with libdrm >= 2.4.78Thiago Macieira2017-04-181-5/+5
| | | | | | | | | | | drmEventContext has grown by one pointer, so the build fails with an error about a member without initialization. qeglfskmsgbmdevice.cpp:147:5: error: missing initializer for member ‘_drmEventContext::page_flip_handler2’ [-Werror=missing-field-initializers] Change-Id: I0e1a09998253489388abfffd14b6014b1ddc90e1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 34d2fd14979198dc0fcc07f73581ece9540c4b72)
* Cocoa: Unbreak app activation on macOS SierraMorten Johan Sørvig2017-04-122-10/+18
| | | | | | | | | | | | | | | | | | Previously, we would activate the application during QCocoaIntegration construction, which means at QApplication creation time. This now seems to interfere with application startup on macOS Sierra, where the application window ends up in an unfocused state. Move application activation to applicationDidFinishLaunching, at which point the Cocoa runtime should be completely initialized. Do this for 10.12+ only to avoid regressions/ test failures on previous versions. Task-number: QTBUG-57044 Change-Id: If6248753236d7473db2b8513dba0368901f3f4cf (cherry picked from commit 2c9dc93696f32b798b872f931c102329d0ba7155) Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Android: Fix crash at exitBogDan Vatra2017-04-112-14/+16
| | | | | | | | | | | | We need to remove and release the surface imediately, otherwise setSurface might be called after the object is deleted. Task-number: QTBUG-59818 Change-Id: I3a09e3de1ceecc22d8d7a48e2fc1cfe40cf09f0a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Mathias Hasselmann <mathias.hasselmann@kdab.com> Reviewed-by: Christian Stromme <christian.stromme@qt.io> (cherry picked from commit 6c4cbd4122edf8b78f34778400d485b11da98404)
* WINCE: Don't receive touches by default from gesturesAndreas Holzammer2017-03-242-2/+2
| | | | | | | | | | | | Windows Embedded Compact does send events from touch devices, as mouse event and as gesture event. There is no way to distinguish between a regular mouse event coming from a a connected physical mouse or a touchscreen. There is also no way to tell Windows to not deliver these touches as mouse events. Change-Id: Ia894ef9d1c0f8650f45f5bc328ce48f2505cac40 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix hang on sleep/wakeupBogDan Vatra2017-03-231-9/+8
| | | | | | | | | | | | | | This patch fixes the followings: - call "it.value()" only on valid iterators - destroySurface() doesn't remove the surfaceId from m_surfaces - the surfaceId is removed from m_surfaces when the QtSurface is really destroyed Task-number: QTBUG-59185 Change-Id: Iee37dde16fee16f19906812c55c1f0b0279b033c Reviewed-by: Mathias Hasselmann <mathias.hasselmann@kdab.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit da4b91e2b2c6bb7949e2151a72be1f11c28768d6)
* xcb: fix misuse of xcb_send_eventGatis Paeglis2017-03-084-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the following Valgrind warning: "Syscall param writev(vector[...]) points to uninitialised byte(s) Uninitialised value was created by a stack allocation" The xcb_send_event() requires all events to have 32 bytes. It calls memcpy() on the passed in event. If the passed in event is less than 32 bytes, memcpy() reaches into unrelated memory. And as it turns out, this behavior is actually described in the xcb_send_event function's documentation. This patch adds a macro that declares an event for safe usage with xcb_send_event. The cherry picked change contains one minor adjustment to support older compilers: q_padded_xcb_event<event_type> store = {}; was replaced with: q_padded_xcb_event<event_type> store = q_padded_xcb_event<event_type>(); Change-Id: Id0cfc2b1ae9e105e8b4328fdaba03300cb718840 Done-with: Uli Schlachter Task-number: QTBUG-56518 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> (cherry picked from commit 1a5deb7e0ea9a129d4ebc59677893c7477ad5a3a)
* Android: Fix OpenGL shader compilation on updated emulatorEskil Abrahamsen Blomfeldt2017-02-281-4/+0
| | | | | | | | | | | | | | | | | | | | In 0ae4b948515af904dba397448839056d9b7965af, we added a work-around specifically for the Android emulator, causing it to override the precision qualifiers in shader code, since the emulator would send the shader code directly to the host OpenGL driver and thus there was no guarantee that the qualifiers would be supported. Since then, the original issue with the emulator has been fixed, so now Qt applications are failing because of the work-around. [ChangeLog][Android] Removed old work-around which was causing OpenGL shader compilation to fail on updated Android emulators. Task-number: QTBUG-44697 Change-Id: Ia1f8e754b092bc5cb3adb0d4add92e7908ada86c Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com> (cherry picked from commit 440ccba0ab43a3980c36fbd073aa2c466c9a4df0)
* xcb: Allow to disable XInput 2 support by setting QT_XCB_NO_XI2 env varAlexander Volkov2017-02-181-1/+2
| | | | | | | | | | | Use of XInput 2 may result in regressions. For example we call XISelectEvents for each window every time a device plugs/unplugs. It causes significant delays when there are many native windows. Change-Id: I60b799bb667d0e4bca1f9c52cdaa07b04bcc749f Task-number: QTBUG-57013 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> (cherry picked from commit bee82432ebf37312ef28846722fbf925ef4f04c8)
* Windows QPA: Call InvalidateRect() in WM_PAINT/GL Software renderingFriedemann Kleint2017-02-141-1/+15
| | | | | | | | | | | Bring back the call to InvalidateRect() removed by change 6086c81e4d999d88ce4d412 since it seems that GL Software rendering requires it (also for single buffer mode). Task-number: QTBUG-58178 Change-Id: I197a1b3c3906c4afa43943db30dbc07dfb656cc7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 7780ee9e5f20f80ab9e053058d0b6d92586cf876)
* QPixmapStyle: do not assume minimum == 0 when painting progress barsMarc Mutz2017-01-201-4/+7
| | | | | | | | | | | | | | | | | The arithmetic used to calculate the size of the progress bar fill in QPixmapStyle assumed minimum == 0, but that does not necessarily hold, since the minimum value is user-defined. So, fix the arithmetic to take the minimum into account, taking care, as done elsewhere, to avoid signed integer and qreal=float overflows, by using qint64 and double, respectively. [ChangeLog][QtWidgets][QPixmapStyle] Now handles progress bars with minimum != 0 correctly. Change-Id: I738ded56e8234716c36a5e9fde15bae691c43a35 Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit 3f996edbb69a575267a4ff816f09510f14729149)
* QCocoaMenu: Avoid exception when inserting item already in this menuGabriel de Dietrich2017-01-202-8/+14
| | | | | | | | | | | | | | | | This should not happen, but it's clearly not the user's fault. So we should try to carry on as gracefully as possible instead of letting Cocoa abort the application. The patch also factors the repeated calls to QCocoaMenuItem:: nsItem() in QCocoaMenu::insertNative() and improves a warning from QCocoaMenuIten::sync(). Change-Id: I97dbd3685ce237cb60700d8bbf64919f028edb9a (cherry picked from commit b2f78b796b5b73d4f0732975ffd66f8aa392c001) Task-number: QTBUG-57404 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Android: Use override instead of Q_DECL_OVERRIDEAlexander Volkov2017-01-033-8/+8
| | | | | | | | ... for consistency. Change-Id: I37afaff6f7512a1cd09f0f31996b9bedc6cb3bab Reviewed-by: BogDan Vatra <bogdan@kdab.com> (cherry picked from commit 4c375f75e0ed38d297dc44746e2e00f34f98269b)
* Android: Add missing overrideAlexander Volkov2017-01-0321-143/+143
| | | | | | | | | C++11 is enabled by default on Android, so use override instead of Q_DECL_OVERRIDE. Change-Id: I70b802517d8f7d129ffb71dc3e92cb2458a55acc Reviewed-by: BogDan Vatra <bogdan@kdab.com> (cherry picked from commit e3ad43843a6ddb20c901b6fba85c12fb0e6c5651)
* Windows QPA: Do not send key events for mouse-synthesized app commandsFriedemann Kleint2016-11-231-0/+3
| | | | | | | | | | | | | | | Sending key events in addition causes applications to respond twice to for example the back / forward extra mouse buttons. Suppress the keypress by checking on the device. This is in line with the other platforms, which do not send keypresses either. Native event filters will still be able to listen for WM_APPCOMMAND. Task-number: QTBUG-48117 Task-number: QTBUG-57198 Change-Id: I219e17244087663f06ab2c5a8cf4b880c3655700 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* If there are no available sizes, then fallback to the requested sizeAndy Shaw2016-11-233-4/+7
| | | | | | | | | | | | | | | | In a case like the SVG iconengine there is no available sizes implementation. However in that case we don't need to provide different sizes as we can have SVG scale it for us to the one requested. So it is assumed that with no available sizes implementation that the icon engine will take care of this for us. This ensures that SVG files can be used as icons inside the menu on macOS. Task-number: QTBUG-40225 Task-number: QTBUG-55932 Change-Id: If01ca582c4c07834e6de16652924e0b7e118c87c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* eglfs: Avoid unexpectedly flushing QPA input eventsLaszlo Agocs2016-11-222-2/+2
| | | | | | | | | | | | Flushing all events to ensure that the expose (or other queued events) get processed right away is dangerous. Instead, pass ExcludeUserInputEvents like many other platform plugins do. This way queued input events do not get processed at an unexpected point in time and so do not interfere with modal dialogs for instance. Task-number: QTBUG-57229 Change-Id: I9da09e62627d26485fb5a37fc190cb4a4bcb28b6 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* eglfs: fix eglfs_mali compile for odroid-maliPeter Seiderer2016-11-191-2/+2
| | | | | | | | | | | Avoid duplicated struct fbdev_window definition (introduced by commit 58bed4cda98e8e25db8adc61c7db73b6853077dc) by renaming the local shadow definition to struct shadow_fbdev_window. Task-number: QTBUG-57156 Change-Id: I72b03f09fc57ddcd0284d6d3554a5658e02b80fc Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Julien Corjon <corjon.j@ecagroup.com>
* Cocoa: Make dictation via speech recognition workMorten Johan Sørvig2016-11-141-3/+1
| | | | | | | | | | | | | | | Returning NSNotFound from the NSTextInputClient selectedRange implementation when there is no selection prevents dictation from activating (for unknown reasons). Return an empty {0, 0} range instead. Text input methods such as Pinyin still work after this change. [ChangeLog][macOS] Speech to text dictation now works for Qt text input. Change-Id: Ibf1729bdd271e8ed5ce3c9d2a0373c8ab3613d8e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QClipboard: Fix emitting changed() in XCBPalo Kisa2016-11-141-2/+4
| | | | | | | | | | | | | | In XCB environment the QClipboard::changed() was not delivered if the QClipboard::clear() was issued by other Qt app/process. If the QClipboard::clear() is used, then the owner in xcb_xfixes_selection_notify_event_t is XCB_NONE, so we need make the decission to handle this event by the selection_timestamp and our m_timestamp[mode]. Task-number: QTBUG-56972 Change-Id: If4c486ac02223eac506465cac7ff1a07bd02a187 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* xcb: Warn and bail out when even the basic, dummy context failsLaszlo Agocs2016-11-101-2/+5
| | | | | | | | Do not move on to glGet since the behavior is undefined. Task-number: QTBUG-48986 Change-Id: Ifd279635ed1b8441f92697965d15ae3ecb59a7e3 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Do not guard tslib with evdevLaszlo Agocs2016-11-102-12/+16
| | | | | | | | That relation is incorrect. We can have tslib support without evdev. Task-number: QTBUG-54998 Change-Id: I2c09bad73210fa4a13000077480c70365d482e2e Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Cocoa: Make child window cursors work correctlyMorten Johan Sørvig2016-11-085-38/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing cursor logic had a couple of issues: - It made the faulty assumption that we could not use the NSWindow invalidateCursorRectsForView API for child NSViews. - It used NSWindow invalidateCursorRectsForView and NSView resetCursorRects. This API has been replaced by the more general NSTrackingArea API. - It did not implement falling back to the parent window cursor if the current window has no cursor set. Document that QWindow cursors work the same way as QWidget cursors in that a QWindow with no set cursor will fall back to the parent window cursor. Change the cocoa platform code to use NSTrackingArea exclusively and implement NSView cursorUpdate which sets the cursor. Handle immediate change on QWindow:: setCursor() manually. Add QWindow::effectiveWindowCursor() and applyEffectiveWindowCursor() which finds the correct window cursor. Add a manual test for the child window, child widget, and QWidget::createWindowChild cases. Task-number: QTBUG-33479 Task-number: QTBUG-52023 Change-Id: I0370e11bbadb2da95e8632e61be6228ec2cd5e9d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Clear event dispatcher interrupt stateGabriel de Dietrich2016-11-087-0/+38
| | | | | | | | | | | | | | | | | | | | A pending interrupt of a QEventLoop may interfere with native runModal calls, resulting in Cocoa's main event loop to be stopped unexpectedly. After commit 9ab60b9c processEvents() no longer resets the event dispatcher interrupt flag. Add QCocoaEventDispatcher::clearCurrentThreadCocoa EventDispatcherInterruptFlag(). Use it to clear the interrupt state before calling runModal and variants. Work around the inability to use platform API in the print support code. Change-Id: I52f26f99a63cbb46969db42f65b09a3c3119ad15 Task-number: QTBUG-56746 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* iOS: fix 'incompatible pointer type' compiler warningRichard Moe Gustavsen2016-11-071-1/+1
| | | | | Change-Id: I01bb7516a3600dd1dbd71dd6989f541494840abc Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* minimalegl: Reorder includes to avoid EGL native type clashesLaszlo Agocs2016-10-283-4/+2
| | | | | | | | | | | | | | Some of the qminimaleglscreen.h includes are not even necessary. With the inclusion of egl.h (or qt_egl_p.h in 5.7 and up) isolated to this header, all we need to ensure is that the sources that include it place the include at a suitable place. This is not the only possible solution, there are alternatives (each with its own caveat), but this is likely the least intrusive. Task-number: QTBUG-56559 Change-Id: I17db031c8e401d9895a417ba3568ad1e4ba30f72 Reviewed-by: Louai Al-Khanji <louai.al-khanji@qt.io>
* windows: Disable OpenGL proper on Intel 945Laszlo Agocs2016-10-281-0/+12
| | | | | | Change-Id: I77fbf5bafcd6b0fe5040513ef6b0d049600f9b33 Task-number: QTBUG-40991 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QNSColorPanelDelegate: Don't restore stolen view on deallocGabriel de Dietrich2016-10-282-2/+2
| | | | | | | | | | | | | | | | | We may not be playing nice with Cocoa's internals when we decide to reparent NSColorPanel's contents to add QColorDialog's own OK/Cancel buttons. In order to reduce issues, we should avoid poking at things during the application's shutdown sequence. Simply releasing the stolen view should be enough at that point. A similar pattern exists in QNSFontPanelDelegate. Change-Id: I678c236e0c57c4d08a1109a479d965f924288c54 Task-number: QTBUG-56448 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* nsphotolibrarysupport: add missing namespace macrosRichard Moe Gustavsen2016-10-273-0/+13
| | | | | Change-Id: Ib2014dc64dfcc1ea8de63a1668907ace6d26c530 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* qiosfileengineassetslibrary: replace Q_DECL_OVERRIDE with overrideRichard Moe Gustavsen2016-10-261-12/+12
| | | | | Change-Id: Iba67e1a1fa86dff3c82543597351b597be69ed1f Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* iOS: refactor usage of photos into optional pluginRichard Moe Gustavsen2016-10-2616-112/+369
| | | | | | | | | | | | | | | | | | | | | | | | | | | Starting from iOS 10, apps that tries to access photos on the device need to specify the reason for this up front by adding the key 'NSPhotoLibraryUsageDescription' into Info.plist. If the key is missing, the app will be rejected from AppStore. This causes problems for the iOS plugin as it stands since parts of it already tries to access photos, e.g to show an image picker dialog if a file dialog is set to open QStandardPaths::PicturesLocation. This means that currently, all apps written with Qt will be rejected from AppStore unless the developer adds this key, whether he tries to access photos or not. To solve this, we choose to split the plugin into two parts, one that contains the core functionality, and one that contains optional support. The latter will need to be enabled explicit by the developer in the pro file, or in this case, indirectly by adding the right key to the Info.plist. This patch refactors the code in the plugin that gives access to photos into a separate optional plugin called 'nsphotolibrarysupport'. Change-Id: Ic4351eb0bbfffdf840fd88cd00bb29a25907798f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* QCocoaMenuBar: Update even if no window is attachedGabriel de Dietrich2016-10-242-1/+28
| | | | | | | | | | | | | Then we need to check if the current active (or focused) window has any menubar associated. In case there isn't, and the menubar has no window associated, then we should update immediately. The previous condition is still valid. Change-Id: I4532ccc87354d91c76b53f5433dc3944b9e29584 Task-number: QTBUG-56275 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* qxcbconnection.cpp: fix warning about unused functionAnton Kudryavtsev2016-10-211-0/+2
| | | | | | | | | isXIEvent() is used iff XCB_USE_XINPUT2 is defined. So move declaration of the function in XCB_USE_XINPUT2 define scope. Change-Id: I6f045cd07d572ee7425ee6edc5ac73dcf0afdb37 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix UB (ininited pointer read) in qt_egl_device_integration()Marc Mutz2016-10-211-0/+1
| | | | | | | | | | | | The m_integration member of DeviceIntegration, a naked pointer, was checked for nullptr in the DeviceIntegration ctor, but never set to nullptr. Fix by init'ing it to nullptr in the ctor-init-list. Coverity-Id: 172056 Change-Id: Ia1dc9b67b9d16a991bba82338eedb19de68f91d8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macOS: Only show menu and allow dragging on proxy when a file path is setAndy Shaw2016-10-194-1/+20
| | | | | | | | | If there is no file path set then it should not be possible to see a menu or to drag from a proxy icon in the titlebar. Task-number: QTBUG-56082 Change-Id: Ib8305bcab5717bc8cb7ddabbb079f152debbdded Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* xcb: fix passing of focus from child to its top level QWindowClinton Stimpson2016-10-191-1/+2
| | | | | | | | | | | | With the client message _NET_ACTIVE_WINDOW, not all window managers will pass focus from a child window to its root window, Detect this child-to-root case, and use xcb_set_input_focus() instead. Task-number: QTBUG-39362 Change-Id: Ib32193018e3b725b323f87d7306c9ae9493d78a7 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* QAndroidPlatformTheme: wrap char* in QL1S to avoid warningsAnton Kudryavtsev2016-10-181-2/+2
| | | | | Change-Id: Idcc70038051b03366aa447f3a4c48912d3f911d5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* iOS: Report correct physical DPI for iPhone 7 PlusTor Arne Vestbø2016-10-141-2/+2
| | | | | | Task-number: QTBUG-56509 Change-Id: Ibae94262c2a4c917aeca00cb1a1c28e5ae60f0c4 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Android: Don't update offscreen windowsChristian Strømme2016-10-121-1/+6
| | | | | | | | Offscreen windows should not be handle by the platform plugin. Task-number: QTBUG-50973 Change-Id: I719a24b9bbcaad460d78fdc4095e86d615357cd2 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QXcbShmImage: don't use shmget()'s return unless it succeedsEdward Welbourne2016-10-121-7/+9
| | | | | | | | | | | | | | | When shmget() failed, we didn't set m_shm_info.shmid (not even to the -1 failure id) but did pass it (i.e. uninitialized noise) to shmat(), among other related functions. Guard against this; handle failure gracefully. Task-number: QTBUG-56419 Change-Id: Ie823c36c2ede03af6cb5d94ce7b4b5cd543c1008 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Joni Poikelin <joni.poikelin@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix multimedia print key mappingAllan Sandfeld Jensen2016-10-071-1/+1
| | | | | | | | Qt::Key_Print is the PrintScreen key-mapping. Instead use Qt::Key_Printer which is also what VK_PRINT is mapped to. Change-Id: I60a0181ed118253b6681ae0e5847812f73d63119 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* QCocoaEventDispatcher: Save interrupt state between embedded callsGabriel de Dietrich2016-10-041-1/+1
| | | | | | | | | | | | | | | | Since QCocoaEventDispatcher::processEvents() resets the interrupt state, this may prevent a higher level event loop from returning. For example, calling QMenu::exec() and, as a result of an action being triggered, the application calls QCoreApplication::processEvents() after QMenu::hideEvent(). In this case, the menu event loop can be stuck until we run another event loop. Task-number: QTBUG-53947 Change-Id: If7efe1c3c07f7222c695195cbb4f41715e49b02e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Wayne Arnold <wayne.arnold@autodesk.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Plug QMimeData leaks in QXcbClipboardMarc Mutz2016-10-022-6/+8
| | | | | | | | | | | | | | | | | QXcbClipboard failed to delete the various QMimeData instances it owns. For m_xClipboard, where the two QXcbClipboardMime instances are never the same, fix the leak by using a scoped instead of a naked pointer. For m_clientClipboard, where the two QMimeData could be identical objects, keep the naked pointers, but delete the objects manually in the QXcbClipboard destructor, paying attention to the case where they're the same object. Change-Id: I5ce0e3e8fcec068aeb344ca806cdf2667378e946 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* iOS: (crash fix) ensure we don't clear focus object in a text responder ↵Richard Moe Gustavsen2016-09-301-1/+1
| | | | | | | | | | | | | | transition (Backport of 5.7/8586ccc). The original patch was implemented to handle crashes after e78ca787ae459f. But the former was pushed to 5.7, and the latter to 5.6. So we need to backport it, otherwise the same crashes will still happen in 5.6 (e.g when transferring focus from a text edit to a (picker) menu). Change-Id: I13037735dc316bceadb571e67f38a310c8a1bfae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* iOS: hide shortcuts bar on iPad when showing menusRichard Moe Gustavsen2016-09-303-0/+13
| | | | | | | | | | | | | | On iPad, a shortcuts bar with extra controls are shown on top of the keyboard with opertions like cut and copy. This is unwanted when using the keyboard to show menus. This patch will add extra private information to IM platform data when using menus, so that we hide the shorcuts menu when showing the custom input panel. Task-number: QTBUG-49893 Change-Id: Iaa8e1ff18acebec8be69699b3fd9470c69ab34d7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* xcb: Treat bitmap cursors differently from shaped cursorsRobin Burchell2016-09-293-11/+38
| | | | | | | | | | | | | | | | | | | QXcbCursor had a "cache" of cursor handles. Unfortunately, as QXcbCursor has its lifetime tied to the screen, this cache grew unbounded whenever the cursor was set: this could be witnessed worst when repeatedly setting the current cursor to a different pixmap each time. We fix this by keeping the cursor cache only for the "regular" shaped cursors that are often shared between windows, working on the assumption that custom cursors are generally specific only to a given window. This makes the lifetime of the bitmap cursors much more clear: they are tied to that window, and when the window is destroyed (or changes cursor), so too is the bitmap cursor destroyed (if set). Reported-by: Will Thompson <wjt@endlessm.com> Change-Id: Ia558d858ff49e89cd5220344567203eb0267a133 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>