Dylan Smith
31951a099d
richedit: Added tests for EM_POSFROMCHAR for pos around end of text.
2008-10-22 13:54:54 +02:00
Dylan Smith
5bcb15dd7f
richedit: Handle ctrl-key shortcuts on WM_KEYDOWN.
2008-10-22 13:54:53 +02:00
Dylan Smith
aa3b75f6b7
richedit: Added tests for ctrl-key shortcut handling in WM_KEYDOWN.
...
Previously the shortcuts for cut, copy, paste, undo, redo, and select
all were being handled during the WM_CHAR message. These tests show
that these shortcuts should be handled with the WM_KEYDOWN message
instead.
2008-10-22 13:54:53 +02:00
Francois Gouget
5eb8ab3deb
riched20/tests: Add a trailing '\n' to an ok() call.
2008-10-20 11:37:27 +02:00
Dylan Smith
c70f6a3933
richedit: Use the DefWindowProc to implement WM_SETREDRAW.
2008-10-20 11:37:27 +02:00
Dylan Smith
ae3394271d
richedit: Prevent EN_UPDATE notifications when window isn't visible.
2008-10-20 11:37:27 +02:00
Dylan Smith
30ebfa6d74
richedit: Test to see if WM_SETREDRAW removes the windows visibility.
2008-10-20 11:37:27 +02:00
Dylan Smith
b5f59b9962
richedit: Test for EN_UPDATE notification when window isn't visible.
2008-10-20 11:37:26 +02:00
Dylan Smith
f24678b285
richedit: Scroll cursor into view even with redraw turned off.
2008-10-18 19:32:43 +02:00
Dylan Smith
582bdadeff
richedit: Test changes in scrollbar's visibility with redraw disabled.
...
Test to verify that the scrollbar does need to be shown or hidden while
redraw is disabled.
2008-10-18 19:32:33 +02:00
Dylan Smith
bb4e38665a
richedit: Test to see if wrapping happens with redraw disabled.
2008-10-18 19:32:27 +02:00
Dylan Smith
a959f7d74b
richedit: Tests for notifications while redraw is disabled.
...
There were some notifications that weren't sent in ME_UpdateRepaint
while redraw was disabled, so this verifies that they are not sent
with redraw disabled.
2008-10-18 19:32:18 +02:00
Dylan Smith
2271226bfd
richedit: Added test for auto scroll behaviour with redraw disabled.
2008-10-18 19:26:54 +02:00
Michael Stefaniuc
b9f3e3626d
riched20: Remove superfluous backslashes at end of lines.
2008-10-16 11:29:04 +02:00
Dylan Smith
1ed84f0dcc
richedit: Fixed centering and right align with word wrap disabled.
2008-10-13 13:17:53 +02:00
Dylan Smith
a32f1f2c1c
richedit: Account for selection bar in calculating available width.
2008-10-13 13:17:42 +02:00
Andrey Turkin
8d18cb8caf
riched20: Add spare area to ITextServicesImpl to work around broken apps.
2008-10-13 11:45:23 +02:00
Dylan Smith
e6b16cce77
richedit: Added test for word wrapping behaviour.
2008-10-13 11:42:22 +02:00
Dylan Smith
440db38eba
richedit: Moved optional message loop in tests to its own function.
2008-10-13 11:42:16 +02:00
Dylan Smith
b8fe020077
richedit: Added DestroyWindow call to clean up the end of a test.
2008-10-13 11:42:01 +02:00
Dylan Smith
197f3f4c23
richedit: Added EM_SETMARGINS to the list of unsupported messages.
2008-10-13 11:41:55 +02:00
Dylan Smith
1d21d24a51
richedit: Show arrow cursor over scrollbar.
2008-10-06 13:54:49 +02:00
Dylan Smith
4785c2fa2d
richedit: ES_AUTOHSCROLL window style disables word wrapping.
2008-10-06 13:52:25 +02:00
Dylan Smith
bdf181b4d3
richedit: Use RTF reader for text starting with {\urtf.
2008-10-06 13:49:12 +02:00
Dylan Smith
e6c3a2beee
richedit: Unsigned cast char to avoid EOF equality.
2008-10-06 13:06:38 +02:00
Dylan Smith
930f8f5af6
richedit: Removed invalid assertion.
...
The assertion was not valid, because it neglected to take into account
the situation where a line break is forced with a MERF_ENDROW run
(caused by \line control word or pressing Shift-Enter). This means
that spaces can cause a line wrap after a forced line break as well as
after a paragraph break, so we cannot assert that it is the first row
in the paragraph.
2008-10-06 13:06:24 +02:00
Dylan Smith
af47ac09d5
richedit: Avoided testing for undocumented behaviour causing test to fail.
...
The test for EM_GETLINE was testing to make sure the null terminating
character was written at the end of the text as long as the buffer was
long enough, and also tested to make sure that no other bytes were
written after this null terminating character. This is consistent with
Windows 2000 and up, but not for previous versions of Windows.
2008-10-06 13:06:13 +02:00
Dylan Smith
0589b61848
richedit: Swapped the expected and destination buffers in a test.
2008-10-06 13:06:04 +02:00
Dylan Smith
5157798836
richedit: Print hex string for strcmp test failing on Windows 95, 98 & NT4.
2008-10-02 10:41:02 -05:00
Dylan Smith
c2bab443fa
richedit: Made sure table row gap/offset is copied on append row.
2008-10-01 11:41:01 -05:00
Dylan Smith
a3ac5ef094
richedit: Fixed a bug preventing streaming out nested table properties.
2008-10-01 11:40:52 -05:00
Dylan Smith
3af4419688
richedit: Added code to stream out table border properties.
...
This code was simply missing, since the table border properties are
already stored and displayed.
2008-10-01 11:40:34 -05:00
Dylan Smith
ee5342e432
richedit: Prevent assertion failure when streaming out nested tables.
...
The table properties are streamed out at the start of the table for
non-nested tables, and at the end of the table for nested tables. The
assertion caught the fact that I didn't get the start of the table row
for nested tables before trying to stream out the properties.
The call to ME_GetTableRowStart will handle both of these cases by
getting the table row start paragraph and asserting that it is found.
This call was also the reason for removing the const qualifier on one
of the parameters.
2008-10-01 11:40:20 -05:00
Dylan Smith
fac8e957c5
richedit: Prevent font or colour buffer overflow on stream out.
...
Static sized buffers are used for storing the colours and fonts, so
there needs to be a check to prevent these buffer from overflowing.
2008-10-01 11:40:04 -05:00
Dylan Smith
3df78710a9
richedit: Make sure border properties are saved for undo/redo.
...
Previously the paragraph and cell border properties were lost when
deleting the text, then undoing the deletion. This would cause tables
to lose the colour and width of the table border.
2008-10-01 11:39:56 -05:00
Dylan Smith
0699332b37
richedit: Fixed test failing on windows version with larger font sizes.
2008-09-30 10:18:02 -05:00
Dylan Smith
c13fd6a44b
richedit: Fixed test failure that happend on older builds of riched20.dll.
2008-09-30 10:16:27 -05:00
Dylan Smith
f78a841973
richedit: Removed space in front of function signature.
2008-09-22 11:49:29 +02:00
Detlef Riekenberg
9593c9e6f5
dlls: Do not use __WINE_ALLOC_SIZE between void and *.
2008-09-19 11:41:25 +02:00
Dylan Smith
72d754108a
richedit: Removed a redundant condition.
2008-09-19 11:40:48 +02:00
Dylan Smith
87292d81ee
richedit: Avoid unconditionally rewrapping text on scroll.
2008-09-18 12:32:50 +02:00
Dylan Smith
da058cbf67
richedit: Handle deletion at the end of text properly.
2008-09-18 12:32:44 +02:00
Dylan Smith
2aa69c6c9e
richedit: Prevent buffer overrun for tab stops buffer.
2008-09-12 12:35:29 +02:00
Dylan Smith
fab258022e
richedit: Fixed bugs in handling unterminated nested tables in RTF.
2008-09-12 11:55:43 +02:00
Dylan Smith
0d8e9e622f
richedit: Make sure the nested tables' RTF properties are not skipped.
2008-09-12 11:55:30 +02:00
Dylan Smith
d7ff24378a
richedit: Enter inserts newline before table at start of document.
2008-09-12 11:55:22 +02:00
Dylan Smith
0843768919
richedit: Enter at the end of a table row appends a new row.
2008-09-12 11:55:14 +02:00
Dylan Smith
88a3a8a9c0
richedit: Don't put cursor in the table row start paragraph.
2008-09-12 11:55:08 +02:00
Dylan Smith
9a7d475db8
richedit: Avoid acting on control words in skipped RTF groups.
...
Previously the control words in skipped groups were being processed by
the read hook on the RTF parser. By moving this code into the class
callbacks for the parser, the skipped groups actually remain skipped.
2008-09-11 12:38:20 +02:00
Juan Lang
fb30d61c97
riched20: Use helper function rather than goto to return found position.
2008-09-11 11:45:23 +02:00
James Hawkins
ce8e69d4b1
riched20: Fix two typos that cause a failing test.
2008-09-09 11:46:14 +02:00
Reece Dunn
5740ad6432
richedit20: Fixed building the tests on msvc.
2008-09-08 14:08:21 +02:00
James Hawkins
898dd57f5d
riched20: Fix several failing test across several platforms.
2008-09-08 12:47:22 +02:00
Marcus Meissner
96412ee564
Annotate with allocation size attribute.
2008-09-05 11:22:26 +02:00
James Hawkins
6b1c6eebab
riched20: Trace the result of a failing test.
2008-09-03 13:14:51 +02:00
Francois Gouget
4823b2c7bf
Assorted spelling fixes.
2008-09-02 13:58:21 +02:00
Dylan Smith
b5e9aed268
richedit: Prevent integer overflow in wrapping code with no wrap.
2008-09-02 11:57:14 +02:00
Dylan Smith
f11fe1c7a9
richedit: Prevent typing text at end of table row.
2008-08-29 13:42:47 +02:00
Dylan Smith
36be721027
richedit: Prevent streaming in rich text at end of table row.
2008-08-29 13:41:41 +02:00
Dylan Smith
ff1f3d76b7
richedit: Copy cell border properties when appending a row to the table.
2008-08-29 13:41:34 +02:00
Dylan Smith
ab6ca01471
richedit: Fixed a bug in protecting table cell boundaries.
2008-08-29 13:41:27 +02:00
Dylan Smith
238fd58a09
richedit: Pressing tab with selection back to start of table.
2008-08-29 13:41:18 +02:00
Michael Stefaniuc
9c62181a38
riched20: Remove redundant NULL check before HeapFree (Smatch).
2008-08-19 12:55:00 +02:00
Dylan Smith
ddc107bd26
richedit: Added support for changing cell border colours.
2008-08-18 17:15:57 +02:00
Dylan Smith
421c5b0e02
richedit: Borders are now drawn for tables and nested tables.
2008-08-18 17:15:57 +02:00
Dylan Smith
967c148a68
richedit: Borders are drawn for simple tables.
2008-08-18 17:15:57 +02:00
Dylan Smith
a47d4a4c3a
richedit: Adjust table spacing with horizontal gap and left edge.
2008-08-18 17:15:57 +02:00
Dylan Smith
b628482d68
richedit: Removed an unused local variable and assignments to it.
2008-08-18 17:15:57 +02:00
Dylan Smith
fe1a24ff88
richedit: Substitute space for \tab and \par control words for simple tables.
...
For simple tables cells are represented with tabs, and a table row is
ended at the end of the paragraph, so native richedit controls
substitute spaces for \tab and \par rich text format control words.
2008-08-18 17:15:57 +02:00
Dylan Smith
a382e35600
richedit: EM_[SG]ETPARAFORMAT returned the wrong value.
...
The values returned by EM_SETPARAFORMAT and EM_GETPARAFORMAT previously
indicated an error, and the included tests shows that Windows behaves as
documented.
2008-08-18 17:15:57 +02:00
Dylan Smith
59195ed2ec
richedit: Added in support for streaming in and out nested tables.
2008-08-18 14:34:35 +02:00
Dylan Smith
300db3765f
richedit: Each cell can contain multiple paragraphs in msftedit.
2008-08-18 14:34:11 +02:00
Dylan Smith
bc61a637b9
richedit: Reversed deletion direction so tables are inserted forwards.
2008-08-18 14:34:10 +02:00
Dylan Smith
d29f671d1a
richedit: Protect deletion of cell boundaries when not deleting row.
2008-08-18 14:34:10 +02:00
Dylan Smith
bf5ccefc4c
richedit: Handle tab key properly within table cells.
...
Within table cells the tab key moves to the next cell in the table, or creates
a new table row when at the end of the table.
2008-08-18 14:34:10 +02:00
Dylan Smith
608c54ee69
richedit: Word/Line/Paragraph selection had selection anchor on wrong side.
...
After selection a word, line, or paragraph with multi click selection or using
the selection bar, then shift can be held and the arrows can be used to move
one of the ends of the selection.
2008-08-18 14:34:10 +02:00
Dylan Smith
e568e15142
richedit: Removed assumption about the order of rtf indent control words.
...
Previously the calculations of dxStartIdent and dxOffset depended on
their order.
2008-08-18 14:34:10 +02:00
Dylan Smith
6a65f3b38e
richedit: Fixed rtf reader bug that caused large start indents.
...
The problem was that the paragraph format was being retrieved,
slightly modified and then used to set the paragraph format, without
limiting the mask to what was being set. The PFM_OFFSETINDENT mask flag
being valid meant that dxStartIndent specifies a relative offset, thus
dxStartIndent was doubled.
2008-08-18 14:34:10 +02:00
Dylan Smith
4e56a3cda9
richedit: Joined paragraph format depends on number of characters deleted.
2008-08-05 14:09:37 +02:00
Dylan Smith
11c8039699
richedit: Use tabstops to store cell positions.
2008-08-05 14:09:37 +02:00
Dylan Smith
edb6304379
richedit: Added OleInitialize for clipboard operations.
2008-07-31 13:01:27 +02:00
Hongbo Ni
3cb685c861
riched32: Implement WM_UNICHAR support.
2008-07-29 14:09:23 +02:00
Dustin Brody
3a805d289e
riched20: EM_SETTEXTTEX obeys ST_SELECTION with RTF inputs.
2008-07-29 12:50:35 +02:00
Alex Villacís Lasso
acfb6ea210
richedit: Do not read actual scrollbar state for scrollbar update, use internal state instead.
2008-07-23 13:05:27 +02:00
Alex Villacís Lasso
9d39754e93
richedit: Tests for WM_SIZE/scrollbar recursion bug, with todo_wine.
...
This is a minimal model of what happens in Corman Lisp 3.0 -
subclassed window class that unconditionally calls ShowScrollBar() to
force scrollbar visibility.
2008-07-23 13:04:56 +02:00
Alex Villacís Lasso
47871f69a1
richedit: More tests for visibility behavior of richedit scrollbars, with todo_wine.
...
Alternate method of forcing (in)visibility of scrollbars, with SetWindowLongA().
2008-07-23 13:04:41 +02:00
Alex Villacís Lasso
86e9e0720c
richedit: Tests for visibility behavior of richedit scrollbars, with todo_wine.
...
Some applications have never heard of ES_DISABLENOSCROLL and attempt
to force scrollbars to be always shown (with ShowScrollBar() or
similar) when otherwise richedit would hide them. If richedit attempts
to wrestle control back, a recursive loop of requests can result if
app overrides WM_SIZE behavior. Apparently native never reads the
scrollbar state, and operates from some sort of internal state, so
that scrollbars can be modified externally without native trying to
wrestle back control. This is confirmed by attached tests. An
exception: EM_SCROLL will restore visibility to a scrollbar that was
forcibly hidden.
2008-07-23 13:04:30 +02:00
Alex Villacís Lasso
43cf3b80af
richedit: Shorten EM_AUTOURLDETECT tests.
...
EM_AUTOURLDETECT tests are taking too much time, so this patch tests
just one URL and one non-URL for all messages but WM_SETTEXT. Also,
remove one trace that spams the output needlessly.
2008-07-22 13:01:57 +02:00
Dylan Smith
e86a1d623a
richedit: Fixed regression that caused endless loop.
2008-07-18 11:32:38 +02:00
Eric Pouech
6ef6f7167d
richedit: Add an assert to point out what we're expecting.
2008-07-17 10:53:41 +02:00
Dylan Smith
97d56caafe
richedit: Fixed regression caused by destroying the caret.
...
The regression was caused by destroying the caret when it didn't need to
be shown in the richedit control, but this affected other controls.
2008-07-16 19:56:24 +02:00
Dylan Smith
e3efa88c45
richedit: Cannot undo setting of default character format.
...
This also reverts commit 2b52dd845097f16076c0185b02a003f63898dcab:
wordpad: Empty the richedit undo buffer on creation.
The reverted commit I created to fix an issue that only applied to Wine,
but it just masked the issue which was in richedit controls. The
default character format was set in two places while wordpad was
starting up, and caused wordpad to have two undo items at startup.
2008-07-14 12:22:44 +02:00
Dylan Smith
43ad427a15
richedit: Enforce the maximum font size.
...
Trying to set the font size to a value larger than 1638
in points (yHeightCharPtsMost) using EM_SETCHARFORMAT will cause it to be
set to actually set to the maximum.
2008-07-14 12:22:13 +02:00
Aurimas Fischer
88c25518d5
richedit: Spelling fixes.
2008-07-14 12:21:55 +02:00
Dylan Smith
0f14d65c70
richedit: Use system colour for highlighting after v2.0.
...
In version 1.0 of the richedit controls highlighting is done by
inverting the colours. Version 2.0 and up highlight instead draw
the text using system colours for the background and the text.
2008-07-11 14:25:17 +02:00
Dylan Smith
9bcfa942a0
richedit: Prevented underlining the end of paragraph character.
2008-07-11 14:25:02 +02:00
Dylan Smith
5ec188d955
richedit: Tabs are now highlighted and underlined.
2008-07-11 14:24:51 +02:00
Dylan Smith
db3991257f
richedit: Handle overflow of only spaces on first line of paragraph.
...
The uncommon case that this patch handles is enough whitespace being
on the first line of a paragraph to cause it to wrap. In this case the
first non-space character will be wrapped onto the next line.
2008-07-10 18:13:38 +02:00
Dylan Smith
feda29bb0c
richedit: Fixed position of runs in some situations during wrapping.
...
Runs that are skipped over still need to affect the wrapping position,
otherwise they won't affect further run positions.
2008-07-10 18:13:25 +02:00
Dylan Smith
49468e1824
richedit: Tabs cause lines to wrap but not end of paragraph run.
2008-07-10 18:13:13 +02:00
Dylan Smith
e4007e9f97
richedit: Removed redundant wrapping code.
...
Lines in ME_WrapHandleRun were removed because ME_CalcRunExtent is
already called unconditionally just before it in the call to
ME_WrapSizeRun.
2008-07-10 18:12:48 +02:00
Francois Gouget
dbaec0a101
Assorted spelling fixes.
2008-07-10 13:40:15 +02:00
Dylan Smith
7de6c2674a
richedit: Added more conditional cursor changes.
...
Previously the cursor was either an IBEAM, or a reversed arrow when over
the selectionbar.
2008-07-10 12:16:58 +02:00
Dylan Smith
d293b3fc98
richedit: Prevented cursor flicker while moving over selection bar.
...
When the cursor is moved over the selection bar, without holding any
mouse buttons down, the cursor would be repeatably set between the
normal cursor, set by DefWindowProc for the WM_SETCURSOR message, and
the reversed cursor, set by ME_MouseMove.
2008-07-10 12:16:39 +02:00
Dylan Smith
12bc51ca26
richedit: Fixed 2 minor paragraph format effect errors.
...
In ME_SetParaFormat the wEffects that were being set needed to be set
rather than the dwMask.
2008-07-09 11:31:22 +02:00
Dylan Smith
8172d69e8f
richedit: Set the default paragraph format consistently.
...
I created a function to set the default paragraph format to ensure
consistency when this is done. This initial paragraph format is also
now more consistent with native richedit controls. The dwMask value
always appears to have the same value when retrieved from the native
richedit controls, so all the mask values are now initialized when the
PARAFORMAT2 structure is created.
2008-07-09 11:31:22 +02:00
Dylan Smith
aba425eb70
richedit: PFE_TABLE flag is now used instead of private bTable value.
...
The PARAFORMAT structure has a bit in wEffects to indicate whether the
paragraph is a table or not, so this should be used instead of a private
bTable value, since this structure can be retrieved with EM_GETPARAFORMAT.
2008-07-09 11:31:21 +02:00
Dylan Smith
eb4ed9cadf
richedit: Removed unused variable bCaretShown in ME_TextEditor.
2008-07-08 21:08:53 +02:00
Michael Stefaniuc
0164bffd9a
riched20: Fix typo.
2008-07-08 20:37:30 +02:00
Alexandre Julliard
79c64acc7b
tests: Don't depend on the static uuid libraries in the tests.
...
This avoids trouble with the broken MingW libraries when
cross-compiling the tests.
2008-07-08 17:51:45 +02:00
Dylan Smith
762e5818d1
richedit: Hide cursor when text is selected.
...
The cursor should only be shown when there is no selection, since this
is how it is done in Windows. This patch avoids showing the cursor when
there is a selection, and destroys the cursor when a selection is made.
2008-07-08 10:44:45 +02:00
Dylan Smith
69cf4e9ac4
richedit: Implemented triple click selection.
2008-07-08 10:44:32 +02:00
Dylan Smith
7c352b9638
richedit: Implemented paragraph selection.
2008-07-08 10:44:12 +02:00
Dylan Smith
abefc28fe7
richedit: Fixed drag and shift selection for words and lines.
...
Previously word drag and shift selection was not implemented. Line
drag selection was working, but shift selection wasn't.
2008-07-08 10:43:55 +02:00
Dylan Smith
ebded1636b
richedit: Fixed Valgrind error related to undoing.
...
The error was a memory access of a freed object. In ME_AddUndoItem I
checked the top of the undo stack to end a coalescing undo transaction,
assuming that this should be either a valid undo item, or NULL, instead
it was already freed.
2008-07-07 14:16:07 +02:00
Dylan Smith
5b2bdc06d0
richedit: Fixed double click issues by sharing code with single click.
2008-07-07 14:16:07 +02:00
Dylan Smith
379835b634
richedit: Made sure word selection selects only one word.
2008-07-07 14:16:07 +02:00
Dylan Smith
2eec4f03ed
richedit: Fixed the selection bar width.
2008-07-07 11:10:49 +02:00
Dylan Smith
db95d69f99
richedit: Made sure the caret position is stored when moving up/down.
...
The caret's x position is stored in ME_TextEditor.nUDArrowX so that when
the caret is moved up or down, it will stay along the same horizontal
position, or at the end of a line. Unfortunately, the value stored in
nUDArrowX was being unconditionally discarded in ME_ArrowKey, preventing
it from serving its purpose.
2008-07-07 11:10:33 +02:00
Dylan Smith
31a2d64fa4
richedit: Fixed simulated keyboard events on tests.
2008-07-03 13:07:45 +02:00
Dylan Smith
2a139746cc
richedit: Added missing DestroyWindow in a test.
2008-07-01 13:47:03 +02:00
Juan Lang
c40c08b3d3
richedit: Only send update events in 1.0 emulation mode if the event mask specifies it.
...
Fixes a crash in native cryptui.dll when viewing certificate properties.
2008-07-01 13:45:37 +02:00
Dylan Smith
1bec9bb440
richedit: Calculate tab positions relative to end of selection bar.
2008-06-30 12:10:18 +02:00
Dylan Smith
66f948c010
richedit: Clicking below end of text now selects closest character.
...
Before the end of the text was selected when clicking below the end of
the text, rather than using the x position to find the appropriate
character on the last row that is closest to the pixel position.
2008-06-30 12:10:02 +02:00
Dylan Smith
fad2b57cd7
richedit: Ensure caret is seen if moved past end of view over trailing spaces.
2008-06-27 11:09:37 +02:00
Dylan Smith
438d8e1c58
richedit: Caret size must match font size characters to be inserted.
...
When the caret is at the start of a run, it uses the font of the
previous run for inserting characters. The caret size previously was
the wrong height for the characters being inserted when the caret was at
the start of a line, but not the start of a paragraph so this patch
fixes this bug.
2008-06-27 11:09:14 +02:00
Dylan Smith
ee6b6f338e
richedit: Fixed mistake that didn't cause a bug.
...
The check to see if the dwOutputBuffer is full was performed incorrectly
in RTFPutUnicodeString, however, this mistake was actually harmless
since it would just cause an extra loop that does nothing, then the
check would work properly with the variable fit equal to 0.
2008-06-27 11:09:02 +02:00
Dylan Smith
632015dc62
richedit: Set error codes and stop parsing for some rtf syntax errors.
...
Checks were added for hexadecimal values that did not have valid
characters, and for EOF received before the final closing brace of the
rich text stream. The error values were tested on richedit versions 1,
2, 3 & 4.1, and they were all the same for these cases.
2008-06-27 11:08:33 +02:00
Dylan Smith
461830a83d
richedit: Removed redundant code for getting the insert style.
...
The function ME_GetInsertStyle already checks for the case where there
is a selection, so there is no need to duplicate this code for
ME_GetSelectionInsertStyle.
2008-06-27 11:08:19 +02:00
Dylan Smith
d1f1346f54
richedit: Implemented undo coalescing to group typing events.
...
Consecutively typed characters are grouped together to be undone
together. The grouping of typed characters can be stopped by certain
events that are mentioned in MSDN's remarks on the EM_STOPGROUPTYPING
message, which is also implemented by this patch.
2008-06-26 21:18:50 +02:00
Dylan Smith
9b67a38f1a
richedit: Make cursor visible when selecting via mouse above/below editor.
2008-06-26 21:18:28 +02:00
Dylan Smith
cb1d7becf9
richedit: Fixed bug preventing bold from being set with EM_SETCHARFORMAT.
...
Previously bold needed to be set by setting CFM_WEIGHT in the
CHARFORMAT2 structure, and then setting the appropriate wWeight value.
This approach isn't even supported in version 3.0 of the richedit
control. Now bold can be set/unset properly for Windows or Wine using
CFE_BOLD in dwEffects and with CFM_BOLD set in the dwMask flag.
2008-06-26 21:18:20 +02:00
Dylan Smith
60757ca6d5
richedit: Corrected the conversion used for the initial font size.
...
The LOGFONT's lfHeight member is in logical units, and is being used to
set the yHeight member of CHARFORMAT2 which is supposed to be in twips.
2008-06-26 21:18:02 +02:00
Dylan Smith
c96a273f91
richedit: Moved function declarations in header to reflect locations of definitions.
2008-06-26 21:17:48 +02:00
Dylan Smith
903423286c
richedit: Added tests reveal a problem with EM_SETCHARFORMAT's affect on the undo stack.
2008-06-26 21:17:44 +02:00
Dylan Smith
6d76d43718
richedit: Fixed a bug preventing NULL pointers from being in text.
...
Opening a text file with a NULL terminated character in it was causing
an assertion error after a run was being split due to word wrap.
Windows allows NULL terminated characters to be in the text.
2008-06-26 21:16:56 +02:00
Dylan Smith
ba747f4514
richedit: Fixed the forward word movement bug.
...
Using Ctrl-RightArrow to move to the start of the next word did not
previously work when at the start of a word. This means that
Ctrl-RightArrow would not work twice in a row since it should move to
the start of the next word.
2008-06-26 21:16:29 +02:00
Dylan Smith
67024f0f34
richedit: Prevented an assertion error on startup when run on Windows.
...
The call to GetClientRect returns 0 values for the returned RECT when
called in WM_NCCREATE in on Windows, which ended up causing an assertion
error when Wine's riched20.dll replaces the native version. Moving the
call to WM_CREATE fixes this problem (probably because NCCALCSIZE is
called in between).
2008-06-26 21:15:54 +02:00
Dylan Smith
1840a5bcad
richedit: Prevented NULL value from being used to avoid a page fault.
2008-06-26 21:15:33 +02:00
Dylan Smith
6c2026a348
richedit: Show caret after pasting or streaming in text.
...
There was a missing call to ShowCaret after the caret was created.
2008-06-26 21:15:11 +02:00
Dylan Smith
eaf7becabd
richedit: Null pointer check missing on optional parameter.
...
The function ME_FindRunInRow uses two parameters to return values by
reference, and treated these parameters as if they were optional except
for the start of the function which set *pbCaretAtEnd without checking
to see if was a NULL pointer.
2008-06-26 21:14:52 +02:00
Dan Hipschman
36aa6c4c44
riched20: Implement ITextDocument_fnGetSelection.
2008-06-26 21:07:31 +02:00
Alex Villacís Lasso
c774d681ce
richedit: Fix failing EM_GETCHARFORMAT test on all platforms.
...
Default richedit font (System) in Windows causes richedit to report
CFM_BOLD as always set. Switch to Courier New in order to see that
richedit really sets the CFM_BOLD attribute in the correct selection.
2008-06-26 10:51:07 +02:00
Dylan Smith
88a9ca7c41
richedit: Tests for undo coalescing.
...
Tests for undo coalescing from previous patches sent as suggested by
Alex Villacís Lasso.
2008-06-25 11:25:32 +02:00
Dylan Smith
6f9f01f28f
richedit: bCaretAtEnd should not be reset from rewrapping text.
...
The bCaretAtEnd value in ME_TextEditor is used to identify that the
caret is at the end of a wrapped line instead of the start of the next
line in the paragraph since both these positions correspond to the
same position in the document. The bCaretAtEnd value was previously
being set back to FALSE whenever the window was resized.
2008-06-25 11:24:13 +02:00
Dylan Smith
c8e2552ad9
richedit: Trailing spaces should not affect alignment shift length.
2008-06-25 11:23:45 +02:00
Dylan Smith
308582b4f5
richedit: Allow cursor to move over trailing spaces in wrapped lines.
2008-06-25 11:23:39 +02:00
Alex Villacís Lasso
163e9d1d02
richedit: Revert patch that introduced a test that fails on all platforms.
2008-06-25 11:14:13 +02:00
Alex Villacís Lasso
acec891ac2
richedit: EM_POSFROMCHAR should take into account scrollbar position. With tests.
2008-06-24 11:44:37 +02:00
Alex Villacís Lasso
3cc6e2365a
richedit: When returning position through wParam pointer, EM_POSFROMCHAR must return 0 as LRESULT.
...
Add tests for EM_POSFROMCHAR for 1.0 and 2.0.
2008-06-24 11:43:42 +02:00
Dan Hipschman
9615e2977d
riched20/tests: Add a test for creating ITextDocument.
2008-06-23 12:39:46 +02:00
Dan Hipschman
76ee788afa
riched20/tests: Add tests for OLE interface.
2008-06-23 12:39:41 +02:00
Michael Stefaniuc
bc0acd1ac2
riched20: Remove redundant NULL check before heap_free (Smatch).
2008-06-21 11:17:08 +02:00
Andrew Talbot
11f5909368
riched20: Constify some variables.
2008-06-20 12:22:51 +02:00
Alex Villacís Lasso
0e9ed5c10e
richedit: Empty text should result in a scroll range of 0. Tests for this behavior.
2008-06-19 12:10:21 +02:00
Alex Villacís Lasso
c7873afbb2
richedit: Insertion style must NOT be cleared unless selection actually changed.
2008-06-19 12:10:13 +02:00
Alex Villacís Lasso
d2900a53e1
richedit: Add tests for URL autodetection for EM_REPLACESEL, make them pass under Wine.
2008-06-19 12:10:00 +02:00
Alex Villacís Lasso
892a0b5f1e
richedit: Add tests for URL autodetection for EM_SETTEXTEX, make them pass under Wine.
2008-06-19 12:09:46 +02:00
Alex Villacís Lasso
f213af3795
richedit: Fix for the semantics of the flags for some effects reported by EM_GETCHARFORMAT.
...
Remove workaround put in place by a previous patch, due to buggy flag reporting.
Tests to verify fixed behavior.
2008-06-19 12:08:30 +02:00
Alex Villacís Lasso
4a5d100097
richedit: Add more tests for URL autodetection on WM_CHAR, make them pass under Wine.
2008-06-19 12:07:36 +02:00
Alex Villacís Lasso
38d7ba6eff
richedit: WM_SETTEXT must immediately autodetect URLs, without waiting for a WM_CHAR.
2008-06-19 11:59:04 +02:00
Alex Villacís Lasso
60c42bd3db
richedit: Fix misreporting of match offset for EM_FINDTEXT and EM_FINDTEXTEX.
2008-06-19 11:55:27 +02:00
Francois Gouget
42a61d7ed7
Assorted spelling fixes.
2008-05-06 16:10:20 +02:00
Dylan Smith
76029ee9ec
richedit: The wrong bits were cleared from wBorders in PARAFORMAT2.
2008-05-05 21:18:19 +02:00
Dylan Smith
6f11b1b354
richedit: Removed useless code.
2008-05-05 21:18:13 +02:00
Alexandre Julliard
13ab99b404
richedit: Avoid strlen in traces.
2008-05-02 13:59:06 +02:00
Dylan Smith
10e676ab3e
richedit: Updated editor.h to reflect the contents of source files.
2008-05-01 19:36:50 +02:00
Alex Villacís Lasso
2a4fc97c4c
richedit: Add tests for EM_FINDTEXT in 1.0 emulation, make them pass under Wine.
2008-05-01 10:57:34 +02:00
Alexandre Julliard
dad21bbcbf
makefiles: List the static libraries as normal imports instead of extra libs.
2008-04-30 14:23:55 +02:00
Alex Villacís Lasso
2ab63774f1
richedit: On failure to parse incoming text as RTF, EM_STREAMIN must set dwError to -16.
2008-04-30 10:22:42 +02:00
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