summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* windows: fix platform compilation after ANGLE upgradeAndrew Knight2014-11-141-2/+2
| | | | | | | | | Upstream changed how WARP is meant to interact with EGL, and so the enum names changed. Change-Id: I10d4bcac71b75a1223ea8af4d3fcf584f5685a02 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Windows native file dialog: Work around display bug of IFileDialog.Friedemann Kleint2014-11-051-4/+9
| | | | | | | | | Any filter not filtering on suffix shows up duplicated in filter combo. Change-Id: I9fc9e33b6081cf6894fabc6dd52c12a4d3dfd393 Task-number: QTBUG-42405 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Windows: Ignore key Shift+F10 unless a shortcut is registered for it.Friedemann Kleint2014-11-031-1/+10
| | | | | | | | | This key combination should open the context menu. Task-number: QTBUG-40085 Change-Id: I7cfc89f766b3734b9fb9d3c9135b4896ffbadb5b Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Windows: Create touch device in initialization.Friedemann Kleint2014-10-313-19/+31
| | | | | | | | | | Previously, the device was delay-created, which is a problem if its type is to be used for determinining the pan gesture type. Task-number: QTBUG-40461 Change-Id: I2dee3d7a3786a0fdf0a9b2b9e174dd121697ab44 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-282-9/+9
|\ | | | | | | Change-Id: I224e44a9df314b9a99d33148b6cf400fcbc9de8e
| * fix namespaced DirectWrite buildJoerg Bornemann2014-10-282-9/+9
| | | | | | | | | | Change-Id: Iec6d6ca121b2b04fc1eb4a97f1387ee630e6e1f5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Windows: Initialize the mouse cursor resourcesAlessandro Portale2014-10-222-1/+13
| | | | | | | | | | | | | | | | Initializing resources is required for static Qt builds on Windows. Task-number: QTBUG-42075 Change-Id: I3074fd8ab57ac48762f589eb3776ed5cc7e2e31d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Windows: Implement Qt::WA_ShowWithoutActivating.Friedemann Kleint2014-10-221-1/+8
| | | | | | | | | | | | | | | | | | | | Set dynamic property for all platforms and query it in QWindowsWindow::show_sys(). Task-number: QTBUG-19194 Task-number: QTBUG-34504 Change-Id: I4199a2ed835d3de928405d470a81c54da93cc768 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | QWindowsGuiEventDispatcher: Register timers in constructor.Friedemann Kleint2014-10-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Port change 3716a76704273fdbe5ad4ec978438daeda606c26 (Qt 4) to Qt 5. Enforce the creation of the internal window and registering of timers in the event dispatcher constructor for GUI applications instead of delaying it to processEvents() is called. Move the call to virtual wakeUp() out of createInternalHwnd(). Task-number: QTBUG-40881 Change-Id: I82a4748897da140a39feff882c75ad5ac6155148 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Don't use QStringLiteral in startsWith/endsWidthMarc Mutz2014-10-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For QLatin1String, startsWith/endsWith is overloaded, so comparing to a latin-1 (C) string literal is efficient, since strlen() is comparatively fast. OTOH, QStringLiteral, when not using RVO, litters the code with QString dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just use QLatin1String instead. Change-Id: I7eaf464c67b55116f970fe7f58a85f19ce4d254e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Don't use QStringLiteral in comparisonsMarc Mutz2014-10-095-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For QLatin1String, operator== is overloaded, so comparing to a latin-1 (C) string literal is efficient, since strlen() is comparatively fast. OTOH, QStringLiteral, when not using RVO, litters the code with QString dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just compare using QLatin1String instead. Change-Id: I7af3bf3a67c55dae33ffaf9922d004fa168a3f9c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Don't use QByteArrayLiteral in comparisonsMarc Mutz2014-10-092-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For const char*s, operator== is overloaded, so comparing to a (C) string literal is efficient, since qstrcmp doesn't require the length of the strings to compare. OTOH, QByteArrayLiteral, when not using RVO, litters the code with QByteArray dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just compare with a (C) string literal instead. Change-Id: Id3bfdc89558ba51911f6317a7a73c287f96e6f24 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Oswald Buddenhagen2014-10-071-1/+1
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into 5.4Oswald Buddenhagen2014-10-061-1/+1
| |\| | | | | | | | | | Change-Id: I132bb6cce68e9f8413200f7ee75586bd1cada38c
| | * Accessibility: Fix crash with invalid QAccessibleInterfaceDyami Caliri2014-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows accessibility can crash if it handles an event with an invalid QAccessibleInterface pointer (one whose object has been deleted). Task-number: QTBUG-41597 Change-Id: Iba099f7cb732fd00f18f04bd951c6cdd94785871 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | | Windows DirectWrite: Fix off-by-one in font descentEskil Abrahamsen Blomfeldt2014-10-061-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cb8445f0323b0eefbb04f1d8adad81a00b53abd8 we removed the historical +1 in font heights and the corresponding -1 in the descent measurement for all font engines. But the change to the direct write font engine was lost at some point during the transition to QPA, where we seem to have integrated an older version of the source file. [ChangeLog][Windows][Fonts] Fix off-by-one in font descent when using the DirectWrite font engine. Task-number: QTBUG-41783 Change-Id: Iffa24b5f2b4f6cc3a1f0034fdff63a1ee62ea9f7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Windows: Transform regions of window masks correctly.Friedemann Kleint2014-10-021-1/+1
| | | | | | | | | | | | | | | | | | | | Add missing transformation for first rectangle of a region consisting of multiple rectangles. Task-number: QTBUG-41300 Change-Id: I1a25c422c93ceade79de79d5c49891e0a7211943 Reviewed-by: MihailNaydenov <garfieldhq@yahoo.com> Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Warn when loading opengl32sw.dll failsKai Koehne2014-10-021-1/+3
| | | | | | | | | | | | | | | | | | Print a warning when the developer/user has explicitly requested the software backend, but loading openglsw.dll fails. Change-Id: I8b1f079538ac70ceacbf1a397a276659c760a4cc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Doc: Use title case in section1 titlesNico Vertriest2014-09-301-1/+1
| | | | | | | | | | | | | | | | Using Python script title-cased.py Task-number: QTBUG-41250 Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Windows: Fix call of ToUnicodeOliver Wolff2014-09-291-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | ToUnicode sometimes gives wrong results if it is used with a keyboard buffer containing the ctrl modifier. Special cases containing alt and control might trigger the third assignment of a key, but if no alt modifier is used for the key event, we temporarily disable the control modifier in order to obtain the character with ToUnicode. Task-number: QTBUG-35734 Change-Id: Ifd88c640541b42fa65ee1dc9b55af3386714b0b8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Fix font enumeration, with the same family name, on Windows.Vladimir2014-09-282-4/+68
| | | | | | | | | | | | | | | | | | | | | | | | Function EnumFontFamiliesEx with parameters (lfCharSet = DEFAULT_CHARSET, lfFaceName = '\0') enumerates only first installed font from many with same family name. This patch calls EnumFontFamiliesEx twice: 1. Without family name to enumerate families; 2. With family name to enumerate fonts with same family. Task-number: QTBUG-40828 Change-Id: Ic36a24a9e70f735a7324c05fe4b70f7c7e5710d0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | Ensure a window with no stays on top flag is not staying on topAndy Shaw2014-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | On Windows, if a window was previously staying on top then it needs to be explicitly told to have HWND_NOTOPMOST set when it is recreated. If it was not staying on top before the flag has no effect so it is safe to always set it in this case. Task-number: QTBUG-30359 Change-Id: I8be546886d6ae61032113c241f5903bcce04c163 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Update license headers and add new license filesMatti Paaso2014-09-2477-1432/+816
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* | Windows: devicePixelRatio aware QWindowsTheme::standardPixmapAlessandro Portale2014-09-241-4/+10
| | | | | | | | | | | | | | | | | | | | QWindowsTheme::standardPixmap() takes a size parameter which is in user space coordinates. This patch causes it to calculate the size in device pixels, to get the image from the OS in the correct resolution and to set the devicePixelratio of the returned pixmap accordingly. Change-Id: Ifad5d0a26d5fd5945e37e432787d63ee79269295 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Change fallback OpenGL library nameLaszlo Agocs2014-09-241-1/+1
| | | | | | | | | | Change-Id: I7f07699f860d0300f221b980b7d2fbe0dacbf4a1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Frederik Gladhorn2014-09-242-5/+5
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-232-5/+5
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The isAlwaysAskOption was removed in 38621713150b663355ebeb799a5a50d8e39a3c38 so manually removed code in src/plugins/bearer/connman/qconnmanengine.cpp Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qcollator_macx.cpp src/corelib/tools/qstring.cpp src/gui/kernel/qwindow.cpp src/gui/kernel/qwindow_p.h src/gui/text/qtextengine.cpp src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h src/plugins/platforms/android/qandroidinputcontext.cpp src/plugins/platforms/xcb/qglxintegration.cpp src/plugins/platforms/xcb/qglxintegration.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp src/testlib/qtestlog.cpp src/widgets/dialogs/qfiledialog.cpp src/widgets/kernel/qwindowcontainer.cpp tests/auto/corelib/tools/qcollator/tst_qcollator.cpp tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
| | * QWindowsWindow: Fixed warning textOliver Wolff2014-09-151-1/+1
| | | | | | | | | | | | | | | Change-Id: I80019f705edcf3b5f974af72ef86b45546582210 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * Fix mistake in function extraTryFontsForFamilyAllan Sandfeld Jensen2014-08-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Taiwan and mainland China were inverted in the extraTryFontsForFamily method. This patch fixes it and makes sure to match the rest of the Chinese LANGIDs. Task-number: QTBUG-33307 Change-Id: I45048ff5e9c00d20f8e922902701129e80ed459d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Windows: fix obvious mistyping in getSysColorSergey Radionov2014-09-241-1/+1
|/ / | | | | | | | | Change-Id: I1f215cdf17d85119535df35bbff1ee653ecc0ad5 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | Windows qpa: fix minimum allowed fixed height, width on windowsDyami Caliri2014-09-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | A window width constraint coded in Qt4.8 was accidentally applied to the height in Qt5. Upon further review, it does not seem that this constraint is needed, in any case. Different versions of Windows have different minimum window widths (8.1 had 124px instead of 112), and setting a smaller value seems to cause no harm. Task-number: QTBUG-32820 Change-Id: I21ad6d406abf7344aff54d32b41974265aa9ea81 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Use metrics returned by GetGlyphOutline in GGO_METRICS modelasconic2014-09-181-3/+26
| | | | | | | | | | | | | | | | | | | | | | GetGlyphOutline Windows API returns wrong values when used with an OpenType PS font and in GGO_NATIVE mode. It causes problem when exporting to PDF. The fix changes the GetGlyphOutline call to use GGO_METRICS instead. Task-number: QTBUG-12799 Change-Id: I47d6d16b6e7819b51bc444420ada4a47d5f24f4e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Set WINDOWPLACEMENT::length as required by the documentation.Andreas Hartmetz2014-09-111-0/+2
| | | | | | | | | | | | | | Found this while debugging something else in Dr. Memory. Change-Id: Id295ddf4e07088684ecf91e3c2e0a156bf6054cb Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | qpa: Make screen geometry updates (full and available geometry) atomicTor Arne Vestbø2014-09-101-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updating the geometry and available geometry in two steps means that QScreen will be in an inconsistent state when emitting the geometry change signal, as the available geometry has not been updated yet. Piggy-backing changes to the availableGeometry based on the virtual geometry changing does not make sense, so we now tie geometry and availableGeometry (and their size variants) to their own separate geometryChanged and availableGeometryChanged signals. Change-Id: Iee0ced642cbb91c470cb54bc507d2c0512482c13 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | Define EGL_EGLEXT_PROTOTYPES for ANGLEv5.4.0-alpha1Laszlo Agocs2014-09-061-0/+1
| | | | | | | | | | | | | | | | | | Otherwise the protos are not pulled in so the ANGLE-only build cannot suceed (unless the flag is defined from somewhere else). Task-number: QTBUG-41164 Change-Id: I959d154da88f7ccc8159ec7e810ffdba0e7f50ea Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | Windows: Move dock windows automatically when screen is disconnected.Friedemann Kleint2014-09-051-1/+25
| | | | | | | | | | | | | | | | | | Windows does not automatically move WS_EX_TOOLWINDOW type windows. Task-number: QTBUG-39320 Change-Id: If9804f32beb534a27ba649abf5eaceb686af8f50 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | windows: Fix dynamic opengl buildLaszlo Agocs2014-09-032-6/+6
| | | | | | | | | | | | | | Cannot call WGL or EGL functions directly anymore. Change-Id: I0d5c6217679d87a2092c945a9b841dfd7b6c299a Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | Enable QT_ANGLE_PLATFORM selection in dynamic buildsLaszlo Agocs2014-09-031-1/+1
| | | | | | | | | | Change-Id: I8ebe62ec1e024e8a0a0f9e8aeac6fb81b1095e72 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | windows: Allow selection of ANGLE's rendererAndrew Knight2014-09-022-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | The default behavior of ANGLE is to use D3D11 before falling back to D3D9. This change improves flexibility the platform plugin to explicitly create a D3D11, D3D9, or D3D11 software (WARP) context by setting the QT_ANGLE_PLATFORM to "d3d11", "d3d9", or "warp", respectively. Task-number: QTBUG-41031 Change-Id: Ie1d399c1cb0e360e5b3a6d9f2a4b28745d86cc71 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Prevent current context from becoming inconsistent upon create()Laszlo Agocs2014-09-012-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Platform plugins have a tendency to make the newly created native context current with a temporary surface. This is usually needed to query some information related to the new context. Afterwards most of them just reset to having nothing current. This has two issues: It unexpectedly changes the current context/surface. A call into QOpenGLContext::create() does not imply that the current context will get changed. This is the minor issue and we could probably live with it (at least if it had been documented). However, the real issue is that QOpenGLContext::currentContext() will become inconsistent: it will still report whatever was current before the create() even though on the EGL/WGL/GLX level that's not the case anymore. To prevent all this confusion the platform plugins can easily be changed to restore whatever context/surface was current before they altered it. Change-Id: I6a5b4597c86571327524ddb13e0d02538593cc7b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Windows QPA plugin: Streamline code to find window at a position.Friedemann Kleint2014-09-016-49/+10
| | | | | | | | | | | | | | Task-number: QTBUG-40815 Change-Id: I0efcc2cfcafdee04bda20afa88a7f6aaabd57210 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Remove superfluous "break" in QWindowsNativeFileDialogBase::setLabelText()Maks Naumov2014-09-011-1/+0
| | | | | | | | | | Change-Id: I889dfa00daf60e393e3d95ee2d0ecb73f7871e4c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Fix memset() for "alphaValues" in supportsSubPixelPositions()Maks Naumov2014-08-311-1/+1
| | | | | | | | | | | | | | Fix reversed memset arguments. Change-Id: I1601fecb24068fa601e919a9fd8bb1e991ef70ec Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Windows: Fix QPlatformCursor::pos()/setPos() for DPR scaling.Friedemann Kleint2014-08-292-2/+9
| | | | | | | | | | | | Task-number: QTBUG-38858 Change-Id: Ibb0355ae19a382e4eb3805fe6d6afab2a2a603e6 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Windows: Detect Surface Pro 2 tablets.Friedemann Kleint2014-08-281-0/+2
| | | | | | | | | | | | Task-number: QTBUG-39571 Change-Id: I9cb7fe2dee9a0701912ea639cdcc66a198e5b65c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Windows: Prevent hidden transient children from being re-shown by Windows.Friedemann Kleint2014-08-282-3/+12
| | | | | | | | | | | | | | | | | | Bring back code from Qt 4 to handle WM_SHOWWINDOW / SW_PARENTOPENING correctly. Task-number: QTBUG-40696 Change-Id: If018bf90573f495dbe32d0c46f522ccde0691ebb Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | QWindowsNativeInterface: don't allocate memory just to compare stringsMarc Mutz2014-08-281-3/+3
| | | | | | | | | | Change-Id: I691d2629a78aaaee3d1741b9ab4c55b16c95bde9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Add devicePixelRatio support to the Windows QPA plugin.Friedemann Kleint2014-08-2517-120/+420
| | | | | | | | | | | | | | | | | | | | | | This adds support for the environment variable QT_DEVICE_PIXEL_RATIO for the Windows platform plugin. Task-number: QTBUG-38993 Task-number: QTBUG-38858 Change-Id: I6831eb6d3a09a80be7bbef46395e91531b61cc50 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | standardize QPA input event logging category hierarchyShawn Rutledge2014-08-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | If qtlogging.ini contains a rule qt.qpa.input*=true then all available input event logging will be enabled on any platform. There are more specific categories for touch, tablet, gestures, input methods etc. on some platforms. Change-Id: I8754ce23df8f0b750a4b7dfcf3afe5bab800ead8 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Giuseppe D'Angelo2014-08-191-0/+2
|\ \