[gtk/wip/chergert/quartz4u] set shadow width and opaque region



commit e452f6209fdb7d07ba749d2f4465939ff63963d0
Author: Christian Hergert <chergert redhat com>
Date:   Thu Apr 30 13:15:20 2020 -0700

    set shadow width and opaque region

 gdk/macos/gdkmacossurface.c | 38 +++++++++++++++++++++++++++++++++++---
 1 file changed, 35 insertions(+), 3 deletions(-)
---
diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c
index 4e8c7cc59f..70d5bceff5 100644
--- a/gdk/macos/gdkmacossurface.c
+++ b/gdk/macos/gdkmacossurface.c
@@ -81,6 +81,15 @@ gdk_macos_surface_set_input_region (GdkSurface     *surface,
   /* TODO: */
 }
 
+static void
+gdk_macos_surface_set_opaque_region (GdkSurface     *surface,
+                                     cairo_region_t *region)
+{
+  g_assert (GDK_IS_MACOS_SURFACE (surface));
+
+  /* TODO: */
+}
+
 static void
 gdk_macos_surface_hide (GdkSurface *surface)
 {
@@ -103,6 +112,27 @@ gdk_macos_surface_get_scale_factor (GdkSurface *surface)
   return [priv->window backingScaleFactor];
 }
 
+static void
+gdk_macos_surface_set_shadow_width (GdkSurface *surface,
+                                    int         left,
+                                    int         right,
+                                    int         top,
+                                    int         bottom)
+{
+  GdkMacosSurface *self = (GdkMacosSurface *)surface;
+  GdkMacosSurfacePrivate *priv = gdk_macos_surface_get_instance_private (self);
+
+  g_assert (GDK_IS_MACOS_SURFACE (self));
+
+  priv->shadow_top = top;
+  priv->shadow_right = right;
+  priv->shadow_bottom = bottom;
+  priv->shadow_left = left;
+
+  if (top || right || bottom || left)
+    [priv->window setHasShadow:NO];
+}
+
 static void
 gdk_macos_surface_begin_resize_drag (GdkSurface     *surface,
                                      GdkSurfaceEdge  edge,
@@ -211,12 +241,14 @@ gdk_macos_surface_class_init (GdkMacosSurfaceClass *klass)
   object_class->get_property = gdk_macos_surface_get_property;
   object_class->set_property = gdk_macos_surface_set_property;
 
-  surface_class->destroy = gdk_macos_surface_destroy;
-  surface_class->begin_resize_drag = gdk_macos_surface_begin_resize_drag;
   surface_class->begin_move_drag = gdk_macos_surface_begin_move_drag;
+  surface_class->begin_resize_drag = gdk_macos_surface_begin_resize_drag;
+  surface_class->destroy = gdk_macos_surface_destroy;
+  surface_class->get_scale_factor = gdk_macos_surface_get_scale_factor;
   surface_class->hide = gdk_macos_surface_hide;
   surface_class->set_input_region = gdk_macos_surface_set_input_region;
-  surface_class->get_scale_factor = gdk_macos_surface_get_scale_factor;
+  surface_class->set_opaque_region = gdk_macos_surface_set_opaque_region;
+  surface_class->set_shadow_width = gdk_macos_surface_set_shadow_width;
 
   properties [PROP_NATIVE] =
     g_param_spec_pointer ("native",


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