[gtk/fix-cell-editing: 1/2] Fix cell editing



commit d13a3c754015b877acc42cd4d96bc4fed0e0d8e2
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jun 7 08:43:36 2020 -0400

    Fix cell editing
    
    When translating coordinates from an event, we need to
    take the surface transform into account. This makes
    double-clicking on editable cells in treeviews work
    again.
    
    Fixes: #2831

 gtk/gtkcellarea.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkcellarea.c b/gtk/gtkcellarea.c
index 1a6c29f636..04000f2c91 100644
--- a/gtk/gtkcellarea.c
+++ b/gtk/gtkcellarea.c
@@ -353,6 +353,7 @@
 #include "gtkprivate.h"
 #include "gtksnapshot.h"
 #include "gtkstylecontext.h"
+#include "gtknative.h"
 
 #include <gobject/gvaluecollector.h>
 
@@ -1043,6 +1044,7 @@ gtk_cell_area_real_event (GtkCellArea          *area,
           GtkCellRenderer *focus_renderer;
           GdkRectangle     alloc_area;
           double event_x, event_y;
+          double nx, ny;
           double x, y;
           GtkNative *native;
 
@@ -1051,7 +1053,8 @@ gtk_cell_area_real_event (GtkCellArea          *area,
           gdk_event_get_position (event, &event_x, &event_y);
 
           native = gtk_widget_get_native (widget);
-          gtk_widget_translate_coordinates (GTK_WIDGET (native), widget, event_x, event_y, &x, &y);
+          gtk_native_get_surface_transform (native, &nx, &ny);
+          gtk_widget_translate_coordinates (GTK_WIDGET (native), widget, event_x - nx, event_y - ny, &x, &y);
           event_x = x;
           event_y = y;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]