DrawText should not split words just because of clipping.
diff --git a/dlls/user/text.c b/dlls/user/text.c index abdf84c..d4f8cf7 100644 --- a/dlls/user/text.c +++ b/dlls/user/text.c
@@ -71,7 +71,6 @@ #define SPACE 32 #define PREFIX 38 -#define ELLIPSIS "..." #define FORWARD_SLASH '/' #define BACK_SLASH '\\' @@ -144,7 +143,7 @@ } /********************************************************************* - * TEXT_PathElllipsify (static) + * TEXT_PathEllipsify (static) * * Add an ellipsis to the provided string in order to make it fit within * the width. The ellipsis is added as specified for the DT_PATH_ELLIPSIS @@ -394,12 +393,11 @@ wb_i = i+1; wb_j = j; wb_count = *count; + plen = ((plen/tabwidth)+1)*tabwidth; } normal_char = 0; dest[j++] = str[i++]; - if (!(format & DT_NOCLIP) || (format & DT_WORDBREAK)) - plen = ((plen/tabwidth)+1)*tabwidth; } break; @@ -418,7 +416,7 @@ if (normal_char) { dest[j++] = str[i++]; - if (!(format & DT_NOCLIP) || (format & DT_WORDBREAK)) + if ((format & DT_WORDBREAK)) { if (!GetTextExtentPointW(hdc, &dest[j-1], 1, &size)) return NULL; @@ -427,25 +425,11 @@ } (*count)--; - if (!(format & DT_NOCLIP) || (format & DT_WORDBREAK)) + if ((format & DT_WORDBREAK) && plen > width && wb_j) { - if (plen > width) - { - if (format & DT_WORDBREAK) - { - if (wb_j) - { *len = wb_j; *count = wb_count - 1; return (&str[wb_i]); - } - } - else - { - *len = j; - return (&str[i]); - } - } } }