summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-04-032-4/+12
|\ | | | | | | Change-Id: Icedabda08961326a0a447ec71f1b0f0f5df075eb
| * Windows: Fix reported screen metrics.Friedemann Kleint2013-03-262-4/+12
| | | | | | | | | | | | | | | | | | A call to SetProcessDPIAware() is required in some cases. Task-number: QTBUG-30063 Change-Id: Iba0203d76c8e7068bf9fd4581770c1aca76a4708 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-026-247/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since there already is a one-to-one relationship between QObject and QAccessibleInterface it makes little sense to create and destroy the interfaces on each call to queryAccessibleInterface. Add a cache and keep created interfaces around for the lifetime of the corresponding QObject. This changes the memory management rules: accessible interfaces must no longer be deleted. If you get an QAccessibleIntrface pointer that pointer will stay valid as long as the corresponding QObject is not deleted. This also re-enables accessibility for Mac. We limit the range of the IDs so that they are useable for Windows directly. That means we can get rid of the event cache there. This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Fix reporting writing systems for non-TrueType fontsKonstantin Ritt2013-04-012-68/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to EnumFontFamExProc docs: > The ENUMLOGFONTEX structure includes the localized name > of the script (character set). lfCharSet ENUMLOGFONT's member must be used instead of comparing these names to non-localized ones. Also, when the font supports more than a single charset, EnumFontFamExProc callback is called for it once per charset; thus, we shouldn't "unsupport" writing systems in a subsequent call. Task-number: QTBUG-30448 Change-Id: I58fcf32958490cf5a3e873db8335e71a39a9c518 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QFontConfigDatabase: fix fallbacksForFamily() for CJK languagesKonstantin Ritt2013-04-012-2/+2
| | | | | | | | | | | | | | | | | | | | For Han Unicode script, the language couldn't be determined algorithmically, the only way is guessing based on the user's locale. The is a regression introduced in 9b0fab6b62df98519ebfab117f14b9d3465d8c68 Change-Id: I84645885a825fdfb6c268edaf10185bf5e447eb5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Clean up touch window registration.Friedemann Kleint2013-03-252-7/+16
| | | | | | | | | | | | | | | | | | Stop processing for Qt::Desktop windows (which caused RegisterTouchWindow() to fail with access denied) and set a flag to cleanly unregister. Change-Id: I3d10c93ec92536d3ab1c0503f088c40b0c08a01f Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Accessibility: Fix crash in windowHelperFrederik Gladhorn2013-03-233-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When accessing the parent, we cannot be sure that the parent interfaces are all valid. Invalid parents can happen during destruction. Another cause is unusual hierarchies, the QAbstractItemView::columnDelegate test triggers a situation where this used to crash. In addition to the actual problem, add checks for every parent() call. Change-Id: I70b2bf7bc3c02b0f33e22b81023fd24519adeba9 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Do not update accessibility for invalid interfacesFrederik Gladhorn2013-03-231-1/+3
| | | | | | | | | | Change-Id: I8dc29ea51393406e529c76f25bf2f8cf426e26cf Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Merge remote-tracking branch 'gerrit/release' into stableSamuel Rødal2013-03-211-1/+3
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/qt_module_headers.prf mkspecs/features/qt_tool.prf src/angle/angle.pro src/tools/bootstrap/bootstrap.pro tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: Ide5759fe419a50f1c944211a48f7c66f662684e0
| * Windows native file dialogs: Split suffix list correctly.Friedemann Kleint2013-03-201-1/+3
| | | | | | | | | | | | | | Task-number: QTBUG-30185 Change-Id: I9a3d16eafb5417d6720a702af662fb219487549d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix the font engines leakingKonstantin Ritt2013-03-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. when there were some engines with ref > 1 in the cache, prior to calling QFontDatabase::{add,remove}ApplicationFont()/removeAllApplicationFonts() (QFontCache::clear() has never decreased engine's cache_count); 2. when the QFontEngineData's engine is not in cache i.e. the Box or Test font engine (~QFontEngineData() didn't free engines it keeps). Instead of using the font engine's (external) "cache_count" counter, QFontCache now references a given font engine every time it is inserted to the cache and dereferences exactly that number of times in clear(). Change-Id: I87677ebd24c1f4a81a53526f2e726e596b043c61 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Make sure that we #include qconfig.h before testing for features.Thiago Macieira2013-03-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but it's a good idea even in private headers, in case someone includes that header first somewhere. In particular, all platformsupport API is private. Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Windows: Fix class name generation for Qt Quick Controls.Friedemann Kleint2013-03-181-42/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | New combinations of settings need to be handled (for example, GL + drop shadows for menus). Generate the class name depending on style settings. Introduce new dynamic property for drop shadows. Change-Id: I438f7bdd87f09d3c99076ebf825a12d862948ec1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Fix build on MinGW, Win<7Konstantin Ritt2013-03-141-2/+2
| | | | | | | | | | | | | | | | /* broken by 26149d057a464ddafcc9694cfa94525c01a45231 */ Change-Id: I63f4d70e2a6fc1f8f1b302d188cf34d1abb0699c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Make qaccessible2.h internal.Frederik Gladhorn2013-03-143-3/+3
| | | | | | | | | | | | | | | | | | | | | | This should have been done right from the start, instead we only made the documentation internal. Also remove the classes from the BIC data. Change-Id: I238a7a7cc5d26980b23931c78e7e5a4477d46920 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Fix build with Windows SDKs pre 7.0.Friedemann Kleint2013-03-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | Check whether the IShellLibrary interface exists. Task-number: QTBUG-29447 Change-Id: I93fc54a1e6d5c090f7c1768c756571ba57a7b2d2 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Hide Harfbuzz from the outer worldKonstantin Ritt2013-03-131-4/+0
| | | | | | | | | | | | | | | | Don't export, don't generate private headers, don't mention HB in API. Change-Id: I048ebd178bf4afaf9fda710a00933b95274cf910 Reviewed-by: Josh Faust <jfaust@suitabletech.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Get rid of qt_determine_writing_systems_from_truetype_bits()Konstantin Ritt2013-03-122-126/+2
| | | | | | | | | | | | | | Move this code to QPlatformFontDatabase and get rid of all dups of it. Change-Id: Idea6c84819039bf3b345b1305305951ade8d1ac4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix wrong initial positionCaroline Chao2013-03-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | If the widget is larger than the screen, its title bar top left corner will be shown inside the screen. Task-number: QTBUG-30142 Change-Id: Id93773874be3616b3ef4b9bee6e1bb751c541d7b Reviewed-by: Caroline Chao <caroline.chao@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Windows: Use arrow cursor for toplevels with no cursor set.Friedemann Kleint2013-03-121-2/+15
| | | | | | | | | | | | | | | | | | | | Fixes unsetting the cursor in Qt Quick Controls. Task-number: QTBUG-28879 Change-Id: I049beafaa723f6e782df872f14c09b7f927e70ac Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-03-063-1/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/qnx/qqnxscreen.cpp src/plugins/platforms/windows/qwindowsdialoghelpers.cpp Change-Id: Ib64f21c077b54f2291d19187590bfe869b98477a
| * | Avoid setting initialNameFilter when mode is DirectoryIrfan Omair2013-03-051-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-30001 Change-Id: I5e854ce99137bd9d718cb2052f2c8dc1fb92b78f Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * | Windows: Repaint when switching off layered windows by opacity.Friedemann Kleint2013-03-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-29010 Change-Id: I565a800e5a5b4870bd3ee2e3fb3f55523334425f Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * | Fix Alt key capture issue with mouseWheelIrfan Omair2013-03-011-0/+2
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-29820 Change-Id: I8932b7bcadd6495debda6cdf0a576f83a0ccad47 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-03-053-13/+20
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | Fix automatic hiding/restoring of transient children.Friedemann Kleint2013-02-281-2/+2
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-28408 Change-Id: I31382c4edc213961dfb132af3bf5202e178e7a57 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * | Disable maximize button for fixed-size windows.Friedemann Kleint2013-02-271-8/+7
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-28407 Change-Id: I5bab7fcf4ad3ecc7008ef02b9d3575d75893895d Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
| * | Fix warnings about extra tokens after preprocessor directive.Friedemann Kleint2013-02-251-1/+1
| | | | | | | | | | | | | | | Change-Id: I7f18ec42f6f6dd697947654384767c2c6b211498 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
| * | Transient QWindows centered; default-constructed geometryShawn Rutledge2013-02-241-2/+10
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Windows: Print size constraints in geometry warning.Friedemann Kleint2013-03-051-2/+7
| | | | | | | | | | | | Change-Id: I0f8f82e975bfe7e9b00c48741b2a0317fac5f839 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Windows: Take custom margins into account for size constraints.Friedemann Kleint2013-03-052-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | Fix a warning unearthed by the task's code example. The minimum size of the window would be too big since it did not take the negative custom top margin into account. Task-number: QTBUG-29904 Change-Id: I8b71a39f0724bdd1b9359676ce1d86ef5384d685 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix selection of fonts that require OpenType featuresKonstantin Ritt2013-03-041-2/+1
| | | | | | | | | | | | | | | | HB_Face's supported_scripts[] expects HB_Script, so QChar::Script should be remapped via script_to_hbscript(). Change-Id: Ib068c35ab76567fe9a61da7d8ab01133a6f58bc0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Windows native dialogs: Handle libraries.Friedemann Kleint2013-02-251-5/+114
| | | | | | | | | | | | | | Task-number: QTBUG-29447 Change-Id: I4e68e546a4eb6b5f9c3dbe6d98905109e72e600a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Enforce OpenGL context creation under WindowsGiuseppe D'Angelo2013-02-231-3/+11
| | | | | | | | | | | | | | | | | | | | We don't support other context types, so fail in those cases. Also, return OpenGL as the rendereable type of our surface. Change-Id: I22792a913b78b837da3d27cef69145076579b949 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-181-12/+9
|\| | | | | | | | | | | | | Conflicts: src/widgets/styles/qmacstyle_mac.mm Change-Id: If8326db9e7da3cbf45dbf7475fdff9915c7723b1
| * Fix the GL_CONTEXT_FLAG_DEBUG_BIT checkFredrik Höglund2013-02-151-1/+5
| | | | | | | | | | | | | | | | Use the correct enum. GL_CONTEXT_FLAG_DEBUG_BIT does not have the same value as GLX/WGL_CONTEXT_DEBUG_BIT_ARB. Change-Id: I7d90da54ca1ff526c8b00669b486a68424fc8dfb Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| * Fix the GL_CONTEXT_PROFILE_MASK checkFredrik Höglund2013-02-131-10/+3
| | | | | | | | | | | | | | | | | | | | | | A bit mask can have more than one bit set, so we can't use a switch statement here. Also use the correct enums, and make sure that the profile is set to QSurfaceFormat::NoProfile when the OpenGL version is less than 3.2. Change-Id: I6d2c4e35d4fb3d87fd47c9724cb415f8619a7b95 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| * Fix the GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT checkFredrik Höglund2013-02-131-1/+1
| | | | | | | | | | Change-Id: I83dc92085c81b8b0c71502ea71878b5e85cbbacc Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Giuseppe D'Angelo2013-02-1713-53/+146
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-1413-53/+146
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * Fix broken fading of menus.Friedemann Kleint2013-02-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Breakage introduced by b3820b12fbded1f173837eee7f7559783e92b46b Set layered in backing store for frameless windows as was before. Task-number: QTBUG-29010 Task-number: QTBUG-28531 Change-Id: I13f8f0d58d71b6612430c7048056f672e23b8095 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * Do not force top level flag on embedded windows.Friedemann Kleint2013-02-081-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression introduced by cd7ba89a07f794b17fc66ba29515b104c4d21f27. Task-number: QTBUG-29564 Task-number: QTBUG-28872 Change-Id: I6402a971af89321d18afb42dc25e54b1c88df129 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * Fixed QT_NO_DRAGANDDROP build for the windows pluginBjoern Breitmeyer2013-02-074-7/+30
| | | | | | | | | | | | | | | Change-Id: Ieb987105bdcc08118a1b83cf3b74a93fa402264a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Fixed QT_NO_CURSOR build for windows/CE plugin.Bjoern Breitmeyer2013-02-075-2/+34
| | | | | | | | | | | | | | | Change-Id: I02f13b2af2d8c285fbca46917ff77826720857be Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Removed User32.dll usage on WINCEBjoern Breitmeyer2013-02-071-2/+6
| | | | | | | | | | | | | | | | | | Change-Id: Id65dc0a9a829d66d0a2cc7bd40c5ba3190d9ecba Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com>
| | * Factorize code for formatting window titles into QPlatformWindow.David Faure2013-02-061-12/+1
| | | | | | | | | | | | | | | Change-Id: I0dcccd08916fc2ea1b795681e9b98a9550ef51b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Windows: Fix setting of layered windows.Friedemann Kleint2013-02-063-18/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The setting/clearing of WS_EX_LAYERED in the backing store interfered with the setting/clearing in setWindowOpacity when combining translucent and non-opaque windows. Introduce QWindowsWindow::setWindowLayered to handle it consistently. Task-number: QTBUG-29010 Task-number: QTBUG-28531 Change-Id: Ib6e2740aae417bdf7b3db9ef7deb646be98df1d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * Do not crash if the child index is out of range.Jan Arve Saether2013-02-061-3/+4
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-29077 Change-Id: I934101cdc121e9ef99de2e9eeaef154dd4cae0d8 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * Show default shortcut menu when user right click window's captionJian Liang2013-02-052-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In windows platform, Qt5 will not show the system default shortcut menu when the user right click in the window's caption. This is a regression from Qt4. This patch will let DefWindowProc() to handle the message WM_CONTEXTMENU if the mouse pointer is in the non-client area of the window. Thus the default Windows shortcut menu will show up. Change-Id: I88638ad1d4f0e73b088204b83c3f7ec0fe2033f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Windows tray icon: Fix reinstalling after restart of Explorer.Friedemann Kleint2013-01-301-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a normal instead of a HWND_MESSAGE-window since the latter do not receive the "TaskbarCreated" message. Provide an invokable slot in the native interface to register a window class for that purpose. Task-number: QTBUG-29160 Change-Id: Ic25222d08d21867f7d882a9e19d8aaf50f3f47cf Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>