mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 02:50:41 -05:00
boxes: Add helper to scale rectangles by a double
And change the similar region scaling helper to use this one. https://gitlab.gnome.org/GNOME/mutter/merge_requests/362
This commit is contained in:
parent
847d37b4f1
commit
e8a3341700
@ -38,6 +38,12 @@ typedef enum
|
||||
FIXED_DIRECTION_Y = 1 << 1,
|
||||
} FixedDirections;
|
||||
|
||||
typedef enum _MetaRoundingStrategy
|
||||
{
|
||||
META_ROUNDING_STRATEGY_SHRINK,
|
||||
META_ROUNDING_STRATEGY_GROW,
|
||||
} MetaRoundingStrategy;
|
||||
|
||||
/* Output functions -- note that the output buffer had better be big enough:
|
||||
* rect_to_string: RECT_LENGTH
|
||||
* region_to_string: (RECT_LENGTH+strlen(separator_string)) *
|
||||
@ -218,6 +224,10 @@ GList* meta_rectangle_find_nonintersected_monitor_edges (
|
||||
gboolean meta_rectangle_is_adjecent_to (MetaRectangle *rect,
|
||||
MetaRectangle *other);
|
||||
|
||||
void meta_rectangle_scale_double (MetaRectangle *rect,
|
||||
double scale,
|
||||
MetaRoundingStrategy rounding_strategy);
|
||||
|
||||
static inline ClutterRect
|
||||
meta_rectangle_to_clutter_rect (MetaRectangle *rect)
|
||||
{
|
||||
|
@ -2036,3 +2036,25 @@ meta_rectangle_is_adjecent_to (MetaRectangle *rect,
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
meta_rectangle_scale_double (MetaRectangle *rect,
|
||||
double scale,
|
||||
MetaRoundingStrategy rounding_strategy)
|
||||
{
|
||||
switch (rounding_strategy)
|
||||
{
|
||||
case META_ROUNDING_STRATEGY_SHRINK:
|
||||
rect->x = (int) ceil (rect->x * scale);
|
||||
rect->y = (int) ceil (rect->y * scale);
|
||||
rect->width = (int) floor (rect->width * scale);
|
||||
rect->height = (int) floor (rect->height * scale);
|
||||
break;
|
||||
case META_ROUNDING_STRATEGY_GROW:
|
||||
rect->x = (int) floor (rect->x * scale);
|
||||
rect->y = (int) floor (rect->y * scale);
|
||||
rect->width = (int) ceil (rect->width * scale);
|
||||
rect->height = (int) ceil (rect->height * scale);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user