diff options
Diffstat (limited to 'src/ui/frames.c')
-rw-r--r-- | src/ui/frames.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/ui/frames.c b/src/ui/frames.c index 5d76f42a..1adb3ccf 100644 --- a/src/ui/frames.c +++ b/src/ui/frames.c @@ -668,10 +668,9 @@ meta_frames_lookup_window (MetaFrames *frames, } void -meta_frames_get_geometry (MetaFrames *frames, - Window xwindow, - int *top_height, int *bottom_height, - int *left_width, int *right_width) +meta_frames_get_borders (MetaFrames *frames, + Window xwindow, + MetaFrameBorders *borders) { MetaFrameFlags flags; MetaUIFrame *frame; @@ -702,14 +701,13 @@ meta_frames_get_geometry (MetaFrames *frames, type, frame->text_height, flags, - top_height, bottom_height, - left_width, right_width); + borders); /* Scale frame geometry to ensure proper frame position */ - *top_height *= scale; - *bottom_height *= scale; - *left_width *= scale; - *right_width *= scale; + borders->visible.top *= scale; + borders->visible.bottom *= scale; + borders->visible.left *= scale; + borders->visible.right *= scale; } #ifdef HAVE_SHAPE @@ -2060,6 +2058,7 @@ populate_cache (MetaFrames *frames, MetaUIFrame *frame) { int top, bottom, left, right; + MetaFrameBorders borders; int width, height; int frame_width, frame_height, screen_width, screen_height; gint scale; @@ -2090,7 +2089,12 @@ populate_cache (MetaFrames *frames, frame_type, frame->text_height, frame_flags, - &top, &bottom, &left, &right); + &borders); + + top = borders.visible.top; + left = borders.visible.left; + right = borders.visible.right; + bottom = borders.visible.bottom; pixels = get_cache (frames, frame); scale = gdk_window_get_scale_factor (frame->window); @@ -2195,6 +2199,7 @@ subtract_client_area (cairo_region_t *region, MetaUIFrame *frame) GdkRectangle area; MetaFrameFlags flags; MetaFrameType type; + MetaFrameBorders borders; cairo_region_t *tmp_region; Display *display; gint scale; @@ -2210,13 +2215,13 @@ subtract_client_area (cairo_region_t *region, MetaUIFrame *frame) META_CORE_GET_END); meta_theme_get_frame_borders (meta_theme_get_current (), - type, frame->text_height, flags, - &area.x, NULL, &area.y, NULL); + type, frame->text_height, flags, + &borders); area.width /= scale; area.height /= scale; - area.x /= scale; - area.y /= scale; + area.x = borders.visible.left / scale; + area.y = borders.visible.top / scale; tmp_region = cairo_region_create_rectangle (&area); cairo_region_subtract (region, tmp_region); |