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
|
GdkRectangle
|
||||||
gdk_rectangle_intersect
|
gdk_rectangle_intersect
|
||||||
gdk_rectangle_union
|
gdk_rectangle_union
|
||||||
|
gdk_rectangle_equal
|
||||||
|
|
||||||
<SUBSECTION Private>
|
<SUBSECTION Private>
|
||||||
gdk_rectangle_get_type
|
gdk_rectangle_get_type
|
||||||
|
@ -133,6 +133,27 @@ gdk_rectangle_intersect (const GdkRectangle *src1,
|
|||||||
return return_val;
|
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 *
|
static GdkRectangle *
|
||||||
gdk_rectangle_copy (const GdkRectangle *rectangle)
|
gdk_rectangle_copy (const GdkRectangle *rectangle)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +45,10 @@ void gdk_rectangle_union (const GdkRectangle *src1,
|
|||||||
const GdkRectangle *src2,
|
const GdkRectangle *src2,
|
||||||
GdkRectangle *dest);
|
GdkRectangle *dest);
|
||||||
|
|
||||||
|
GDK_AVAILABLE_IN_3_20
|
||||||
|
gboolean gdk_rectangle_equal (const GdkRectangle *rect1,
|
||||||
|
const GdkRectangle *rect2);
|
||||||
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
GDK_AVAILABLE_IN_ALL
|
||||||
GType gdk_rectangle_get_type (void) G_GNUC_CONST;
|
GType gdk_rectangle_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
@ -707,16 +707,6 @@ gtk_frame_draw (GtkWidget *widget,
|
|||||||
return FALSE;
|
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
|
static void
|
||||||
gtk_frame_size_allocate (GtkWidget *widget,
|
gtk_frame_size_allocate (GtkWidget *widget,
|
||||||
GtkAllocation *allocation)
|
GtkAllocation *allocation)
|
||||||
@ -734,7 +724,7 @@ gtk_frame_size_allocate (GtkWidget *widget,
|
|||||||
/* If the child allocation changed, that means that the frame is drawn
|
/* If the child allocation changed, that means that the frame is drawn
|
||||||
* in a new place, so we must redraw the entire widget.
|
* 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);
|
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
|
static void
|
||||||
gtk_range_calc_slider (GtkRange *range)
|
gtk_range_calc_slider (GtkRange *range)
|
||||||
{
|
{
|
||||||
@ -3675,7 +3665,7 @@ gtk_range_calc_slider (GtkRange *range)
|
|||||||
gtk_adjustment_get_value (priv->adjustment),
|
gtk_adjustment_get_value (priv->adjustment),
|
||||||
&new_slider);
|
&new_slider);
|
||||||
|
|
||||||
if (rectangle_equal (&priv->slider, &new_slider))
|
if (gdk_rectangle_equal (&priv->slider, &new_slider))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gtk_range_queue_draw_location (range, MOUSE_SLIDER);
|
gtk_range_queue_draw_location (range, MOUSE_SLIDER);
|
||||||
|
Loading…
Reference in New Issue
Block a user