diff options
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/preview-widget.c | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c index 993490135..a411e8a7f 100644 --- a/src/ui/preview-widget.c +++ b/src/ui/preview-widget.c @@ -465,117 +465,3 @@ meta_preview_get_mini_icon (void) return default_icon; } - -cairo_region_t * -meta_preview_get_clip_region (MetaPreview *preview, gint new_window_width, gint new_window_height) -{ - cairo_rectangle_int_t xrect; - cairo_region_t *corners_xregion, *window_xregion; - gint flags; - MetaFrameLayout *fgeom; - MetaFrameStyle *frame_style; - - g_return_val_if_fail (META_IS_PREVIEW (preview), NULL); - - flags = (META_PREVIEW (preview)->flags); - - window_xregion = cairo_region_create (); - - xrect.x = 0; - xrect.y = 0; - xrect.width = new_window_width; - xrect.height = new_window_height; - - cairo_region_union_rectangle (window_xregion, &xrect); - - if (preview->theme == NULL) - return window_xregion; - - /* Otherwise, we do have a theme, so calculate the corners */ - frame_style = meta_theme_get_frame_style (preview->theme, - META_FRAME_TYPE_NORMAL, flags); - - fgeom = frame_style->layout; - - corners_xregion = cairo_region_create (); - - if (fgeom->top_left_corner_rounded_radius != 0) - { - const int corner = fgeom->top_left_corner_rounded_radius; - const float radius = sqrt(corner) + corner; - int i; - - for (i=0; i<corner; i++) - { - - const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5)))); - xrect.x = 0; - xrect.y = i; - xrect.width = width; - xrect.height = 1; - - cairo_region_union_rectangle (corners_xregion, &xrect); - } - } - - if (fgeom->top_right_corner_rounded_radius != 0) - { - const int corner = fgeom->top_right_corner_rounded_radius; - const float radius = sqrt(corner) + corner; - int i; - - for (i=0; i<corner; i++) - { - const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5)))); - xrect.x = new_window_width - width; - xrect.y = i; - xrect.width = width; - xrect.height = 1; - - cairo_region_union_rectangle (corners_xregion, &xrect); - } - } - - if (fgeom->bottom_left_corner_rounded_radius != 0) - { - const int corner = fgeom->bottom_left_corner_rounded_radius; - const float radius = sqrt(corner) + corner; - int i; - - for (i=0; i<corner; i++) - { - const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5)))); - xrect.x = 0; - xrect.y = new_window_height - i - 1; - xrect.width = width; - xrect.height = 1; - - cairo_region_union_rectangle (corners_xregion, &xrect); - } - } - - if (fgeom->bottom_right_corner_rounded_radius != 0) - { - const int corner = fgeom->bottom_right_corner_rounded_radius; - const float radius = sqrt(corner) + corner; - int i; - - for (i=0; i<corner; i++) - { - const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5)))); - xrect.x = new_window_width - width; - xrect.y = new_window_height - i - 1; - xrect.width = width; - xrect.height = 1; - - cairo_region_union_rectangle (corners_xregion, &xrect); - } - } - - cairo_region_subtract (window_xregion, corners_xregion); - cairo_region_destroy (corners_xregion); - - return window_xregion; -} - - |