summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2018-02-05 14:16:44 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2018-02-22 19:08:11 +0000
commit9c2783c6c7bfcc7427c4c7b80210895a3298f173 (patch)
treece273a7be125b8374a44be32acccc6a5f046b184
parenta924b4d58f66da44cd9a5ed8896f80a5121bac4a (diff)
QGtk3Menu: take GTK's scale factor into account
GTK's scale factor, which can differ from Qt's scale factor, must be taken into account in the native GTK menu positioning function qt_gtk_menu_position_func(). Task-number: QTBUG-55251 Change-Id: I4ad460baab54facd25564ad85ded383c9321d597 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
-rw-r--r--src/plugins/platformthemes/gtk3/qgtk3menu.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/plugins/platformthemes/gtk3/qgtk3menu.cpp b/src/plugins/platformthemes/gtk3/qgtk3menu.cpp
index ec4ff68e8d..1bbd463119 100644
--- a/src/plugins/platformthemes/gtk3/qgtk3menu.cpp
+++ b/src/plugins/platformthemes/gtk3/qgtk3menu.cpp
@@ -411,6 +411,9 @@ static void qt_gtk_menu_position_func(GtkMenu *, gint *x, gint *y, gboolean *pus
{
QGtk3Menu *menu = static_cast<QGtk3Menu *>(data);
QPoint targetPos = menu->targetPos();
+#if GTK_CHECK_VERSION(3, 10, 0)
+ targetPos /= gtk_widget_get_scale_factor(menu->handle());
+#endif
*x = targetPos.x();
*y = targetPos.y();
*push_in = true;