Commit Graph

431 Commits

Author SHA1 Message Date
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