summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformwindow.cpp
Commit message (Collapse)AuthorAgeFilesLines
* doc: minor cleanup in QPlatformWindow::setGeometry()Gatis Paeglis2017-07-251-2/+3
| | | | | | | | | | This patch amends a4c8129. This is more consistent with other parts in QPlatformWindow docs. Change-Id: I26d7a91849f3fde3ab2a0f3c81e00a5f9c830707 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add QPlatformWindow::initialize() for two-step window creationTor Arne Vestbø2017-07-171-0/+11
| | | | | | | | | | | | | | | | | | | | | | The QWindow::create method calls createPlatformWindow, and assigns the result to d->platformWindow. If the platform sends any sort of events synchronously during the creation, the event will be delivered to a QWindow that doesn't have a handle() yet, resulting in noop handling of the event, or crashes. To mitigate this situations, platforms should do as little a possible in the QPlatformWindow constructor, and leave initialization to the new method, where the QWindow will have a handle(). The macOS platform plugin still has a m_initialized guard, to prevent sending geometry changes during initialization, as this will result in a resize event before a show event. This forced behavior seems dubious, but is left for a followup patch. Task-number: QTBUG-61977 Change-Id: I04d32d93391e89d068752b719270438e7024ad46 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Relieve platform plugins of having to persist geometry on WM callbacksTor Arne Vestbø2017-07-071-4/+11
| | | | | | | | | We can offload this to QGuiApplication, just like the geometry of the QWindow is set. This ensures that all platforms behave the same, and that the documentation of QPlatformWindow::setGeometry is adhered. Change-Id: I19dbc32cb4fb146d716ec289c28030a547d3afaa Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Make QWindow's windowState a QFlags of the WindowStateOlivier Goffart2017-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reflects QWidget API, and restores some behavior from Qt4. Some WM can have several state at the same time. On Plasma for example, when a window is both maximized and minimized, the "maximized" checkbox is checked from the taskbar entry. The API of QPlatformWindow was changed to take a QFlag and the platform plugins were adapted. - On XCB: Always send the full state to the WM. And read the full state. - On Windows: The code was originally written with '&' in Qt4, and was changed to == when porting. Some adaptation had to be made so the states would be preserved. - On macOS: Only a single state can be set and is reported back for now, with the possibly to expand this in the future. - Other platforms: Just do as before with the effective state. Task-number: QTBUG-57882 Task-number: QTBUG-52616 Task-number: QTBUG-52555 Change-Id: I7a1f7cac64236bbd4c591f796374315639233dad Reviewed-by: Gunnar Sletta <gunnar@crimson.no> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Respect QWindow::screen() when computing QPlatformWindow::initialGeometry()Tor Arne Vestbø2017-02-131-1/+4
| | | | | | | | | | | | | | | | | | | Calling setScreen() on a QWindow doesn't move the window to that screen unless the new screen is a separate virtual desktop, as the window geometry is what determines the position of the window within each virtual desktop. But when mapping a QWindow that doesn't have a position explicitly set by the user, we try to resolve a reasonable position for it. In that case we should take the QWindow screen into account, as setting it to a non-primary screen is a good indication that the user wants the window to end up on that screen. If that's the case, it should override the logic of using the transient parent or the cursor position to choose which screen to place the window on. Change-Id: I591d872a93913173b20eb3da19aa63118fcf6b12 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add QPlatformWindow::isForeignWindow()Tor Arne Vestbø2017-02-091-1/+1
| | | | | | | | Simplifies code at call sites and allows for refactoring how to decide if a window is foreign or not at a later point. Change-Id: Icc51a83bac187f4975535366b53b4990832b6c82 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-251-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf mkspecs/common/msvc-desktop.conf mkspecs/common/msvc-version.conf mkspecs/common/winrt_winphone/qmake.conf mkspecs/features/mac/default_post.prf mkspecs/features/mac/sdk.prf mkspecs/features/qt.prf mkspecs/features/uikit/default_post.prf mkspecs/features/winrt/default_pre.prf mkspecs/winphone-arm-msvc2013/qmake.conf mkspecs/winphone-x86-msvc2013/qmake.conf mkspecs/winrt-arm-msvc2013/qmake.conf mkspecs/winrt-x64-msvc2013/qmake.conf mkspecs/winrt-x86-msvc2013/qmake.conf qmake/generators/win32/msvc_vcproj.cpp src/gui/kernel/qwindowsysteminterface.cpp src/network/kernel/qhostaddress.cpp src/plugins/platforms/mirclient/qmirclientplugin.cpp src/plugins/platforms/mirclient/qmirclientplugin.h src/widgets/util/qsystemtrayicon.cpp tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp tools/configure/Makefile.mingw tools/configure/Makefile.win32 Done-with: Jake Petroules <jake.petroules@qt.io> Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: I4be3262d3994e11929d3b1ded2c3379783797dbe
| * Correct initial window size with highDPIPaul Olav Tvete2017-01-101-1/+1
| | | | | | | | | | | | | | | | | | Use the scaling factor when calculating the initial size of the platform window. Change-Id: Ie21f0da14e32ac437efbc304a3fd9722a7f8615e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | doc: Fix all remaining "Cannot tie" errors in QtBaseMartin Smith2017-01-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Most of these involved moving or removing extraneous aide-memoir comments left by programmers between qdoc comments and their functions. There were also some cases where Q_CLANG_QDOC had to be tested to make something visible to clangqdoc. And there were a few functions that should not have been documented at all. Change-Id: I3bf7c397a9e5ddbffc40cc1fee7f19cad71a1ae7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Split QPlatformWindow::isEmbedded into isAncestorOf to separate concernsTor Arne Vestbø2017-01-051-6/+21
|/ | | | | | | | | | | The function was doing two things, both checking window ancestry and whether or the window was a direct child of non-Qt window. The former has now been split of in a QPlatformWindow::isAncestorOf(), which simplifies the code in e.g. QApplicationPrivate::isWindowBlocked(). Change-Id: I259a190e03ef8def23356005474eeeee74c9ae89 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-261-9/+22
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qtemporarydir.cpp One side encapsulated a repeated piece of #if-ery in a local define; the other added to the #if-ery. Made its addition to the other's. src/corelib/kernel/qeventdispatcher_unix_p.h One side moved some members into a struct; this collided with a #undef check that neither side now has. Discarded the #undef part. src/gui/opengl/qopengltexturehelper_p.h 5.7 deleted a bunch of methods; not clear why merge got confused. src/tools/moc/moc.cpp One added a name to the copyright header; another changed its URL. Change-Id: I9e9032b819f030d67f1915445acf2793e98713fa
| * QPlatformWindow::initialGeometry(): Do not touch child window positionsFriedemann Kleint2016-07-251-9/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | Child window positions should not be mapped back and forth by High DPI scaling as this can cause them to change screens or be moved to invalid locations. Introduce a separate branch for child windows applying only size constraints. Task-number: QTBUG-54420 Change-Id: I4f86666952a49ed6fa03234a04031bc406281c45 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | QtGui: de-duplicate calls and cache resultsAnton Kudryavtsev2016-03-131-2/+3
| | | | | | | | | | | | | | Change-Id: Iaf232c31d6780b49dc6a3d0faafb9717f3c36e65 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-291-2/+3
|\| | | | | | | | | | | | | Conflicts: tests/auto/corelib/io/qprocess/tst_qprocess.cpp Change-Id: Ib6955eb874b516b185b45d6c38cec646fbaa95f4
| * QPlatformWindow::screenForGeometry(): Do not call mapToGlobal() on top level ↵Friedemann Kleint2016-02-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | geometry. Use mapToGlobal() only for foreign windows passing relative coordinates. Amend change 9915630d0886434e8984904b1cadedc81dc78ca0. Task-number: QTBUG-50206 Task-number: QTBUG-51320 Change-Id: Idee60cc8ea8004c0355ce78a00f807798836b49c Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | QPlatformWindow: don't call QScreen::virtualSiblings()Anton Kudryavtsev2016-02-241-1/+1
| | | | | | | | | | | | | | | | ... when QT_NO_CURSOR is enabled. Then, result of this function is unneeded. Change-Id: I0e74e1aa5253de2608c4c18cb2c4b4e2e9f4c9e2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-181-2/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also reverts commit 018e670a26ff5a61b949100ae080f5e654e7bee8. The change was introduced in 5.6. After the refactoring, 14960f52, in 5.7 branch and a merge, it is not needed any more. Conflicts: .qmake.conf src/corelib/io/qstandardpaths_mac.mm src/corelib/tools/qsharedpointer_impl.h tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp Change-Id: If4fdff0ebf2b9b5df9f9db93ea0022d5ee3da2a4
| * QPlatformWindow::screenForGeometry(): Use mapToGlobal().Friedemann Kleint2016-02-121-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | QPlatformWindow::mapToGlobal() should be used to obtain global coordinates for foreign/embedded windows. They do not have a parent QWindow, but the geometry passed in might be local to their native parent window. For normal top-level windows, this is a no-op. Task-number: QTBUG-50206 Task-number: QTBUG-41186 Change-Id: I00889b28db69ae65057f48b9e74bd4d8cfffa136 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * Revert "QWindow::destroy(): only reset QGuiApp::focus_window and friends as ↵Tor Arne Vestbø2016-02-021-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | a last resort" This reverts commit 4c71db756741d35ccb32dc4c32aa1823264c85df. It's too risky for 5.6, we should let it cook in dev for a while and backport when ready. Change-Id: I91e677e65d967f29c84a254cd3dffc8bb847b263 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * QWindow::destroy(): only reset QGuiApp::focus_window and friends as a last ↵Tor Arne Vestbø2016-01-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | resort Resetting focus_window and other internal QGuiApplication variables before calling setVisible(false) and destroying the platform window means that the platform window can't reason about whether or not it was the focus window unless it can resolve that using native APIs. We should let the platform window take care of resetting the focus window and related states, and only execute our fallback logic if the plugin doesn't do the right thing. We also use QPA to update the state instead of modifying the internal QGuiApplication variables directly, so that events and signals are emitted as a result of the reset. The QLineEdit test gets two added calls to processEvents(), since assuming that activateWindow() is synchronous is not correct, and would result in the QMenu resetting the focus window to 0 on destroy. Task-number: QTBUG-46414 Change-Id: I562788393ed0ffd77d7a4be2279862322f721c1a Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | QtGui: eradicate Q_FOREACH loops [already const]Marc Mutz2016-02-111-1/+2
| | | | | | | | | | | | | | | | | | (or trivially marked const) ... by replacing them with C++11 range-for loops. Change-Id: I3cce92b9d77a3ff96fad877d1d989145e530646f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | QtGui: eradicate Q_FOREACH loops [rvalues]Marc Mutz2016-02-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. This is the simplest of the patch series: Q_FOREACH took a copy, so we do, too. Except we don't, since we're just catching the return value that comes out of the function (RVO). We can't feed the rvalues into range-for, because they are non-const and would thus detach. Change-Id: I457942159015ff153bdfc6d5f031a3f0a0f6e9ac Reviewed-by: Gunnar Sletta <gunnar@sletta.org> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-151-14/+20
|/ | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QPlatformWindow::initialGeometry(): Pass screen when scaling.Friedemann Kleint2015-12-071-15/+16
| | | | | | | | | Otherwise, the window may up outside the display area when centering on a secondary screen and the primary screen has a different scale factor. Task-number: QTBUG-49803 Change-Id: I91ec7c5348722a90012f80a247e662e96bcbb391 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
* Fix screenForGeometry on a corner caseAleix Pol2015-11-161-1/+3
| | | | | | | | | | | | QRect only deals with integers, and I had a window set on the corner and without a size. When this screen was created, it was reported to be on the wrong screen, thus created there wrong. The reason for this is that ::center is not prepared for this use. QRect(QPoint(500,500), QSize()).center() is QRect(499, 499) Change-Id: I24e57182f84873306f180749e96368d6da1147a9 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* QPlatformWindow: Extract static method for closestAcceptableGeometry().Friedemann Kleint2015-09-211-3/+8
| | | | | | | | | | | | | | | | | | | On Windows, some messages occur before a QPlatformWindow is actually created, for example WM_WINDOWPOSCHANGING, which is handled in QWindowsWindow::handleGeometryChangingMessage(). Extract a static function QPlatformWindow::closestAcceptableGeometry() from QPlatformWindow::windowClosestAcceptableGeometry() and use that in QWindowsWindow::handleGeometryChangingMessage(). This fixes a regression crash occurring in Qt 5.6 when running the example from QTBUG-48201. Task-number: QTBUG-36220 Task-number: QTBUG-48201 Task-number: QTBUG-46615 Change-Id: I86b8f923447c8e447382427cf5795628ef1c9717 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Add QPlatformWindow::windowFrameGeometry()Morten Johan Sørvig2015-08-131-0/+8
| | | | | | | | Convenience accessor for use by the Wayland platform plugin. Change-Id: I420209138cfc285f8396913548b9e158a35ee9c1 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Introduce cross platform high-dpi scalingMorten Johan Sørvig2015-07-301-5/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a coordinate scaling layer to QtGui, which supports 'devicePixelRatio' type high-dpi on all platforms, in production and also for development and testing purposes. High-DPI scaling is opt-in, by setting environment variables: QT_SCALE_FACTOR - sets a global scale factor QT_AUTO_SCREEN_SCALE_FACTOR - sets per-screen scale factors, where the scale factors are provided by the platform plugin. This QtGui scaling can be used instead of or in addition to scaling done by the window system. This distinction is not visible to applications [when they use Qt API], which will see a change in the value returned by the devicePixelRatio() accessors as usual. Introduce a new (private to Qt) coordinate system: native pixels. The coordinate system stack now looks like: device-independent pixels (app, upper parts of Qt) native pixels (lower parts of Qt Gui, platform plugins) device pixels (backing stores and OpenGL) Add private QHighDpi namespace with scaling functions that convert between device-independent pixels and native pixels: T toNativePixels(T, QWindow *); T fromNativePixels(T, QWindow *); Add scaling calls the QWindow (and friends) cross-platform implementation, around the calls to QPlatformWindow functions. QPlatformWindow now uses native coordinates - platform code remains largely unchanged since native coordinates are window system coordinates. QWindow now uses (possibly) scaled coordinates. This means that platform plugins no longer can rely on QWindow::geometry() and related functions. QPlatformWindow::windowGeometry() and other convenience functions have been added for use when the platform plugin needs to convert scaled geometry to native geometry. Add Qt::AA_NoHighDpiScaling, which can be use to disable any scaling in QtGui, effectively ignoring the environment variables. (Note that this does not disable any scaling done by the window system.) Contributions from Friedemann and Paul. Task-number: QTBUG-46615 Change-Id: I673bbd69c130e73b13cce83be11bfb28f580bf60 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* docs: QPlatformWindow::screen() and QWindow::screen() can return nullShawn Rutledge2015-03-061-1/+2
| | | | | | | | | | After change f4b8697c40bd476ef6bf83418e144adce7c7d4a3, it is normal on X11 to have a null screen when all outputs have been disconnected or turned off. Change-Id: I97eeefd86d97701be50f0757fe5c53ca36d79aaa Reviewed-by: Harri Porten <porten@froglogic.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | 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>
* Handle gracefully the removal and re-attachment of all QScreensShawn Rutledge2015-02-071-2/+3
| | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-271-0/+2
|\ | | | | | | Change-Id: Id20053d261b4fbbcc0ac8ba49dd3ef2253fa4b95
| * don't use QCursor if QT_NO_CURSORShawn Rutledge2014-11-261-0/+2
| | | | | | | | | | | | | | to support configure -no-feature-CURSOR Change-Id: I8e7f9a7f80d3d44a1f8e25b909d552351b5f37e4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Prevent duplication of display name in window titles.Friedemann Kleint2014-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not append QGuiApplicationPrivate::displayName() to window title if the title already contains it. Fixes Qt Designer showing up with window title Qt Designer - Qt Designer after qttools:9a58492ce6b62c0fdab373337f39103f4072ad9d Change-Id: I5ac07a7f4be70372342324a175faf8c825867f50 Reviewed-by: David Faure <david.faure@kdab.com>
* | Introducing QWindow::requestUpdate().Gunnar Sletta2014-10-091-0/+30
|/ | | | | Change-Id: I0e2a09b53459a56d90dcd9043e694b19e2d77a9e Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Add convenience function for checking screen changes to QPlatformWindow.Friedemann Kleint2014-07-071-0/+23
| | | | | | | | | | | | Add function returning the screen for a new geometry for geometry change events. This ensures that the checking is done in platform screen coordinates (which might differ from QScreen coordinates due to high-DPI changes) and also that no screen changes are emitted for child windows. Change-Id: I406750f59f006f834c386d09c0c85a804014924a Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Expose QPlatformWindow::invalidateSurface as a virtual function.Gunnar Sletta2014-02-131-0/+14
| | | | | | | | | This can be quite useful on some embedded systems to free up graphics memory when windows are not used. QEglFSWindow already implements the function. Change-Id: I79b08efbd3c67d7be34df6a0e12dd184a92d48c5 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* QPA: Introduce QPlatformWindow::normalGeometry().Friedemann Kleint2014-02-071-0/+12
| | | | | | | | | | | | | QWidgetWindow stores the normal geometry obtained from the widget when transiting to other states. This does not work reliably on Windows, where this geometry is already that of the new state. Instead, introduce QPlatformWindow::normalGeometry(), add implementation for Windows and use that in QWidgetWindow. Task-number: QTBUG-21371 Change-Id: I3819ebaf55b4e7d2f7eef1affe6c20712ba45d7c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Use the default height (not 0) if only width is specifiedJan Arve Saether2014-01-091-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | If width was specified, but not height (or vice versa) the actual window size was not as expected: * The window width was not the width specified. * The window height became 0. This was unexpected, since if both width and height was not specified it would fallback to becoming 160x160 (on Windows). However, with the advent of https://codereview.qt-project.org/71999 both width and height might receive sensible defaults based on the content of the ApplicationWindow, which would mean that it might be reasonable to expect that you only need to specify one size component of the window. This also fixes an assertion in file ..\..\..\3rdparty\angle\src\libGLESv2\renderer\SwapChain9.cpp, line 81 The assertion happened when a window was created with 0 height (but valid width), and then its height got increased, causing it to become visible. Change-Id: Ia9e730418e35d679907bdcc59b00c3c988216c32 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Consider multi-monitor setups in QPlatformWindow::initialGeometry().Friedemann Kleint2013-10-301-2/+23
| | | | | | | | Task-number: QTBUG-34204 Change-Id: Id79efe33ece071ad94578b6ac0370b0f040d1c3c Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Suppress automatic positioning of popup windows.Friedemann Kleint2013-10-091-1/+2
| | | | | | | | | | This seems to cause issues with menus on certain Windows machines. Task-number: QTBUG-33653 Change-Id: I8c31dd3ba5ccc6eb0551048401051d819f49a8c1 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-2/+2
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix QPlatformWindow::initialGeometry() to not touch large windows.Friedemann Kleint2013-05-281-9/+15
| | | | | | | | | | | | | Do not touch windows whose geometry (including the unknown frame size) is likely to be larger than the screen. Remove fix-up in the Windows plugin. Task-number: QTBUG-30142 Task-number: QTBUG-31071 Change-Id: I13a8ffb9fb9d8c71d35de75094275388fa427f2c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Suppress warning about unsupported frame strut events.Friedemann Kleint2013-05-081-2/+1
| | | | | | | | | | | The warning causes a test failure since it occurs with XCB. Introduced by enabling frame strut events for all widgets by f2fcf75381b08f9bac247fde66604fed685dabb1 . Task-number: QTBUG-30530 Task-number: QTBUG-29012 Change-Id: I025b55f5198a270072b33cae033221709db256aa Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Implement alertion state for windows.Friedemann Kleint2013-04-191-0/+26
| | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-03-051-0/+39
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/generators/mac/pbuilder_pbx.cpp src/corelib/kernel/qtimerinfo_unix.cpp src/plugins/platforms/cocoa/qcocoabackingstore.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
| * Transient QWindows centered; default-constructed geometryShawn Rutledge2013-02-241-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Default-constructed geometry does not mean put the window at 0,0, and it does not mean center the window on the screen: it means let the window manager position the window. If the window is explicitly positioned at 0,0 though, that is a higher priority than the transient hint; without this change, the transientFor property had no effect. On X11, transient means use center "gravity" to make the transient window exactly centered. But the user can still override the geometry of a transient window, as with any window. On OSX and Windows, neither transient window functionality nor smart initial positioning are provided, so a window with no position set will be centered on the screen, and a transient window will be put at the center of its transientParent. Change-Id: I4f5e37480eef5d105e45ffd60362a57f13ec55f5 Task-number: QTBUG-26903 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-141-0/+24
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/concurrent/doc/qtconcurrent.qdocconf src/corelib/doc/qtcore.qdocconf src/corelib/global/qglobal.h src/dbus/doc/qtdbus.qdocconf src/dbus/qdbusmessage.h src/gui/doc/qtgui.qdocconf src/gui/image/qimagereader.cpp src/network/doc/qtnetwork.qdocconf src/opengl/doc/qtopengl.qdocconf src/opengl/qgl.h src/plugins/platforms/windows/qwindowswindow.cpp src/printsupport/doc/qtprintsupport.qdocconf src/sql/doc/qtsql.qdocconf src/testlib/doc/qttestlib.qdocconf src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf src/widgets/doc/qtwidgets.qdocconf src/xml/doc/qtxml.qdocconf Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
| * Factorize code for formatting window titles into QPlatformWindow.David Faure2013-02-061-0/+24
| | | | | | | | | | Change-Id: I0dcccd08916fc2ea1b795681e9b98a9550ef51b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>