From cb9842e4a4740df9f5e0fbcb084c6260cfee41a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 28 May 2020 14:39:11 +0200 Subject: [PATCH] Use new clutter_actor_get_resource_scale() API Update the existing users of clutter_actor_get_resource_scale() to the new API which doesn't return a boolean value. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1287 --- src/shell-screenshot.c | 3 +- src/st/st-drawing-area.c | 24 +++++----------- src/st/st-icon.c | 3 +- src/st/st-label.c | 62 +++++++++++++++++++--------------------- src/st/st-private.c | 3 +- src/st/st-widget.c | 9 +++--- 6 files changed, 45 insertions(+), 59 deletions(-) diff --git a/src/shell-screenshot.c b/src/shell-screenshot.c index e60d5891b..36ca2fb24 100644 --- a/src/shell-screenshot.c +++ b/src/shell-screenshot.c @@ -393,8 +393,7 @@ grab_window_screenshot (ClutterActor *stage, if (meta_window_get_client_type (window) == META_WINDOW_CLIENT_TYPE_WAYLAND) { float resource_scale; - if (!clutter_actor_get_resource_scale (window_actor, &resource_scale)) - resource_scale = 1.0f; + resource_scale = clutter_actor_get_resource_scale (window_actor); cairo_surface_set_device_scale (priv->image, resource_scale, resource_scale); } diff --git a/src/st/st-drawing-area.c b/src/st/st-drawing-area.c index a9daca562..44d7c0add 100644 --- a/src/st/st-drawing-area.c +++ b/src/st/st-drawing-area.c @@ -85,12 +85,7 @@ st_drawing_area_allocate (ClutterActor *self, int width, height; float resource_scale; - if (!st_widget_get_resource_scale (ST_WIDGET (self), &resource_scale)) - { - ClutterActorBox empty = CLUTTER_ACTOR_BOX_INIT_ZERO; - clutter_actor_set_allocation (self, &empty); - return; - } + resource_scale = clutter_actor_get_resource_scale (self); clutter_actor_set_allocation (self, box); st_theme_node_get_content_box (theme_node, box, &content_box); @@ -116,8 +111,8 @@ st_drawing_area_resource_scale_changed (StWidget *self) float resource_scale; ClutterContent *content = clutter_actor_get_content (CLUTTER_ACTOR (self)); - if (st_widget_get_resource_scale (ST_WIDGET (self), &resource_scale)) - clutter_canvas_set_scale_factor (CLUTTER_CANVAS (content), resource_scale); + resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (self)); + clutter_canvas_set_scale_factor (CLUTTER_CANVAS (content), resource_scale); } static void @@ -215,15 +210,10 @@ st_drawing_area_get_surface_size (StDrawingArea *area, content = clutter_actor_get_content (CLUTTER_ACTOR (area)); clutter_content_get_preferred_size (content, &w, &h); - if (st_widget_get_resource_scale (ST_WIDGET (area), &resource_scale)) - { - w /= resource_scale; - h /= resource_scale; - } - else - { - w = h = 0.0f; - } + resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (area)); + + w /= resource_scale; + h /= resource_scale; if (width) *width = ceilf (w); diff --git a/src/st/st-icon.c b/src/st/st-icon.c index 38d58205d..3657ccc2c 100644 --- a/src/st/st-icon.c +++ b/src/st/st-icon.c @@ -425,8 +425,7 @@ st_icon_update (StIcon *icon) return; } - if (!st_widget_get_resource_scale (ST_WIDGET (icon), &resource_scale)) - return; + resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (icon)); theme_node = st_widget_peek_theme_node (ST_WIDGET (icon)); if (theme_node == NULL) diff --git a/src/st/st-label.c b/src/st/st-label.c index 7415dec29..4d8271d69 100644 --- a/src/st/st-label.c +++ b/src/st/st-label.c @@ -201,44 +201,42 @@ st_label_paint (ClutterActor *actor, if (shadow_spec) { + ClutterActorBox allocation; + float width, height; float resource_scale; - if (clutter_actor_get_resource_scale (priv->label, &resource_scale)) + clutter_actor_get_allocation_box (priv->label, &allocation); + clutter_actor_box_get_size (&allocation, &width, &height); + + resource_scale = clutter_actor_get_resource_scale (priv->label); + + width *= resource_scale; + height *= resource_scale; + + if (priv->text_shadow_pipeline == NULL || + width != priv->shadow_width || + height != priv->shadow_height) { - ClutterActorBox allocation; - float width, height; + g_clear_pointer (&priv->text_shadow_pipeline, cogl_object_unref); - clutter_actor_get_allocation_box (priv->label, &allocation); - clutter_actor_box_get_size (&allocation, &width, &height); + priv->shadow_width = width; + priv->shadow_height = height; + priv->text_shadow_pipeline = + _st_create_shadow_pipeline_from_actor (shadow_spec, + priv->label); + } - width *= resource_scale; - height *= resource_scale; + if (priv->text_shadow_pipeline != NULL) + { + CoglFramebuffer *framebuffer; - if (priv->text_shadow_pipeline == NULL || - width != priv->shadow_width || - height != priv->shadow_height) - { - g_clear_pointer (&priv->text_shadow_pipeline, cogl_object_unref); - - priv->shadow_width = width; - priv->shadow_height = height; - priv->text_shadow_pipeline = - _st_create_shadow_pipeline_from_actor (shadow_spec, - priv->label); - } - - if (priv->text_shadow_pipeline != NULL) - { - CoglFramebuffer *framebuffer; - - framebuffer = - clutter_paint_context_get_framebuffer (paint_context); - _st_paint_shadow_with_opacity (shadow_spec, - framebuffer, - priv->text_shadow_pipeline, - &allocation, - clutter_actor_get_paint_opacity (priv->label)); - } + framebuffer = + clutter_paint_context_get_framebuffer (paint_context); + _st_paint_shadow_with_opacity (shadow_spec, + framebuffer, + priv->text_shadow_pipeline, + &allocation, + clutter_actor_get_paint_opacity (priv->label)); } } diff --git a/src/st/st-private.c b/src/st/st-private.c index 16a5e15dd..a491c1953 100644 --- a/src/st/st-private.c +++ b/src/st/st-private.c @@ -461,8 +461,7 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec, if (width == 0 || height == 0) return NULL; - if (!clutter_actor_get_resource_scale (actor, &resource_scale)) - return NULL; + resource_scale = clutter_actor_get_resource_scale (actor); width = ceilf (width * resource_scale); height = ceilf (height * resource_scale); diff --git a/src/st/st-widget.c b/src/st/st-widget.c index 9efffbd76..3d732a74a 100644 --- a/src/st/st-widget.c +++ b/src/st/st-widget.c @@ -412,8 +412,7 @@ st_widget_paint_background (StWidget *widget, float resource_scale; guint8 opacity; - if (!st_widget_get_resource_scale (widget, &resource_scale)) - return; + resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (widget)); framebuffer = clutter_paint_context_get_framebuffer (paint_context); theme_node = st_widget_get_theme_node (widget); @@ -1413,8 +1412,10 @@ gboolean st_widget_get_resource_scale (StWidget *widget, float *resource_scale) { - return clutter_actor_get_resource_scale (CLUTTER_ACTOR (widget), - resource_scale); + if (resource_scale) + *resource_scale = clutter_actor_get_resource_scale (CLUTTER_ACTOR (widget)); + + return TRUE; } static void