summaryrefslogtreecommitdiff
path: root/gtk/gtkcellarea.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2014-05-04 20:01:12 +0200
committerCosimo Cecchi <cosimoc@gnome.org>2014-05-09 11:02:45 -0700
commita2a1c6da959d7a309a736823bd0b904e1d485554 (patch)
tree645a3e702d25b8d86adf0697b0c3f3a0de522266 /gtk/gtkcellarea.c
parent2cbf3c66ef79f70007d8be17feec89ab86aa447a (diff)
downloadgtk+-a2a1c6da959d7a309a736823bd0b904e1d485554.tar.gz
cellarea: don't use focus-line-width
Use CSS padding instead.
Diffstat (limited to 'gtk/gtkcellarea.c')
-rw-r--r--gtk/gtkcellarea.c50
1 files changed, 24 insertions, 26 deletions
diff --git a/gtk/gtkcellarea.c b/gtk/gtkcellarea.c
index b27ad07c08..15f33047c9 100644
--- a/gtk/gtkcellarea.c
+++ b/gtk/gtkcellarea.c
@@ -1129,21 +1129,10 @@ render_cell (GtkCellRenderer *renderer,
(renderer == focus_cell ||
gtk_cell_area_is_focus_sibling (data->area, focus_cell, renderer)))))
{
- gint focus_line_width;
GdkRectangle cell_focus;
gtk_cell_renderer_get_aligned_area (renderer, data->widget, flags, &inner_area, &cell_focus);
- gtk_widget_style_get (data->widget,
- "focus-line-width", &focus_line_width,
- NULL);
-
- /* The focus rectangle is located around the aligned area of the cell */
- cell_focus.x -= focus_line_width;
- cell_focus.y -= focus_line_width;
- cell_focus.width += 2 * focus_line_width;
- cell_focus.height += 2 * focus_line_width;
-
if (data->first_focus)
{
data->first_focus = FALSE;
@@ -3561,21 +3550,25 @@ gtk_cell_area_inner_cell_area (GtkCellArea *area,
const GdkRectangle *cell_area,
GdkRectangle *inner_area)
{
- gint focus_line_width;
+ GtkBorder border;
+ GtkStyleContext *context;
+ GtkStateFlags state;
g_return_if_fail (GTK_IS_CELL_AREA (area));
g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (cell_area != NULL);
g_return_if_fail (inner_area != NULL);
- gtk_widget_style_get (widget, "focus-line-width", &focus_line_width, NULL);
+ context = gtk_widget_get_style_context (widget);
+ state = gtk_widget_get_state_flags (widget);
+ gtk_style_context_get_padding (context, state, &border);
*inner_area = *cell_area;
- inner_area->x += focus_line_width;
- inner_area->width -= focus_line_width * 2;
- inner_area->y += focus_line_width;
- inner_area->height -= focus_line_width * 2;
+ inner_area->x += border.left;
+ inner_area->width -= border.left + border.right;
+ inner_area->y += border.top;
+ inner_area->height -= border.top + border.bottom;
}
/**
@@ -3606,7 +3599,9 @@ gtk_cell_area_request_renderer (GtkCellArea *area,
gint *minimum_size,
gint *natural_size)
{
- gint focus_line_width;
+ GtkBorder border;
+ GtkStyleContext *context;
+ GtkStateFlags state;
g_return_if_fail (GTK_IS_CELL_AREA (area));
g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
@@ -3614,9 +3609,9 @@ gtk_cell_area_request_renderer (GtkCellArea *area,
g_return_if_fail (minimum_size != NULL);
g_return_if_fail (natural_size != NULL);
- gtk_widget_style_get (widget, "focus-line-width", &focus_line_width, NULL);
-
- focus_line_width *= 2;
+ context = gtk_widget_get_style_context (widget);
+ state = gtk_widget_get_state_flags (widget);
+ gtk_style_context_get_padding (context, state, &border);
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
@@ -3624,11 +3619,14 @@ gtk_cell_area_request_renderer (GtkCellArea *area,
gtk_cell_renderer_get_preferred_width (renderer, widget, minimum_size, natural_size);
else
{
- for_size = MAX (0, for_size - focus_line_width);
+ for_size = MAX (0, for_size - border.left - border.right);
gtk_cell_renderer_get_preferred_width_for_height (renderer, widget, for_size,
minimum_size, natural_size);
}
+
+ *minimum_size += border.left + border.right;
+ *natural_size += border.left + border.right;
}
else /* GTK_ORIENTATION_VERTICAL */
{
@@ -3636,15 +3634,15 @@ gtk_cell_area_request_renderer (GtkCellArea *area,
gtk_cell_renderer_get_preferred_height (renderer, widget, minimum_size, natural_size);
else
{
- for_size = MAX (0, for_size - focus_line_width);
+ for_size = MAX (0, for_size - border.top - border.bottom);
gtk_cell_renderer_get_preferred_height_for_width (renderer, widget, for_size,
minimum_size, natural_size);
}
- }
- *minimum_size += focus_line_width;
- *natural_size += focus_line_width;
+ *minimum_size += border.top + border.bottom;
+ *natural_size += border.top + border.bottom;
+ }
}
void