[gimp] modules: undeprecate GimpColorWheel



commit 29fbed16540ac0da2e432237143675944bd7bb83
Author: Michael Natterer <mitch gimp org>
Date:   Wed May 30 12:23:43 2018 +0200

    modules: undeprecate GimpColorWheel

 modules/gimpcolorwheel.c | 41 +++++++++++++++++++++++++++--------------
 1 file changed, 27 insertions(+), 14 deletions(-)
---
diff --git a/modules/gimpcolorwheel.c b/modules/gimpcolorwheel.c
index 48f3516fca..663404b3d7 100644
--- a/modules/gimpcolorwheel.c
+++ b/modules/gimpcolorwheel.c
@@ -668,23 +668,28 @@ compute_v (GimpColorWheel *wheel,
   return angle / (2.0 * G_PI);
 }
 
-static void
+static gboolean
 set_cross_grab (GimpColorWheel *wheel,
-                guint32         time)
+                GdkEvent       *event)
 {
   GimpColorWheelPrivate *priv = wheel->priv;
+  GdkDisplay            *display;
+  GdkSeat               *seat;
   GdkCursor             *cursor;
+  gboolean               success;
+
+  display = gtk_widget_get_display (GTK_WIDGET (wheel));
+  seat = gdk_display_get_default_seat (display);
+
+  cursor = gdk_cursor_new_for_display (display, GDK_CROSSHAIR);
 
-  cursor =
-    gdk_cursor_new_for_display (gtk_widget_get_display (GTK_WIDGET (wheel)),
-                                GDK_CROSSHAIR);
+  success = (gdk_seat_grab (seat, priv->window,
+                            GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE,
+                            cursor, event, NULL, NULL) == GDK_GRAB_SUCCESS);
 
-  gdk_pointer_grab (priv->window, FALSE,
-                    GDK_POINTER_MOTION_MASK      |
-                    GDK_POINTER_MOTION_HINT_MASK |
-                    GDK_BUTTON_RELEASE_MASK,
-                    NULL, cursor, time);
   g_object_unref (cursor);
+
+  return success;
 }
 
 static gboolean
@@ -715,8 +720,10 @@ gimp_color_wheel_button_press (GtkWidget      *widget,
 
   if (is_in_ring (wheel, x, y))
     {
+      if (! set_cross_grab (wheel, (GdkEvent *) event))
+        return TRUE;
+
       priv->mode = DRAG_H;
-      set_cross_grab (wheel, event->time);
 
       gimp_color_wheel_set_color (wheel,
                                   compute_v (wheel, x, y),
@@ -733,8 +740,10 @@ gimp_color_wheel_button_press (GtkWidget      *widget,
     {
       gdouble s, v;
 
+      if (! set_cross_grab (wheel, (GdkEvent *) event))
+        return TRUE;
+
       priv->mode = DRAG_SV;
-      set_cross_grab (wheel, event->time);
 
       compute_sv (wheel, x, y, &s, &v);
       gimp_color_wheel_set_color (wheel, priv->h, s, v);
@@ -754,6 +763,8 @@ gimp_color_wheel_button_release (GtkWidget      *widget,
 {
   GimpColorWheel        *wheel = GIMP_COLOR_WHEEL (widget);
   GimpColorWheelPrivate *priv  = wheel->priv;
+  GdkDisplay            *display;
+  GdkSeat               *seat;
   DragMode               mode;
   gdouble                x, y;
 
@@ -785,8 +796,10 @@ gimp_color_wheel_button_release (GtkWidget      *widget,
   else
     g_assert_not_reached ();
 
-  gdk_display_pointer_ungrab (gdk_window_get_display (event->window),
-                              event->time);
+  display = gtk_widget_get_display (GTK_WIDGET (wheel));
+  seat = gdk_display_get_default_seat (display);
+
+  gdk_seat_ungrab (seat);
 
   return TRUE;
 }


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