Commit fb61856b authored by Igor Tarasov's avatar Igor Tarasov Committed by Alexandre Julliard

comctl32: Fix statusbar text alignment bug.

parent ece5a047
...@@ -535,18 +535,27 @@ void WINAPI DrawStatusTextW (HDC hdc, LPCRECT lprc, LPCWSTR text, UINT style) ...@@ -535,18 +535,27 @@ void WINAPI DrawStatusTextW (HDC hdc, LPCRECT lprc, LPCWSTR text, UINT style)
if (text) { if (text) {
int oldbkmode = SetBkMode (hdc, TRANSPARENT); int oldbkmode = SetBkMode (hdc, TRANSPARENT);
UINT align = DT_LEFT; UINT align = DT_LEFT;
if (*text == '\t') { int strCnt = 0;
text++;
align = DT_CENTER;
if (*text == '\t') {
text++;
align = DT_RIGHT;
}
}
r.left += 3;
if (style & SBT_RTLREADING) if (style & SBT_RTLREADING)
FIXME("Unsupported RTL style!\n"); FIXME("Unsupported RTL style!\n");
DrawTextW (hdc, text, -1, &r, align|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX); r.left += 3;
do {
if (*text == '\t') {
if (strCnt) {
DrawTextW (hdc, text - strCnt, strCnt, &r, align|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX);
strCnt = 0;
}
if (align==DT_RIGHT) {
break;
}
align = (align==DT_LEFT ? DT_CENTER : DT_RIGHT);
} else {
strCnt++;
}
} while(*text++);
if (strCnt) DrawTextW (hdc, text - strCnt, -1, &r, align|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX);
SetBkMode(hdc, oldbkmode); SetBkMode(hdc, oldbkmode);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment