lyx_mirror/lib
Jean-Marc 41740ea915 Merge remote-tracking branch 'features/str-metrics'
This branch implements string-wise metrics computation. The goal is to
have both good metrics computation (and font with proper kerning and
ligatures) and better performance than what we have with
force_paint_single_char. Moreover there has been some code
factorization in TextMetrics, where the same row-breaking algorithm
was basically implemented 3 times.

Globally, the new code is a bit shorter than the existing one, and it
is much cleaner.  There is still a lot of potential for code removal,
especially in the RowPainter, which should be rewritten to use the new
Row information.

The bugs fixed and caused by this branch are tracked at ticket #9003:
http://www.lyx.org/trac/ticket/9003

What is done:

* Make TextMetrics methods operate on Row objects: breakRow and
  setRowHeight instead of rowBreakPoint and rowHeight.

* Change breakRow operation to operate at strings level to compute
  metrics The list of elements is stored in the row object in visual
  ordering, not logical. This will eventually allow to get rid of the
  Bidi class.

* rename getColumnNearX to getPosNearX (and change code accordingly).
  It does not make sense to return a position relative to the start of
  row, since nobody needs this.

* Re-implement cursorX and getPosNearX using row elements.

* Get rid of lyxrc.force_paint_single_char. This was a workaround that
  is not necessary anymore.

* Implement proper string metrics computation (with cache). Remove
  useless workarounds which disable kerning and ligatures.

* Draw also RtL text string-wise. This speeds-up drawing.

* Do not cut strings at selection boundary in RowPainter. This avoids
  ligature/kerning breaking in latin text, and bad rendering problems
  in Arabic.

* Remove homebrew Arabic and Hebrew support from Encoding.cpp. We now
  rely on Qt to do handle complex scripts.

* Get rid of LyXRC::rtl_support, which does not have a real use case.

* Fix display of [] and {} delimiters in Arabic scripts.
2014-07-25 20:10:55 +02:00
..
bind Update bindfiles to latest fileformat 2014-03-20 22:11:13 +01:00
commands
doc Add forward search command for qpdfview. 2014-07-13 20:08:43 +02:00
examples Give more tips in beamer-article.lyx 2014-06-19 01:44:15 -04:00
fonts Add support for stmaryrd.sty (bug #8434) 2012-12-15 13:10:31 +01:00
images Add some SVG versions of self-made icons found here on my box 2014-05-29 13:32:45 +02:00
kbd
layouts Add support for the pdfcomment package. 2014-07-03 11:30:56 +02:00
lyx2lyx Support for Swiss German (old spelling) 2014-07-05 13:38:55 +02:00
scripts Get rid of rtl_support preference 2014-07-09 21:11:08 +02:00
templates Support for conference posters 2014-07-02 14:01:28 +02:00
tex
ui Native support for \smash[t] and \smash[b] 2014-05-27 22:13:58 +02:00
.gitignore
appdata.xml Fix license string according to http://spdx.org/licenses/. 2014-06-17 09:50:28 -07:00
autocorrect
build-listerrors
chkconfig.ltx Add support for the pdfcomment package. 2014-07-03 11:30:56 +02:00
configure.py Merge remote-tracking branch 'features/str-metrics' 2014-07-25 20:10:55 +02:00
CREDITS CREDITS: add Min Ding and Roy Xia 2014-04-28 22:57:03 +02:00
encodings Use the LyX name of encodings instead of the LaTeX names. 2013-02-18 23:52:42 +01:00
external_templates Re-enable translation of pdfpages help text (works around #9045) 2014-03-27 14:25:30 +01:00
generate_contributions.py CREDITS: add Min Ding and Roy Xia 2014-04-28 22:57:03 +02:00
languages Support for Swiss German (old spelling) 2014-07-05 13:38:55 +02:00
latexfonts support for the Iwona fonts 2013-03-19 00:57:37 +01:00
layouttranslations * pt.po & layouttranslation from Jose. 2014-04-11 20:20:43 -07:00
layouttranslations.review * layouttranslations.review zh_CN checked. 2014-04-19 10:29:53 -07:00
lyx.desktop.in
Makefile.am Add support for the pdfcomment package. 2014-07-03 11:30:56 +02:00
symbols Fix bug #7954 (now really) 2014-06-07 10:54:17 +02:00
syntax.default
unicodesymbols Add two missing unicodesymbols 2014-03-08 10:59:43 +01:00