summaryrefslogtreecommitdiff
path: root/accessibility
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2010-05-11 20:59:39 +0200
committerKohei Yoshida <kyoshida@novell.com>2010-05-11 20:59:39 +0200
commitdd6754a0393e4db9f2326e16e8648d3298e7d2e9 (patch)
tree00bd53a42cb4cdba1166d700576717a935e7e24e /accessibility
parent9c4df49eee1b7e4da71715e962400469d43ed5a6 (diff)
parent14a6186576146ba795e663fd44be45fd60404c93 (diff)
rebased to DEV300_m77.
Diffstat (limited to 'accessibility')
-rwxr-xr-xaccessibility/bridge/org/openoffice/java/accessibility/makefile.mk11
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx3
-rw-r--r--accessibility/source/extended/makefile.mk3
-rw-r--r--accessibility/source/helper/acc_factory.cxx2
-rw-r--r--accessibility/source/standard/vclxaccessibleedit.cxx52
-rw-r--r--accessibility/util/acc.map2
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;