summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-04-1614-93/+267
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/corelib/io/qurl.cpp src/gui/kernel/qwindow.cpp src/tools/moc/generator.cpp src/widgets/kernel/qwidget_qpa.cpp src/widgets/styles/qstyle.h src/widgets/widgets/qtabbar.cpp tests/auto/corelib/codecs/utf8/tst_utf8.cpp Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
| * Windows: Determine suitable font engine from application.Friedemann Kleint2012-04-131-7/+34
| | | | | | | | | | | | | | | | | | | | The Freetype engine currently works better for QML2, whereas the native engine is better suited to the widgets. Task-number: QTBUG-24205 Change-Id: I76de98c3e7c84a2d72542ea9860b8be1e67f7e04 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
| * Minor cleanup of the header file.Jan-Arve Saether2012-04-132-70/+78
| | | | | | | | | | | | | | | | Move inline implementations to iaccessible2.cpp. Makes it easier to read and navigate the source code. Change-Id: I8da44ba0d40395356f612ff6b3ce2a808105838a Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * Windows QPA plugin: Fix logging.Friedemann Kleint2012-04-133-5/+1
| | | | | | | | | | | | | | | | - Remove frequently occurring messages. - Rename variable to QT_QPA_VERBOSE. Change-Id: Id930e1422675355a9657edae6505be87aaec98a5 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| * replace hardcoded values with a surrogate handling methodsKonstantin Ritt2012-04-132-10/+11
| | | | | | | | | | | | Change-Id: Ib41e08d835f2e8ca2e32b4025c6f5a99840f2e27 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * Implement modality in the Windows plugin.Friedemann Kleint2012-04-133-1/+76
| | | | | | | | | | | | | | | | Disable blocked windows and flash the active window if a blocked one is activated (as in Qt 4). Change-Id: I6b6d230f94a271ce2aa649e3f4e13ebd63e93da4 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
| * Add missing virtual destructor.Jan-Arve Saether2012-04-101-0/+2
| | | | | | | | | | Change-Id: I94ac82ad4771b2b4c36ac24cc412fa43a0d77afb Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| * fix mingw detectionMark Brand2012-04-101-1/+1
| | | | | | | | | | Change-Id: I7eb78ebd79bfc1be36cc43a1f41f4e574b063aed Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * Make it possible to enable non-scalable font scalingMiikka Heikkinen2012-04-102-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows native font engine supports scaling of non-scalalble fonts, so make it possible to do so. Added two functions to QPlatformFontDatabase: fontsAlwaysScalable() and standardSizes(), and made fontsAlwaysScalable() to return true for Windows native font database. Windows Freetype font engine doesn't seem to support scaling of non-scalable fonts, so didn't enable it in there. Added implementation of standardSizes() for Mac OS. Task-number: QTBUG-24970 Change-Id: I41c9356ede8a37b7c61db94340dbeb5b629f34b9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
| * Don't hardcode the default families in qfont_qpa.cppPierre Rossi2012-04-102-0/+51
| | | | | | | | | | | | | | | | | | Since different platforms come with different fonts, we should probably leave it up to the platform to decide which family to use. Change-Id: I18bb81c0ce87cc7e9ac7f3abaeae1b41c0ce8410 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
| * Fix compilation with MinGW-W64.Debao Zhang2012-04-051-0/+4
| | | | | | | | | | | | | | | | These types and values and been defined propsys.h from MinGW-W64 Version2 on. Change-Id: If74b7cf07a0fce414009c86519494a782508d8fe Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * Windows: Send empty region in expose event from setVisible(false).Friedemann Kleint2012-04-051-1/+3
| | | | | | | | | | | | | | | | Fixing a crash in tst_qwidget.cpp, trying to redraw on destroying the platform window. Change-Id: I6b6e9a063a1c72dff8110c379f8392605aadbdd6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* | Deprecate qMemCopy/qMemSet in favour of their stdlib equivilents.Robin Burchell2012-04-112-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just like qMalloc/qRealloc/qFree, there is absolutely no reason to wrap these functions just to avoid an include, except to pay for it with worse runtime performance. On OS X, on byte sizes from 50 up to 1000, calling memset directly is 28-15% faster(!) than adding an additional call to qMemSet. The advantage on sizes above that is unmeasurable. For qMemCopy, the benefits are a little more modest: 16-7%. Change-Id: I98aa92bb765aea0448e3f20af42a039b369af0b3 Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Merge remote-tracking branch 'origin/master' into api_changesOswald Buddenhagen2012-04-109-58/+248
|\| | | | | | | | | | | | | | | | | | | Conflicts: configure src/widgets/styles/qwindowsxpstyle.cpp tests/auto/gui/kernel/qwindow/qwindow.pro tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
| * Windows: Use native font engine by default.Friedemann Kleint2012-04-051-3/+4
| | | | | | | | | | | | | | | | | | Turn around the meaning of the command line parameter. The FreeType engine can now be activated by passing freetype. Change-Id: I9da6cd4a127603f9cfb91f0ce8450088c0883faa Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * Windows: Fix menu color for Windows, WindowsXP.Friedemann Kleint2012-04-041-1/+1
| | | | | | | | | | | | | | Typo in palette. Change-Id: I8b4c23ef7f75ff3aa3351f15e4af0767a3ccd083 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * WindowsXP: Fix Item view alternate color being black.Friedemann Kleint2012-04-031-3/+35
| | | | | | | | | | | | | | The theme palette needs to be initialized by the standard palette. Change-Id: I91c2ac9aea122e6ed9c09c96b35dfe0ef18a3ca0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * Windows: Improve Freetype font database registry check for fontsMiikka Heikkinen2012-04-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Some non-scalable fonts like "Courier" list some numbers after the font name in Windows registry, e.g. "Courier 10,12,15". These are not part of the font name and therefore confused the algorithm looking for font files. Improved the algorithm to ignore this kind of number list. Single numbers are still expected to be part of the font name. Task-number: QTBUG-24970 Change-Id: I3fe45b798f44bee962e5b3aa748fc4717f723353 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
| * Adapt windows input context to QGuiApplication::focusObject()Pekka Vuorela2012-04-021-6/+6
| | | | | | | | | | Change-Id: I8c18814d705b456d3285d7a5f2e1e0849af99b70 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * Implement application font loading for WindowsMiikka Heikkinen2012-03-274-28/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For FreeType Windows font database, use the application font loading implementation of the parent class. For native Windows font database, the implementation was adapted from Qt 4.8. Also fixed a bug in font database population, where old data was not destroyed before population, resulting in fonts not getting properly repopulated when a new font was added. Task-number: QTBUG-24193 Task-number: QTBUG-24195 Task-number: QTBUG-24196 Change-Id: Ie224a87baf7500b9867aaafa807f62dd4503dee8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * Introduce FontSmoothingGamma as a platform style hint.Friedemann Kleint2012-03-273-12/+20
| | | | | | | | | | | | | | | | | | | | - Allocate gamma tables on the heap in a thread-safe way, use font smoothing returned by the style hints of the platform to calculate them. - Improve font rendering on Windows. Change-Id: I8cd39b51cf03cbd642474c02b9076814baecd597 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| * Fix IAccessible2 for Windows, enable MSAA/IAccessible for MinGW.Jan-Arve Saether2012-03-272-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 5e9089135bfe7db7d7a43c9ee4d4c24ab8f6458d had some problems: * It left out the cast to IServiceProvider in the refactoring of QueryInterface. This broke IAccessible2. * It also failed to enable the codepath for MinGW inside wrap(), which effectively caused MSAA for MinGW to be disabled. It also adds an autotest to the bridge (finally). It is simple, but it should help avoiding committing stuff that completely breaks the bridge. Change-Id: I459d89c3bdb93e54ddea85872b50fc1dba0fe4a0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-276-97/+193
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qisenum.h src/dbus/qdbusconnection_p.h src/widgets/kernel/qwidget.cpp tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: I85102515d5fec835832cc20ffdc5c1ba578bd01d
| * Enable IAccessible for MinGW32, keep IAccessible2 disabled for MinGWJan-Arve Saether2012-03-246-93/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | No surprise, the files generated by midl contains code that only the MS compiler will understand. However, since the generated files are only needed for IA2, we can still compile the old IAccessible/MSAA implementation for mingw (like it was before the introduction of IA2) I used mingw 4.6.1 to test this. Change-Id: Iad581f2fee087bd7b796ac5a01548f2fcacbd595 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
| * API cleanup: remove CoordinateType enumJan-Arve Saether2012-03-242-4/+39
| | | | | | | | | | | | | | | | The bridge can do the mapping to and from screen position. This is now done in the windows bridge. Change-Id: I5ca5df0fbeeb58202539f55a0f62717fb1685092 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-231-2/+2
|\| | | | | | | Change-Id: I93551e4d13a1b0815b359b9415060e9089477db1
| * Fix QSysInfo::WindowsVersion checking (QSysInfo::WV_NT_based is a mask)Joerg Bornemann2012-03-221-2/+2
| | | | | | | | | | | | | | | | Manual merge of the original fix 1ef309e9 in the Qt 4.8 repo. Task-number: QTBUG-20480 Change-Id: Id08500c2dd16965af3942e65cff1f4afa24180b0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* | Got rid of Map / Unmap events in favor of Expose event.Samuel Rødal2012-03-221-3/+2
|/ | | | | | | | | | | | | | | | | | Since change 2e4d8f67a871f2033 the need for Map and Unmap events has gone away, as now the Expose event is used to notify the application about when it can start rendering. The Map and Unmap events weren't really used except by QWidget to set the WA_Mapped flag, which we now set based on the expose / unexpose. Also guarantee that a Resize event is always sent before the first Expose, by re-introducing an asynchronous expose event handler. Since an expose is required before rendering to a QWindow, show a warning if QOpenGLContext::swapBuffers() or QBackingStore::flush() if called on a window that has not received its first expose. Change-Id: Ia6b609aa275d5b463b5011a96f2fd9bbe52e9bc4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Refactor theme plugin loading.Friedemann Kleint2012-03-155-11/+22
| | | | | | | | | | | | | | | | | | | | In the old implementation, the QPlatformIntegration was asked for the theme first, so there was no way of overriding that by a custom plugin. Also, there was a memory leak in case the platform theme was actually created by a plugin. QGuiApplication now asks the QPlatformIntegration for a list of potential theme names first, tries to load them using the plugin loader and finally invokes a factory method of QPlatformIntegration in case that fails. The theme is now owned by QGuiApplication. In the XCB plugin, the environment variable DESKTOP_SESSION is queried and appended to the list of themes, making it possible to load plugins for other session types. Change-Id: I1a4b4e061815bca16c65b23e591bb7563a3e44e2 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix compilation of the Windows accessibility code for MinGW.Friedemann Kleint2012-03-147-34/+57
| | | | | | | Temporarily disable the code for MinGW. Change-Id: I435305167e06af05b9a78901e6e3a35347c5c3f5 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* build fix for -no-freetype in Windowsjian liang2012-03-145-22/+23
| | | | | | | | | | Don't use QWindowsFontDatabaseFT::systemDefaultFont() and QWindowsFontDatabaseFT::LOGFONT_to_QFont() in qwindowsfontdatabase.cpp and qwindowstheme.cpp because it is not available when building with -no-freetype. Change-Id: I11075475ff435c55b0c641540f95a4d3861b79da Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add support for IAccessible2 on WindowsJan-Arve Saether2012-03-1312-409/+3115
| | | | | Change-Id: Ia955ab46dc5037ed1c74e0acc525e98b02552c97 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Windows: Implement QWindowsIntegration::queryKeyboardModifiers()Friedemann Kleint2012-03-124-0/+22
| | | | | | | Use code from Qt 4.8. Change-Id: I32d220e04d13ee1e692c0c58268b827bcf519dc7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Implement QSystemTrayIcon for Windows.Friedemann Kleint2012-03-121-0/+22
| | | | | | | | | | | | No longer base the implementation on a QWidget which is not necessary when all that is required is a message window listening to task-tray messages. Export a service function creating a message window from the Windows native interface and use that. Task-number: QTBUG-20978 Change-Id: I01d0faeac777df4eee802c51d2bc722fce814080 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Windows: Fix flag handling.Friedemann Kleint2012-03-081-6/+6
| | | | | | | | Fix a typo that caused a variable to be hidden such that the Qt::WindowFlags were not used. Change-Id: Iea4456b0cd4c968e0fbfdd53e5006ffee0298b24 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QCursor: Associate cursor with screen.Friedemann Kleint2012-03-075-11/+17
| | | | | | | | | | | | | | | | | | | | | | - Introduce cursor() accessor to QPlatformScreen. - Remove screen member of QPlatformCursor (a cursor can be shared by multiple screens of a virtual desktop). - Add QCursor::pos()/ QCursor::setPos() taking a QScreen-parameter, use primaryScreen() for old overloads. QCursor::pos() can then query the platform cursor for the position and return the position even if the mouse position is outside the windows owned by the Qt application. - Fix tests Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Task-number: QTBUG-22457 Task-number: QTBUG-22565 Task-number: QTBUG-20753 Change-Id: Ia69f37343f95772e934eab1cd806bd54cbdbbe51 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Windows: Fix override cursor logicMiikka Heikkinen2012-03-071-4/+2
| | | | | | | | | | Fixed a logic error that prevented override cursors being applied in Windows plugin. The logic for override cursor handling is already in crossplatform code, so no need to do extra checks in plugin. Task-number: QTBUG-24657 Change-Id: Ied9b36b57f22607ef5bb5c30f2926b0053eebca5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add fonts to QPlatformTheme.Friedemann Kleint2012-03-077-118/+136
| | | | | | | | | | | | | | | | - Remove QPlatformFontDatabase::defaultFonts() returning a hash containing widget name ->font and the Windows implementation. - Add enumeration and font accessor to QPlatformTheme. The value returned for the enumeration value overwrites the default font of the font database. - Implement for Windows, Mac and KDE. - Add more Windows palettes. Task-number: QTBUG-23686 Change-Id: I8a2abdfd216df23daa7c9630c54264cdf61295db Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix off by one in updateAccessibility.Frederik Gladhorn2012-03-071-8/+6
| | | | | | | | Now that indexOfChild is 0-based, the update notifications should follow. Change-Id: I5e0303516d503d5e23061df5894b2428c00da2ce Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove the usage of deprecated qdoc macros.Casper van Donderen2012-03-027-32/+32
| | | | | | | | | | | QDoc now has support for Doxygen style commands for italics, bold and list items. This change applies that change in QDoc to the actual documentation. Task-number: QTBUG-24578 Change-Id: I519bf9c29b14092e3ab6067612f42bf749eeedf5 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix get_accFocus() to return CHILDID_SELF when it returns itself.Jan-Arve Saether2012-03-021-7/+41
| | | | | | | | | | This means that the AT client knows it should not have to ask for the focus child anymore. Previously, some clients (NVDA) kept on asking infinitely because of this. Change-Id: Ia2bd2e1088a899f7d1a0c9189024accdacfd693b Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Improve debugging in the windows accessibility bridge.Jan-Arve Saether2012-03-021-29/+43
| | | | | | | | set QT_DEBUG_ACCESSIBILITY=(1|0) to turn logging on or off Change-Id: Ibd5b77699decf0cf02bc6b6cc656fa237de29124 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix QApplication autotest crash when running on multiple screensMiikka Heikkinen2012-03-021-1/+5
| | | | | | | | | | Screens need to be destroyed in reverse order to ensure the primary screen stays valid when other screens are destroyed. Task-number: QTBUG-24300 Change-Id: I9d9d710aa67ec045baa8bf292833ffe7d9eea935 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Windows: Use correct drop data in processDrop().Friedemann Kleint2012-03-011-1/+1
| | | | | | | Fix Qt Designer Drag & Drop. Change-Id: Iabed622efc5e23080f7a91b8d9e433e2c0cee063 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Refactor the QPA dnd interface.Friedemann Kleint2012-02-292-192/+100
| | | | | | | | | | | | | | | - Give QPlatformDrag a synchronous drag() function returning the Qt::DropAction - Move the base functionality for asynchronous event handling to the platformsupport library as QBasicDrag (extendable base class handling drag icon and providing new virtuals) and QSimpleDrag (sample implementation for drag within the Qt application). - Change the Windows implementation accordingly. - Change XCB to be based on QBasicDrag. - Clean up QDragManager. Change-Id: I654f76f0e55a385ba189bd74f3ceaded6a8fe318 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Rename remaining references to QInputPanelPekka Vuorela2012-02-281-1/+1
| | | | | Change-Id: I747d37d10c78af6ad00322d5bd8d29c6b343828c Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QClipboard: Fix autotest failsDebao Zhang2012-02-271-2/+1
| | | | | | | | | | | | | | | tst_qclipboard.cpp still has Q_WS_WIN which must be clear away. After clean up, auto test will fail under windows: When setMimeData() is called, dataChanged() signal will be emited twice. The solution for QTBUG-24184 has partially solved the problem, but it still there. Make sure emitChanged() only called by QPlatformClipboard will give our more control for this. Task-number: QTBUG-24484 Change-Id: I23566c6d3b32828b6865234c311af3635fe9e299 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix Windows -no-freetype buildJonathan Liu2012-02-242-180/+180
| | | | | | | | | | | | | The localizedName and getEnglishName functions were defined in qwindowsfontdatabase_ft.cpp but used in qwindowsfontdatabase.cpp. However if -no-freetype is specified during configure then qwindowsfontdatabase_ft.cpp is not compiled which results in an undefined reference. To resolve this, the functions are moved to qwindowsfontdatabase.cpp which is always compiled whether -no-freetype is specified or not. Change-Id: I085d84cecb29065ba5e6495b52eef7a678947bdc Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Handle theme change in QApplication/QGuiApplication.Friedemann Kleint2012-02-231-2/+3
| | | | | | | Re-initialize palette and fonts. Change-Id: Ib312747886a31e8370f8d99536d52cbcf8afe8a4 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add further theme hints to QPlatformTheme.Friedemann Kleint2012-02-221-4/+9
| | | | | | | | | | | | | | | | - Add hints for QDialog/QDialogButtonBox. - Add hint for available popup-menu area. - Add keyboard scheme hint replacing QGuiApplicationPrivate::currentKeyPlatform() Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Task-number: QTBUG-24204 Task-number: QTBUG-24315 Change-Id: I6653786b0dcb49a6fc264d3b9891dbfee502bd3e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>