Author: hanya
Date: Wed Jan 14 08:20:05 2015
New Revision: 1651591
URL: http://svn.apache.org/r1651591
Log:
#i125991# catch IndexOutOfBoundsException to avoid fatal error happen when
input method is used on Gtk environment
Modified:
openoffice/trunk/main/vcl/unx/gtk/window/gtkframe.cxx
Modified: openoffice/trunk/main/vcl/unx/gtk/window/gtkframe.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/unx/gtk/window/gtkframe.cxx?rev=1651591&r1=1651590&r2=1651591&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/unx/gtk/window/gtkframe.cxx (original)
+++ openoffice/trunk/main/vcl/unx/gtk/window/gtkframe.cxx Wed Jan 14 08:20:05
2015
@@ -3749,18 +3749,26 @@ uno::Reference<accessibility::XAccessibl
return
uno::Reference<accessibility::XAccessibleEditableText>(xContext,
uno::UNO_QUERY);
}
- for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i)
- {
- uno::Reference< accessibility::XAccessible > xChild =
xContext->getAccessibleChild(i);
- if (!xChild.is())
- continue;
- uno::Reference< accessibility::XAccessibleContext >
xChildContext = xChild->getAccessibleContext();
- if (!xChildContext.is())
- continue;
- uno::Reference< accessibility::XAccessibleEditableText > xText
= FindFocus(xChildContext);
- if (xText.is())
- return xText;
- }
+ try
+ {
+ for (sal_Int32 i = 0, n = xContext->getAccessibleChildCount(); i < n;
++i)
+ {
+ uno::Reference< accessibility::XAccessible > xChild =
xContext->getAccessibleChild(i);
+ if (!xChild.is())
+ continue;
+ uno::Reference< accessibility::XAccessibleContext >
xChildContext = xChild->getAccessibleContext();
+ if (!xChildContext.is())
+ continue;
+ uno::Reference< accessibility::XAccessibleEditableText > xText =
FindFocus(xChildContext);
+ if (xText.is())
+ return xText;
+ }
+ }
+ catch( lang::IndexOutOfBoundsException & e )
+ {
+ OSL_TRACE( "GtkFrame FindFocus, %s", ::rtl::OUStringToOString(
+ e.Message, RTL_TEXTENCODING_UTF8 ).pData->buffer );
+ }
return uno::Reference< accessibility::XAccessibleEditableText >();
}