diff options
author | Liang Qi <liang.qi@qt.io> | 2017-08-15 16:30:10 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-08-15 16:31:48 +0200 |
commit | 106d3b9bf93325ea93c678270290b2c3dda9b764 (patch) | |
tree | 26c56932d60964c83e81d9c33d6f37ebc36d6c56 /src/plugins/platformthemes/gtk3 | |
parent | 79f679da9483c12979500dd48bc096d33af9ca6f (diff) | |
parent | 8bebded9ab02b8eec67c44bfddf802d6bf9cda3c (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/plugins/platforms/cocoa/qcocoamenu.h
src/plugins/platforms/cocoa/qcocoamenu.mm
src/plugins/platforms/cocoa/qcocoawindow.mm
src/widgets/styles/qstylehelper_p.h
Change-Id: I54247c98dd79d2b3826fc062b8b11048c9c7d9bb
Diffstat (limited to 'src/plugins/platformthemes/gtk3')
-rw-r--r-- | src/plugins/platformthemes/gtk3/qgtk3theme.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/platformthemes/gtk3/qgtk3theme.cpp b/src/plugins/platformthemes/gtk3/qgtk3theme.cpp index 7e64906476..6447776f25 100644 --- a/src/plugins/platformthemes/gtk3/qgtk3theme.cpp +++ b/src/plugins/platformthemes/gtk3/qgtk3theme.cpp @@ -102,6 +102,15 @@ QGtk3Theme::QGtk3Theme() g_log_set_handler("Gtk", G_LOG_LEVEL_MESSAGE, gtkMessageHandler, NULL); } +static inline QVariant gtkGetLongPressTime() +{ + const char *gtk_long_press_time = "gtk-long-press-time"; + static bool found = g_object_class_find_property(G_OBJECT_GET_CLASS(gtk_settings_get_default()), gtk_long_press_time); + if (!found) + return QVariant(); + return QVariant(gtkSetting<guint>(gtk_long_press_time)); // Since 3.14, apparently we support >= 3.6 +} + QVariant QGtk3Theme::themeHint(QPlatformTheme::ThemeHint hint) const { switch (hint) { @@ -111,8 +120,12 @@ QVariant QGtk3Theme::themeHint(QPlatformTheme::ThemeHint hint) const return QVariant(gtkSetting<gint>("gtk-double-click-distance")); case QPlatformTheme::MouseDoubleClickInterval: return QVariant(gtkSetting<gint>("gtk-double-click-time")); - case QPlatformTheme::MousePressAndHoldInterval: - return QVariant(gtkSetting<guint>("gtk-long-press-time")); + case QPlatformTheme::MousePressAndHoldInterval: { + QVariant v = gtkGetLongPressTime(); + if (!v.isValid()) + v = QGnomeTheme::themeHint(hint); + return v; + } case QPlatformTheme::PasswordMaskDelay: return QVariant(gtkSetting<guint>("gtk-entry-password-hint-timeout")); case QPlatformTheme::StartDragDistance: |