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]);
- }
- }
}
}