diff options
author | Benjamin Berg <benjamin@sipsolutions.net> | 2007-06-08 12:32:02 +0000 |
---|---|---|
committer | Benjamin Berg <bberg@src.gnome.org> | 2007-06-08 12:32:02 +0000 |
commit | 8a267fa7c9da6d6819193a110271aa170f9fdb07 (patch) | |
tree | ef33c9f984624b3497ee0f44c730ed7b601f6986 /gtk/gtkscrolledwindow.c | |
parent | 3c49e2ef629a51f43287e0763fd2a43d14ea126e (diff) | |
download | gtk+-8a267fa7c9da6d6819193a110271aa170f9fdb07.tar.gz |
Fix shadow painting if the scrollbars-within-bevel style property is set
2007-06-08 Benjamin Berg <benjamin@sipsolutions.net>
* gtk/gtkscrolledwindow.c: (gtk_scrolled_window_paint):
Fix shadow painting if the scrollbars-within-bevel style property is
set and border_width is nozero. (#445054)
svn path=/trunk/; revision=18082
Diffstat (limited to 'gtk/gtkscrolledwindow.c')
-rw-r--r-- | gtk/gtkscrolledwindow.c | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 584a2bd99d..a82bf38650 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -958,38 +958,28 @@ gtk_scrolled_window_paint (GtkWidget *widget, { GtkAllocation relative_allocation; gboolean scrollbars_within_bevel; - gint scrollbar_spacing; - gtk_scrolled_window_relative_allocation (widget, &relative_allocation); gtk_widget_style_get (widget, "scrollbars-within-bevel", &scrollbars_within_bevel, NULL); - scrollbar_spacing = _gtk_scrolled_window_get_scrollbar_spacing (scrolled_window); - relative_allocation.x -= widget->style->xthickness; - relative_allocation.y -= widget->style->ythickness; - relative_allocation.width += 2 * widget->style->xthickness; - relative_allocation.height += 2 * widget->style->ythickness; - - if (scrollbars_within_bevel) + if (!scrollbars_within_bevel) { - if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar)) - { - gint dy = scrolled_window->hscrollbar->allocation.height + scrollbar_spacing; - relative_allocation.height += dy; + gtk_scrolled_window_relative_allocation (widget, &relative_allocation); - if (relative_allocation.y) - relative_allocation.y -= dy; - } - - if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar)) - { - gint dx = scrolled_window->vscrollbar->allocation.width + scrollbar_spacing; - relative_allocation.width += dx; + relative_allocation.x -= widget->style->xthickness; + relative_allocation.y -= widget->style->ythickness; + relative_allocation.width += 2 * widget->style->xthickness; + relative_allocation.height += 2 * widget->style->ythickness; + } + else + { + GtkContainer *container = GTK_CONTAINER (widget); - if (relative_allocation.x) - relative_allocation.x -= dx; - } + relative_allocation.x = container->border_width; + relative_allocation.y = container->border_width; + relative_allocation.width = widget->allocation.width - 2 * container->border_width; + relative_allocation.height = widget->allocation.height - 2 * container->border_width; } - + gtk_paint_shadow (widget->style, widget->window, GTK_STATE_NORMAL, scrolled_window->shadow_type, area, widget, "scrolled_window", |