gadget: Add api to get the border allocation
This can be useful for giving input windows the right size.
This commit is contained in:
@ -670,3 +670,31 @@ gtk_css_node_style_changed_for_widget (GtkCssNode *node,
|
|||||||
_gtk_bitmask_free (changes);
|
_gtk_bitmask_free (changes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_css_gadget_get_border_allocation (GtkCssGadget *gadget,
|
||||||
|
GtkAllocation *allocation,
|
||||||
|
int *baseline)
|
||||||
|
{
|
||||||
|
GtkCssGadgetPrivate *priv = gtk_css_gadget_get_instance_private (gadget);
|
||||||
|
GtkBorder margin;
|
||||||
|
|
||||||
|
g_return_if_fail (GTK_IS_CSS_GADGET (gadget));
|
||||||
|
|
||||||
|
get_box_margin (gtk_css_gadget_get_style (gadget), &margin);
|
||||||
|
|
||||||
|
if (allocation)
|
||||||
|
{
|
||||||
|
allocation->x = priv->allocated_size.x + margin.left;
|
||||||
|
allocation->y = priv->allocated_size.y + margin.top;
|
||||||
|
allocation->width = priv->allocated_size.width - margin.left - margin.right;
|
||||||
|
allocation->height = priv->allocated_size.height - margin.top - margin.bottom;
|
||||||
|
}
|
||||||
|
if (baseline)
|
||||||
|
{
|
||||||
|
if (priv->allocated_baseline >= 0)
|
||||||
|
*baseline = priv->allocated_baseline - margin.top;
|
||||||
|
else
|
||||||
|
*baseline = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -97,6 +97,10 @@ void gtk_css_gadget_allocate (GtkCssGadget
|
|||||||
void gtk_css_gadget_draw (GtkCssGadget *gadget,
|
void gtk_css_gadget_draw (GtkCssGadget *gadget,
|
||||||
cairo_t *cr);
|
cairo_t *cr);
|
||||||
|
|
||||||
|
void gtk_css_gadget_get_border_allocation (GtkCssGadget *gadget,
|
||||||
|
GtkAllocation *allocation,
|
||||||
|
int *baseline);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GTK_CSS_GADGET_PRIVATE_H__ */
|
#endif /* __GTK_CSS_GADGET_PRIVATE_H__ */
|
||||||
|
Reference in New Issue
Block a user