summaryrefslogtreecommitdiff
path: root/gtk/gtkexpander.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2007-03-07 21:34:43 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-03-07 21:34:43 +0000
commit9aad97770aad69b956432517de9798adc0318d67 (patch)
tree49e1602528781e05053eba419c89476856145b2a /gtk/gtkexpander.c
parentc0c2ac8e384ee76e35bdfa79ea7e6cfdaa82c734 (diff)
downloadgtk+-9aad97770aad69b956432517de9798adc0318d67.tar.gz
Draw the focus around the arrow if there is no label widget. (#124045,
2007-03-07 Matthias Clasen <mclasen@redhat.com> * gtk/gtkexpander.c (gtk_expander_paint_focus): Draw the focus around the arrow if there is no label widget. (#124045, Cody Russell) svn path=/trunk/; revision=17419
Diffstat (limited to 'gtk/gtkexpander.c')
-rw-r--r--gtk/gtkexpander.c53
1 files changed, 33 insertions, 20 deletions
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index e078da7e8b..5e38ec980e 100644
--- a/gtk/gtkexpander.c
+++ b/gtk/gtkexpander.c
@@ -789,6 +789,7 @@ gtk_expander_paint_focus (GtkExpander *expander,
{
GtkWidget *widget;
GtkExpanderPrivate *priv;
+ GdkRectangle rect;
gint x, y, width, height;
gboolean interior_focus;
gint border_width;
@@ -815,35 +816,47 @@ gtk_expander_paint_focus (GtkExpander *expander,
width = height = 0;
- if (priv->label_widget && GTK_WIDGET_VISIBLE (priv->label_widget))
+ if (priv->label_widget)
{
- GtkAllocation label_allocation = priv->label_widget->allocation;
+ if (GTK_WIDGET_VISIBLE (priv->label_widget))
+ {
+ GtkAllocation label_allocation = priv->label_widget->allocation;
- width = label_allocation.width;
- height = label_allocation.height;
- }
+ width = label_allocation.width;
+ height = label_allocation.height;
+ }
- width += 2 * focus_pad + 2 * focus_width;
- height += 2 * focus_pad + 2 * focus_width;
+ width += 2 * focus_pad + 2 * focus_width;
+ height += 2 * focus_pad + 2 * focus_width;
- x = widget->allocation.x + border_width;
- y = widget->allocation.y + border_width;
+ x = widget->allocation.x + border_width;
+ y = widget->allocation.y + border_width;
- if (ltr)
- {
- if (interior_focus)
- x += expander_spacing * 2 + expander_size;
+ if (ltr)
+ {
+ if (interior_focus)
+ x += expander_spacing * 2 + expander_size;
+ }
+ else
+ {
+ x += widget->allocation.width - 2 * border_width
+ - expander_spacing * 2 - expander_size - width;
+ }
+
+ if (!interior_focus)
+ {
+ width += expander_size + 2 * expander_spacing;
+ height = MAX (height, expander_size + 2 * expander_spacing);
+ }
}
else
{
- x += widget->allocation.width - 2 * border_width
- - expander_spacing * 2 - expander_size - width;
- }
+ get_expander_bounds (expander, &rect);
- if (!interior_focus)
- {
- width += expander_size + 2 * expander_spacing;
- height = MAX (height, expander_size + 2 * expander_spacing);
+ x = rect.x - focus_pad;
+ y = rect.y - focus_pad;
+ width = rect.width + 2 * focus_pad;
+ height = rect.height + 2 * focus_pad;
}
gtk_paint_focus (widget->style, widget->window, GTK_WIDGET_STATE (widget),