[gtk+] notebook: make sure to allocate the CSS border width
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] notebook: make sure to allocate the CSS border width
- Date: Sun, 20 Nov 2011 21:32:55 +0000 (UTC)
commit 009224a80eebcaa82536fda290c634feba4f82f6
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Nov 18 11:35:30 2011 -0500
notebook: make sure to allocate the CSS border width
Instead of taking only the CSS padding into account when allocating the
notebook children, also allocate the border width.
https://bugzilla.gnome.org/show_bug.cgi?id=664342
gtk/gtknotebook.c | 38 +++++++++++++++++++++++++-------------
1 files changed, 25 insertions(+), 13 deletions(-)
---
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index 5410e78..1c0fbf8 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -2222,6 +2222,27 @@ get_preferred_size_for_size (GtkWidget *widget,
}
static void
+get_padding_and_border (GtkNotebook *notebook,
+ GtkBorder *border)
+{
+ GtkStyleContext *context;
+
+ context = gtk_widget_get_style_context (GTK_WIDGET (notebook));
+ gtk_style_context_get_padding (context, 0, border);
+
+ if (notebook->priv->show_border || notebook->priv->show_tabs)
+ {
+ GtkBorder tmp;
+
+ gtk_style_context_get_border (context, 0, &tmp);
+ border->top += tmp.top;
+ border->right += tmp.right;
+ border->bottom += tmp.bottom;
+ border->left += tmp.left;
+ }
+}
+
+static void
gtk_notebook_size_request (GtkWidget *widget,
GtkOrientation orientation,
gint size,
@@ -2281,11 +2302,9 @@ gtk_notebook_size_request (GtkWidget *widget,
if (priv->show_border || priv->show_tabs)
{
- GtkStyleContext *context;
GtkBorder notebook_padding;
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_get_padding (context, 0, ¬ebook_padding);
+ get_padding_and_border (notebook, ¬ebook_padding);
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
@@ -2458,11 +2477,9 @@ gtk_notebook_size_allocate (GtkWidget *widget,
if (priv->show_tabs || priv->show_border)
{
- GtkStyleContext *context;
GtkBorder padding;
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_get_padding (context, 0, &padding);
+ get_padding_and_border (notebook, &padding);
child_allocation.x += padding.left;
child_allocation.y += padding.top;
@@ -4665,7 +4682,6 @@ gtk_notebook_redraw_tabs (GtkNotebook *notebook)
GtkAllocation allocation;
GtkWidget *widget;
GtkNotebookPage *page;
- GtkStyleContext *context;
GdkRectangle redraw_rect;
gint border;
gint tab_pos = get_effective_tab_pos (notebook);
@@ -4684,8 +4700,7 @@ gtk_notebook_redraw_tabs (GtkNotebook *notebook)
gtk_widget_get_allocation (widget, &allocation);
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_get_padding (context, 0, &padding);
+ get_padding_and_border (notebook, &padding);
switch (tab_pos)
{
@@ -5393,7 +5408,6 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
GtkNotebookPrivate *priv = notebook->priv;
GtkAllocation allocation, action_allocation;
GtkWidget *widget;
- GtkStyleContext *context;
GList *children;
gint tab_pos = get_effective_tab_pos (notebook);
gint tab_overlap;
@@ -5410,8 +5424,6 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
children = priv->children;
is_rtl = gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL;
- context = gtk_widget_get_style_context (widget);
-
gtk_widget_style_get (GTK_WIDGET (notebook),
"arrow-spacing", &arrow_spacing,
"scroll-arrow-hlength", &scroll_arrow_hlength,
@@ -5420,7 +5432,7 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
NULL);
border_width = gtk_container_get_border_width (GTK_CONTAINER (notebook));
- gtk_style_context_get_padding (context, 0, &padding);
+ get_padding_and_border (notebook, &padding);
gtk_widget_get_allocation (widget, &allocation);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]