Commit Graph

12445 Commits

Author SHA1 Message Date
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 4ee6706770 Evas font-engine: cache harfbuzz's face.
SVN revision: 56466
2011-01-30 10:37:52 +00:00
Tom Hacohen b53ded56ed Evas font-engine: Fixed some issues with the git rebase I just did, should now compile correctly.
SVN revision: 56465
2011-01-30 10:37:46 +00:00
Tom Hacohen 48b3a796a5 Evas font-ot: Fixed mistakes that caused ilegal reads.
SVN revision: 56464
2011-01-30 10:37:40 +00:00
Tom Hacohen 63e25655e1 Evas font-ot: renamed internal source_pos to source_cluster and added the forgotten evas_common_font_ot_cluster_size_get to the .h file.
SVN revision: 56463
2011-01-30 10:37:34 +00:00
Tom Hacohen c09000741b Evas font-engine: Add cluster support to the font-engine. Cursor handling is now correct for clusters as well.
SVN revision: 56462
2011-01-30 10:37:29 +00:00
Tom Hacohen c012ee700c Evas font-engine: Fixed pen/char query. In RTL first is actually the last.
SVN revision: 56461
2011-01-30 10:37:18 +00:00
Tom Hacohen 729a85e872 Evas font-engine: Fixed an issue with cluster handling that broke cursor position in some cases.
SVN revision: 56460
2011-01-30 10:37:12 +00:00
Tom Hacohen 34426d8c6e Evas font engine: Fixed a couple of issues:
1. Fixed double-kerning with the DEFAULT walker.
2. Removed unused var with the OT walker.
3. Fixed a bit of the documentation in the walkers.

SVN revision: 56459
2011-01-30 10:37:05 +00:00
Tom Hacohen 3b88692aa7 Evas font-engine: Fixed invisible character handling in the OT walker. Renamed internal var gl in the default walker to _gl, a less common var name.
SVN revision: 56458
2011-01-30 10:36:59 +00:00
Tom Hacohen f4a6807c4d Evas font-engine: Fixed an issue with cursor position with RTL text when OT is off.
SVN revision: 56457
2011-01-30 10:36:53 +00:00
Tom Hacohen e37ac1d679 Evas text: Use the already calculated len.
SVN revision: 56456
2011-01-30 10:36:47 +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 836b16f085 Evas: fine tuned the harfbuzz checks to make sure harfbuzz was compiled with freetype support and just check if it also compiled with glib support. ATM there's no good lib for checking unicode characteristics so until there is one, we optionally use harfbuzz's glib integration - such lib is planned by the guy who wrote Harfbuzz.
SVN revision: 56454
2011-01-30 10:36:24 +00:00
Tom Hacohen d9cdf88a23 Evas text: Fixed typo in horiz advance function.
SVN revision: 56453
2011-01-30 10:36:20 +00:00
Tom Hacohen 6ac48e53ed Evas font: Added HARFBUZZ's cflags.
SVN revision: 56452
2011-01-30 10:36:14 +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 01850cf816 Evas font-engine: Fixed kerning handling and fixed a bug in query_char_coords and in query_pen_coords taking the wrong string into account.
SVN revision: 56444
2011-01-30 10:35:24 +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 e4b4cf3344 Evas font-engine: suppress warnings when BiDi is disabled.
SVN revision: 56442
2011-01-30 10:35:10 +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 f6b1bcd0b6 Evas: Added harfbuzz detection (it's optional, just like fribidi).
SVN revision: 56440
2011-01-30 10:34:56 +00:00
Tom Hacohen 109886f436 Evas font-engine: Fixed an issue with last_up_to_pos failing sometimes when it shouldn't.
Fixed a documentation error.

SVN revision: 56439
2011-01-30 10:34:49 +00:00
Tom Hacohen ca2a3eb5a6 Evas font-engine: remove an usued variable in the font drawing functions.
SVN revision: 56438
2011-01-30 10:34:42 +00:00
Tom Hacohen 6dba792f46 Evas font-engine: Change EVAS_FONT_WALK_TEXT_* functions to advance pen_x at the end of the loop (so a break won't advance it, but a clean finish will) and removed the checking if a diacritic using and advancement hack (that only worked only with specific fonts anyway) so we'll be able to start working with Harfbuzz.
SVN revision: 56437
2011-01-30 10:34:36 +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 952ba44f0b Evas font engine: Added evas_common_font_query_pen_coords.
SVN revision: 56432
2011-01-30 10:34:07 +00:00
Tom Hacohen 3d6ca9eca9 Evas font engine: The position of the NULL returned from coords should depend on query_advance, not query_size.
SVN revision: 56431
2011-01-30 10:33:57 +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 509e7bed98 Evas font-engine: handle invisible chars in font query.
SVN revision: 56429
2011-01-30 10:33:43 +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 039fd390a7 Evas font engine: Fixed query_size and query advance.
SVN revision: 56427
2011-01-30 10:33:32 +00:00
Tom Hacohen 34d5f9141d Evas font engine: Merge text walking to a couple of macros, this is more consistent, and the code is smaller and easier to handle.
SVN revision: 56426
2011-01-30 10:33:24 +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 d7c2187c1f Evas font engine: Added skipping of invisible chars to the font drawing function - this means we can't draw them until we add a specil "draw inivisble" mode.
SVN revision: 56424
2011-01-30 10:33:14 +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