From ff6db012d9eb0c35d8e4693b8706873a3451b914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Fri, 5 May 2017 12:54:24 +0200 Subject: [PATCH] widget: Add private get_border_allocation --- gtk/gtkwidget.c | 22 ++++++++++++++++++++++ gtk/gtkwidgetprivate.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 5d7f9ab8e2..cb1048e222 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -13669,6 +13669,28 @@ gtk_widget_get_content_allocation (GtkWidget *widget, margin.bottom + border.bottom + padding.bottom; } +void +gtk_widget_get_border_allocation (GtkWidget *widget, + GtkAllocation *allocation) +{ + GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); + GtkBorder margin, border; + GtkCssStyle *style; + + style = gtk_css_node_get_style (priv->cssnode); + get_box_margin (style, &margin); + get_box_border (style, &border); + + *allocation = priv->allocation; + + allocation->x += margin.left + border.left; + allocation->y += margin.top + border.top; + allocation->width -= margin.left + border.left + + margin.right + border.right; + allocation->height -= margin.top + border.top + + margin.bottom + border.bottom; +} + /** * gtk_widget_set_allocation: * @widget: a #GtkWidget diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index 404969bc91..e9acd9acf3 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -320,6 +320,8 @@ gboolean gtk_widget_focus_move (GtkWidget *wi GPtrArray *focus_order); void gtk_widget_get_content_allocation (GtkWidget *widget, GtkAllocation *allocation); +void gtk_widget_get_border_allocation (GtkWidget *widget, + GtkAllocation *allocation); GtkWidget * gtk_widget_common_ancestor (GtkWidget *widget_a, GtkWidget *widget_b);