vcl/unx/gtk/window/gtkframe.cxx |   28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

New commits:
commit 19654ce3a9fadebe9bf978e89cc2ac1ab5ebb80a
Author: Tsutomu Uchino <ha...@apache.org>
Date:   Wed Jan 14 08:20:05 2015 +0000

    #i125991# catch IndexOutOfBoundsException to avoid fatal error happen when 
input method is used on Gtk environment

diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 972f24b..afa557d 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -3749,17 +3749,25 @@ uno::Reference<accessibility::XAccessibleEditableText>
             return 
uno::Reference<accessibility::XAccessibleEditableText>(xContext, 
uno::UNO_QUERY);
     }
 
-    for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i)
+    try
     {
-        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;
+        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 >();
 }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to