MetaFrames: factor out MetaUIFrame accessors for borders, corner radiuses

This makes it a bit simpler for other functions on a MetaUIFrame to
get this information.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697758
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
This commit is contained in:
Simon McVittie 2013-04-11 16:55:41 +01:00
parent c7dc6928a9
commit c7c1225393

View File

@ -664,20 +664,14 @@ meta_frames_lookup_window (MetaFrames *frames,
return frame;
}
void
meta_frames_get_borders (MetaFrames *frames,
Window xwindow,
static void
meta_ui_frame_get_borders (MetaFrames *frames,
MetaUIFrame *frame,
MetaFrameBorders *borders)
{
MetaFrameFlags flags;
MetaUIFrame *frame;
MetaFrameType type;
frame = meta_frames_lookup_window (frames, xwindow);
if (frame == NULL)
meta_bug ("No such frame 0x%lx\n", xwindow);
meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow,
META_CORE_GET_FRAME_FLAGS, &flags,
META_CORE_GET_FRAME_TYPE, &type,
@ -700,18 +694,30 @@ meta_frames_get_borders (MetaFrames *frames,
}
void
meta_frames_get_corner_radiuses (MetaFrames *frames,
meta_frames_get_borders (MetaFrames *frames,
Window xwindow,
MetaFrameBorders *borders)
{
MetaUIFrame *frame;
frame = meta_frames_lookup_window (frames, xwindow);
if (frame == NULL)
meta_bug ("No such frame 0x%lx\n", xwindow);
meta_ui_frame_get_borders (frames, frame, borders);
}
static void
meta_ui_frame_get_corner_radiuses (MetaFrames *frames,
MetaUIFrame *frame,
float *top_left,
float *top_right,
float *bottom_left,
float *bottom_right)
{
MetaUIFrame *frame;
MetaFrameGeometry fgeom;
frame = meta_frames_lookup_window (frames, xwindow);
meta_frames_calc_geometry (frames, frame, &fgeom);
/* For compatibility with the code in get_visible_rect(), there's
@ -733,6 +739,22 @@ meta_frames_get_corner_radiuses (MetaFrames *frames,
*bottom_right = fgeom.bottom_right_corner_rounded_radius + sqrt(fgeom.bottom_right_corner_rounded_radius);
}
void
meta_frames_get_corner_radiuses (MetaFrames *frames,
Window xwindow,
float *top_left,
float *top_right,
float *bottom_left,
float *bottom_right)
{
MetaUIFrame *frame;
frame = meta_frames_lookup_window (frames, xwindow);
meta_ui_frame_get_corner_radiuses (frames, frame, top_left, top_right,
bottom_left, bottom_right);
}
void
meta_frames_reset_bg (MetaFrames *frames,
Window xwindow)