summaryrefslogtreecommitdiff
path: root/firefox-1.5-pango-cursor-position.patch
diff options
context:
space:
mode:
Diffstat (limited to 'firefox-1.5-pango-cursor-position.patch')
-rw-r--r--firefox-1.5-pango-cursor-position.patch52
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;
bgstack15