Some programs (e.g. Graphmatica 2.0f) forget to initialize the iString field for separators in toolbars. Windows copes with this smoothly, ignoring the field altogether. Do the same in Wine. --- dlls/comctl32/toolbar.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c index c3add77..83098cc 100644 --- a/dlls/comctl32/toolbar.c +++ b/dlls/comctl32/toolbar.c @@ -1841,7 +1841,9 @@ TOOLBAR_InternalInsertButtonsT(TOOLBAR_INFO *infoPtr, INT iIndex, UINT nAddButto btnPtr->fsState = lpTbb[iButton].fsState; btnPtr->fsStyle = lpTbb[iButton].fsStyle; btnPtr->dwData = lpTbb[iButton].dwData; - if(HIWORD(lpTbb[iButton].iString) && lpTbb[iButton].iString != -1) + if(btnPtr->fsStyle & BTNS_SEP) + btnPtr->iString = -1; + else if(HIWORD(lpTbb[iButton].iString) && lpTbb[iButton].iString != -1) { if (fUnicode) Str_SetPtrW((LPWSTR*)&btnPtr->iString, (LPWSTR)lpTbb[iButton].iString );