Fix bottom-oriented notebook tabs on Win32. #399253

svn path=/trunk/; revision=17575
This commit is contained in:
Cody Russell 2007-04-01 18:50:38 +00:00
parent 9384ea655c
commit c524f988bf
2 changed files with 23 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2007-04-01 Cody Russell <bratsche@gnome.org>
* modules/engines/ms-windows/msw_style.c: Fix rendering of
notebook tabs when they are bottom-oriented. Fixes #399253.
2007-03-31 Elijah Newren <newren gmail com>
* gdk/x11/gdkwindow-x11.c (setup_toplevel_window,

View File

@ -2413,18 +2413,12 @@ draw_extension (GtkStyle * style,
}
else if (real_gap_side == GTK_POS_BOTTOM)
{
x2 = x;
y2 = y + (state_type == GTK_STATE_NORMAL ? 0 : notebook->tab_vborder);
x2 = 0;
y2 = 0;
w2 = width;
h2 = height - (state_type == GTK_STATE_NORMAL ? 0 : notebook->tab_vborder * 2);
target = window;
/* If we are currently drawing the right-most tab (any state)... */
if (widget->allocation.x + widget->allocation.width - border_width == x + width)
{
x2--;
w2--;
}
pixmap = gdk_pixmap_new (window, w2, h2, -1);
target = pixmap;
}
if (xp_theme_draw (target, tab_part, style, x2, y2, w2, h2, state_type, NULL /*area*/))
@ -2473,12 +2467,25 @@ draw_extension (GtkStyle * style,
h2--;
}
}
else if (real_gap_side == GTK_POS_BOTTOM)
{
x2 = x;
y2 = y + (state_type == GTK_STATE_NORMAL ? 0 : notebook->tab_vborder);
w2 = width;
h2 = height - (state_type == GTK_STATE_NORMAL ? 0 : notebook->tab_vborder * 2);
/* If we are currently drawing the right-most tab (any state)... */
if (widget->allocation.x + widget->allocation.width - border_width == x + width)
{
x2--;
w2--;
}
}
gdk_draw_pixbuf (window, NULL, pixbuf, 0, 0, x2, y2, w2, h2, GDK_RGB_DITHER_NONE, 0, 0);
g_object_unref (G_OBJECT (pixbuf));
if (real_gap_side == GTK_POS_LEFT || real_gap_side == GTK_POS_RIGHT)
if (real_gap_side == GTK_POS_LEFT || real_gap_side == GTK_POS_RIGHT || real_gap_side == GTK_POS_BOTTOM)
{
g_object_unref (pixmap);
}