diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2010-05-11 20:59:39 +0200 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2010-05-11 20:59:39 +0200 |
commit | dd6754a0393e4db9f2326e16e8648d3298e7d2e9 (patch) | |
tree | 00bd53a42cb4cdba1166d700576717a935e7e24e /accessibility | |
parent | 9c4df49eee1b7e4da71715e962400469d43ed5a6 (diff) | |
parent | 14a6186576146ba795e663fd44be45fd60404c93 (diff) |
rebased to DEV300_m77.
Diffstat (limited to 'accessibility')
-rwxr-xr-x | accessibility/bridge/org/openoffice/java/accessibility/makefile.mk | 11 | ||||
-rw-r--r-- | accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx | 3 | ||||
-rw-r--r-- | accessibility/source/extended/makefile.mk | 3 | ||||
-rw-r--r-- | accessibility/source/helper/acc_factory.cxx | 2 | ||||
-rw-r--r-- | accessibility/source/standard/vclxaccessibleedit.cxx | 52 | ||||
-rw-r--r-- | accessibility/util/acc.map | 2 |
6 files changed, 30 insertions, 43 deletions
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk b/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk index f99b19cd6590..0d98760a31df 100755 --- a/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk +++ b/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk @@ -102,7 +102,6 @@ PRODUCTSWITCH = false DEBUGSWITCH = true .ENDIF -.IF "$(GUI)"=="UNX" || "$(USE_SHELL)" != "4nt" $(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk @@-$(MKDIRHIER) $(JAVADIR)$/$(PACKAGE) @-echo package org.openoffice.java.accessibility\; > $@ @@ -110,16 +109,6 @@ $(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk @-echo public static final boolean DEBUG = $(DEBUGSWITCH)\; >> $@ @-echo public static final boolean PRODUCT = $(PRODUCTSWITCH)\; >> $@ @-echo } >> $@ -.ELSE -$(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk - @@-$(MKDIRHIER) $(JAVADIR)$/$(PACKAGE) - @-echo package org.openoffice.java.accessibility; > $@ - @-echo public class Build { >> $@ - @-echo public static final boolean DEBUG = $(DEBUGSWITCH); >> $@ - @-echo public static final boolean PRODUCT = $(PRODUCTSWITCH); >> $@ - @-echo } >> $@ -.ENDIF - $(CLASSDIR)$/$(PACKAGE)$/Build.class : $(JAVADIR)$/$(PACKAGE)$/Build.java -$(JAVAC) -d $(CLASSDIR) $(JAVADIR)$/$(PACKAGE)$/Build.java diff --git a/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx b/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx index fe4bd8389d09..1e5bb36ec03d 100644 --- a/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx +++ b/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx @@ -53,13 +53,12 @@ class VCLXAccessibleEdit : public VCLXAccessibleTextComponent, friend class VCLXAccessibleBox; private: + sal_Int32 m_nSelectionStart; sal_Int32 m_nCaretPosition; protected: virtual ~VCLXAccessibleEdit(); - void UpdateCaretPosition(); - virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ); virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ); diff --git a/accessibility/source/extended/makefile.mk b/accessibility/source/extended/makefile.mk index bafd2b40c334..446ec73ec1b7 100644 --- a/accessibility/source/extended/makefile.mk +++ b/accessibility/source/extended/makefile.mk @@ -37,6 +37,9 @@ ENABLE_EXCEPTIONS=TRUE .INCLUDE : settings.mk # --- Files -------------------------------------------------------- +.IF "$(OS)$(COM)"=="SOLARISI" +NOOPTFILES=$(SLO)$/accessibletabbarpagelist.obj +.ENDIF # "$(OS)$(COM)"=="SOLARISI" SLOFILES=\ $(SLO)$/AccessibleBrowseBoxCheckBoxCell.obj \ diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx index 8fe463d00c05..50d3ac682377 100644 --- a/accessibility/source/helper/acc_factory.cxx +++ b/accessibility/source/helper/acc_factory.cxx @@ -395,7 +395,7 @@ inline bool hasFloatingChild(Window *pWindow) else xContext = new FloatingWindowAccessible( _pXWindow ); } - else if ( nType == WINDOW_HELPTEXTWINDOW ) + else if ( ( nType == WINDOW_HELPTEXTWINDOW ) || ( nType == WINDOW_FIXEDLINE ) ) { xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleFixedText( _pXWindow ); } diff --git a/accessibility/source/standard/vclxaccessibleedit.cxx b/accessibility/source/standard/vclxaccessibleedit.cxx index 0dd8376580ec..07378c0ea42f 100644 --- a/accessibility/source/standard/vclxaccessibleedit.cxx +++ b/accessibility/source/standard/vclxaccessibleedit.cxx @@ -67,6 +67,7 @@ using namespace ::comphelper; VCLXAccessibleEdit::VCLXAccessibleEdit( VCLXWindow* pVCLWindow ) :VCLXAccessibleTextComponent( pVCLWindow ) { + m_nSelectionStart = getSelectionStart(); m_nCaretPosition = getCaretPosition(); } @@ -78,22 +79,6 @@ VCLXAccessibleEdit::~VCLXAccessibleEdit() // ----------------------------------------------------------------------------- -void VCLXAccessibleEdit::UpdateCaretPosition() -{ - sal_Int32 nCaretPosition = getCaretPosition(); - - if ( m_nCaretPosition != nCaretPosition ) - { - Any aOldValue, aNewValue; - aOldValue <<= (sal_Int32) m_nCaretPosition; - aNewValue <<= (sal_Int32) nCaretPosition; - m_nCaretPosition = nCaretPosition; - NotifyAccessibleEvent( AccessibleEventId::CARET_CHANGED, aOldValue, aNewValue ); - } -} - -// ----------------------------------------------------------------------------- - void VCLXAccessibleEdit::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) { switch ( rVclWindowEvent.GetId() ) @@ -105,11 +90,31 @@ void VCLXAccessibleEdit::ProcessWindowEvent( const VclWindowEvent& rVclWindowEve break; case VCLEVENT_EDIT_SELECTIONCHANGED: { + sal_Int32 nOldCaretPosition = m_nCaretPosition; + sal_Int32 nOldSelectionStart = m_nSelectionStart; + + m_nCaretPosition = getCaretPosition(); + m_nSelectionStart = getSelectionStart(); + Window* pWindow = GetWindow(); if ( pWindow && pWindow->HasChildPathFocus() ) { - NotifyAccessibleEvent( AccessibleEventId::TEXT_SELECTION_CHANGED, Any(), Any() ); - UpdateCaretPosition(); + if ( m_nCaretPosition != nOldCaretPosition ) + { + Any aOldValue, aNewValue; + aOldValue <<= (sal_Int32) nOldCaretPosition; + aNewValue <<= (sal_Int32) m_nCaretPosition; + NotifyAccessibleEvent( AccessibleEventId::CARET_CHANGED, aOldValue, aNewValue ); + } + + // #i104470# VCL only has SELECTION_CHANGED, but UAA distinguishes between SELECTION_CHANGED and CARET_CHANGED + sal_Bool bHasSelection = ( m_nSelectionStart != m_nCaretPosition ); + sal_Bool bHadSelection = ( nOldSelectionStart != nOldCaretPosition ); + if ( ( bHasSelection != bHadSelection ) || ( bHasSelection && ( ( m_nCaretPosition != nOldCaretPosition ) || ( m_nSelectionStart != nOldSelectionStart ) ) ) ) + { + NotifyAccessibleEvent( AccessibleEventId::TEXT_SELECTION_CHANGED, Any(), Any() ); + } + } } break; @@ -305,22 +310,13 @@ Reference< XAccessibleKeyBinding > VCLXAccessibleEdit::getAccessibleActionKeyBin sal_Int32 VCLXAccessibleEdit::getCaretPosition( ) throw (RuntimeException) { - OExternalLockGuard aGuard( this ); - - awt::Selection aSelection; - VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() ); - if ( pVCLXEdit ) - aSelection = pVCLXEdit->getSelection(); - - return aSelection.Max; + return getSelectionEnd(); } // ----------------------------------------------------------------------------- sal_Bool VCLXAccessibleEdit::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException) { - OExternalLockGuard aGuard( this ); - return setSelection( nIndex, nIndex ); } diff --git a/accessibility/util/acc.map b/accessibility/util/acc.map index 5678c95e71fd..b9e53f414df5 100644 --- a/accessibility/util/acc.map +++ b/accessibility/util/acc.map @@ -1,4 +1,4 @@ -FORMS_1_0 { +UDK_3_0_0 { global: getStandardAccessibleFactory; getSvtAccessibilityComponentFactory; |