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;