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 >();
 }
 


Reply via email to