Author: akhaldi Date: Tue Jun 7 11:01:48 2016 New Revision: 71586
URL: http://svn.reactos.org/svn/reactos?rev=71586&view=rev Log: [RICHED20] Sync with Wine Staging 1.9.11. CORE-11368
Modified: trunk/reactos/dll/win32/riched20/caret.c trunk/reactos/dll/win32/riched20/editor.c trunk/reactos/dll/win32/riched20/editor.h trunk/reactos/dll/win32/riched20/paint.c trunk/reactos/dll/win32/riched20/para.c trunk/reactos/dll/win32/riched20/reader.c trunk/reactos/dll/win32/riched20/richole.c trunk/reactos/dll/win32/riched20/rtf.h trunk/reactos/dll/win32/riched20/txtsrv.c trunk/reactos/dll/win32/riched20/wrap.c trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/riched20/caret.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/caret.c?... ============================================================================== --- trunk/reactos/dll/win32/riched20/caret.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/caret.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -216,9 +216,8 @@ }
-static void -ME_GetCursorCoordinates(ME_TextEditor *editor, ME_Cursor *pCursor, - int *x, int *y, int *height) +void ME_GetCursorCoordinates(ME_TextEditor *editor, ME_Cursor *pCursor, + int *x, int *y, int *height) { ME_DisplayItem *row; ME_DisplayItem *run = pCursor->pRun; @@ -390,7 +389,7 @@ nCharsToDelete is a number of chars to delete from THIS run */ nChars -= nCharsToDelete; shift -= nCharsToDelete; - TRACE("Deleting %d (remaning %d) chars at %d in %s (%d)\n", + TRACE("Deleting %d (remaining %d) chars at %d in %s (%d)\n", nCharsToDelete, nChars, c.nOffset, debugstr_run( run ), run->len);
Modified: trunk/reactos/dll/win32/riched20/editor.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/editor.c... ============================================================================== --- trunk/reactos/dll/win32/riched20/editor.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/editor.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -541,11 +541,6 @@ the same tags mean different things in different contexts */ void ME_RTFParAttrHook(RTF_Info *info) { - PARAFORMAT2 fmt; - fmt.cbSize = sizeof(fmt); - fmt.dwMask = 0; - fmt.wEffects = 0; - switch(info->rtfMinor) { case rtfParDef: /* restores default paragraph attributes */ @@ -553,18 +548,19 @@ info->borderType = RTFBorderParaLeft; else /* v1.0 - 3.0 */ info->borderType = RTFBorderParaTop; - fmt.dwMask = PFM_ALIGNMENT | PFM_BORDER | PFM_LINESPACING | PFM_TABSTOPS | + info->fmt.dwMask = PFM_ALIGNMENT | PFM_BORDER | PFM_LINESPACING | PFM_TABSTOPS | PFM_OFFSET | PFM_RIGHTINDENT | PFM_SPACEAFTER | PFM_SPACEBEFORE | - PFM_STARTINDENT; + PFM_STARTINDENT | PFM_RTLPARA; /* TODO: numbering, shading */ - fmt.wAlignment = PFA_LEFT; - fmt.cTabCount = 0; - fmt.dxOffset = fmt.dxStartIndent = fmt.dxRightIndent = 0; - fmt.wBorderWidth = fmt.wBorders = 0; - fmt.wBorderSpace = 0; - fmt.bLineSpacingRule = 0; - fmt.dySpaceBefore = fmt.dySpaceAfter = 0; - fmt.dyLineSpacing = 0; + info->fmt.wAlignment = PFA_LEFT; + info->fmt.cTabCount = 0; + info->fmt.dxOffset = info->fmt.dxStartIndent = info->fmt.dxRightIndent = 0; + info->fmt.wBorderWidth = info->fmt.wBorders = 0; + info->fmt.wBorderSpace = 0; + info->fmt.bLineSpacingRule = 0; + info->fmt.dySpaceBefore = info->fmt.dySpaceAfter = 0; + info->fmt.dyLineSpacing = 0; + info->fmt.wEffects &= ~PFE_RTLPARA; if (!info->editor->bEmulateVersion10) /* v4.1 */ { if (info->tableDef && info->tableDef->tableRowStart && @@ -588,8 +584,8 @@ } } } else { /* v1.0 - v3.0 */ - fmt.dwMask |= PFM_TABLE; - fmt.wEffects &= ~PFE_TABLE; + info->fmt.dwMask |= PFM_TABLE; + info->fmt.wEffects &= ~PFE_TABLE; } break; case rtfNestLevel: @@ -657,197 +653,168 @@ } return; } else { /* v1.0 - v3.0 */ - fmt.dwMask |= PFM_TABLE; - fmt.wEffects |= PFE_TABLE; + info->fmt.dwMask |= PFM_TABLE; + info->fmt.wEffects |= PFE_TABLE; } break; } case rtfFirstIndent: - ME_GetSelectionParaFormat(info->editor, &fmt); - fmt.dwMask = PFM_STARTINDENT | PFM_OFFSET; - fmt.dxStartIndent += fmt.dxOffset + info->rtfParam; - fmt.dxOffset = -info->rtfParam; - break; case rtfLeftIndent: - ME_GetSelectionParaFormat(info->editor, &fmt); - fmt.dwMask = PFM_STARTINDENT; - fmt.dxStartIndent = info->rtfParam - fmt.dxOffset; + if ((info->fmt.dwMask & (PFM_STARTINDENT | PFM_OFFSET)) != (PFM_STARTINDENT | PFM_OFFSET)) + { + PARAFORMAT2 fmt; + fmt.cbSize = sizeof(fmt); + ME_GetSelectionParaFormat(info->editor, &fmt); + info->fmt.dwMask |= PFM_STARTINDENT | PFM_OFFSET; + info->fmt.dxStartIndent = fmt.dxStartIndent; + info->fmt.dxOffset = fmt.dxOffset; + } + if (info->rtfMinor == rtfFirstIndent) + { + info->fmt.dxStartIndent += info->fmt.dxOffset + info->rtfParam; + info->fmt.dxOffset = -info->rtfParam; + } + else + info->fmt.dxStartIndent = info->rtfParam - info->fmt.dxOffset; break; case rtfRightIndent: - fmt.dwMask = PFM_RIGHTINDENT; - fmt.dxRightIndent = info->rtfParam; + info->fmt.dwMask |= PFM_RIGHTINDENT; + info->fmt.dxRightIndent = info->rtfParam; break; case rtfQuadLeft: case rtfQuadJust: - fmt.dwMask = PFM_ALIGNMENT; - fmt.wAlignment = PFA_LEFT; + info->fmt.dwMask |= PFM_ALIGNMENT; + info->fmt.wAlignment = PFA_LEFT; break; case rtfQuadRight: - fmt.dwMask = PFM_ALIGNMENT; - fmt.wAlignment = PFA_RIGHT; + info->fmt.dwMask |= PFM_ALIGNMENT; + info->fmt.wAlignment = PFA_RIGHT; break; case rtfQuadCenter: - fmt.dwMask = PFM_ALIGNMENT; - fmt.wAlignment = PFA_CENTER; + info->fmt.dwMask |= PFM_ALIGNMENT; + info->fmt.wAlignment = PFA_CENTER; break; case rtfTabPos: - ME_GetSelectionParaFormat(info->editor, &fmt); - if (!(fmt.dwMask & PFM_TABSTOPS)) - { - fmt.cTabCount = 0; - } - if (fmt.cTabCount < MAX_TAB_STOPS && info->rtfParam < 0x1000000) - fmt.rgxTabs[fmt.cTabCount++] = info->rtfParam; - fmt.dwMask = PFM_TABSTOPS; + if (!(info->fmt.dwMask & PFM_TABSTOPS)) + { + PARAFORMAT2 fmt; + fmt.cbSize = sizeof(fmt); + ME_GetSelectionParaFormat(info->editor, &fmt); + memcpy(info->fmt.rgxTabs, fmt.rgxTabs, + fmt.cTabCount * sizeof(fmt.rgxTabs[0])); + info->fmt.cTabCount = fmt.cTabCount; + info->fmt.dwMask |= PFM_TABSTOPS; + } + if (info->fmt.cTabCount < MAX_TAB_STOPS && info->rtfParam < 0x1000000) + info->fmt.rgxTabs[info->fmt.cTabCount++] = info->rtfParam; break; case rtfKeep: - fmt.dwMask = PFM_KEEP; - fmt.wEffects = PFE_KEEP; + info->fmt.dwMask |= PFM_KEEP; + info->fmt.wEffects |= PFE_KEEP; break; case rtfNoWidowControl: - fmt.dwMask = PFM_NOWIDOWCONTROL; - fmt.wEffects = PFE_NOWIDOWCONTROL; + info->fmt.dwMask |= PFM_NOWIDOWCONTROL; + info->fmt.wEffects |= PFE_NOWIDOWCONTROL; break; case rtfKeepNext: - fmt.dwMask = PFM_KEEPNEXT; - fmt.wEffects = PFE_KEEPNEXT; + info->fmt.dwMask |= PFM_KEEPNEXT; + info->fmt.wEffects |= PFE_KEEPNEXT; break; case rtfSpaceAfter: - fmt.dwMask = PFM_SPACEAFTER; - fmt.dySpaceAfter = info->rtfParam; + info->fmt.dwMask |= PFM_SPACEAFTER; + info->fmt.dySpaceAfter = info->rtfParam; break; case rtfSpaceBefore: - fmt.dwMask = PFM_SPACEBEFORE; - fmt.dySpaceBefore = info->rtfParam; + info->fmt.dwMask |= PFM_SPACEBEFORE; + info->fmt.dySpaceBefore = info->rtfParam; break; case rtfSpaceBetween: - fmt.dwMask = PFM_LINESPACING; + info->fmt.dwMask |= PFM_LINESPACING; if ((int)info->rtfParam > 0) { - fmt.dyLineSpacing = info->rtfParam; - fmt.bLineSpacingRule = 3; + info->fmt.dyLineSpacing = info->rtfParam; + info->fmt.bLineSpacingRule = 3; } else { - fmt.dyLineSpacing = info->rtfParam; - fmt.bLineSpacingRule = 4; + info->fmt.dyLineSpacing = info->rtfParam; + info->fmt.bLineSpacingRule = 4; } break; case rtfSpaceMultiply: - fmt.dwMask = PFM_LINESPACING; - fmt.dyLineSpacing = info->rtfParam * 20; - fmt.bLineSpacingRule = 5; + info->fmt.dwMask |= PFM_LINESPACING; + info->fmt.dyLineSpacing = info->rtfParam * 20; + info->fmt.bLineSpacingRule = 5; break; case rtfParBullet: - fmt.dwMask = PFM_NUMBERING; - fmt.wNumbering = PFN_BULLET; + info->fmt.dwMask |= PFM_NUMBERING; + info->fmt.wNumbering = PFN_BULLET; break; case rtfParSimple: - fmt.dwMask = PFM_NUMBERING; - fmt.wNumbering = 2; /* FIXME: MSDN says it's not used ?? */ + info->fmt.dwMask |= PFM_NUMBERING; + info->fmt.wNumbering = 2; /* FIXME: MSDN says it's not used ?? */ break; case rtfParNumDecimal: - fmt.dwMask = PFM_NUMBERING; - fmt.wNumbering = 2; /* FIXME: MSDN says it's not used ?? */ + info->fmt.dwMask |= PFM_NUMBERING; + info->fmt.wNumbering = 2; /* FIXME: MSDN says it's not used ?? */ break; case rtfParNumIndent: - fmt.dwMask = PFM_NUMBERINGTAB; - fmt.wNumberingTab = info->rtfParam; + info->fmt.dwMask |= PFM_NUMBERINGTAB; + info->fmt.wNumberingTab = info->rtfParam; break; case rtfParNumStartAt: - fmt.dwMask = PFM_NUMBERINGSTART; - fmt.wNumberingStart = info->rtfParam; + info->fmt.dwMask |= PFM_NUMBERINGSTART; + info->fmt.wNumberingStart = info->rtfParam; break; case rtfBorderLeft: info->borderType = RTFBorderParaLeft; - ME_GetSelectionParaFormat(info->editor, &fmt); - if (!(fmt.dwMask & PFM_BORDER)) - { - fmt.wBorderSpace = 0; - fmt.wBorderWidth = 1; - fmt.wBorders = 0; - } - fmt.wBorders |= 1; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders |= 1; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderRight: info->borderType = RTFBorderParaRight; - ME_GetSelectionParaFormat(info->editor, &fmt); - if (!(fmt.dwMask & PFM_BORDER)) - { - fmt.wBorderSpace = 0; - fmt.wBorderWidth = 1; - fmt.wBorders = 0; - } - fmt.wBorders |= 2; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders |= 2; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderTop: info->borderType = RTFBorderParaTop; - ME_GetSelectionParaFormat(info->editor, &fmt); - if (!(fmt.dwMask & PFM_BORDER)) - { - fmt.wBorderSpace = 0; - fmt.wBorderWidth = 1; - fmt.wBorders = 0; - } - fmt.wBorders |= 4; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders |= 4; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderBottom: info->borderType = RTFBorderParaBottom; - ME_GetSelectionParaFormat(info->editor, &fmt); - if (!(fmt.dwMask & PFM_BORDER)) - { - fmt.wBorderSpace = 0; - fmt.wBorderWidth = 1; - fmt.wBorders = 0; - } - fmt.wBorders |= 8; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders |= 8; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderSingle: - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorders &= ~0x700; - fmt.wBorders |= 1 << 8; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders &= ~0x700; + info->fmt.wBorders |= 1 << 8; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderThick: - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorders &= ~0x700; - fmt.wBorders |= 2 << 8; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders &= ~0x700; + info->fmt.wBorders |= 2 << 8; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderShadow: - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorders &= ~0x700; - fmt.wBorders |= 10 << 8; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders &= ~0x700; + info->fmt.wBorders |= 10 << 8; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderDouble: - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorders &= ~0x700; - fmt.wBorders |= 7 << 8; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders &= ~0x700; + info->fmt.wBorders |= 7 << 8; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderDot: - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorders &= ~0x700; - fmt.wBorders |= 11 << 8; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorders &= ~0x700; + info->fmt.wBorders |= 11 << 8; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderWidth: { int borderSide = info->borderType & RTFBorderSideMask; RTFTable *tableDef = info->tableDef; - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorderWidth |= ((info->rtfParam / 15) & 7) << 8; if ((info->borderType & RTFBorderTypeMask) == RTFBorderTypeCell) { RTFBorder *border; @@ -857,14 +824,13 @@ border->width = info->rtfParam; break; } - fmt.dwMask = PFM_BORDER; + info->fmt.wBorderWidth = info->rtfParam; + info->fmt.dwMask |= PFM_BORDER; break; } case rtfBorderSpace: - ME_GetSelectionParaFormat(info->editor, &fmt); - /* we assume that borders have been created before (RTF spec) */ - fmt.wBorderSpace = info->rtfParam; - fmt.dwMask = PFM_BORDER; + info->fmt.wBorderSpace = info->rtfParam; + info->fmt.dwMask |= PFM_BORDER; break; case rtfBorderColor: { @@ -891,18 +857,13 @@ break; } case rtfRTLPar: - fmt.dwMask = PFM_RTLPARA; - fmt.wEffects = PFE_RTLPARA; + info->fmt.dwMask |= PFM_RTLPARA; + info->fmt.wEffects |= PFE_RTLPARA; break; case rtfLTRPar: - fmt.dwMask = PFM_RTLPARA; - fmt.wEffects = 0; + info->fmt.dwMask = PFM_RTLPARA; + info->fmt.wEffects &= ~PFE_RTLPARA; break; - } - if (fmt.dwMask) { - RTFFlushOutputBuffer(info); - /* FIXME too slow ? how come ?*/ - ME_SetSelectionParaFormat(info->editor, &fmt); } }
@@ -3662,7 +3623,6 @@ editor->hbrBackground = CreateSolidBrush(editor->rgbBackColor); } ITextHost_TxInvalidateRect(editor->texthost, NULL, TRUE); - ITextHost_TxViewChange(editor->texthost, TRUE); return lColor; } case EM_GETMODIFY:
Modified: trunk/reactos/dll/win32/riched20/editor.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/editor.h... ============================================================================== --- trunk/reactos/dll/win32/riched20/editor.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/editor.h [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -227,6 +227,7 @@ int ME_GetTextLength(ME_TextEditor *editor) DECLSPEC_HIDDEN; int ME_GetTextLengthEx(ME_TextEditor *editor, const GETTEXTLENGTHEX *how) DECLSPEC_HIDDEN; ME_Style *ME_GetSelectionInsertStyle(ME_TextEditor *editor) DECLSPEC_HIDDEN; +void ME_GetCursorCoordinates(ME_TextEditor *editor, ME_Cursor *pCursor, int *x, int *y, int *height) DECLSPEC_HIDDEN;
/* context.c */ void ME_InitContext(ME_Context *c, ME_TextEditor *editor, HDC hDC) DECLSPEC_HIDDEN;
Modified: trunk/reactos/dll/win32/riched20/paint.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/paint.c?... ============================================================================== --- trunk/reactos/dll/win32/riched20/paint.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/paint.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -956,7 +956,7 @@ rc.right = rc.left + run->nWidth; rc.top = c->pt.y + para->pt.y + run->pt.y; rc.bottom = rc.top + height; - TRACE("rc = (%d, %d, %d, %d)\n", rc.left, rc.top, rc.right, rc.bottom); + TRACE("rc = %s\n", wine_dbgstr_rect(&rc)); FrameRect(c->hDC, &rc, GetSysColorBrush(COLOR_GRAYTEXT)); } if (visible)
Modified: trunk/reactos/dll/win32/riched20/para.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/para.c?r... ============================================================================== --- trunk/reactos/dll/win32/riched20/para.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/para.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -506,7 +506,7 @@ DUMP(PFM_STYLE, "Text style:", "%d", sStyle); DUMP(PFM_LINESPACING, "Line spacing rule:", "%u", bLineSpacingRule); /* bOutlineLevel should be 0 */ - DUMP(PFM_SHADING, "Shading Weigth:", "%u", wShadingWeight); + DUMP(PFM_SHADING, "Shading Weight:", "%u", wShadingWeight); DUMP(PFM_SHADING, "Shading Style:", "%u", wShadingStyle); DUMP(PFM_NUMBERINGSTART, "Numbering Start:", "%u", wNumberingStart); DUMP(PFM_NUMBERINGSTYLE, "Numbering Style:", "0x%x", wNumberingStyle);
Modified: trunk/reactos/dll/win32/riched20/reader.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/reader.c... ============================================================================== --- trunk/reactos/dll/win32/riched20/reader.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/reader.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -258,6 +258,9 @@ info->nestingLevel = 0; info->canInheritInTbl = FALSE; info->borderType = 0; + + memset(&info->fmt, 0, sizeof(info->fmt)); + info->fmt.cbSize = sizeof(info->fmt); }
/* @@ -2505,6 +2508,10 @@ case rtfPage: case rtfSect: case rtfPar: + RTFFlushOutputBuffer(info); + ME_SetSelectionParaFormat(info->editor, &info->fmt); + memset(&info->fmt, 0, sizeof(info->fmt)); + info->fmt.cbSize = sizeof(info->fmt); RTFPutUnicodeChar (info, '\r'); if (info->editor->bEmulateVersion10) RTFPutUnicodeChar (info, '\n'); break; @@ -2526,6 +2533,12 @@ case rtfEnDash: RTFPutUnicodeChar (info, 0x2013); break; + case rtfEmSpace: + RTFPutUnicodeChar (info, ' '); + break; + case rtfEnSpace: + RTFPutUnicodeChar (info, ' '); + break; case rtfLQuote: RTFPutUnicodeChar (info, 0x2018); break; @@ -2538,6 +2551,18 @@ case rtfRDblQuote: RTFPutUnicodeChar (info, 0x201D); break; + case rtfLTRMark: + RTFPutUnicodeChar (info, 0x200E); + break; + case rtfRTLMark: + RTFPutUnicodeChar (info, 0x200F); + break; + case rtfNoWidthJoiner: + RTFPutUnicodeChar (info, 0x200D); + break; + case rtfNoWidthNonJoiner: + RTFPutUnicodeChar (info, 0x200C); + break; } }
Modified: trunk/reactos/dll/win32/riched20/richole.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/richole.... ============================================================================== --- trunk/reactos/dll/win32/riched20/richole.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/richole.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -2445,13 +2445,29 @@ static HRESULT WINAPI ITextRange_fnScrollIntoView(ITextRange *me, LONG value) { ITextRangeImpl *This = impl_from_ITextRange(me); - - FIXME("(%p)->(%d): stub\n", This, value); - - if (!This->child.reole) - return CO_E_RELEASED; - - return E_NOTIMPL; + ME_TextEditor *editor; + ME_Cursor cursor; + int x, y, height; + + TRACE("(%p)->(%d)\n", This, value); + + if (!This->child.reole) + return CO_E_RELEASED; + + editor = This->child.reole->editor; + + switch (value) + { + case tomStart: + ME_CursorFromCharOfs(editor, This->start, &cursor); + ME_GetCursorCoordinates(editor, &cursor, &x, &y, &height); + break; + default: + FIXME("bStart value %d not handled\n", value); + return E_NOTIMPL; + } + ME_ScrollAbs(editor, x, y); + return S_OK; }
static HRESULT WINAPI ITextRange_fnGetEmbeddedObject(ITextRange *me, IUnknown **ppv)
Modified: trunk/reactos/dll/win32/riched20/rtf.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/rtf.h?re... ============================================================================== --- trunk/reactos/dll/win32/riched20/rtf.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/rtf.h [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -1171,6 +1171,8 @@ int nestingLevel; BOOL canInheritInTbl; int borderType; /* value corresponds to the RTFBorder constants. */ + + PARAFORMAT2 fmt; /* Accumulated para fmt for current paragraph. */ };
Modified: trunk/reactos/dll/win32/riched20/txtsrv.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/txtsrv.c... ============================================================================== --- trunk/reactos/dll/win32/riched20/txtsrv.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/txtsrv.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -404,10 +404,7 @@ ITextImpl->ITextServices_iface.lpVtbl = &textservices_vtbl; ITextImpl->editor = ME_MakeEditor(pITextHost, FALSE, ES_LEFT); ITextImpl->editor->exStyleFlags = 0; - ITextImpl->editor->rcFormat.left = 0; - ITextImpl->editor->rcFormat.top = 0; - ITextImpl->editor->rcFormat.right = 0; - ITextImpl->editor->rcFormat.bottom = 0; + SetRectEmpty(&ITextImpl->editor->rcFormat);
if (pUnkOuter) ITextImpl->outer_unk = pUnkOuter;
Modified: trunk/reactos/dll/win32/riched20/wrap.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/riched20/wrap.c?r... ============================================================================== --- trunk/reactos/dll/win32/riched20/wrap.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/riched20/wrap.c [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -746,6 +746,11 @@
assert( p->type == diParagraph );
+ if (para->pFmt->dwMask & PFM_RTLPARA && para->pFmt->wEffects & PFE_RTLPARA) + state.uBidiLevel = 1; + + TRACE( "Base embedding level %d\n", state.uBidiLevel ); + while (1) { hr = ScriptItemize( para->text->szData, para->text->nLen, items_passed, &control, @@ -874,6 +879,11 @@ wc.nFirstMargin = ME_twips2pointsX(c, dxStartIndent); wc.nLeftMargin = wc.nFirstMargin + ME_twips2pointsX(c, pFmt->dxOffset); wc.nRightMargin = ME_twips2pointsX(c, pFmt->dxRightIndent); + + if (wc.nFirstMargin < 0) + wc.nFirstMargin = 0; + if (wc.nLeftMargin < 0) + wc.nLeftMargin = 0; } if (c->editor->bEmulateVersion10 && /* v1.0 - 3.0 */ pFmt->dwMask & PFM_TABLE && pFmt->wEffects & PFE_TABLE)
Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=7... ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Tue Jun 7 11:01:48 2016 @@ -161,7 +161,7 @@ reactos/dll/win32/query # Synced to WineStaging-1.9.4 reactos/dll/win32/rasapi32 # Synced to WineStaging-1.9.4 reactos/dll/win32/resutils # Synced to WineStaging-1.9.4 -reactos/dll/win32/riched20 # Synced to WineStaging-1.9.4 +reactos/dll/win32/riched20 # Synced to WineStaging-1.9.11 reactos/dll/win32/riched32 # Synced to WineStaging-1.9.4 reactos/dll/win32/rpcrt4 # Synced to WineStaging-1.9.4 reactos/dll/win32/rsabase # Synced to WineStaging-1.9.4