summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable' into devSergio Ahumada2013-09-217-15/+161
|\ | | | | | | Change-Id: I37d85631ab1165ab91457d8880c4da907a9df73b
| * Fix timing issue in incremental data retrieval mechanismGatis Paeglis2013-09-192-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that we are not reading wrong PropertyNotify events. From icccm: Requestors may receive a property of type INCR in response to any target that results in selection data. This indicates that the owner will send the actual data incrementally. The selection requestor: - Waits for the SelectionNotify event. - Loops: + Retrieving data using GetProperty with the delete argument True. + Waiting for a PropertyNotify with the state argument NewValue. - Waits until the property named by the PropertyNotify event is zero-length. - Deletes the zero-length property. The issue with the current approach was that after receiving INCR we simply fetched the first PropertyNotify event from the queue, where timestamp indicates that it was generated before INCR, which is not what need. We need PropertyNotify events with a timestamp older than the one on INCR. Task-number: QTBUG-32045 Change-Id: I3b9a006f7d346f67c51e1a296d67a9dc89efadb1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Implement INCR property mechanism for large data transfers [XCB]Gatis Paeglis2013-09-193-4/+138
| | | | | | | | | | | | | | Implement INCR property mechanism according to the icccm specification. Change-Id: Ic8f85b71cab825d70ee1b61f29acd09fa4c3e642 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Keep Cocoa screen list in sync on screen connect.Morten Johan Sørvig2013-09-172-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The backtrace in QTBUG-33012 indicates that the screen list is getting out of sync on plugging/unplugging an external monitor. This happens on 10.9 only. Check if we are about to out of bounds access the screen list; call updateScreens() which will add the new screen. Task-number: QTBUG-33012 Change-Id: Id1acc3baca9e60e7f2a83188d66cdf9d322a582c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
| * xcb: QWindow never uses XCB_GRAVITY_CENTERShawn Rutledge2013-09-161-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Center gravity doesn't mean center the window, it only affects the method of converting between internal window bounds and decorated bounds. So wanting to have each dialog centered w.r.t. its transient parent is not a reason for using center gravity. Instead it caused the bug that when you resize a QMessageBox by clicking the Show Details button, it jumps downwards on the screen. Task-number: QTBUG-32473 Change-Id: I3fabf3caa1e4d10fd4f7508e297f73efe5cc51b6 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| * accessible: fix if (!foo != const) constructMarc Mutz2013-09-161-1/+1
| | | | | | | | | | | | | | Fixes a Clang warning. Change-Id: I114cf0f84ef9a4fe4ae814cedca883945d76e86c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| * Revert recent attempt to fix Invalid Drawable error on Mac.Chris Meyer2013-09-132-7/+3
| | | | | | | | | | | | | | | | This reverts commit 59fd36bb914cae248d3c5100dd734d6d90a58dca, which caused other drawing problems. Change-Id: I3bb75fd3ca1cd21ffbb9ef5474266f4cd615a64a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Port of Qt 4's Windows session managementSamuel Gaist2013-09-218-3/+308
| | | | | | | | | | | | | | | | | | | | This patch aims to implement the session management for Windows. Based on the Qt 4 QApplication windows specific code Task-number: QTBUG-28228 Task-number: QTBUG-33032 Change-Id: I7059298ad9661aebd51e77a03f55a7a04f461479 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | iOS: Compare similar types when setting up QPlatformScreenTor Arne Vestbø2013-09-211-1/+1
| | | | | | | | | | | | | | [NSArray count] returns an NSUInteger (unsigned long). Change-Id: I3b1c6720e9503ed181f01a7e737de07a277f7bde Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | eglfs: Unify the native resource gettersLaszlo Agocs2013-09-213-18/+58
| | | | | | | | | | | | | | | | | | Similarly to how it's done in xcb. And add support for eglwindow since the WId will soon once again cease to be an EGLNativeWindowType. Change-Id: I0e3b86a21179439821550c9423f0e747ccae5897 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Added support for cover windows on BlackBerry platformBernd Weimer2013-09-2010-29/+256
| | | | | | | | | | | | | | | | | | | | | | | | On the BlackBerry platform when an application is minimized an alternate cover window is shown. This patch allows Qt to render into those windows. A new window type "Qt::CoverWindow" has been introduced. Change-Id: If5e321f5cb00f6d3ed7a5dc0af425655d7a9253a Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Build X11 session management only if dependencies are foundTeo Mrnjavac2013-09-203-2/+3
| | | | | | | | | | | | | | | | | | | | | | This fixes the build breakage caused by Change I50b33d05 when attempting to compile on Linux with session management enabled but libSM and/or libICE not present. Change-Id: I127f32e7041deb2ff968eae8458fee7d4e95d7a5 Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch> Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: aavit <eirik.aavitsland@digia.com>
* | Android: Use the new QJNI api in our QLocale implementation.Christian Strømme2013-09-201-11/+9
| | | | | | | | | | | | | | This change makes use of the private QJNI api that now exists in QtCore. Change-Id: Id03664942d6c6cbfec028a3b52729057153a8466 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Add missing implementation in QAccessibleTabBar::indexOfChildJan Arve Saether2013-09-201-2/+10
| | | | | | | | | | | | | | This avoids the assertion in iaccessible2.cpp(510) Change-Id: I1a4c007ffcbcda70f0e37ef3cf55a303683b58c1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | WinRT: Basic global supportAndrew Knight2013-09-201-1/+1
| | | | | | | | | | | | | | | | Various global changes, primarily preprocessor flow, to support the WinRT platform. Change-Id: I3fa9cf91d5fb24019362e88fcf205e31b4f810b5 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | Add a WindowManagement capability to QPlatformIntegrationLaszlo Agocs2013-09-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | To be set to false by eglfs and similar platforms where no real window management is provided. When this capability is not set, some of the changes done for QTBUG-26903 will be disabled, allowing dialogs to show up at their QDialog-chosen place on platforms where no WM is present and so windows are never repositioned by the system. Change-Id: If1dac3cd11f2a856913a51277431fe3ec644b719 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | eglfs: Support multiple raster windowsLaszlo Agocs2013-09-2012-155/+386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow widget apps with popups and multiple top-level widgets to function on the eglfs platform. GL and Quick2 apps are not affected. Instead of trying to create a native window and EGL surface for each window, do it only for the window that is created first. This first window is forced to fullscreen as usual. Later windows however are treated differently: These will not have a native window, surface or context, and keep their normal size. All the textures belonging to the raster windows are then rendered in one step, using a stacking order maintained based on visibility changes and window activation. Note that this will only help apps that create a main window first and have everything else inside that window or on top of it as menus, dialogs, popups, etc. Change-Id: Ia435458ba81bf3c35cc8f61bcb2d2a50cf17f0e3 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Revert "Fix Invalid Drawable error when using createWindowContainer on Mac."Gunnar Sletta2013-09-202-7/+3
| | | | | | | | | | | | | | | | | | This reverts commit 04325bdd26810cd9067ad4b0b9e458b06ce2a3db. This change breaks qtdeclarative on Mac. Change-Id: I77b121cc6b283cf7498e93e4b914d2fb68808ab6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix android after Eglfs binary compatibility breakPaul Olav Tvete2013-09-201-2/+3
| | | | | | | | | | Change-Id: I95d98b475188b43f1e0946c7ad6fd2388839d619 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Android: handle inverted orientationsPaul Olav Tvete2013-09-2010-11/+92
| | | | | | | | | | | | | | | | | | | | Add logic to detect InvertedPortrait and InvertedLandscape orientations and implement QPlatformScreen::nativeOrientation() for Android. Task-number: QTBUG-32144 Change-Id: I294506714ea0faa9eacd7a15e1cfc45342659964 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | Make Accessibility publicFrederik Gladhorn2013-09-197-13/+6
| | | | | | | | | | | | | | | | | | There is no point in having QAccessible2, so merge it with the normal QAccessible. The header will be removed in a subsequent commit as it is still needed by declarative at this point in time. Change-Id: I1fc47d484d482f25387eba827bc5a373536b7a8b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Split QQnxWindow into QQnxEglWindow and QQnxRasterWindowFabian Bumberger2013-09-1811-475/+718
| | | | | | | | | | | | | | | | Change-Id: I2fb4096ccca54fa6631aa16c9b8d1308b0a6b918 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
* | Include hidden headers in trees and tables consistentlyJan Arve Saether2013-09-182-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a disagreement between the a11y plugin and QTreeView whether the horizontal header should have been exposed or not. When the header was hidden, this resulted in that we sent an event with a child id that was wrong, or in worst case higher than QAI::childrenCount(). This was the reason we got the warning output as described in the task. With this commit, we consistently *expose* hidden headers both for QTreeView and QTableView, but ensure that their state().invisible is set to true instead. This makes it consistent with how hidden cells are exposed. This also fixes a bug in QTableViewPrivate::accessibleTable2Index where we always added 1 to the index, which was spotted while writing the test. Task-number: QTBUG-33247 Change-Id: Ifd1f83d56296dd071424fdb81fce7628bc24fe0a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Use egl.prf in xcb instead of hardcoding -lEGLLaszlo Agocs2013-09-171-1/+1
| | | | | | | | | | | | Task-number: QTBUG-33494 Change-Id: I55df1acdf2c95f66a93890b4b30f14a52bee6684 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | eglfs: Do not leak the QOpenGLShaderProgram instanceLaszlo Agocs2013-09-171-0/+1
| | | | | | | | | | Change-Id: Ia0691b99d57986328b9dd81e527ea4f402d7bc5b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | eglfs: Sanitize the X11 hooksLaszlo Agocs2013-09-174-40/+121
| | | | | | | | | | | | | | | | | | | | Replace all xlib calls with xcb equivalents, leaving only the absolutely required xlib calls. Handle WM_DELETE_WINDOW so that closing the window exits the app as expected. Finally, introduce EGLFS_X11_FULLSCREEN to enable requesting a fullscreen native window. Change-Id: I8c46ae832d38549ec7d673592f400a4f34bf4314 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Export x11 screen of the QXcbConnection to the native interfaceMartin Gräßlin2013-09-172-2/+16
| | | | | | | | | | | | | | | | | | | | | | With XCB a client cannot retrieve the information on which X screen it is running. This information is only available when opening the xcb connection. As this is done by Qt no application is able to retrieve this information. By exporting the x11 screen we can provide this information again in QtX11Extras. Change-Id: I50f1d3e803dc7e3afac0e5c7f1648ccda4502e7c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Remove mentioning of 5.0 Alpha from QPA ReadmeKai Koehne2013-09-171-6/+4
| | | | | | | | | | | | | | | | While at it, I hope that qplatformtheme API's are stable by now :) Change-Id: I83bf3118c91608710bb19380458e8f55cb3d427b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Remove useless code setting but not using variablesThiago Macieira2013-09-171-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | Clang 3.3 found a variable assigned to itself, probably to cause GCC to shut up about a variable set-but-unused. So simply stop assigning the value at all to this variable. qxcbxsettings.cpp:155:16: error: explicitly assigning a variable of type 'uint' (aka 'unsigned int') to itself [-Werror,-Wself-assign] Change-Id: I74ae8f724e87c1b3f6b9d358e13d6a440ff4a3e1 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Don't send posted events from QWindowSystemInterface::sendWindowSystemEventsTor Arne Vestbø2013-09-164-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The responsibility of sendWindowSystemEvents() is to process events from the window system. Historially that logic was part of the QPA/QWS event dispatcher, which naturally also sent posted events. Through refactoring, the code at some point ended up in in the QWindowSystemInterface class, still with the posting of events in place. This resulted in QPA event dispatchers adopting a pattern of just calling sendWindowSystemEvents(), as that would cover both posted and window system events. Other event dispatchers would call sendWindowSystemEvents(), and then use a base-class implementation from QtCore for processing events, resulting in two calls to QCoreApplication::sendPostedEvents() per iteration of processEvents(). This breaks the contract that processEvents will only process posted events that has been queued up until then. We fix this entanglement by removing the sendPostedEvents() call from QWindowSystemInterface::sendWindowSystemEvents() and move it to the respective event dispatchers. For some EDs it means an explicit call to sendPostedEvents, while others were already doing sendPostedEvents though a separate source (GLib), or using a base-class (UNIX/BB), and did not need an extra call. We still keep the ordering of the original sendWindowSystemEvents() function of first sending posted events, and then processing any window system events. Task-number: QTBUG-33485 Change-Id: I8b069e76cea1f37875e72a034c11d09bf3fe166a Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | remove unnecessary beginPaint and endPaint overridesShawn Rutledge2013-09-1612-38/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | QPlatformBackingStore::endPaint does not take a QRegion parameter. 6ce6b8a378b0d97ba950240ffb048a4b7e485235 set the API, but the platform implementations were not all synced up since then. There was anyway no point in overriding beginPaint and endPaint on platforms which don't need to do anything there. This fixes clang warnings of the form QXcbBackingStore::endPaint hides overloaded virtual function Change-Id: Id6cd0fc2c831a34576ac2c73eeb0d5741d26e622 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Drop leftovers after 02651060b6ce5b16b06721378a239a6d2bd9f528Konstantin Ritt2013-09-141-6/+0
| | | | | | | | | | Change-Id: I011359a47ed47308a7d25e306fbf45a83a3a5715 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge branch 'stable' into devSergio Ahumada2013-09-138-6/+29
|\| | | | | | | | | | | | | | | Conflicts: src/concurrent/qtconcurrentmedian.h src/corelib/itemmodels/qabstractitemmodel.cpp Change-Id: Iac46a90bbb2958cef7670031a4b59c3becd8538a
| * QNX: new signals for foreign windows creation/closingMyoungSeok Song2013-09-132-1/+8
| | | | | | | | | | | | | | | | | | Implement the foreignWindowCreated and foreignWindow closed signals, emitted when foreign windows are created and closed, respectively. Change-Id: I72dd5380e6061f191eb8362fda5dd8fb8e9ed06b Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| * QNX: add nativeResourceForScreenMyoungSeok Song2013-09-122-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | Implemented nativeResourceForScreen api to return QObject* which can be used to connect foreignWindowCreated, foreignWindowClosed signal in QQnxScreen. Usecase is to connect signal in custom QML component as below QObject * obs = interface->nativeResourceForScreen("QObject*", screen); connect(obs, SIGNAL(foreignWindowCreated(void*)), d, SLOT(newForeignWindowCreated(void*))); Change-Id: I512c3b6d188a2e90ef7b8e89c413ca420a29dd9b Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| * Windows: Fix window opacity for non-translucent windows.Friedemann Kleint2013-09-122-2/+5
| | | | | | | | | | | | | | | | | | Use the UpdateLayeredWindow() functions only for windows with alpha. Task-number: QTBUG-33025 Change-Id: I64b0c28ee0997cd3d09dc76babe105ed474c6835 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * Fix Invalid Drawable error when using createWindowContainer on Mac.Chris Meyer2013-09-102-3/+7
| | | | | | | | | | | | | | | | | | | | | | You are not supposed to call NSOpenGLContext -setView: for a view that has not yet called drawRect. Doing this would result in a invalid drawable error. Similar to 4.8 commit cd2a51a66f52767c20e80361033c573651b3a08d Change-Id: Ibb2300a8c6fe52f786f813987e93d4a3dc145366 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | iOS: Interleave Qt application main() with iOS startup sequenceTor Arne Vestbø2013-09-135-32/+558
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our previous event loop integration had two unfortunate flaws: 1. We would call qt_user_main() from a timer, after returning from didFinishLaunchingWithOptions. This had the effect of showing the iOS application window long before the Qt application UI had been set up, resulting in a 1-2 second flash of black/pink between the launch image disappearing and the actual application showing. 2. We spun a nested event loop, where our implementation of the different event loop modes did not perfectly match the Apple implementation. This resulted in scrolling being busted in some cases such as when showing the virtual keyboard for Emoji characters. These two issues have now been solved by calling the user's main() from didFinishLaunchingWithOptions. Normally this would not work, as the user's main would call QApplication::exec() at the end of their main(), which would block and we would never return back from the didFinishLaunchingWithOptions callback, resulting in no UI on screen. We work around this by longjmp'ing out of QApplication::exec(), back into didFinishLaunchingWithOptions, so that it can return. Again, this would normally not work, as the call stack where QApplication and friends would live would get smashed as the application continued executing. We work around this by allocating a block of stack space at the start of main(), which we then redirect the stack pointer to before calling the user's main. This results in the whole stack of the user's main() and below being preserved, even if we longjmp out of the call stack (which then restores the stack pointer). This approach should work fine together with garbage-collection as well, since the mark-and-sweep phase will walk the stack from the stack pointer to the stack base, including sections of the stack that were part of qt_user_main() and live in the reserved area. One case where GC will fail though is if it happens as part of the qt_user_main() call, where the GC will not mark anything in the 'real' callstack below UIApplicationMain(), but this is not expected to happen. The size of the reserved stack can be controlled through the Info.plist key 'QtRunLoopIntegrationStackSize', as well as the 'QtRunLoopIntegrationDisableSeparateStack' key to disable the separate stack approach completely. This will fall back to the old approach. The amount of stack space used by the user's main can be determined by enabling a special debugging mode, using the 'QtRunLoopIntegrationDebugStackUsage' key. Change-Id: I2af7a6cfe1a006a80fd220ed83d8a66d4c45b523 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Bring back Qt4 X11 session management functionality.Teo Mrnjavac2013-09-135-0/+622
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added QXcbSessionManager to the Xcb plugin. QXcbSessionManager inherits from QPlatformSessionManager, it's a port of QSessionManager as it is in Qt 4.8. Minor changes also in QPlatformSessionManager and QGuiApplication to hook it up. Task-number: QTBUG-28228 Task-number: QTBUG-30011 Task-number: QTBUG-33033 Change-Id: I50b33d05a1e32c5278dea339f693713acc870a70 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | eglfs: Set swap interval only when there is a context availableLaszlo Agocs2013-09-133-12/+22
| | | | | | | | | | | | | | Mesa does not like eglSwapInterval calls without a current context. Change-Id: I7ec2d4311586cf74da0461bc951a0e5d9399c35b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | eglfs: Handle desktop and multiple windows gracefullyLaszlo Agocs2013-09-131-1/+7
| | | | | | | | | | | | | | | | | | When trying to create more than one window, stop with a helpful error message since this is not yet supported. Also, return a fake WId for desktop windows. Change-Id: I9859b62b1d4f6b6142982d2e5a90afc1fc3c6a28 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | eglfs: Avoid glUniform calls with wrong type when drawing the cursorLaszlo Agocs2013-09-131-1/+1
| | | | | | | | | | | | | | It is not really fatal but fixing it gets rid of a Mesa warning. Change-Id: I3045b2691e7457541d6524c3e3ff8a1882ca460b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Warn if OpenType support missing for script of interestKonstantin Ritt2013-09-131-1/+1
| | | | | | | | | | | | Change-Id: I076cfc5244ca3c060fd005cc3fbf30b357604bc7 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Decrease code duplication in QFontDatabase-sKonstantin Ritt2013-09-131-15/+4
| | | | | | | | | | | | | | | | Move scriptRequiresOpenType() body right into QFontEngine::supportsScript(), thus centralizing use of this performance cheat. Change-Id: I5f494b086f8f900b631c491f41e9cb800002c0f6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QXcbSystemTrayTracker::trayWindow compiles if Q_XCB_DEBUG is onShawn Rutledge2013-09-121-1/+1
| | | | | | | | | | | | | | | | Fixes qxcbsystemtraytracker.cpp:125:134: error: 'connection' was not declared in this scope Change-Id: If881aa9466ea94d5392da9f177e4b79e044710b7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | QNX: Prevent rendering when app is minimizedBernd Weimer2013-09-123-1/+20
| | | | | | | | | | | | | | | | | | Windows will only be exposed and hence rendered when they are not minimized. This will save useless computations and hence battery. Change-Id: I83166cc6c3d89e878106c998a35890dd7788ed8a Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Android: Make font size compatible with Qt for iOSPaul Olav Tvete2013-09-123-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | We recommend using pixel sizes for predictable results. For those who use point sizes in their UIs, we will now give them results that look similar to what we do on iOS. The default font is changed to give the same size as before this change. Task-number: QTBUG-32096 Change-Id: Ia25506ba721a39d31340f3df8bc14129e507af14 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* | Windows: Fix/Improve closing of native file dialogs.Friedemann Kleint2013-09-111-11/+65
| | | | | | | | | | | | | | | | IFileDialog::close() only works from callbacks. Try to find the dialog window and send it a WM_CLOSE in addition. Change-Id: Id0f89f8781564e19e4763d43a71df55d5299fb35 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | iOS: Change main-wrapper logic to not require changing the user's mainTor Arne Vestbø2013-09-115-75/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using a define to rename the user's main() function during compilation, we leave the user code alone, and inject our wrapper one step earlier in the process, at the application entry point 'start'. This entry point is provided by crt1.o, which is normally linked into the application automatically. The start() function sets up some state and then calls main(), but we change the start() function to instead call our main wrapper. Instead of shipping our own crt1 binary/sources, we make a copy of the appropriate crt1.o at build time, and modify its symbol table in place. This is unproblematic as long as we keep the same length for the wrapper function name, as the symbol names are just entries in the global string table of the object file. The result is that for the regular Qt use-case the user won't see any changes to their main function, and we have more control over the startup sequence. For the hybrid use-case, we no longer rely on the fragile solution of having our back-up 'main' symbol in a single translation unit, which would break eg with --load_all, and we don't need to provide a dummy 'qt_user_main' symbol. OSX 10.8 and iOS 6.0 introduced a new load command called LC_MAIN, which places the state setup in the shared dyld, and then just calls main() directly. Once we bump the minimum deployment target to iOS 6.0 we can start using this loader instead of LC_UNIXTHREAD, but for now we force the classic loader using the -no_new_main flag. There's also a bug in the ld64 linker provided by the current Xcode toolchains that results in the -e linker flag (to set the entry point) having no effect, but hopefully this bug has been fixed (or Apple has switched to the LLVM lld linker) by the time we bump our deployment target. Change-Id: Ie0ba869c13ddc5277dc95c539aebaeb60e949dc2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | iOS: Guard against this and self being deleted when using dispatch_asyncTor Arne Vestbø2013-09-112-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the QIOSApplicationState object owned by the platform integration was deleted we would deallocate QIOSApplicationStateListener, but would then get a callback on the main queue later on where we would reference the now invalid 'this' variable. By moving the dispatch_async call to QIOSApplicationStateListener and using 'self' we ensure that the listener is retained for as long as the block is valid. This opens us up for receiving application state callbacks after QCoreApplication has been deleted, so we need to guard against that. Change-Id: I2ac14d28d72fd79764e12b6657234b54d846cb79 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>