Commit Graph

527 Commits

Author SHA1 Message Date
Huw Davies 372a16af63 riched20: Don't apply paragraph formatting until the end of paragraph.
Specifically this means that if the final paragraph does not end in
a trailing \par, then new formatting is not applied to that paragraph.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-01 01:50:13 +09:00
Nikolay Sivov 0db7cb6002 riched20: Preserve higher bits of tabstop values (Coverity).
Bits 24-31 are reserved for tab alignment and tab leader style,
writer supports thatl.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-30 08:07:05 +01:00
Nikolay Sivov c5b68d1db2 riched20: Initialize wEffects field before setting bits in it (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-30 08:06:56 +01:00
Nikolay Sivov 91ed2a81c1 riched20: Fix a memory leak on error path (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-11 19:39:16 +09:00
Huw Davies b241276f50 riched20: Maintain a list of styles and reuse them if possible.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-10 11:50:08 +09:00
Jactry Zeng 6401ab45c0 riched20: Implement alignment styles support.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 21:59:07 +09:00
Huw Davies 2d23a95c96 riched20: Add support for the \shppict destination.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 22:31:27 +09:00
Huw Davies cfc8914200 riched20: Rewrite the picture destination parser to handle embedded groups.
Since almost every line of ME_RTFReadPictGroup() changed, I took the
opportunity to re-format it.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 22:31:27 +09:00
Nikolay Sivov 20f4a9ff7b riched20: Handle invalid HFONT values passed to WM_SETFONT.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2015-10-05 22:27:12 +09:00
Jactry Zeng d62dd46516 riched20: Implement EM_SETFONTSIZE. 2015-08-27 21:43:46 +09:00
Alex Henrie af19e64017 riched20: Fix link notification conditions and add tests. 2015-06-18 17:11:05 +09:00
Huw Davies 17f273360a riched20: Append a final \par when writing the whole buffer. 2015-06-09 14:47:30 +09:00
Nikolay Sivov 0b94369bb7 riched20: Reduce code duplication in WM_SETTEXT/WM_CREATE handler. 2015-06-02 20:53:44 +09:00
Nikolay Sivov 251e168590 riched20: Implement SetText() for selection range. 2015-05-27 14:31:40 +09:00
Nikolay Sivov 81fc69d7e6 riched20: Added IDispatch support. 2015-05-25 21:43:17 +09:00
Alexandre Julliard 50009c4a95 riched20: Update rectangle on WM_WINDOWPOSCHANGED instead of WM_SIZE.
Some applications don't forward WM_SIZE to the window proc.
2015-04-28 19:57:37 +09:00
Christoph von Wittich ca2b70b285 riched20: Handle SCF_WORD. 2015-04-01 22:34:20 +09:00
Christoph von Wittich c0c36fba70 riched20: EM_SETSEL should not return 0. 2015-03-31 14:46:06 +09:00
Francois Gouget cd0200113c riched20: Remove unneeded NONAMELESSXXX directives. 2015-03-19 14:05:48 +09:00
Michael Stefaniuc f40b4291d4 riched20: Remove no-op addition with 0 (PVS-Studio). 2015-02-25 21:27:42 +09:00
Michael Stefaniuc 54d3816eb8 riched20: IDC_IBEAM is already an int resource (PVS-Studio). 2015-02-18 16:09:00 +09:00
Guillaume Charifi 27ac8d265e riched20: Do not destroy IRichEditOle if still referenced. 2014-11-17 17:27:43 +09:00
Michael Stefaniuc 7f295effbd riched20: SUCCEEDED() is already a BOOL (PVS-Studio). 2014-10-31 10:49:34 +09:00
Jactry Zeng a9491ec5d9 riched20: Add IID_IRichEditOle and IID_ITextDocument support for ITextServices::QueryInterface. 2014-10-30 12:02:52 +09:00
Jactry Zeng 234310e752 riched20: Add COM aggregation support for IRichEditOle. 2014-10-30 12:02:17 +09:00
Jactry Zeng ffb706ceb0 riched20: Fix a leak. 2014-10-30 12:00:57 +09:00
Jactry Zeng 1f6073c861 riched20: Implement ITextSelection::GetText. 2014-07-21 18:45:38 +02:00
Jactry Zeng 455eca6d22 riched20: Return nonzero value instead of zero when EM_SETREADONLY succeeds. 2014-07-04 19:30:25 +02:00
Jactry Zeng 10e6a665fd riched20: Initialize ed->reOle in ME_MakeEditor(). 2014-07-03 18:17:59 +02:00
Jactry Zeng 6ea4da4038 riched20: Don't create too many IRichEditOle interface for a RichEdit. 2014-07-01 12:53:47 +02:00
Alex Henrie 6b947701a7 riched20: Consider adjacent runs when computing EN_LINK range. 2014-06-17 10:36:53 +02:00
Huw Davies b89c7c8fc2 riched20: Don't skip the final carriage return in SFF_SELECTION mode. 2014-06-11 13:06:23 +02:00
Nikolay Sivov 601738dfb5 riched20: GetClientSite() is implemented for IRichEditOle so uncomment related code (Coverity). 2014-04-15 21:03:54 +02:00
Huw Davies fa50baf31f riched20: Keep track of fractions of WHEEL_DELTA when scrolling. 2014-03-31 15:29:02 +02:00
Huw Davies 2f07df59f9 riched20: Add a helper to return the default line height and use that in EM_LINESCROLL. 2014-03-31 15:29:00 +02:00
Hans Leidekker db094db851 riched20: Don't return DLGC_HASSETSEL from WM_GETDLGCODE if the control style includes ES_SAVESEL. 2014-03-28 17:57:19 +01:00
Frédéric Delanoy 5f88ba5b61 riched20: Use BOOL type where appropriate. 2014-03-19 11:33:22 +01:00
Jactry Zeng 88214a5874 riched20: Add UTF8 support for EM_SETTEXTEX. 2014-01-27 16:59:15 +01:00
Jactry Zeng eb8f47518e riched20: Use codepage in ME_ToUnicode. 2014-01-27 16:59:08 +01:00
Jactry Zeng 51936be04d riched20: Use CP_UNICODE instead of 1200. 2014-01-06 20:52:40 +01:00
Huw Davies 160f65f24a riched20: Move the various selection setting methods to a common function. 2013-12-06 13:14:58 +01:00
Frédéric Delanoy e81412a4db riched20: Use BOOL type where appropriate. 2013-11-20 11:26:07 +01:00
Piotr Caban d31048f0ae riched20: Fix loop condition while processing control content in WM_CREATE. 2013-10-08 15:39:01 +02:00
Frédéric Delanoy f03d251ef2 riched20: Use BOOL type where appropriate. 2013-10-08 09:09:22 +02:00
Piotr Caban e660bf676c riched20: Set control content in WM_CREATE message. 2013-10-07 19:52:44 +02:00
Andrew Eikum 360afb93b5 riched20: Continue interpreting data as UTF-8 after the first chunk boundary. 2013-10-02 11:01:33 +02:00
Jactry Zeng 1cbdb2aff7 riched20: Add a length return parameter to ME_ToUnicode. 2013-09-10 12:27:37 +02:00
Alexandre Julliard 85f8828560 riched20: Don't bother to unregister classes at process exit. 2013-05-14 11:33:19 +02:00
Huw Davies 5ddfc36cc0 riched20: Add a visual vs logical order flag to the character to position mapping routines. 2013-04-17 14:26:09 +02:00
Huw Davies c409fc13fd riched20: Set the bidi base embedding level. 2013-03-25 14:09:38 +01:00
Andrew Eikum 3f02c24163 riched20: EM_FINDTEXT implementation should match richedit character type. 2013-03-25 14:07:19 +01:00
Huw Davies 7a59014fa2 riched20: Send WM_CHAR notifications. 2013-02-28 21:02:06 +01:00
Huw Davies 86f077b163 riched20: Add an explicit run length member and use it rather than accessing the string length. 2013-01-31 16:32:12 +01:00
Huw Davies 27578f8bb6 riched20: Add a helper to retrieve the run text. 2013-01-30 17:19:31 +01:00
Huw Davies dee40e90ce riched20: Move undo handling to a different set of structs as the display item structs are not a good fit. 2013-01-29 17:50:17 +01:00
Marcus Meissner 3a2de10a9c riched20: Fixed pointer to value out of scope (Coverity). 2012-08-20 10:57:08 +02:00
Qian Hong cb8c500ee6 riched20: Added support for UTF8 BOM stream. 2012-08-17 13:58:11 +02:00
Nikolay Sivov e3f0d40840 riched20: Use proper interface methods macros. 2012-08-13 11:48:23 +02:00
Dan Kegel a59e766ea7 riched20: Accept middle click as paste (like edit control does). 2012-06-19 11:09:49 +02:00
Dylan Smith 2ebfd01b51 richedit: Remove some unused structure fields. 2012-05-14 12:04:24 +02:00
Dylan Smith 18fa3287f6 richedit: Remove always FALSE parameter from ME_PaintContent. 2012-05-08 09:42:16 +02:00
Jason Edmeades efbde389c7 richedit: v1.0 richedit uses CR and LF for enter. 2012-01-23 16:07:41 +01:00
Dylan Smith f61d417a34 richedit: Return number of chars inserted for EM_STREAMIN with SF_RTF. 2011-09-26 12:16:59 +02:00
Dylan Smith e060272de7 richedit: Return number of bytes read for EM_STREAMIN with SF_TEXT. 2011-09-26 12:16:56 +02:00
Amine Khaldi 4b7795a943 riched20: Add a missing break. 2011-02-23 19:23:38 +01:00
Dylan Smith d43cddcc83 richedit: Clear non-default style when changing to plain text mode.
Although the text must be empty for the mode to change to plain text
mode, there still may be a non-default style for the temporary insert
style and style for the end of text run.
2011-01-12 11:32:19 +01:00
Dylan Smith ad056fe7d7 richedit: Check for bits instead of equality in EM_SETCHARFORMAT.
There are unsupported flags documented on MSDN which would cause problems
for the equality checks used in EM_SETCHARFORMAT.  Also, to handle a
combined set of flags they must be checked for in the right order.
2010-07-30 11:36:01 +02:00
Dylan Smith 16d7890426 richedit: Don't change text mode with undo or redo stack. 2010-07-30 11:36:01 +02:00
Dylan Smith 75eef41881 richedit: Return correct values when EM_SETTEXTMODE fails.
The checks for the text length and invalid parameters needed to be swapped,
and the code could be easily simplified.
2010-07-30 11:36:01 +02:00
Dylan Smith dfa80b35b0 richedit: Invalidate without calling UpdateWindow in many cases. 2010-07-29 10:28:00 +02:00
Dylan Smith 1964e603fd richedit: Remove redundant commit and repaint in ME_StreamInText.
ME_StreamInText is only used in one function, ME_StreamIn, which always
calls ME_CommitUndo and ME_UpdateRepaint after calling this function.
2010-07-29 10:27:38 +02:00
Dylan Smith 328a3f1d8c richedit: EN_UPDATE notification is sent on WM_PAINT. 2010-07-29 10:27:30 +02:00
Austin Lund 61e5fec020 riched20: Process messages which arrive before WM_NCCREATE. 2010-07-08 17:33:25 +02:00
Dylan Smith 6072a69d38 richedit: Keep default char format on WM_SETFONT in plain text mode. 2010-06-07 15:27:52 +02:00
Dylan Smith 3f1d3e0ea1 richedit: Simplify redundant code in WM_IME_COMPOSITION. 2010-05-24 11:30:23 +02:00
Dylan Smith e809bc887d richedit: Commit undo items after modifications in WM_IME_COMPOSITION.
ME_InsertTextFromCursor could previously follow the ME_CommitUndo call
leaving uncommitted changes which would cause improper grouping of commits,
or an assertion failure.
2010-05-24 11:30:12 +02:00
Dylan Smith fb7d6b783e richedit: Missing HeapFree in WM_IME_COMPOSITION. (Smatch).
ME_InsertTextFromCursor copies the string passed into it rather than making
taking ownership of it.
2010-05-24 11:30:06 +02:00
Dylan Smith d312d4e33c richedit: Revert commit that caused a regression. (Bug 22758).
Revert commit 049cf5aca0
richedit: Avoid notifying parent window in improper state.

The commit was meant to fix a problem caused by ME_SendSelChange being
called in ME_SendSelChange, but moving the calls to ME_CommitUndo caused
a regression. So this patch reverts the previous commit, and my
following patch will instead fix the bug by moving the call to
ME_SendSelChange out of ME_CommitUndo.
2010-05-19 11:17:55 +02:00
Michael Stefaniuc cf13e8a390 riched20: Avoid using long. 2010-05-17 12:42:33 +02:00
Dylan Smith 049cf5aca0 richedit: Avoid notifying parent window in improper state.
ME_CommitUndo and ME_CommitCoalescingUndo call ME_SendSelChange, which
may notify the parent window that the selection has changed, therefore
should generally be called after wrapping the text. Otherwise, the parent
window may send a message to the editor and cause an assertion failure.
2010-05-17 12:42:31 +02:00
Gerald Pfeifer 6dd4b071cc riched20: Remove variable pCell which is not really used from ME_StreamIn. 2010-05-10 10:11:34 +02:00
Michael Stefaniuc d3bc43b5ed Grammar fixes "is doesn't" => "doesn't". 2010-01-11 11:33:59 -06:00
Michael Stefaniuc 3b45ababfb riched20: Remove some explicit LPARAM/WPARAM casts. 2009-12-28 12:27:13 +01:00
Huw Davies 8808fccd57 riched20: Initialise window size.
Found by Valgrind.
2009-12-16 12:42:40 +01:00
Huw Davies d4383b4498 riched20: Initialise the style flags.
Found by Valgrind.
2009-12-15 16:09:12 +01:00
Huw Davies d88c47fccb riched20: Fix a memory leak.
Found by Valgrind.
2009-12-14 12:04:05 +01:00
Eric Pouech 38df8cfb04 richedit: When inserting an OLE object from an RTF stream, don't force update as the stream is not fully read. 2009-11-09 20:02:03 +01:00
Sergey Khodych 12a417de8a riched20: Implement handling of WM_KEYDOWN VK_TAB in the dialog mode. 2009-10-13 12:38:58 +02:00
Sergey Khodych a50ca4ace0 riched20: Implement handling of WM_KEYDOWN VK_ESCAPE in the dialog mode. 2009-10-13 12:38:54 +02:00
Sergey Khodych 8fb119ba8b riched20: Implement handling of WM_KEYDOWN VK_RETURN in the dialog mode. 2009-10-13 12:38:49 +02:00
Sergey Khodych 851c33ddd9 riched20: Enable the dialog mode after receiving WM_GETDLGCODE message. 2009-10-13 12:38:44 +02:00
Dylan Smith 3fe20bdc7e richedit: Handle to parent window is cached.
The parent window for the richedit control on creation is the one that
receives notify messages, even after the parent has been changed using
SetParent.
2009-09-30 17:41:06 +02:00
Dylan Smith 0342ab0df1 richedit: Use ITextHost interface in ME_LinkNotify.
Using the ITextHost interface allows this notification to be received
for windowless richedit controls.  Windowed richedit conrols have an
ITextHost implementation that will fill in hwndFrom and idFrom, but
these should probably be initialized to 0 for windowless richedit
controls.
2009-09-28 12:54:16 +02:00
Dylan Smith 99b37b2376 richedit: Silence fixme for WM_STYLECHANGING & WM_STYLECHANGED. 2009-09-24 15:15:09 +02:00
Dylan Smith 989bdd1579 richedit: Use ME_MoveCursorChars in ME_FindText to find relative offset.
When a previous character needed to be found, it is simpler to move
existing cursor rather than retravese the linked list to find the offset
again.
2009-08-13 15:35:37 +02:00
Dylan Smith bd4704280d richedit: Replace offsets arg with ME_Cursor for ME_InternalDeleteText.
Offsets are still used within the function, but this patch reduces the
use of it at the entry to the function.
2009-08-13 15:35:17 +02:00
Dylan Smith 02228ee176 richedit: Use ME_Cursor instead of offsets for ME_CharFromPos. 2009-08-13 15:35:01 +02:00
Dylan Smith a69ef26599 richedit: Use ME_Cursor instead of offsets for copying text. 2009-08-13 15:34:54 +02:00
Dylan Smith 60a72583f4 richedit: Use ME_Cursor instead of offsets for ME_UpdateLinkAttribute. 2009-08-13 15:34:47 +02:00
Dylan Smith c92bb271b7 richedit: Use ME_Cursor instead of offsets for ME_GetTextRange. 2009-08-12 17:35:55 +02:00