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.…
==============================================================================
--- 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.…
==============================================================================
--- 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?…
==============================================================================
--- 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.…
==============================================================================
--- 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?r…
==============================================================================
--- 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.…
==============================================================================
--- 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?…
==============================================================================
--- 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=…
==============================================================================
--- 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