[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - accessibility/source

2017-01-12 Thread Caolán McNamara
 accessibility/source/standard/vclxaccessibletabcontrol.cxx |   11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit ef191c51ee9912ebc0ef3c59f6d9a86ff09723b1
Author: Caolán McNamara 
Date:   Thu Jan 12 14:03:43 2017 +

a11y crash on accessing disposed TabControl during close of impress

Change-Id: I3064eb136ed3a6a32acd64bfb2f6fbe31595e1cf
(cherry picked from commit ff30d20c1ae3a30717123c267d52eb2b3105a1b7)
Reviewed-on: https://gerrit.libreoffice.org/33007
Tested-by: Jenkins 
Reviewed-by: Markus Mohrhard 

diff --git a/accessibility/source/standard/vclxaccessibletabcontrol.cxx 
b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
index e9ee495..f086077 100644
--- a/accessibility/source/standard/vclxaccessibletabcontrol.cxx
+++ b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
@@ -43,9 +43,14 @@ VCLXAccessibleTabControl::VCLXAccessibleTabControl( 
VCLXWindow* pVCLXWindow )
 :VCLXAccessibleComponent( pVCLXWindow )
 {
 m_pTabControl = static_cast< TabControl* >( GetWindow().get() );
-
-if ( m_pTabControl )
-m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), 
Reference< XAccessible >() );
+if (!m_pTabControl)
+return;
+if (m_pTabControl->isDisposed())
+{
+m_pTabControl.clear();
+return;
+}
+m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), Reference< 
XAccessible >() );
 }
 
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - accessibility/source

2016-12-19 Thread Julien Nabet
 accessibility/source/extended/AccessibleGridControl.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit c6f2be29a856044a98615c3209c247de586757f9
Author: Julien Nabet 
Date:   Mon Dec 19 22:33:12 2016 +0100

tdf#104767: Fix calculus of child index in commitTableEvent (accessibility)

bt:
1  0x2aaade2fea5b in 
accessibility::AccessibleGridControlTableBase::ensureIsValidIndex 
(this=0x586abdb0, nChildIndex=11)
at 
/home/julien/lo/libreoffice/accessibility/source/extended/AccessibleGridControlTableBase.cxx:257
2  0x2aaade2f97f2 in 
accessibility::AccessibleGridControlTable::getAccessibleChild 
(this=0x586abdb0, nChildIndex=11)
at 
/home/julien/lo/libreoffice/accessibility/source/extended/AccessibleGridControlTable.cxx:60
3  0x2aaade2ee054 in 
accessibility::AccessibleGridControl::commitTableEvent (this=0x57e97500, 
_nEventId=5, _rNewValue=uno::Any(void), _rOldValue=uno::Any(void))
at 
/home/julien/lo/libreoffice/accessibility/source/extended/AccessibleGridControl.cxx:354

Seems a regression from 
https://cgit.freedesktop.org/libreoffice/core/commit/?id=0f32ba56a1e775e8ecd6c827ebd48f7f2fb51c81

Change-Id: Ia973eb381832da27ecc39fc5273f67a685d5a7bb
Reviewed-on: https://gerrit.libreoffice.org/32205
Reviewed-by: Julien Nabet 
Tested-by: Julien Nabet 
(cherry picked from commit 4e1c423358f60f7516a1682c97837edd21addcf3)
Reviewed-on: https://gerrit.libreoffice.org/32209
(cherry picked from commit 899ea62194d59a69e04823962a3170f762a02e9b)
Reviewed-on: https://gerrit.libreoffice.org/32210
Tested-by: Jenkins 
Reviewed-by: Tamás Zolnai 

diff --git a/accessibility/source/extended/AccessibleGridControl.cxx 
b/accessibility/source/extended/AccessibleGridControl.cxx
index 5ba4001..cdfd606 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -351,7 +351,7 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 
_nEventId,const Any& _rNe
 if (nCurrentRow > -1 && nCurrentCol > -1)
 {
 sal_Int32 nColumnCount = m_aTable.GetColumnCount();
-xChild = m_xImpl->m_pTable->getAccessibleChild(nCurrentRow * 
nCurrentCol + nColumnCount);
+xChild = m_xImpl->m_pTable->getAccessibleChild(nCurrentRow * 
nColumnCount + nCurrentCol);
 }
 m_xImpl->m_pTable->commitEvent(_nEventId, 
makeAny(xChild),_rOldValue);
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - accessibility/source include/vcl vcl/source vcl/unx

2016-12-11 Thread Tamás Zolnai
 accessibility/source/standard/vclxaccessibleedit.cxx |   59 ++-
 include/vcl/texteng.hxx  |2 
 include/vcl/vclmedit.hxx |2 
 vcl/source/edit/texteng.cxx  |   20 ++
 vcl/unx/gtk/a11y/atktext.cxx |   18 -
 vcl/unx/gtk/a11y/atktextattributes.cxx   |6 +
 6 files changed, 100 insertions(+), 7 deletions(-)

New commits:
commit c5b71538e9cd7854f502d20c36396176a49bef2b
Author: Tamás Zolnai 
Date:   Sun Dec 4 00:03:24 2016 +

tdf#93430: Cannot get accessible text attributes for 'Not in dictionary' 
entry

Squashed from two commits:

tdf#93430: Get run attributes of text objects

.. which are not paragraphs.

Note: For some reason in character attributes sequence
we have a wrong Any value for "CharPosture" property.

Signed-off-by: Tamás Zolnai 
Reviewed-on: https://gerrit.libreoffice.org/31591
(cherry picked from commit 17773e1a8dd6e97f57db111819338c418f819cef)

tdf#93430: Cannot get accessible text attributes for 'Not in dictionary' 
entry

Reviewed-on: https://gerrit.libreoffice.org/31778
Reviewed-by: Tamás Zolnai 
Tested-by: Tamás Zolnai 
(cherry picked from commit e0d8c3821b8fa1e7d00f7b4a7d007f9cb5c592a5)

Reviewed-on: https://gerrit.libreoffice.org/31792
Tested-by: Jenkins 
Reviewed-by: Tamás Zolnai 

tdf#93430: Return the right offsets for runs

MultiLineEdit is a special control which can have
more text portions with different text attributes.

Reviewed-on: https://gerrit.libreoffice.org/31813
Tested-by: Jenkins 
Reviewed-by: Tamás Zolnai 
(cherry picked from commit 8d52045853cecb716138d51b8b6ad0272a86af86)

Change-Id: Ia45526c01cc381d3d6a1b56dbf4f03fdd38a0989
Reviewed-on: https://gerrit.libreoffice.org/31804
Tested-by: Jenkins 
Reviewed-by: Caolán McNamara 
Tested-by: Caolán McNamara 

diff --git a/accessibility/source/standard/vclxaccessibleedit.cxx 
b/accessibility/source/standard/vclxaccessibleedit.cxx
index 9ef0025..f36ee0b 100644
--- a/accessibility/source/standard/vclxaccessibleedit.cxx
+++ b/accessibility/source/standard/vclxaccessibleedit.cxx
@@ -30,12 +30,17 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
+#include 
 #include 
 #include 
 
@@ -305,8 +310,46 @@ sal_Unicode VCLXAccessibleEdit::getCharacter( sal_Int32 
nIndex ) throw (IndexOut
 Sequence< PropertyValue > VCLXAccessibleEdit::getCharacterAttributes( 
sal_Int32 nIndex, const Sequence< OUString >& aRequestedAttributes ) throw 
(IndexOutOfBoundsException, RuntimeException, std::exception)
 {
 OExternalLockGuard aGuard( this );
+Sequence< PropertyValue > aProperties = 
VCLXAccessibleTextComponent::getCharacterAttributes( nIndex, 
aRequestedAttributes );
 
-return VCLXAccessibleTextComponent::getCharacterAttributes( nIndex, 
aRequestedAttributes );
+// Handle multiline edit character properties
+VclPtr pMulitLineEdit = GetAsDynamic< VclMultiLineEdit 
>();
+if ( pMulitLineEdit )
+{
+ExtTextEngine* pTextEngine = pMulitLineEdit->GetTextEngine();
+TextPaM aCursor( 0, nIndex );
+const TextAttribFontColor* pFontColor = static_cast(pTextEngine->FindAttrib( aCursor, TEXTATTR_FONTCOLOR ));
+if ( pFontColor )
+{
+for (PropertyValue& aValue : aProperties )
+{
+if (aValue.Name == "CharColor")
+{
+aValue.Value = css::uno::makeAny(static_cast< sal_Int32 
>(COLORDATA_RGB(pFontColor->GetColor().GetColor(;
+break;
+}
+}
+}
+}
+
+// Set default character color if it is not set yet to a valid value
+for (PropertyValue& aValue : aProperties )
+{
+if (aValue.Name == "CharColor")
+{
+if ( aValue.Value == sal_Int32(-1) )
+{
+OutputDevice* pDev = Application::GetDefaultDevice();
+if ( pDev )
+{
+aValue.Value = css::uno::makeAny(static_cast< sal_Int32 
>(pDev->GetSettings().GetStyleSettings().GetFieldTextColor().GetColor()));
+}
+}
+break;
+}
+}
+
+return aProperties;
 }
 
 
@@ -434,6 +477,20 @@ css::accessibility::TextSegment 
VCLXAccessibleEdit::getTextAtIndex( sal_Int32 nI
 {
 OExternalLockGuard aGuard( this );
 
+// Override general text component behavior: MultiLineEdit can have more 
text 

[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - accessibility/source

2016-11-28 Thread Tamás Zolnai
 accessibility/source/standard/vclxaccessiblebox.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 0b11455e1905b9a7ce3958ea43bbfe5cbb6ee916
Author: Tamás Zolnai 
Date:   Sat Nov 26 18:22:42 2016 +

tdf#99687: Find Text widget fails to emit object:text-caret-moved events

Must be an integration bug:
efb23f29983f87104a684e7fab00b84fc59d131d

Change-Id: I53b15975fb97a299103fab870307b03b2607e9e5
Reviewed-on: https://gerrit.libreoffice.org/31238
Reviewed-by: Tamás Zolnai 
Tested-by: Tamás Zolnai 
(cherry picked from commit c1afa80bb3613c9202fa9d83447fdd5d57667cb6)
Reviewed-on: https://gerrit.libreoffice.org/31247
Tested-by: Jenkins 
Reviewed-by: Miklos Vajna 

diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx 
b/accessibility/source/standard/vclxaccessiblebox.cxx
index ae4e5a6..cdd3b5d 100644
--- a/accessibility/source/standard/vclxaccessiblebox.cxx
+++ b/accessibility/source/standard/vclxaccessiblebox.cxx
@@ -236,7 +236,7 @@ void VCLXAccessibleBox::ProcessWindowEvent (const 
VclWindowEvent& rVclWindowEven
 
 case VCLEVENT_EDIT_MODIFY:
 case VCLEVENT_EDIT_SELECTIONCHANGED:
- // case VCLEVENT_EDIT_CARETCHANGED:
+case VCLEVENT_EDIT_CARETCHANGED:
 // Modify/Selection events are handled by the combo box instead of
 // directly by the edit field (Why?).  Therefore, delegate this
 // call to the edit field.
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - accessibility/source

2016-06-11 Thread Caolán McNamara
 accessibility/source/extended/AccessibleGridControl.cxx |9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 652026f0e2f9c323229151e854ad6591791e098e
Author: Caolán McNamara 
Date:   Sat Jun 11 15:50:59 2016 +0100

Resolves: tdf#100272 row ally index is ROW_INVALID

which is < 0 so bad things happen, consider ROW_INVALID/COL_INVALID before
looking for a11y child at that index

Change-Id: I16a9d86879e1a894c63932705c056268e98db7aa
(cherry picked from commit 0f32ba56a1e775e8ecd6c827ebd48f7f2fb51c81)

diff --git a/accessibility/source/extended/AccessibleGridControl.cxx 
b/accessibility/source/extended/AccessibleGridControl.cxx
index 5c32dcf..5ba4001 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -345,7 +345,14 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 
_nEventId,const Any& _rNe
 {
 if(_nEventId == AccessibleEventId::ACTIVE_DESCENDANT_CHANGED)
 {
-css::uno::Reference< css::accessibility::XAccessible > xChild = 
m_xImpl->m_pTable->getAccessibleChild(m_aTable.GetCurrentRow()*m_aTable.GetColumnCount()+m_aTable.GetCurrentColumn());
+const sal_Int32 nCurrentRow = m_aTable.GetCurrentRow();
+const sal_Int32 nCurrentCol = m_aTable.GetCurrentColumn();
+css::uno::Reference< css::accessibility::XAccessible > xChild;
+if (nCurrentRow > -1 && nCurrentCol > -1)
+{
+sal_Int32 nColumnCount = m_aTable.GetColumnCount();
+xChild = m_xImpl->m_pTable->getAccessibleChild(nCurrentRow * 
nCurrentCol + nColumnCount);
+}
 m_xImpl->m_pTable->commitEvent(_nEventId, 
makeAny(xChild),_rOldValue);
 }
 else if(_nEventId == AccessibleEventId::TABLE_MODEL_CHANGED)
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits