summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* Mac/XCB/Windows: Fix initial setting of window icons.Friedemann Kleint2013-06-261-0/+2
| | | | | | | | | | Setting an icon on a QWindow before creating the platform window did not have any effect. Task-number: QTBUG-31961 Change-Id: I8e58a3b239c8bc69af58f765e7826337463d2201 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Windows XP: Fix directory chooser dialog.Friedemann Kleint2013-06-261-3/+4
| | | | | | | | | Set initial directory and title correctly in native file dialog. Task-number: QTBUG-31098 Change-Id: I87c4383bdf0b26beda6a075a186d0a951c86f8a7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove use of 'register' from Qt.Stephen Kelly2013-06-172-2/+2
| | | | | | | | | | It is deprecated and clang is starting to warn about it. Patch mostly generated by clang itself, with some careful grep and sed for the platform-specific parts. Change-Id: I8058e6db0f1b41b33a9e8f17a712739159982450 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-06-152-19/+19
|\ | | | | | | refs/staging/stable
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-06-122-19/+19
| |\ | | | | | | | | | Change-Id: If29ca1b27da4592d40a7678837c359f75dac1209
| | * Fix gcc warnings about unused-valueKai Koehne2013-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix multiple gcc warnings about statements in accessibleDebug arguments have no effect. Change-Id: I34bf05d911707f0b50592bf76442a3805c560d56 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * Windows save file dialog: Set default suffix only once.Friedemann Kleint2013-06-101-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IFileDialog::SetDefaultExtension() needs to be called for the dialog to automatically update the suffix when the user chooses a new file type. Calling it IFileDialogEvents::OnTypeChanged as introduced by 42760e43eaa64e834809ef5fb01a83cfb75f4f04 causes it to use the previous suffix when switching. Call in setNameFilters() using the first available suffix instead. Task-number: QTBUG-31381 Task-number: QTBUG-30748 Change-Id: Idd532e4190c752aa80abce963dd0389be7d22a34 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | Windows: Prevent spurious leave events.Sebastian Eifert2013-06-122-1/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | When behind a mouse-event-transparent window, synthesized leave events are emitted, because the transparent window is considered as the window under the mouse, not the Qt window. This change skips transparent windows when searching for the window under the mouse. Task-number: QTBUG-31464 Change-Id: I85c8b46a1af37b4d1c5d1d77566ab045657aa9ae Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-06-101-0/+3
|\| | | | | | | Change-Id: I89c251999ae2a82522b40471fd13f2e06b00ece8
| * Windows: Send a geometry change after Window creation.Friedemann Kleint2013-06-071-0/+3
| | | | | | | | | | | | | | Task-number: QTBUG-30996 Change-Id: I03b5e1fdbbdd779f86541291c13e9eb6840ff3c6 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Fixes QKeyEvent::count() on Windowsaavit2013-06-041-7/+7
|/ | | | | | | | | | | All other main platform plugins leave the count parameter at its default value (1). For improved compatibility, make the Windows plugin do the same, instead of hardcoding the value to 0. Task-number: QTBUG-31285 Change-Id: Id87fd559d13f42391be3200d5ff2393285f0d2a6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* Windows: Suppress mouse events synthesized by OS.Friedemann Kleint2013-05-302-0/+14
| | | | | | | | | | | | | | | | Change the hint for QPlatformIntegration::SynthesizeMouseFromTouchEvents to false for Windows and suppress the events synthesized by OS. The synthesized events cause touch events to generate 2 clicks in Quick2. Leave code as is for Windows CE. Task-number: QTBUG-31386 Change-Id: Ia0987342dcdd55c8540810da5e4b90518a501ce6 Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix QPlatformWindow::initialGeometry() to not touch large windows.Friedemann Kleint2013-05-281-9/+0
| | | | | | | | | | | | | 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>
* Windows: Respect geometry set before native window creationGabriel de Dietrich2013-05-271-4/+8
| | | | | | | Task-number: QTBUG-31071 Change-Id: Idab21c5996d1dc31b0a6fab4960c3c48a50d4966 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Windows: Fix toplevel window flags for Qt::Dialogs/Qt::Tool.Friedemann Kleint2013-05-231-4/+21
| | | | | | | Task-number: QTBUG-31111 Change-Id: I58dcf8101077f18c7867cae914026c692735fc15 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Improve error message in GL context creation.Friedemann Kleint2013-05-231-2/+6
| | | | | | | | Output format, glGetError(), shared context as well. Task-number: QTBUG-30077 Change-Id: Ibc4a7f9ad99bdcdcb439e719394d2532445c3fbe Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Windows: Pass auto-fixed window flags to shouldShowMaximizeButton().Friedemann Kleint2013-05-231-4/+3
| | | | | | | | Task-number: QTBUG-28407 Task-number: QTBUG-31258 Change-Id: Ie918fddbeb6adee4ccbfffb2fab62b3d1842d272 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Suppress "Click to focus" for widget windows.Friedemann Kleint2013-05-231-2/+2
| | | | | | | | | | | | | | Calling requestActivate() on native child widgets can cause focus problems (keyboard input going to widgets that don't handle it,etc). Breakage introduced by: 4675681b5e88b178adbdef775ac6a4b1e573458 . Task-number: QTBUG-30922 Change-Id: I4efdfef6bffc89fe62156d248f05ed99c58bf794 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Observe initial screen for fullscreen windows.Friedemann Kleint2013-05-232-4/+8
| | | | | | | | | | | | | | | Introduce flag to determine "create" state and do not try to determine the screen from the geometry. Fixes breakage introduced by ded4613ae43842d4b960137843eb83a7472adc65. Task-number: QTBUG-31166 Task-number: QTBUG-30724 Change-Id: Ibe8df95e0ea84be070fdd06b158a6a10c76d42be Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix HTML data transferring through the Clipboard on WindowsGatis Paeglis2013-05-131-10/+9
| | | | | | | | | | | | | | | | When transferring html formated data through the clipboard some of the html markup was lost when converting from Windows clipboard native mimedata to Qt mimedata type. On X11 we are sending everything - inluding <!DOCTYPE ...><html> .. </html>. This patch enables the same behavior on Windows. Task-number: QTBUG-30984 (cherry picked from commit 9e28245da1580e25e77a665b7738c59eb298c422) Change-Id: Ic0e339ad53955f1d31e8dff92ccf38b6eeec369a Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* QWindowsFontEngine: Fix warnings about GetGlyphOutline() failures.Friedemann Kleint2013-05-131-7/+11
| | | | | | | | | | | | | tst_qglthreads::painterOnPixmapInThread reports QWinFontEngine: unable to query transformed glyph metrics... (Desktop OpenGL only). Task-number: QTBUG-28264 Change-Id: Ib456905a13a95037ec13dfc4cb828f830076ee89 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix transformed raster fonts on WindowsEskil Abrahamsen Blomfeldt2013-05-132-0/+7
| | | | | | | | | | | | | | | | | | We removed all Q_WS_WIN code when going to Qt 5. One of the things removed was the condition that we do painter path text rendering for transformed, non-ttf fonts, since the GDI engine does not support transforming those. This has now been reintroduced and adapted to the QPA way of doing things, by checking for it in the font engine subclass. Then there was the problem that QStaticText only supports cases where the font engine can transform the glyphs. Thus we need to fall back to regular text drawing in drawStaticText() for unsupported cases, and we need to skip the optimized path in the raster engine (which goes to drawStaticTextItem) Task-number: QTBUG-30932 Change-Id: I17ba7355ee127811b0e77bb3a9b9db092e99893b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Windows: Update transient parent in show().Friedemann Kleint2013-04-253-13/+39
| | | | | | | | | Similar to XCB. Task-number: QTBUG-30707 Change-Id: I6dd7aa370891a46aa5a2243528692180d8366486 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Windows native save file dialog: Do not append suffix afterwards.Friedemann Kleint2013-04-251-15/+39
| | | | | | | | | | | | | | | Instead, set the currently selected filter's suffix as default suffix of the dialog unless another default suffix has been set. This emulates the behavior of Qt 4 behavior which would set the selected name filter's suffix as default suffix in QFileDialog::getSaveFileName(). Task-number: QTBUG-30748 Change-Id: I111cd6190ddab8775a0fa72b94b3c728dd411c5e Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Fix windows expose logicGunnar Sletta2013-04-253-34/+35
| | | | | | | | | | | | | | | | | | | | | | | | Make sure the value of QWindowsWindow::isExposed is in sync with regions we expose. This provoked a couple of existing issues in the qwidget test. setWindowGeometry tested that windows with invalid sizes got exposed on screen. They didn't, but because the plugin sent bogus events, these used to pass. Same with windowMoveResize. The expect fails are also rather bogus. Showing invalid-size widgets could be considered undefined behavior. The Window manager could resize it, choose to not show it at all, etc, but they now pass on windows. resizeEvent has been broken since 5.0.0, but the test didn't spin the event loop so the second event didn't get delivered before the test completed. Task-number: QTBUG-30744 Change-Id: I3a9efcd095f366126a87739f4248185b6c81d407 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Windows: Position full screen windows on the correct screen.Friedemann Kleint2013-04-241-2/+16
| | | | | | | | | Find effective screen by searching the virtual sibling that contains the center as does QDesktopWidget::screenNumber(). Task-number: QTBUG-30724 Change-Id: I8441ab4f3e5ee8169613a82f150d1a4f1777b662 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Accessibility Windows: always check for negative child idsFrederik Gladhorn2013-04-222-26/+21
| | | | | | | | | | | Some screen readers will pass in child id's that are negative as response to notifications. We should always check for negative id's on incoming calls. Task-number: QTBUG-30792 Change-Id: Idaba3d1931d35ed068cfd9f20e70aa26da427616 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Implement QApplication::beep().Friedemann Kleint2013-04-191-0/+2
| | | | | | | | | | Invoke slot "beep" on QPlatformNativeInterface. Implement for Windows and X11. Task-number: QTBUG-30416 Change-Id: I2be651165b899e5147818a012001d354827bb090 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Implement alertion state for windows.Friedemann Kleint2013-04-192-1/+17
| | | | | | | | | | | | | | 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>
* Let platform plugin decide if accessibility is activeFrederik Gladhorn2013-04-191-0/+4
| | | | | Change-Id: I881a8ff3fedf3db73ee37046a4363c70960a92a6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fix format for alpha drawing.Friedemann Kleint2013-04-181-1/+1
| | | | | | | Task-number: QTBUG-28531 Change-Id: Ie97953950cad26776724848adc5751c861903cf7 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Calling wglMakeCurrent on an already current context gives 100% cpu loadGunnar Sletta2013-04-181-1/+9
| | | | | | | | | The problem occurs at least with nvidia cards when vsync is enabled in the control panel. Task-number: QTBUG-29686 Change-Id: I6fd2a3560a5baeeac7c3fe0440db85904c45026d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Do not send clipboard message to application under debugger.Friedemann Kleint2013-04-171-0/+20
| | | | | | | | | Fix Qt Creator hang when copying a stack trace from an application showing a runtime assert. Change-Id: I874bd48643ebce1a3551644dc850cb7cf5869522 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Windows: Fix compile with -directwrite.Friedemann Kleint2013-04-171-1/+1
| | | | | | | | Task-number: QTBUG-30643 Change-Id: I3a2a0e767a92bc2ff9d7d241dfad6771034e6ad4 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* QFontEngine: Fix cache_cost might be not initializedKonstantin Ritt2013-04-141-0/+1
| | | | | | Change-Id: I4cf4de5797e6623a71593e8f382496188e3abac8 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QWindowsFontEngineDirectWrite: Fix resources leakingKonstantin Ritt2013-04-141-0/+2
| | | | | | | | | | | fontFamily has been acquired by IDWriteFont::GetFontFamily() and thus must be released with IDWriteFontFamily::Release(). Task-number: QTBUG-26861 Change-Id: I314153f97b8b59c9ba728220f93b493b13337039 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix Windows CE compilation.Friedemann Kleint2013-04-121-7/+4
| | | | | | | | | | | | Breakage introduced by 11e9f1368be986d0e128e8f7b2423d9cc7dd5436 . Simplify #ifdef-blocks. Task-number: QTBUG-30063 Change-Id: I0710915ff7b0ad5947935904c43ff9b621f638f2 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com>
* QFreetypeFace: Fix getFace() uses UTF-8 paths on non UTF-8 localesKonstantin Ritt2013-04-112-2/+2
| | | | | | | | | | QFontEngine::FaceId::filename is intended to be local8Bit-encoded but QFreetypeFace::getFace() always treats it like UTF-8-encoded. Also replace explicit (to|from)Local8Bit and toLatin FaceId::filename conversions with QFile::(en|de)codeName, where appropriate. Change-Id: Ic7beabf0a160f2f02f1667bcb8e6067adaba1c16 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Windows: Dont use black as clear color on opengl windowsJens Bache-Wiig2013-04-101-4/+1
| | | | | | | | | | | Perhaps this made sense when all our open gl examples were black, but with components and I would assume the majority of use cases we should use the default window background color to fill exposed window background during a resize. Change-Id: Ia439a7c3919243efa6026e2e07bee62c25557df0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Make QTextCursor accessibility boundary finder availableFrederik Gladhorn2013-04-081-3/+3
| | | | | | | | | This allows re-using the function in QtQuick. In addition TextBoundaryType is moved to QAccessible and QAccessible2 as namespace ceases to exist. Change-Id: I184bc2c181a22ca51ac4db4e5a080dc26d4acfe0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Windows: Ignore mouse events generated by Windows.Friedemann Kleint2013-04-051-1/+5
| | | | | | | | Task-number: QTBUG-29946 Change-Id: Idef0e7cc8bc407377e60e4a9d67c3ba78b347b76 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Windows: Do not use native dialogs for non-modal dialogs.Friedemann Kleint2013-04-051-4/+2
| | | | | | | | | | | | Windows file dialogs are always modal (inheriting IModalWindow). As the QtQuick dialog plugin has a widget-based fallback now, there is no need to use native dialogs for the non-modal case. Task-number: QTBUG-30513 Change-Id: I8b62af86fde34e8c0cf5e917d2e62260e16c82fb Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* The default behavior should be double buffered, not singlebufferedGunnar Sletta2013-04-051-3/+2
| | | | | | | | | Without this, it is not possible to do vsync drawing on NVidia GeForce 210 on Windows 7. Change-Id: I6064826eaa55266344393f50cdf5d17113350255 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* 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>