mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 02:40:11 +00:00
gdk: Add gdk_rectangle_equal()
There's enough users inside GTK to warrant this convenience function.
This commit is contained in:
parent
5a561a8ddb
commit
2dad7c1319
@ -631,6 +631,7 @@ GdkPoint
|
||||
GdkRectangle
|
||||
gdk_rectangle_intersect
|
||||
gdk_rectangle_union
|
||||
gdk_rectangle_equal
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_rectangle_get_type
|
||||
|
@ -133,6 +133,27 @@ gdk_rectangle_intersect (const GdkRectangle *src1,
|
||||
return return_val;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_rectangle_equal:
|
||||
* @rect1: a #GdkRectangle
|
||||
* @rect2: a #GdkRectangle
|
||||
*
|
||||
* Checks if the two given rectangles are equal.
|
||||
*
|
||||
* Returns: %TRUE if the rectangles are equal.
|
||||
*
|
||||
* Since: 3.20
|
||||
*/
|
||||
gboolean
|
||||
gdk_rectangle_equal (const GdkRectangle *rect1,
|
||||
const GdkRectangle *rect2)
|
||||
{
|
||||
return rect1->x == rect2->x
|
||||
&& rect1->y == rect2->y
|
||||
&& rect1->width == rect2->width
|
||||
&& rect1->height == rect2->height;
|
||||
}
|
||||
|
||||
static GdkRectangle *
|
||||
gdk_rectangle_copy (const GdkRectangle *rectangle)
|
||||
{
|
||||
|
@ -45,6 +45,10 @@ void gdk_rectangle_union (const GdkRectangle *src1,
|
||||
const GdkRectangle *src2,
|
||||
GdkRectangle *dest);
|
||||
|
||||
GDK_AVAILABLE_IN_3_20
|
||||
gboolean gdk_rectangle_equal (const GdkRectangle *rect1,
|
||||
const GdkRectangle *rect2);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GType gdk_rectangle_get_type (void) G_GNUC_CONST;
|
||||
|
||||
|
@ -707,16 +707,6 @@ gtk_frame_draw (GtkWidget *widget,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
rectangle_equal (const GdkRectangle *a,
|
||||
const GdkRectangle *b)
|
||||
{
|
||||
return a->x == b->x
|
||||
&& a->y == b->y
|
||||
&& a->width == b->width
|
||||
&& a->height == b->height;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_frame_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation)
|
||||
@ -734,7 +724,7 @@ gtk_frame_size_allocate (GtkWidget *widget,
|
||||
/* If the child allocation changed, that means that the frame is drawn
|
||||
* in a new place, so we must redraw the entire widget.
|
||||
*/
|
||||
if (gtk_widget_get_mapped (widget) && !rectangle_equal (&priv->child_allocation, &new_allocation))
|
||||
if (gtk_widget_get_mapped (widget) && !gdk_rectangle_equal (&priv->child_allocation, &new_allocation))
|
||||
{
|
||||
gdk_window_invalidate_rect (gtk_widget_get_window (widget), allocation, FALSE);
|
||||
}
|
||||
|
@ -3655,16 +3655,6 @@ gtk_range_compute_slider_position (GtkRange *range,
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
rectangle_equal (const GdkRectangle *a,
|
||||
const GdkRectangle *b)
|
||||
{
|
||||
return a->x == b->x
|
||||
&& a->y == b->y
|
||||
&& a->width == b->width
|
||||
&& a->height == b->height;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_range_calc_slider (GtkRange *range)
|
||||
{
|
||||
@ -3675,7 +3665,7 @@ gtk_range_calc_slider (GtkRange *range)
|
||||
gtk_adjustment_get_value (priv->adjustment),
|
||||
&new_slider);
|
||||
|
||||
if (rectangle_equal (&priv->slider, &new_slider))
|
||||
if (gdk_rectangle_equal (&priv->slider, &new_slider))
|
||||
return;
|
||||
|
||||
gtk_range_queue_draw_location (range, MOUSE_SLIDER);
|
||||
|
Loading…
Reference in New Issue
Block a user