diff options
author | Timm Bäder <mail@baedert.org> | 2020-01-24 06:18:03 +0100 |
---|---|---|
committer | Timm Bäder <mail@baedert.org> | 2020-01-24 06:19:16 +0100 |
commit | 8e41fa2778900422d1d094bbc5bf659ac2409bf3 (patch) | |
tree | 6a75199bfc567be54e1ee158a7a5138596855def | |
parent | f80a341b4f31dd6080ea9b034d62d6a091267e15 (diff) | |
download | gtk+-8e41fa2778900422d1d094bbc5bf659ac2409bf3.tar.gz |
widget: Use gsk_transform_transform_point() in gtk_widget_pick()
This also covers the 2D_AFFINE case.
-rw-r--r-- | gtk/gtkwidget.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index f3224d2cb6..283c5163e3 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -10502,12 +10502,15 @@ gtk_widget_do_pick (GtkWidget *widget, { transform = NULL; } - if (gsk_transform_get_category (transform) >= GSK_TRANSFORM_CATEGORY_2D_TRANSLATE) + + if (gsk_transform_get_category (transform) >= GSK_TRANSFORM_CATEGORY_2D_AFFINE) { - float dx, dy; + graphene_point_t transformed_p; - gsk_transform_to_translate (transform, &dx, &dy); - graphene_point3d_init (&res, x + dx, y + dy, 0.); + gsk_transform_transform_point (transform, + &(graphene_point_t) { x, y }, + &transformed_p); + graphene_point3d_init (&res, transformed_p.x, transformed_p.y, 0.); } else { |