diff options
author | Christopher Aillon <caillon@fedoraproject.org> | 2006-09-06 07:22:56 +0000 |
---|---|---|
committer | Christopher Aillon <caillon@fedoraproject.org> | 2006-09-06 07:22:56 +0000 |
commit | 3245da27eeb982b43e15a902e3a7d42b488b0aa2 (patch) | |
tree | a6dfca7584d20ae00c2c9b7b2c27294cb6bf234f /firefox-1.5-pango-cursor-position.patch | |
parent | - Enable GCC visibility (diff) | |
download | librewolf-fedora-ff-3245da27eeb982b43e15a902e3a7d42b488b0aa2.tar.gz librewolf-fedora-ff-3245da27eeb982b43e15a902e3a7d42b488b0aa2.tar.bz2 librewolf-fedora-ff-3245da27eeb982b43e15a902e3a7d42b488b0aa2.zip |
- Fix for cursor position in editor widgets by tagoh and behdad (#198759)
Diffstat (limited to 'firefox-1.5-pango-cursor-position.patch')
-rw-r--r-- | firefox-1.5-pango-cursor-position.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/firefox-1.5-pango-cursor-position.patch b/firefox-1.5-pango-cursor-position.patch new file mode 100644 index 0000000..d287fd3 --- /dev/null +++ b/firefox-1.5-pango-cursor-position.patch @@ -0,0 +1,52 @@ +Index: mozilla/gfx/src/gtk/nsFontMetricsPango.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/gtk/nsFontMetricsPango.cpp,v +retrieving revision 1.24 +diff -d -u -p -6 -r1.24 nsFontMetricsPango.cpp +--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 25 Aug 2006 01:02:34 -0000 1.24 ++++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 6 Sep 2006 07:01:49 -0000 +@@ -948,13 +948,12 @@ nsFontMetricsPango::GetClusterInfo(const + PRInt32 + nsFontMetricsPango::GetPosition(const PRUnichar *aText, PRUint32 aLength, + nsPoint aPt) + { + int trailing = 0; + int inx = 0; +- gboolean found = FALSE; + const gchar *curChar; + PRInt32 retval = 0; + + float f = mDeviceContext->AppUnitsToDevUnits(); + + PangoLayout *layout = pango_layout_new(mPangoContext); +@@ -974,28 +973,18 @@ nsFontMetricsPango::GetPosition(const PR + } + + // Set up the pango layout + pango_layout_set_text(layout, text, strlen(text)); + FixupSpaceWidths(layout, text); + +- found = pango_layout_xy_to_index(layout, localX, localY, +- &inx, &trailing); ++ pango_layout_xy_to_index(layout, localX, localY, ++ &inx, &trailing); + + // Convert the index back to the utf-16 index + curChar = text; + +- // Jump to the end if it's not found. +- if (!found) { +- if (inx == 0) +- retval = 0; +- else if (trailing) +- retval = aLength; +- +- goto loser; +- } +- + for (PRUint32 curOffset=0; curOffset < aLength; + curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) { + + // Check for a match before checking for a surrogate pair + if (curChar - text == inx) { + retval = curOffset; |