mtk: Move Rectangle.area from Meta

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128>
This commit is contained in:
Bilal Elmoussaoui 2023-07-20 00:44:52 +02:00
parent af7c7befd8
commit db77759938
6 changed files with 26 additions and 21 deletions

View File

@ -63,6 +63,19 @@ mtk_rectangle_new (int x,
return rect;
}
/**
* mtk_rectangle_area:
* @rect: A rectangle
*
* Returns: The area of the rectangle
*/
int
mtk_rectangle_area (const MtkRectangle *rect)
{
g_return_val_if_fail (rect != NULL, 0);
return rect->width * rect->height;
}
/**
* mtk_rectangle_equal:
* @src1: The first rectangle

View File

@ -79,6 +79,10 @@ MtkRectangle * mtk_rectangle_new (int x,
int width,
int height);
/* Basic comparison functions */
MTK_EXPORT
int mtk_rectangle_area (const MtkRectangle *rect);
MTK_EXPORT
gboolean mtk_rectangle_equal (const MtkRectangle *src1,
const MtkRectangle *src2);

View File

@ -3374,7 +3374,7 @@ meta_monitor_manager_get_logical_monitor_from_rect (MetaMonitorManager *manager,
&intersection))
continue;
intersection_area = meta_rectangle_area (&intersection);
intersection_area = mtk_rectangle_area (&intersection);
if (intersection_area > best_logical_monitor_area)
{

View File

@ -133,14 +133,6 @@ meta_rectangle_edge_list_to_string (GList *edge_list,
return output;
}
int
meta_rectangle_area (const MetaRectangle *rect)
{
g_return_val_if_fail (rect != NULL, 0);
return rect->width * rect->height;
}
gboolean
meta_rectangle_overlap (const MetaRectangle *rect1,
const MetaRectangle *rect2)
@ -402,8 +394,8 @@ compare_rect_areas (gconstpointer a, gconstpointer b)
const MetaRectangle *a_rect = (gconstpointer) a;
const MetaRectangle *b_rect = (gconstpointer) b;
int a_area = meta_rectangle_area (a_rect);
int b_area = meta_rectangle_area (b_rect);
int a_area = mtk_rectangle_area (a_rect);
int b_area = mtk_rectangle_area (b_rect);
return b_area - a_area; /* positive ret value denotes b > a, ... */
}
@ -890,7 +882,7 @@ meta_rectangle_clip_to_region (const GList *spanning_rects,
/* Determine maximal overlap amount */
mtk_rectangle_intersect (rect, compare_rect, &overlap);
maximal_overlap_amount_for_compare = meta_rectangle_area (&overlap);
maximal_overlap_amount_for_compare = mtk_rectangle_area (&overlap);
/* See if this is the best rect so far */
if (maximal_overlap_amount_for_compare > best_overlap)

View File

@ -101,10 +101,6 @@ MetaRectangle *meta_rectangle_copy (const MetaRectangle *rect);
META_EXPORT
void meta_rectangle_free (MetaRectangle *rect);
/* Basic comparison functions */
META_EXPORT
int meta_rectangle_area (const MetaRectangle *rect);
/* overlap is similar to intersect but doesn't provide location of
* intersection information.
*/

View File

@ -110,11 +110,11 @@ test_area (void)
for (i = 0; i < NUM_RANDOM_RUNS; i++)
{
get_random_rect (&temp);
g_assert (meta_rectangle_area (&temp) == temp.width * temp.height);
g_assert (mtk_rectangle_area (&temp) == temp.width * temp.height);
}
temp = MTK_RECTANGLE_INIT (0, 0, 5, 7);
g_assert (meta_rectangle_area (&temp) == 35);
g_assert (mtk_rectangle_area (&temp) == 35);
}
static void
@ -131,13 +131,13 @@ test_intersect (void)
mtk_rectangle_intersect (&a, &b, &temp);
temp2 = MTK_RECTANGLE_INIT (100, 200, 10, 2);
g_assert (mtk_rectangle_equal (&temp, &temp2));
g_assert (meta_rectangle_area (&temp) == 20);
g_assert (mtk_rectangle_area (&temp) == 20);
mtk_rectangle_intersect (&a, &c, &temp);
g_assert (meta_rectangle_area (&temp) == 0);
g_assert (mtk_rectangle_area (&temp) == 0);
mtk_rectangle_intersect (&a, &d, &temp);
g_assert (meta_rectangle_area (&temp) == 0);
g_assert (mtk_rectangle_area (&temp) == 0);
mtk_rectangle_intersect (&b, &d, &b);
g_assert (mtk_rectangle_equal (&b, &b_intersect_d));