mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 02:40:11 +00:00
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
This commit is contained in:
parent
3c49e2ef62
commit
8a267fa7c9
@ -1,3 +1,9 @@
|
|||||||
|
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)
|
||||||
|
|
||||||
2007-06-08 Matthias Clasen <mclasen@redhat.com>
|
2007-06-08 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
Make it possible for theme engines to support symbolic
|
Make it possible for theme engines to support symbolic
|
||||||
|
@ -958,38 +958,28 @@ gtk_scrolled_window_paint (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkAllocation relative_allocation;
|
GtkAllocation relative_allocation;
|
||||||
gboolean scrollbars_within_bevel;
|
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);
|
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;
|
if (!scrollbars_within_bevel)
|
||||||
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 (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
|
gtk_scrolled_window_relative_allocation (widget, &relative_allocation);
|
||||||
{
|
|
||||||
gint dy = scrolled_window->hscrollbar->allocation.height + scrollbar_spacing;
|
|
||||||
relative_allocation.height += dy;
|
|
||||||
|
|
||||||
if (relative_allocation.y)
|
relative_allocation.x -= widget->style->xthickness;
|
||||||
relative_allocation.y -= dy;
|
relative_allocation.y -= widget->style->ythickness;
|
||||||
}
|
relative_allocation.width += 2 * widget->style->xthickness;
|
||||||
|
relative_allocation.height += 2 * widget->style->ythickness;
|
||||||
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
|
|
||||||
{
|
|
||||||
gint dx = scrolled_window->vscrollbar->allocation.width + scrollbar_spacing;
|
|
||||||
relative_allocation.width += dx;
|
|
||||||
|
|
||||||
if (relative_allocation.x)
|
|
||||||
relative_allocation.x -= dx;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GtkContainer *container = GTK_CONTAINER (widget);
|
||||||
|
|
||||||
|
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_paint_shadow (widget->style, widget->window,
|
||||||
GTK_STATE_NORMAL, scrolled_window->shadow_type,
|
GTK_STATE_NORMAL, scrolled_window->shadow_type,
|
||||||
area, widget, "scrolled_window",
|
area, widget, "scrolled_window",
|
||||||
|
Loading…
Reference in New Issue
Block a user