Tom Hacohen
e4bcb7f90f
Evas textblock: Use the last item's width, not advance, when calculating line's width and wrapping.
...
SVN revision: 56531
2011-01-30 10:44:42 +00:00
Tom Hacohen
8871470af7
Evas textblock: Fixed a typo in the wordwrap code.
...
SVN revision: 56526
2011-01-30 10:44:11 +00:00
Tom Hacohen
ae1325aec0
Evas textblock: Added wrap=mixed to the style options.
...
SVN revision: 56525
2011-01-30 10:44:03 +00:00
Tom Hacohen
6b8aa0e419
Evas textblock: Fixed a bug with wordwrapping causing an infinite loop in some cases.
...
SVN revision: 56524
2011-01-30 10:43:55 +00:00
Tom Hacohen
07004f537a
Evas textblock: Implemented support for size_native_get which was partially broken because calc_only was not implemented.
...
SVN revision: 56520
2011-01-30 10:43:26 +00:00
Tom Hacohen
03e32ec5c4
Evas textblock: Added mixedwrap code - the code is there but nothing is really using it at the moment, will add that in the future.
...
SVN revision: 56519
2011-01-30 10:43:21 +00:00
Tom Hacohen
546ceb4151
Evas textblock: Remove unused function: _evas_textblock_cursor_node_format_before_pos_get.
...
SVN revision: 56518
2011-01-30 10:43:15 +00:00
Tom Hacohen
36261c8bd5
Evas textblock: Fixed a segfault with regular formats (ones without size explicitly set).
...
SVN revision: 56515
2011-01-30 10:42:56 +00:00
Tom Hacohen
80004f3d0b
Evas textblock: Moved item (of type SIZE) size calculation to actual line finalizing because it depends on the object scale and where it was before will break when scale changes.
...
SVN revision: 56514
2011-01-30 10:42:48 +00:00
Tom Hacohen
fb07723f3d
Evas textblock: Fixed bug with relative sized items not showing.
...
SVN revision: 56513
2011-01-30 10:42:41 +00:00
Tom Hacohen
09b0ae1f42
Evas textblock: Fixed cursor when the cursor is in the end.
...
SVN revision: 56512
2011-01-30 10:42:35 +00:00
Tom Hacohen
f0a2a3229d
Evas textblock: Fixed a seg and the documentation error that caused it.
...
SVN revision: 56505
2011-01-30 10:41:49 +00:00
Tom Hacohen
b46c83aeac
Evas textblock: split the visual layouting to two stages:
...
1. Split to logical layout units.
2. Order the logical layout units in a visual way.
This lets us cache the results of the first part (unless the text changes), which makes everything a lot faster in the OT case, and quite faster in the regular case.
There are still some issues unresolved in this commit that will be resolved in future commits:
1. No support for async rendering - yes, I forgot I'm supposed to support that.
2. native_size should probably be calculated in another way because the current one is slow and if we already have the logical items it should be a piece of cake...
SVN revision: 56504
2011-01-30 10:41:42 +00:00
Tom Hacohen
f49c3bb8ad
Used evas_textblock_text_node_changed instead of evas_textblock_changed when needed and removed the latter completely because it wasn't needed/used anymore.
...
SVN revision: 56502
2011-01-30 10:41:29 +00:00
Tom Hacohen
1351fcc40c
Evas textblock: The only thing that should force a 'native recalc' is a change in the text.
...
SVN revision: 56501
2011-01-30 10:41:23 +00:00
Tom Hacohen
712ad03e21
Evas textblock: split layout line advance to advance and finalize instead of using the 'new line' flag.
...
SVN revision: 56500
2011-01-30 10:41:18 +00:00
Tom Hacohen
38215930ae
Evas textblock: Added a couple of comments and mark that we already handlede content change after we calc native size, that's because logical layout remains the same.
...
SVN revision: 56499
2011-01-30 10:41:13 +00:00
Tom Hacohen
f8656202f2
Evas textblock: Fixed a major slowdown caused by a missing content_changed = 0.
...
SVN revision: 56498
2011-01-30 10:41:06 +00:00
Tom Hacohen
3d24e2daad
Evas textblock: Removed unused functions.
...
SVN revision: 56497
2011-01-30 10:40:59 +00:00
Tom Hacohen
367e75aa70
Evas textblock: Fix format usage in the visual layouting.
...
SVN revision: 56496
2011-01-30 10:40:53 +00:00
Tom Hacohen
169afc76be
Evas textblock: format is now a property of both text items and format items meaning that formats can finally have their own properties, e.g tabs can have distinct background colors and etc.
...
SVN revision: 56495
2011-01-30 10:40:47 +00:00
Tom Hacohen
e62074b786
Evas textblock: Fixed a bug in the last commit causing a seg when cleaning a tb.
...
SVN revision: 56494
2011-01-30 10:40:42 +00:00
Tom Hacohen
c56c293e96
Evas textblock: Split between content changes and other changes.
...
SVN revision: 56493
2011-01-30 10:40:36 +00:00
Tom Hacohen
d632d526c0
Split logical layouting and visual layouting completely. There are still some bugs, but this includes the major change.
...
SVN revision: 56492
2011-01-30 10:40:30 +00:00
Tom Hacohen
48c9b3781e
Evas font-engine: A couple of major fixes:
...
1. Worked around a fribid behavior that broke some stuff - we should handle it better in the future, this workaround is only temporary.
2. Fixed a bug with textblock's last_up_to_pos.
3. Fixed a bug with ot_shaping not reloading the font and activating the size in the wrong place.
SVN revision: 56491
2011-01-30 10:40:21 +00:00
Tom Hacohen
91456d3198
Evas textblock: Started splitting the layouting to two stages, logical item creating and visual ordering of the items. This will let us to cache the logical items and just relayout the visual items when needed thus making everything a lot faster.
...
SVN revision: 56490
2011-01-30 10:40:14 +00:00
Tom Hacohen
50ed367970
Evas textblock: Fixed line coords to be relative to the paragraphs coords and not standalone like they were.
...
SVN revision: 56489
2011-01-30 10:40:09 +00:00
Tom Hacohen
6f24144e55
Evas textblock: Update layout paragraph coordinates and use them to speed some parts up.
...
SVN revision: 56488
2011-01-30 10:40:04 +00:00
Tom Hacohen
adeabde88e
Evas textblock: Use layout paragraphs for faster item locating.
...
SVN revision: 56487
2011-01-30 10:39:58 +00:00
Tom Hacohen
a3698f39a4
Evas textblock: started using the paragraph layout items a bit more so it's a bit faster now. Fixed a bug in calculating the line number. Paragraph layout items now point to the original paragraphs.
...
SVN revision: 56486
2011-01-30 10:39:52 +00:00
Tom Hacohen
908a6d16b0
Evas textblock: Started using the layout paragraphs. Still not using their coords or using them for optimizations.
...
SVN revision: 56485
2011-01-30 10:39:47 +00:00
Tom Hacohen
b8635d16ea
Evas textblock: Started using advancement for wrapping.
...
SVN revision: 56481
2011-01-30 10:39:22 +00:00
Tom Hacohen
3185db9667
Evas language utils: fixed evas_common_language_script_end_of_run_get and adjusted text and textblock object to use it.
...
SVN revision: 56478
2011-01-30 10:39:03 +00:00
Tom Hacohen
fa49914387
Evas textblock: Migrated part of add and split item to _layout_text_append to improve performance.
...
SVN revision: 56474
2011-01-30 10:38:39 +00:00
Tom Hacohen
f1d77279cd
Revert "Evas textblock: Shape a lot less when splitting to items because of script/bidi direction."
...
Was broken.
This reverts commit d2bc8fd8b516a640c3eb098071a80d751494024a.
SVN revision: 56471
2011-01-30 10:38:22 +00:00
Tom Hacohen
9f0ce7a272
Evas textblock + font engine: add an optimized way of doing a cut-off on the text props.
...
SVN revision: 56470
2011-01-30 10:38:15 +00:00
Tom Hacohen
5125ddb692
Evas textblock: Shape a lot less when splitting to items because of script/bidi direction.
...
SVN revision: 56468
2011-01-30 10:38:02 +00:00
Tom Hacohen
aa830a11ca
Evas textblock: removed an un-needed shaping that speeds up things a bit.
...
SVN revision: 56467
2011-01-30 10:37:57 +00:00
Tom Hacohen
ff18fa8399
Evas: Multiple changes that all relate to the Harfbuzz integration:
...
1. Started feeding Evas_Text_Props to the font engine instead of Evas_BiDi_Props because no we have more general text properties as well - i.e, OpenType stuff.
2. Full Harfbuzz integration which gets compiled in by default (if harfbuzz is present) but only works if the environment variable EVAS_USE_OT is set to 1 (because OT is way slower than regular text rendering).
3. Cleaned the font querying/drawing functions.
4. Added font_shaped function to all of the engines, which by default calls teh harfbuzz stuff (default on linux that is).
5. Moved some source files around a bit to make more sense.
SVN revision: 56455
2011-01-30 10:36:39 +00:00
Tom Hacohen
ea97422d84
Evas textblock: Start cutting to sections if bidi is not enabled.
...
SVN revision: 56451
2011-01-30 10:36:08 +00:00
Tom Hacohen
e7b2a13aa1
Evas text: Wrote item layouting and splitting of items to script runs, this is essential for correct shaping/bidi handling.
...
SVN revision: 56450
2011-01-30 10:36:02 +00:00
Tom Hacohen
de1549fa25
Evas textblock: Fixed an issue with range_geometry_get.
...
SVN revision: 56449
2011-01-30 10:35:56 +00:00
Tom Hacohen
cf083720b6
Evas textblock: Fixed a small invalid read.
...
SVN revision: 56448
2011-01-30 10:35:50 +00:00
Tom Hacohen
e7ca8b9294
Evas textblock: Fixed misuse of evas_bidi_is_rtl_char.
...
SVN revision: 56447
2011-01-30 10:35:44 +00:00
Tom Hacohen
7e376019b7
Evas font-engine: Moved bidi utils (and added script utils) to a subdir language that collects all the language specific adjustments to font handling.
...
SVN revision: 56446
2011-01-30 10:35:37 +00:00
Tom Hacohen
05050572ad
Evas textblock: It's ok to have an empty item when there are no nodes. - Fixed a seg.
...
SVN revision: 56445
2011-01-30 10:35:30 +00:00
Tom Hacohen
99a7eff130
Evas bidi + font-engine + everything affected: Changed Evas_BiDi_Props to only include the direction of the text and reverse when needed. We don't need to do full processing at this stage, because we should have split to bidi runs before.
...
SVN revision: 56443
2011-01-30 10:35:17 +00:00
Tom Hacohen
b1d9298e81
Evas bidi: Fixed the BiDi functions to accept paragraph props and not bidi props.
...
SVN revision: 56441
2011-01-30 10:35:04 +00:00
Tom Hacohen
a089d061b8
Evas textblock: Fixed docs and naming of vars in the function header.
...
SVN revision: 56436
2011-01-30 10:34:29 +00:00
Tom Hacohen
ce97927d9a
Evas textblock: Fixed usage of width instead of advance which caused issues in some cases.
...
SVN revision: 56435
2011-01-30 10:34:23 +00:00
Tom Hacohen
b6363c7657
Evas textblock: Use pen position for cursors, selections and etc as this is exactly what pen is for.
...
SVN revision: 56434
2011-01-30 10:34:18 +00:00
Tom Hacohen
35847d3c88
Evas textblock: Added evas_textblock_cursor_pen_geometry_get.
...
SVN revision: 56433
2011-01-30 10:34:13 +00:00
Tom Hacohen
8d56aef16a
Evas textblock: Advancement within a line should be according to advance size, and not width.
...
SVN revision: 56430
2011-01-30 10:33:50 +00:00
Tom Hacohen
74b26fec2e
Evas textblock: Removed the adjusting according to inset from textblock as it happens in font_draw/query.
...
SVN revision: 56428
2011-01-30 10:33:37 +00:00
Tom Hacohen
30c9492e8b
Evas textblock: Added advancement to items. This simplifies the code, fixes issues in selection and may be useful in the future with format items with different advancement and width.
...
SVN revision: 56425
2011-01-30 10:33:19 +00:00
Tom Hacohen
b9c4dbb744
Evas textblock: Fixed geometry get for formats as well.
...
SVN revision: 56423
2011-01-30 10:33:06 +00:00
Tom Hacohen
82a7ee8ee0
Evas textblock: Added bidi properties to the shared info between format and text items because both are bidi-relevant.
...
SVN revision: 56422
2011-01-30 10:33:01 +00:00
Tom Hacohen
3c6c735b83
Evas textblock: Fixed a typo and explanation in a comment.
...
SVN revision: 56421
2011-01-30 10:32:55 +00:00
Tom Hacohen
4aaa8df5fe
Evas textblock: Fixed a couple of cases where a geometry of a visible format item would have been returned although it shouldn't have.
...
SVN revision: 56420
2011-01-30 10:32:50 +00:00
Tom Hacohen
81616cec5d
Evas textblock and font engine: Fixed cursor position to be at the end of the current item, and not the end of the line, this looks nicer in bidi strings.
...
Fixed querying char coords to return the current position of the NULL according to the text's alignment, not the paragraph's.
SVN revision: 56419
2011-01-30 10:32:45 +00:00
Tom Hacohen
ab1a4f0a77
Evas textblock: Fixed selection drawing with multiline mixed ltr/rtl.
...
SVN revision: 56418
2011-01-30 10:32:39 +00:00
Tom Hacohen
82d4acc36a
Evas textblock: Fixed a couple of issues with range_geometry_get (a seg if the textblock is empty and drawing glitches).
...
SVN revision: 56417
2011-01-30 10:32:33 +00:00
Tom Hacohen
06957098c6
Evas textblock: Fixed range geometry get in some cases involving rtl.
...
SVN revision: 56416
2011-01-30 10:32:27 +00:00
Tom Hacohen
9f36a734b2
Evas textblock: Made selection rtl friendly. There are still minor issues with rectangle positioning (1px off sometimes) but this is better than before.
...
SVN revision: 56415
2011-01-30 10:32:15 +00:00
Tom Hacohen
62840fe30b
Evas textblock: Fixed evas_textblock_cursor_geometry_get with the cursor type: EVAS_TEXTBLOCK_CURSOR_BEFORE.
...
SVN revision: 56414
2011-01-30 10:32:09 +00:00
Tom Hacohen
c6c3ab41e8
Evas textblock: Merged drawing backgrounds, strikethroughs and underlines into one shared format.
...
SVN revision: 56413
2011-01-30 10:32:03 +00:00
Tom Hacohen
664478cc55
Evas textblock: Since we now track text pos for format items as well as text items, we can (and did) merge _find_layout_item_line_match and _find_layout_format_item_line_match and obsolete the latter.
...
SVN revision: 56412
2011-01-30 10:31:58 +00:00
Tom Hacohen
aa6849b76e
Evas textblock: Shape per string and not per item. I.e shaping across wrapping will also work now.
...
SVN revision: 56411
2011-01-30 10:31:51 +00:00
Tom Hacohen
53123a7445
Evas textblock: Added a segfault fix in case (shouldn't happen) it isn't found.
...
SVN revision: 56410
2011-01-30 10:31:45 +00:00
Tom Hacohen
4dede084eb
Evas textblock: Adjusted some local macros a bit so they'll enforce our wanted usage of ';'.
...
SVN revision: 56409
2011-01-30 10:31:40 +00:00
Tom Hacohen
9ffa06fbf6
Evas textblock: Adjusted text drawing a bit, a fix to the previous commit.
...
SVN revision: 56408
2011-01-30 10:31:33 +00:00
Tom Hacohen
f1230b5f36
Evas textblock: Fixed text drawing (with all of it's features, including background, underlines and etc.). Also simplified it a bit.
...
SVN revision: 56407
2011-01-30 10:31:28 +00:00
Tom Hacohen
4dd2bd2a33
Evas textblock: created _find_layout_item_match that finds the wanted item and line for both texts and formats and with some special case handling.
...
Essentially combined code that was just copied around.
SVN revision: 56406
2011-01-30 10:31:22 +00:00
Tom Hacohen
52b44130d9
Evas textblock: format items and text items are now in the same list and share a lot of info.
...
SVN revision: 56405
2011-01-30 10:31:16 +00:00
Tom Hacohen
a92826ae5e
Evas textblock: Fixed mixed format and text item reordering.
...
SVN revision: 56404
2011-01-30 10:31:08 +00:00
Tom Hacohen
80b71b0a05
Evas textblock: fixed in issue with the return value of evas_textblock_cursor_char_next which wasn't always correct.
...
SVN revision: 56295
2011-01-25 02:56:14 +00:00
Carsten Haitzler
6411ac9cb2
lines never used.
...
SVN revision: 56176
2011-01-16 06:20:26 +00:00
Tom Hacohen
65d7539dca
Evas textblock: Fix dead code issues: if (unsigned < 0) and the like.
...
SVN revision: 56106
2011-01-14 08:47:32 +00:00
Mike Blumenkrantz
b2e46be157
prevent macro null derefs
...
SVN revision: 56102
2011-01-14 06:46:04 +00:00
Mike Blumenkrantz
fe45654e16
x = x
...
SVN revision: 56101
2011-01-14 06:36:36 +00:00
Mike Blumenkrantz
447d2c91dc
avoid possible null deref
...
SVN revision: 56097
2011-01-14 06:27:10 +00:00
Mike Blumenkrantz
4dd3d0d441
another dead store
...
SVN revision: 56095
2011-01-14 06:16:50 +00:00
Tom Hacohen
1e99ccd5f9
Evas textblock: Fixed a memory leak when removing format nodes.
...
SVN revision: 56058
2011-01-12 15:27:53 +00:00
Tom Hacohen
2fd2aaf151
Evas textblock: Fixed cursor pos set to work correctly in case the character being pointed at is the last character in the last paragraph. Also prevented a bug that may happen with an empty paragraph. Thanks to Mr. Myungjae Lee.
...
SVN revision: 56020
2011-01-10 07:23:31 +00:00
Tom Hacohen
1557b40d76
Evas textblock: Fixed evas_textblock_cursor_pos_set's handling with out of bound positions.
...
SVN revision: 55757
2010-12-26 12:01:21 +00:00
Tom Hacohen
6481adfb2b
Evas textblock: Fixed cursor_pos_get/set to be absolute, and not node specific like they were.
...
SVN revision: 55738
2010-12-23 12:47:23 +00:00
Carsten Haitzler
60458017fb
warning--
...
SVN revision: 55543
2010-12-14 03:11:03 +00:00
Vincent Torri
4594a53cd1
declare variables at the beginning of the block
...
SVN revision: 55491
2010-12-11 09:00:13 +00:00
Tom Hacohen
47da7ff122
Evas textblock: Fixed a major bug in last_at_off.
...
SVN revision: 55375
2010-12-08 15:41:21 +00:00
Tom Hacohen
92c16f8892
Evas textblock: Fixed a bug with inserting text before a <PS>.
...
SVN revision: 55064
2010-11-29 15:04:44 +00:00
Carsten Haitzler
c75b63a482
evas -> use mempool for many objects and things. but.. disable it for
...
now. use old calloc+free thing for 1.0 and enable mpool for 1.1. this
is just done in advance but disabled for some testing purposes looking
for some bugs.
SVN revision: 55006
2010-11-26 10:01:18 +00:00
Tom Hacohen
f575ca46b6
Evas textblock: Fixed range_delete to not move the main cursor if it's not inside the deleted range.
...
SVN revision: 54320
2010-11-08 07:46:43 +00:00
Tom Hacohen
ed649440b8
Evas textblock: Fixed docs. Patch by Jihoon Kim.
...
SVN revision: 53650
2010-10-20 10:30:02 +00:00
Tom Hacohen
8d0492fcfd
Evas textblock + font engine: Don't take inset into account when not needed.
...
SVN revision: 53353
2010-10-13 13:33:59 +00:00
Tom Hacohen
94839799fd
Evas textblock: Removed duplicated if.
...
SVN revision: 53108
2010-10-06 18:26:29 +00:00
Tom Hacohen
9dc6cd0c51
Evas textblock: Fixed a type in remove_pair that caused issues with offset adjustment of formats.
...
SVN revision: 53092
2010-10-06 08:45:10 +00:00
Tom Hacohen
eddca25d99
Evas textblock: Fix bug with removing formats, format removal should stop at 'end' non-inclusive, just like text removal works.
...
SVN revision: 53068
2010-10-05 16:17:04 +00:00
Tom Hacohen
0896d2b013
Evas textblock: Fixed a bug with deleting range when the first char is a visible format.
...
SVN revision: 53067
2010-10-05 16:17:01 +00:00
Tom Hacohen
dd9dc0e4ec
Evas textblock: In continuation to the previous commit: range get should also work up until the char, not including.
...
SVN revision: 53054
2010-10-05 10:50:58 +00:00
Tom Hacohen
6b4743aa40
Evas textblock: Selection should work from the start cursor up to before the end cursor, i.e it should *not* include the end cursor.
...
SVN revision: 53053
2010-10-05 10:44:40 +00:00