summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* Default implementation for QPlatformFontDatabase::fallbacksForFamily()Konstantin Ritt2015-07-312-11/+6
| | | | | | | | | ...mainly for platforms that do not provide a native/unified way to obtain system-defined font fallbacks list (ie !CoreText && !FontConfig). Change-Id: I23c5589d79ddecb6311ccc52ec8b29977f06d408 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Windows: Split code paths for touch/native gesture events.Friedemann Kleint2015-07-273-6/+27
| | | | | | | | | | | Fix up 2b5df245d6cdbfb3150ee815debccf655af8f19f which routed WM_GESTURE through QWindowsMouseHandler::translateTouchEvent() causing asserts on missing touch devices. Task-number: QTBUG-47184 Change-Id: Ie843ebb343e34487bcac9c9dbea88de641d51e28 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Windows/QClipboard: Fix crash in debug output of QMimeData.Friedemann Kleint2015-07-232-19/+20
| | | | | | | | | | Rewrite QDebug operator<<(QDebug d, const QMimeData &mimeData) to take a pointer and handle 0 values. Change the formatting to the style commonly used in Qt. Make it static as it is not used anywhere else. Task-number: QTBUG-47393 Change-Id: I78174e10b75769bf4acd33a894acc0a51e525c39 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* fix -no-opengl buildJoerg Bornemann2015-07-232-1/+4
| | | | | Change-Id: Id3570cf10d86908ddff35be65103d16b353dad04 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Fixed null pointer dereferenceRon Bessems2015-07-221-6/+6
| | | | | | | | | Crash in qtwidgets.dll when Qt app is used with accessibility tools like Dragon. Crash due to null pointer dereference. Task-number: QTBUG-47093 Change-Id: I140196ba44b68dfaf229dd8a8e6031379ea1acac Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Windows: Fix handling of cursor flash time.Friedemann Kleint2015-07-211-1/+1
| | | | | | | | | | Check for special return value INFINITE (unsigned -1) of GetCaretBlinkTime() (indicating cursor should not flash) and return 0 in that case. Change-Id: Iead41a20a68b79d04b03f77a3caf063d4e1d577e Task-number: QTBUG-47208 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Windows: register alias for application fontJian Liang2015-07-202-5/+11
| | | | | | | | | | | | | | | | | | | Previously Qt didn't register an English name alias for application font files under Windows. Suppose we add an application font file using QFontDatabase::addApplicationFont(), the font family name returned by QFontDatabase::applicationFontFamilies() then was the English name of the font file, but the corresponding font family name returned by QFontDatabase::families() was the localized version. This prevented us from using the English font family to access the font since it was not registered as alias. Add an overload of populateFamily() which will register the English name of the application font file as alias. Task-number: QTBUG-47096 Change-Id: Idb89b7d8a419646c209426e826e7fd1ebee49662 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Fix broken gpu blacklist matching in the windows pluginLaszlo Agocs2015-07-161-1/+1
| | | | | | Task-number: QTBUG-46868 Change-Id: I70db75291d17dbb2c4db4cfed6c31dc48ab398d7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add support for PNG to QWindowsMimeImage::convertFromMime().Friedemann Kleint2015-07-101-2/+11
| | | | | | | | | | GIMP asks for image data in PNG format when doing a "paste" which was previously handled only in convertToMime(). Add handling to convertFromMime() and register format. Task-number: QTBUG-46848 Change-Id: Ib11de27d301c8632869c7276e421e48e4f34e1d0 Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
* DirectWrite: Fix crash when loading QRawFont from dataEskil Abrahamsen Blomfeldt2015-07-061-16/+13
| | | | | | | | | | | | | | | | | In Qt 4, we would create and destroy the DirectWrite factory for each time we load the font data from a QRawFont. This factory would then be passed to the font engine ctor. However, in Qt 5, some things have been refactored, and the font engine will now try to use the factory stored in the sharedFontData(). This would cause dereferencing a null pointer because we didn't initialize the data before constructing the font engine. [ChangeLog][Windows][Text] Fixed crash in DirectWrite engine when constructing a QRawFont from raw font data. Task-number: QTBUG-46963 Change-Id: I4813c7f818c9df5707c27f5b6ce507649d902270 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Merge "Merge remote-tracking branch 'origin/5.5.0' into 5.5" into ↵Liang Qi2015-06-281-1/+1
|\ | | | | | | refs/staging/5.5
| * Merge remote-tracking branch 'origin/5.5.0' into 5.5Liang Qi2015-06-271-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoafiledialoghelper.h Manually fixed src/testlib/qtestcase.cpp to return the right type. Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
| | * Revert "Windows: Use DND effect chosen in DragEnter/Move for Drop."Friedemann Kleint2015-06-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change causes items in QListWidget and QTreeWidget to disappear during InternalMove since the widgets modify the actions of the event to remember an internal state. This reverts commit 988f1b2e5745646cf1bd7f9f65507356ff2ba12e. Task-number: QTBUG-46642 Task-number: QTBUG-43466 Change-Id: I27d888d7a1fdfcf8eaf8806ccd4ca33b292b9d8c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | | Treat color (ARGB) glyphs, e.g. Emoji, as having unreliable glyph outlinesTor Arne Vestbø2015-06-261-1/+1
|/ / | | | | | | | | | | | | | | | | | | This is used by the scene graph to automatically switch over from distance field text to native text rendering for the given glyph node, which allows mixing regular text with Emoji in e.g. a Text item without having to set renderType to Text.NativeRendering. Change-Id: I5d96d1dab329a975e3442284bf4c5a82174177c9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* / fix usage of wince scopeOswald Buddenhagen2015-06-051-8/+8
|/ | | | | | | Fix style issues along the way. Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Windows: Fix font metrics of Vista style wizards.Friedemann Kleint2015-05-292-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | QVistaHelper::drawTitleBar() used the font returned by QApplication::font("QMdiSubWindowTitleBar") (typically "MS Shell Dlg 2",16) to calculate the bounding rectangle of the title text. However, if the window is a toplevel QVistaHelper::drawTitleText() uses the theme font obtained for WIZ_TMT_CAPTIONFONT (typically "Segoe UI",11.25) to draw the title (since it is a window title). This causes the font to be cropped when changing the application font or spurious black rectangles to occur. Fix this by exposing QWindowsFontDatabase::LOGFONT_to_QFont() via QWindowsNativeInterface, and creating a QFont from the LOGFONT obtained for WIZ_TMT_CAPTIONFONT and using that for the bounding rectangle in the case of toplevel windows. Split up the HFONT QVistaHelper::getCaptionFont(HANDLE hTheme) into static LOGFONT getCaptionLogFont(HANDLE hTheme) and use that to obtain the HFONT in drawTitleText() or QFont in static QFont getCaptionQFont(), respectively. Task-number: QTBUG-46360 Change-Id: I9069b403f7f948b6738eec452cb7584be45b8a29 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* windows: Use EGL extensions as they ought to be usedLaszlo Agocs2015-05-282-6/+13
| | | | | | | | | | | | | | | | | | | We take some shortcuts still because we know that with ANGLE the header with the extension constants is always available. A proper implementation would not rely on the constants being available and would dynamically check for the extension and would take care of defining the constants if not available. However, just getting the extension list to check if the functions needed to get the display are available is already a chicken-egg problem so we won't go there. Using eglGetProcAddress properly solves the issues with static builds too since this always works. Task-number: QTBUG-46284 Change-Id: Iff23669ebacaffa0c5f76fd2c928af689307874f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Gunnar Roth Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* Windows: Clean Qt::WindowFullscreenButtonHint in fixTopLevelWindowFlags().Friedemann Kleint2015-05-261-0/+2
| | | | | | | | | | | Do the correction of top level window flags also in case Qt::Window|Qt::WindowFullscreenButtonHint is passed, since it is not supported by the platform anyways. Task-number: QTBUG-31111 Change-Id: If035d7086e48174873b6b91acf90f730ea40b5a8 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com> Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Fix compile error with VS 2015Jan Arve Saether2015-05-221-1/+1
| | | | | | Change-Id: Ib3b61de27feccb980e5efdf02f0372602d7ffb5a Task-number: QTBUG-45961 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* QPA plugins: Use _iid macros instead of strings in Q_PLUGIN_METADATA.Friedemann Kleint2015-05-131-1/+1
| | | | | | | | | This makes it easier to change the version numbers by changing the macros in QtGui. Task-number: QTBUG-46009 Change-Id: I94c9591ec6f7c9173a698df9e1fe8fd6a904caf4 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Windows QPA plugin: Fix debug formatting.Friedemann Kleint2015-04-308-104/+124
| | | | | | | | | | | | | | | | - Introduce QDebugStateSaver for all debug operators. - Remove the "Flags=" from enumerations since their type is now output by default. - Added some spaces since the previous formatting relied on space=true as a result of some debug operators erroneously returning debug.space(), which is now fixed in qtbase. - Fixed formatting, added noquote() where necessary, added some newlines, used stream modifiers instead of QString::number(n, 16) to output hex numbers. - Fix indentation. Change-Id: I64123a4262916e21448cda2aa61ae1100f07291a Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Windows: Add "Segoe UI Emoji" and "Segoe UI Symbol" as fallback fonts.Friedemann Kleint2015-04-271-0/+2
| | | | | | | | This enables rendering of Emoji symbols. Task-number: QTBUG-45811 Change-Id: I7cb128dab717870929e02ea9ec253f36fef29804 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Add matching by GL_VENDOR to QOpenGLConfigLaszlo Agocs2015-04-161-4/+1
| | | | | | | | This will be essential on Linux, especially Embedded where PCI IDs are not that useful. Change-Id: I2fa8ca07236e8aae203e21fe629d12aab092c7fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* windows: Add a version test to the Intel HD blacklistLaszlo Agocs2015-04-161-1/+5
| | | | | | | | | | | | | The original rule was way too broad: it disabled desktop GL many HD 4400 machines that have no problems with it at all. While the rule with the version check is somewhat dubious, it is the only thing we can do. Task-number: QTBUG-45505 Task-number: QTBUG-43263 Change-Id: I217a96a2a9c7cc2d000a8f06493d0857626f2aaa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-153-5/+9
|\ | | | | | | Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
| * Windows: Fix -no-widgets buildAndy Shaw2015-04-072-5/+1
| | | | | | | | | | Change-Id: I0a79a61ffe8b6c6f66895dbeb988e653e11c9661 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * Windows: Fallback to 0 samples if ARB::choosePixelFormat() fails with 1Andy Shaw2015-03-311-0/+8
| | | | | | | | | | | | | | | | | | This solves a problem when using a Qt application over remote desktop as if it failed with even 1 sample then it would fallback to GDI which causes an error if the software OpenGL option is used. Change-Id: Ib311a7a657f92aab15277461bc8e040bebbe4753 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | windows: Fix platform plugin compilation with new angleAndrew Knight2015-04-091-1/+2
| | | | | | | | | | | | | | | | | | The identifiers for configuring a software renderer changed. Change-Id: I739cedbb0a00bc6be94df716d66cd1520d4f7c9d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Windows: Fix dialog close button showing despite ~Qt::WindowCloseButtonHint.Friedemann Kleint2015-04-091-7/+3
| | | | | | | | | | | | | | | | | | Further restrict the condition under which the special window flags for QTBUG-2027 apply. Change-Id: I458c7c6bfb06820992b5a21820c0439fd2ce7d9d Task-number: QTBUG-2027 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Fix build with -directwriteKonstantin Ritt2015-04-072-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | There were several issues caught by GCC: * deleting object of polymorphic class type which has non-virtual destructor might cause undefined behaviour * comparison between signed and unsigned integer expressions * 'GetUserDefaultLocaleName' was not declared in this scope (depends on WINVER >= 0x0600) Change-Id: I39f2cc0d5e158f4d85377edd55e9f74a512c7303 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Use QT_WARNING_.. instead of #pragma GCC diagnostic ..Konstantin Ritt2015-04-071-7/+3
| | | | | | | | | | Change-Id: I0bb55a7f1074f3b8d6fb681b1d4dab5105ae7569 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5Liang Qi2015-04-018-25/+80
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-03-318-25/+80
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/android-g++/qmake.conf qmake/generators/unix/unixmake2.cpp src/gui/image/qimage_conversions.cpp Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
| | * Windows: Add support for horizontal scroll on some touchpads.Sérgio Martins2015-03-264-18/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While most (all?) touchpads send WM_MOUSEWHEEL for vertical scroll the story is quite different for horizontal scroll. Some of them send WM_HSCROLL instead of WM_MOUSEHWHEEL. Some of them even send left/right key event but those are lost cases. Task-number: QTBUG-45120 Change-Id: I3bf86e25a6f4f3ba03ac7e89a23f4b7bc432f2de Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| | * Windows: Get the normal virtual key when not composingAndy Shaw2015-03-132-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When there is no composing currently being done then we need to get the real virtual key rather than the one it was sent as with ImmGetVirtualKey. This ensures that any shortcut associated with the key will be fired right away. Change-Id: Id526b7030ca21eaacbd6c74774392b0707cf762a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| | * Win QPA: Pass in the top level setting instead of relying on isTopLevel()Andy Shaw2015-03-062-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When updateDropSite() is called then most of the time calling window()->isTopLevel() is enough. But in a case like while the window is being reparented it cannot be trusted. So we pass it as a variable so that it is possible to give it the correct information when it is being called. Task-number: QTBUG-39739 Change-Id: I77a7ceeaf78e89b1f65a10d60df86088b35e0fe5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | | Windows: Fix QT_NO_OPENGL buildKai Koehne2015-03-312-7/+15
|/ / | | | | | | | | Change-Id: Ieb99dce5389c37fb28a28691c75bf879740398e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Windows: Remove duplicated color masks in qt_write/write_dibv5.Friedemann Kleint2015-03-301-9/+0
| | | | | | | | | | | | | | | | | | They are apparently a relic of some old bitmap header that did not contain them (superseded by BITMAPV5HEADER). Task-number: QTBUG-45265 Change-Id: I993dda7d409f7963c9fabd42b0fac5f5586c6248 Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
* | Windows: Send the input method event when the focus object is validAndy Shaw2015-03-301-1/+1
| | | | | | | | | | Change-Id: I072d4b0bc754f73507c2de96d7e155f13a993594 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Build bundled freetype as qt_helper_libKonstantin Ritt2015-03-271-1/+1
| | | | | | | | | | | | | | | | And thus do not disable warnings for the whole module when configured with -qt-freetype. Change-Id: I601a7c2990c8e3377531a28078db73800c138ec1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Windows: Support virtual folders as initial directory for file dialog.Friedemann Kleint2015-03-273-19/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | Use the scheme "clsid" to be able to pass them as "clsid:<GUID>" (with '{', '}' stripped). Task-number: QTBUG-33962 Change-Id: Ib045fe81518bca6e91588007ce8a245a48479b1f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Patrick Spendrin <patrick.spendrin@kdab.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | [QWindowsFontDatabase] Move code around to improve readabilityKonstantin Ritt2015-03-201-44/+30
| | | | | | | | | | | | | | | | Keep DirectWrite initialization code in a single place and fallback to GDI implementation if DirectWrite initialization has failed. Change-Id: I2da185dbc073c58a7ba47bae09957ecac877d712 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Simplify QWindowsFontDatabase::createEngine()Konstantin Ritt2015-03-203-15/+12
| | | | | | | | | | | | | | Reduce code duplication and improve readability. Change-Id: Idf53c80077daa9bac03a72acfd2b6c7e3a24ad97 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | An attempt to fix font stretching with DirectFrite font engineKonstantin Ritt2015-03-201-17/+15
| | | | | | | | | | | | | | | | | | Do the `lf.lfWidth = tm.tmAveCharWidth * request.stretch / 100` trick for the DirectWrite path, too. Task-number: QTBUG-22652 Change-Id: I5238bce1033555a4386cb48fed8c898a9632e0cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Only get font metrics if we're going to use themKonstantin Ritt2015-03-201-26/+20
| | | | | | | | | | Change-Id: If6b635e54f705c1e28b4e092a318d825a408ccfb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Do not re-create font if it is not of TMPF_TRUETYPEKonstantin Ritt2015-03-201-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For !ttf and stretch==100 case, it was: hfont = CreateFontIndirect(&lf); TEXTMETRIC tm = ..; if (!ttf) { DeleteObject(hfont); lf.lfWidth = tm.tmAveCharWidth; hfont = CreateFontIndirect(&lf); } Unless there is some special behavior for non-TrueType fonts I don't know about, it looks to me like a 100% waste. Change-Id: I864340e50591ba1d8006d1a80f36f6f06f2734b6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Windows: Activate popup when there is no active window.Friedemann Kleint2015-03-201-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | Port af7d2b2127dadbdf828c60c75255bb1b4f591651 and 9ffdfa58b3ad2ed4100a7d223a85399b72c6deb7 for QTBUG-7386 from Qt 4. Task-number: QTBUG-44928 Task-number: QTBUG-7386 Change-Id: I119b75349ff30b19f56ecad7fdecf898ac0797d6 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | Windows: Fix touch registration.Friedemann Kleint2015-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | IsTouchWindow() returns false for windows that have not yet been registered for touch and the code bailed out. Fix the check so that registration is only suppressed when the flags match. Change-Id: Ia1e88553d2fd8f9acc4e3b9c5f4af6cdbe93b3f6 Task-number: QTBUG-45134 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | Introduce src/3rdparty/freetype.pri for better maintenanceKonstantin Ritt2015-03-141-60/+2
| | | | | | | | | | | | | | | | This deduplicates qmake rules in platformsupport and platform plugins. Change-Id: Ie9c7d933c4433b96bf502e9753a12faa238b4569 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Windows: Introduce delayed population to the FreeType font database.Friedemann Kleint2015-03-122-64/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Further Split apart Windows CE/Windows code paths to provide 2 implementations of populateFontDatabase(): - The desktop version uses a callback which only registers the font families using QPlatformFontDatabase::registerFontFamily() to be populated on demand later by populateFamily(). - The Windows CE version is unchanged. Task-number: QTBUG-43774 Task-number: QTBUG-44647 Change-Id: Iad4ec849006a4daf86a5caea9afc89e83ccc7c63 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>