rpms/openoffice.org/devel openoffice.org-2.0.3.ooo68047.vcl.zwj.patch, NONE, 1.1 openoffice.org-2.0.3.ooo68048.vcl.imsurroundtext.patch, NONE, 1.1
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue Aug 1 15:50:58 UTC 2006
Author: caolanm
Update of /cvs/dist/rpms/openoffice.org/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv17168
Added Files:
openoffice.org-2.0.3.ooo68047.vcl.zwj.patch
openoffice.org-2.0.3.ooo68048.vcl.imsurroundtext.patch
Log Message:
new patches
openoffice.org-2.0.3.ooo68047.vcl.zwj.patch:
source/gdi/sallayout.cxx | 0
vcl/source/gdi/sallayout.cxx | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE openoffice.org-2.0.3.ooo68047.vcl.zwj.patch ---
Index: source/gdi/sallayout.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/gdi/sallayout.cxx,v
retrieving revision 1.78
diff -u -r1.78 sallayout.cxx
--- openoffice.org.orig/vcl/source/gdi/sallayout.cxx 3 May 2006 16:35:28 -0000 1.78
+++ openoffice.org/vcl/source/gdi/sallayout.cxx 1 Aug 2006 15:25:19 -0000
@@ -264,7 +264,7 @@
if( (0x0001 <= cChar) && (cChar <= 0x001F) )
return true;
// formatting characters
- if( (0x200B <= cChar) && (cChar <= 0x200F) )
+ if( (0x200E <= cChar) && (cChar <= 0x200F) )
return true;
if( (0x2028 <= cChar) && (cChar <= 0x202E) )
return true;
openoffice.org-2.0.3.ooo68048.vcl.imsurroundtext.patch:
gtkframe.cxx | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 70 insertions(+), 1 deletion(-)
--- NEW FILE openoffice.org-2.0.3.ooo68048.vcl.imsurroundtext.patch ---
Index: gtkframe.cxx
===================================================================
RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
retrieving revision 1.47
diff -u -r1.47 gtkframe.cxx
--- openoffice.org.orig/vcl/unx/gtk/window/gtkframe.cxx 5 May 2006 11:01:02 -0000 1.47
+++ openoffice.org/vcl/unx/gtk/window/gtkframe.cxx 1 Aug 2006 15:13:58 -0000
@@ -63,6 +63,9 @@
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
using namespace com::sun::star;
@@ -2914,13 +2960,79 @@
pThis->updateIMSpotLocation();
}
+uno::Reference<accessibility::XAccessibleEditableText>
+ FindFocus(uno::Reference< accessibility::XAccessibleContext > xContext)
+{
+ if (!xContext.is())
+ uno::Reference< accessibility::XAccessibleEditableText >();
+
+ uno::Reference<accessibility::XAccessibleStateSet> xState = xContext->getAccessibleStateSet();
+ if (xState.is())
+ {
+ if (xState->contains(accessibility::AccessibleStateType::FOCUSED))
+ return uno::Reference<accessibility::XAccessibleEditableText>(xContext, uno::UNO_QUERY);
+ }
+
+ for (sal_uInt32 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;
+ }
+ return uno::Reference< accessibility::XAccessibleEditableText >();
+}
+
+uno::Reference<accessibility::XAccessibleEditableText> lcl_GetxText()
+{
+ uno::Reference<accessibility::XAccessibleEditableText> xText;
+ Window* pFocusWin = ImplGetSVData()->maWinData.mpFocusWin;
+ if (!pFocusWin)
+ return xText;
+
+ uno::Reference< accessibility::XAccessible > xAccessible( pFocusWin->GetAccessible( true ) );
+ if (xAccessible.is())
+ xText = FindFocus(xAccessible->getAccessibleContext());
+ return xText;
+}
+
gboolean GtkSalFrame::IMHandler::signalIMRetrieveSurrounding( GtkIMContext* pContext, gpointer im_handler )
{
+ uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText();
+
+ if (xText.is())
+ {
+ sal_uInt32 nPosition = xText->getCaretPosition();
+ rtl::OUString sAllText = xText->getText();
+ if (!sAllText.getLength())
+ return FALSE;
+ rtl::OString sUTF = rtl::OUStringToOString(sAllText, RTL_TEXTENCODING_UTF8);
+ rtl::OUString sCursorText(sAllText, nPosition);
+ gtk_im_context_set_surrounding(pContext, sUTF.getStr(), sUTF.getLength(),
+ rtl::OUStringToOString(sCursorText, RTL_TEXTENCODING_UTF8).getLength());
+ return TRUE;
+ }
+
return FALSE;
}
-gboolean GtkSalFrame::IMHandler::signalIMDeleteSurrounding( GtkIMContext* pContext, gint arg1, gint arg2, gpointer im_handler )
+gboolean GtkSalFrame::IMHandler::signalIMDeleteSurrounding( GtkIMContext* pContext, gint offset, gint nchars,
+ gpointer im_handler )
{
+ uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText();
+
+ if (xText.is())
+ {
+ sal_uInt32 nPosition = xText->getCaretPosition();
+ xText->deleteText(nPosition + offset, nPosition + offset + nchars);
+ return TRUE;
+ }
+
return FALSE;
}
More information about the fedora-cvs-commits
mailing list