- Factor out common text shifting logic.
- Shift selected tab text up instead of down.
diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index b41b59c..d8dabc7 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -1727,14 +1727,20 @@
else
drawRect->bottom-=center_offset_h;
- center_offset_v = ((drawRect->right - drawRect->left) - (rcText.bottom - rcText.top) + infoPtr->uVItemPadding) / 2;
+ center_offset_v = ((drawRect->right - drawRect->left) - (rcText.bottom - rcText.top)) / 2;
}
else
{
drawRect->left += center_offset_h;
- center_offset_v = ((drawRect->bottom - drawRect->top) - (rcText.bottom - rcText.top) + infoPtr->uVItemPadding) / 2;
+ center_offset_v = ((drawRect->bottom - drawRect->top) - (rcText.bottom - rcText.top)) / 2;
}
+ /* if an item is selected, the text is shifted up instead of down */
+ if (iItem == infoPtr->iSelected)
+ center_offset_v -= infoPtr->uVItemPadding / 2;
+ else
+ center_offset_v += infoPtr->uVItemPadding / 2;
+
if (center_offset_v < 0)
center_offset_v = 0;