Commit Graph

470 Commits

Author SHA1 Message Date
Alex Villacís Lasso d2a8461585 richedit: Paragraph may have multiple rows, which should possibly update nHeight.
Otherwise, a paragraph with multiple rows might fail to make the
scrollbar appear when displaying text.
2008-04-29 14:57:13 +02:00
Alex Villacís Lasso 829940458f richedit: Private movement of cursors in text insertion should not cause WM_NOTIFY to be sent.
As text is inserted, the cursor is moved to the end, and then back to
offset 0. A reordering of operations prevents a WM_NOTIFY from being
sent on cursor being moved to the end, and another by being moved
back to the beginning. If the cursor was not at offset 0, then
exactly one WM_NOTIFY must be sent, for the movement from previous
position to the beginning.  With tests to prove this change and the
previous one (modify flag should be off on WM_SETTEXT-caused
WM_NOTIFY).
2008-04-29 14:57:03 +02:00
Alex Villacís Lasso c52bc58816 richedit: WM_SETTEXT - Clear modify step flag before any notifications can be sent.
Otherwise the app-defined WM_NOTIFY callback might see the modify flag
set, even though WM_SETTEXT is supposed to clear it.
2008-04-29 14:56:46 +02:00
Alex Villacís Lasso 3cad256d54 richedit: Fix modify step setting in EM_SETCHARFORMAT.
EM_SETCHARFORMAT with wParam==0 sets default char format and does NOT set modify step flag.
EM_SETCHARFORMAT with wParam==SCF_SELECTION only sets modify step flag when selection is nonempty.
EM_GETMODIFY returns -1, not 1, when modify flag is set.
Tests for the above behavior.
2008-04-29 14:56:23 +02:00
Alex Villacís Lasso 1fa39b50c0 richedit: Only notify selection change when selection has actually changed from previous notification.
Otherwise, redundant and early notifications are sent to apps that do not expect them. Fixes crash #1 with Perfect! TextEdit.
2008-04-29 14:56:11 +02:00
Alex Villacís Lasso cac55008c9 richedit: Implement rule that in 1.0 emulation, a single CR that terminates the text is NOT a line break.
Fix riched32 test that now succeed.
2008-04-29 14:55:26 +02:00
Alex Villacís Lasso 4047df0f56 richedit: Flip the big switch and encode actual CR and LF into end-of-paragraph runs.
Document remaining uses of bEmulateVersion10 and other checks for CRLF in editor.c.
Make RTF reader emit a \r or a \r\n according to emulation, not a \n, which breaks streaming tests.
Remove todo_wine from a bunch of riched32 tests that now succeed.
2008-04-29 14:55:15 +02:00
Alex Villacís Lasso 3a271386ec richedit: Remove indication for bCRLF, now that ME_GetTextW() knows how to honor CR and LF counters.
EM_GETTEXTRANGE and EM_GETSELTEXT are affected by this, so include tests to ensure no behavior was broken.
2008-04-29 14:54:59 +02:00
Alex Villacís Lasso e8aa9dee56 richedit: Modify ME_GetTextW() to honor CR and LF encodings.
ME_GetTextLengthEx should ignore GTL_USECRLF in 1.0 emulation mode.
2008-04-29 14:54:46 +02:00
Alex Villacís Lasso d95cbeef67 richedit: EM_LINELENGTH: honor CR and LF counters.
Add fixup to ME_FindItemAtOffset(), fixes crash by null-pointer access.
Add tests for EM_LINELENGTH.
2008-04-29 14:54:29 +02:00
Alex Villacís Lasso 3968a67eb9 richedit: EM_GETLINE: honor CR and LF counters.
Add richedit 1.0 tests for EM_GETLINE.
2008-04-29 14:54:21 +02:00
Alex Villacís Lasso fd55773680 richedit: Remove reliance on bEmulateVersion10 for end-of-line handling in ME_InternalDeleteText. 2008-04-29 14:54:12 +02:00
Alex Villacís Lasso 8d37388fe7 richedit: Fixups to move over to reliance on CR and LF counters.
Text streamout now honors CR and LF counters.
Tests to pin down required EM_STREAMOUT behavior.
2008-04-29 14:54:05 +02:00
Alex Villacís Lasso d47f66191e richedit: Add support for encoding number of CR and LF contained within a line break. 2008-04-29 14:53:46 +02:00
Eric Pouech 046cfcfd22 richedit: Ensure wrapping is done all the time after inserting an RTF stream. 2008-04-25 11:44:00 +02:00
Eric Pouech 60234f8fc4 richedit: Properly handle the background in case of border in paragraph. 2008-04-25 11:43:54 +02:00
Alex Villacís Lasso 4f95cf7072 riched20: Reject RTF that is recognized as invalid. 2008-04-24 22:12:13 +02:00
Alex Villacís Lasso d10256f309 riched20: Implement ignoring of last \par for EM_STREAMIN - 1.0 emulation. 2008-04-24 22:12:09 +02:00
Alex Villacís Lasso 7148f92c4c riched20: Implement ignoring of last \par for EM_STREAMIN. 2008-04-24 22:11:58 +02:00
James Hawkins ead42d7f7f riched20: Fix a few tests that fail in XP and up. 2008-04-24 11:51:21 +02:00
Andrew Talbot 0ba8677430 riched20: Remove unused variables. 2008-04-24 11:49:53 +02:00
Alex Villacís Lasso a9caca3eda riched20: Yet more tests for EM_STREAMIN. 2008-04-24 11:49:14 +02:00
Alex Villacís Lasso e0af297466 richedit: Accept RTF stream that does not start with {\rtf1 in 1.0 emulation. 2008-04-22 11:56:04 +02:00
Alex Villacís Lasso 2353e1d280 richedit: EM_STREAMIN tests for richedit 2.0. 2008-04-22 11:55:12 +02:00
Alex Villacís Lasso 820de0bd59 riched32: Implement a portion of suggested interpretation of CRLF handling for richedit 1.0 emulation.
Fixes a few todos introduced by previous patch.
2008-04-21 20:27:52 +02:00
Alex Villacís Lasso 46ff4a6f16 riched20: EM_SETTEXTEX supports RTF strings, with tests. 2008-04-21 20:27:17 +02:00
Alex Villacís Lasso dfcebfb22e riched20: Fix behavior of EM_REPLACESEL with painting disabled. 2008-04-21 20:26:54 +02:00
Austin English aab8fae59a Spelling fixes. 2008-04-21 14:25:05 +02:00
Austin English 313a85f163 Spelling fixes. 2008-04-17 12:25:57 +02:00
Eric Pouech 296a59da7e richedit: Force window update when the word wrap option has changed. 2008-04-14 23:50:12 +02:00
Eric Pouech 91d57af637 richedit: For setting word wrapping, native only uses a null vs non null value. 2008-03-24 12:12:18 +01:00
Eric Pouech df7ab004ce richedit: Fixed a bogus computation of paragraph indentation. 2008-03-24 12:12:11 +01:00
Eric Pouech 8b6eea0a63 richedit: Fixed the initialization of the word wrap mode. 2008-03-24 12:12:07 +01:00
Eric Pouech 2870f21d06 richedit: Added missing fields to be reinitialized for the RTF \pard token. 2008-03-24 11:35:53 +01:00
Eric Pouech 4a01ddca25 richedit: Allow reading an enhanced metafile from an RTF stream. 2008-03-17 14:38:57 +01:00
Eric Pouech 984e4167af richedit: Don't force cursor change when it's not needed. 2008-03-17 14:38:36 +01:00
Eric Pouech 5d36c47e1f richedit: Fixed object leaks generated by context creation & destruction. 2008-03-17 14:37:58 +01:00
Eric Pouech 33d7cea120 richedit: Added support for EM_SETTARGETDEVICE with a NULL DC. 2008-03-17 14:37:43 +01:00
Eric Pouech 9c6c9d63a2 richedit: Use the FW_ constants instead of the raw values. 2008-03-17 14:36:57 +01:00
Eric Pouech 6e02f5db4b richedit: In RTF reader, set both bold and weight attributes, so that we don't care about priority between the two. 2008-03-17 14:36:41 +01:00
Eric Pouech 0c2c43d39b richedit: Correctly set the pitch and family for a font when reading an RTF stream. 2008-03-17 14:36:30 +01:00
Eric Pouech a86d7bdcea richedit: Pass left margin around when computing the size of a run, so that a tab will get a correct size. 2008-03-17 14:36:06 +01:00
Eric Pouech 34a4f9227a richedit: Assign equivalent structures instead of copying them. 2008-03-17 14:35:40 +01:00
Eric Pouech a64c22c8b1 richedit: Store shift-enter (keyboard) and \line (rtf) as end of row (and emit \line while saving in RTF). 2008-03-17 14:34:44 +01:00
Eric Pouech 4fb2dfc9f0 richedit: Added support for end of line inside paragraphs. 2008-03-17 14:34:24 +01:00
Eric Pouech 513fcfe48f richedit: Fixed typo in bitmap scaling (for OLE objects). 2008-03-17 14:34:14 +01:00
Eric Pouech 68ccc4aec6 richedit: When handling \pard in RTF stream, really resets all paragraph styles. 2008-03-17 14:34:00 +01:00
Eric Pouech cb4a41b806 richedit: Fix reading paragraph left & first indentation attributes. 2008-03-17 14:20:16 +01:00
Eric Pouech f628a1c245 richedit: Added support for reading DI bitmaps in RTF streams. 2008-03-17 14:20:07 +01:00
Eric Pouech 9f5fa9ea45 richedit: Properly set the border width while parsing RTF stream. 2008-03-17 14:18:41 +01:00
Eric Pouech 9b2e552bf4 richedit: Prevent division by zero when 0-width border is used. 2008-03-17 14:18:36 +01:00
Andrew Talbot 612e4c2b17 riched20: Assign to structs instead of using memcpy (with typo fixes). 2008-03-14 11:21:33 +01:00
Rob Shearman 48000893f9 makefiles: Simplify the use of the IMPORTLIB variable in the DLL makefiles.
Only specify the root to keep platform-specifics out of the individual 
DLL makefiles.
2008-03-04 20:55:01 +01:00
Francois Gouget 1552f22acf riched20: Fix the name of the lpUsedDefChar field of GETTEXTEX. 2008-02-06 12:43:53 +01:00
Eric Pouech 9c20cdfea8 riched20: Make use of the size info in REOBJECT if present. 2008-02-05 11:13:33 +01:00
Eric Pouech bcbf9eeb2d riched20: Start implementing object reading out RTF stream. 2008-02-05 11:13:17 +01:00
Eric Pouech e5f91bab15 riched20: Added support for image reading from RTF stream. 2008-02-05 11:13:00 +01:00
Eric Pouech 1e62b0e3b0 riched20: Support a couple of paragraphs attributes out of RTF stream reading. 2008-02-05 11:12:43 +01:00
Eric Pouech 251153806d riched20: Invert graphics when they are under the selection. 2008-02-05 11:12:23 +01:00
Eric Pouech d014db68d4 riched20: Correctly handle the wrapping when graphics are used.
Get rid of infinite loops when run's width was larger than the global
available width.
2008-02-05 11:12:18 +01:00
Eric Pouech 00b48f1d21 riched20: Handle the zoom in OLE objects. 2008-02-05 11:11:44 +01:00
Eric Pouech 00de77517a riched20: Start handling OLE objects inside richedit. 2008-02-05 11:11:32 +01:00
Bang Jun-young 8e57a41913 riched20: Include wine/port.h for vsnprintf(). 2008-02-04 14:18:20 +01:00
Rob Shearman 4bff248783 riched20: Always treat the nCount variable in the EM_GETTEXTEX handler as a character count.
Convert ex->cb into a character count before assigning it to nCount.

Remove some dubious minus ones that would result in different character 
counts for the Unicode and ANSI paths.
2008-01-21 12:35:18 +01:00
Rob Shearman 374f6ec616 riched20: The wParam parameter to WM_GETTEXT contains the number of characters, not the number of bytes.
Fix up some places in the WM_GETTEXT handler where it was assumed that 
it was a byte count.
2008-01-21 12:35:05 +01:00
Alexander Nicolaysen Sørnes 9f41a53c2a riched20: Don't clear CFM_UNDERLINE flag when applying styles where it is set. 2008-01-21 11:51:15 +01:00
Andrew Talbot 5a5a9bcd5d riched20: Remove unneeded casts. 2008-01-17 13:42:14 +01:00
Alexander Nicolaysen Sørnes eec14a4de6 riched20: Include selection bar size in POSFROMCHAR. 2008-01-15 11:37:30 +01:00
Eric Pouech d65daea454 richedit: Uniformly handle the bPitchAndFamily field out of CHARFORMAT. 2008-01-07 12:14:24 +01:00
Eric Pouech cb4f8a80de richedit: Check return of GetScrollInfo before accessing the returned structure. 2008-01-07 12:14:10 +01:00
Eric Pouech f33a27517b richedit: Initialize all the cursors at editor creation. 2008-01-07 12:14:01 +01:00
Eric Pouech a3597cbe3b richedit: Only copy the charset when it's defined. 2008-01-07 12:13:54 +01:00
Austin English 464258b7cd Spelling fixes. 2008-01-03 13:08:54 +01:00
Eric Pouech 39aa3beaf2 richedit: Simplify first para style handling by creating a context. 2008-01-02 13:58:09 +01:00
Eric Pouech d5478118a1 richedit: Don't force repaint while the redraw flag is off. 2008-01-02 13:57:53 +01:00
Eric Pouech f43570cbf0 richedit: Optimizations for the style selection.
Use a ME_Context for style selection/unselection.
Store the (x,y) dpi information for a given DC in the corresponding ME_Context structure.
2008-01-02 13:57:37 +01:00
Eric Pouech 475b45d8ab richedit: Don't recreate the DC all the time, but use uniformely a ME_Context structure where needed. 2008-01-02 13:56:02 +01:00
Eric Pouech 4cecb5dc70 richedit: Move init code after some sanity checks to avoid unneeded computations. 2008-01-02 13:55:53 +01:00
Eric Pouech d48905cf21 richedit: Small optimisation in ME_GetSelectionInsertStyle. 2008-01-02 13:55:24 +01:00
Eric Pouech e9be142d78 richedit: Rewrote FindPixelPos so that it always return something.
Made the function static as well.
2008-01-02 13:55:14 +01:00
Eric Pouech d319033a97 richedit: Added support for intra-paragraph line space. 2008-01-02 13:54:49 +01:00
Eric Pouech f1b029ef6a richedit: Added support for spaces above & below paragraphs. 2008-01-02 13:54:25 +01:00
Eric Pouech caa37c749a richedit: Now drawing the paragraph borders (if any) from paraformat2. 2008-01-02 13:54:01 +01:00
Eric Pouech 28cc0f9e69 richedit: Fix the para computation when zoom is used. 2008-01-02 13:52:52 +01:00
Eric Pouech f4fd063101 richedit: Enforce usage of paraformat2 fields instead of homegrown ones for paragraphs. 2008-01-02 13:52:10 +01:00
Eric Pouech 0e8c087561 richedit: Properly copying the paraformat2 structure for paragraphs. 2008-01-02 13:51:49 +01:00
Eric Pouech 8f60c8c46e richedit: Now dumping all fields from the paraformat2 structure. 2008-01-02 13:50:38 +01:00
Eric Pouech 566912dc3b richedit: Correctly initialize the paraformat structure. 2008-01-02 13:50:04 +01:00
Eric Pouech 0549b9009a richedit: Simplified handling of background brush while painting. 2008-01-02 13:49:57 +01:00
Eric Pouech 2602a39bd9 richedit: Now painting the newly supported underline types. 2008-01-02 13:48:53 +01:00
Eric Pouech 6b591ef23a richedit: Extend the usage of underlinetype from charformat2 in richedit. 2008-01-02 13:48:11 +01:00
Eric Pouech 13f86afe1f richedit: Don't allow recursive EN_REQUESTRESIZE notifications. 2008-01-02 13:47:41 +01:00
Eric Pouech c2631d8537 richedit: Correctly copy the pitch and family field. 2008-01-02 13:47:06 +01:00
Eric Pouech 8d0799a741 richedit: Fully initialize the first style. 2008-01-02 13:46:53 +01:00
Eric Pouech be785a295f richedit: Correctly set the CFM_WEIGHT in charformat2. 2008-01-02 13:46:42 +01:00
Eric Pouech a607ad316e richedit: Fixed a couple of charformatXXm structure conversions because of alignment issues. 2008-01-02 13:46:22 +01:00
Eric Pouech 71f52d54bd richedit: Added support for some message (key, mouse) filtering events. 2008-01-02 13:45:08 +01:00
Dmitry Timoshkov 5a6e0ea46f riched20: Remove a redundant parameter from trace. 2007-12-20 12:17:26 +01:00
Maarten Lankhorst 8e639ec392 riched20: Fix bugs in EM_SETOPTIONS.
Add SELECTIONBAR to mask, and use settings rather then lParam. 2 subtle
bugs that prevent selectionbar from working.
2007-12-18 12:32:55 +01:00
Maarten Lankhorst b81335501f riched20: Implement ECO/EM SELECTIONBAR. 2007-12-17 11:34:40 +01:00