parent
eadd0e48d4
commit
17d0dc4551
@ -1,86 +0,0 @@
|
||||
From 791a060bd1031c844a9a1b283689dee6a8a7ef77 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Mon, 25 Feb 2013 16:55:07 +0000
|
||||
Subject: [PATCH] Resolves: fdo#56031 RSID attr changes drop content change
|
||||
events
|
||||
|
||||
So if we have an INVALID_ATTR event in the queue and receive
|
||||
INVALID_CONTENT, drop the attr and replace it with invalid-content
|
||||
|
||||
And anyway filter out the RSID change event from hitting the
|
||||
a11y queue, humans don't care that this changed, it's just noise
|
||||
|
||||
Change-Id: I4842f217153fc90aa1dce75c3445053004c74536
|
||||
(cherry picked from commit 8d08ccd5b84c121867d7b3102f9d10b26005c682)
|
||||
Reviewed-on: https://gerrit.libreoffice.org/2401
|
||||
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
|
||||
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
|
||||
---
|
||||
sw/source/core/access/accmap.cxx | 9 +++++++++
|
||||
sw/source/core/text/txtfrm.cxx | 18 ++++++++++++++----
|
||||
2 files changed, 23 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
|
||||
index 4f737a8..714b37b 100644
|
||||
--- a/sw/source/core/access/accmap.cxx
|
||||
+++ b/sw/source/core/access/accmap.cxx
|
||||
@@ -887,10 +887,19 @@ void SwAccessibleMap::AppendEvent( const SwAccessibleEvent_Impl& rEvent )
|
||||
// POS_CHANGED event.
|
||||
// Therefor, the event's type has to be adapted and the event
|
||||
// has to be put at the end.
|
||||
+ //
|
||||
+ // fdo#56031 An INVALID_CONTENT event overwrites a INVALID_ATTR
|
||||
+ // event and overwrites its flags
|
||||
OSL_ENSURE( aEvent.GetType() != SwAccessibleEvent_Impl::CHILD_POS_CHANGED,
|
||||
"invalid event combination" );
|
||||
if( aEvent.GetType() == SwAccessibleEvent_Impl::CARET_OR_STATES )
|
||||
aEvent.SetType( SwAccessibleEvent_Impl::INVALID_CONTENT );
|
||||
+ else if ( aEvent.GetType() == SwAccessibleEvent_Impl::INVALID_ATTR )
|
||||
+ {
|
||||
+ aEvent.SetType( SwAccessibleEvent_Impl::INVALID_CONTENT );
|
||||
+ aEvent.SetStates( rEvent.GetAllStates() );
|
||||
+ }
|
||||
+
|
||||
break;
|
||||
case SwAccessibleEvent_Impl::POS_CHANGED:
|
||||
// A pos changed event overwrites CARET_STATES (keeping its
|
||||
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
|
||||
index cebe0b5..d76c4fa 100644
|
||||
--- a/sw/source/core/text/txtfrm.cxx
|
||||
+++ b/sw/source/core/text/txtfrm.cxx
|
||||
@@ -912,6 +912,13 @@ static void lcl_ModifyOfst( SwTxtFrm* pFrm, xub_StrLen nPos, xub_StrLen nLen )
|
||||
}
|
||||
}
|
||||
|
||||
+//Related: fdo#56031 filter out attribute changes that don't matter for
|
||||
+//humans/a11y to stop flooding the destination mortal with useless noise
|
||||
+static bool isA11yRelevantAttribute(MSHORT nWhich)
|
||||
+{
|
||||
+ return nWhich != RES_CHRATR_RSID;
|
||||
+}
|
||||
+
|
||||
/*************************************************************************
|
||||
* SwTxtFrm::Modify()
|
||||
*************************************************************************/
|
||||
@@ -1294,11 +1301,14 @@ void SwTxtFrm::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew )
|
||||
SwCntntFrm::Modify( pOld, pNew );
|
||||
}
|
||||
|
||||
- // #i88069#
|
||||
- ViewShell* pViewSh = getRootFrm() ? getRootFrm()->GetCurrShell() : 0;
|
||||
- if ( pViewSh )
|
||||
+ if (isA11yRelevantAttribute(nWhich))
|
||||
{
|
||||
- pViewSh->InvalidateAccessibleParaAttrs( *this );
|
||||
+ // #i88069#
|
||||
+ ViewShell* pViewSh = getRootFrm() ? getRootFrm()->GetCurrShell() : 0;
|
||||
+ if ( pViewSh )
|
||||
+ {
|
||||
+ pViewSh->InvalidateAccessibleParaAttrs( *this );
|
||||
+ }
|
||||
}
|
||||
}
|
||||
break;
|
||||
--
|
||||
1.8.1.2
|
||||
|
@ -1,38 +0,0 @@
|
||||
From b83c2e7ac73cc1e4b3ee954ff5c6cdbda6c41d8e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Wed, 27 Feb 2013 20:57:01 +0000
|
||||
Subject: [PATCH] Resolves: fdo#61241 force area page to size itself for max
|
||||
visible controls
|
||||
|
||||
Change-Id: I2d67ce71528786ef300ab83ee1e5b1cad6b4abe8
|
||||
(cherry picked from commit fc8022431a1684f3cfb1e2f7e4ec923a8e71df94)
|
||||
Reviewed-on: https://gerrit.libreoffice.org/2451
|
||||
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
|
||||
Reviewed-by: Eike Rathke <erack@redhat.com>
|
||||
Reviewed-by: Muthu Subramanian K <muthusuba@gmail.com>
|
||||
Tested-by: Muthu Subramanian K <muthusuba@gmail.com>
|
||||
---
|
||||
cui/source/tabpages/tparea.cxx | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
|
||||
index 87b410f..47f4878 100644
|
||||
--- a/cui/source/tabpages/tparea.cxx
|
||||
+++ b/cui/source/tabpages/tparea.cxx
|
||||
@@ -765,6 +765,13 @@ SvxAreaTabPage::SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs ) :
|
||||
aLbColor.SetAccessibleRelationMemberOf( &aFlProp );
|
||||
aMtrFldOffset.SetAccessibleRelationLabeledBy(&aFlOffset);
|
||||
aMtrFldOffset.SetAccessibleName(aFlOffset.GetText());
|
||||
+
|
||||
+ //fdo#61241 lock down size of this tab page until it's
|
||||
+ //converted to .ui (remember to use some sizegroups
|
||||
+ //that take into account hidden frames)
|
||||
+ Size aSize(GetSizePixel());
|
||||
+ set_width_request(aSize.Width());
|
||||
+ set_height_request(aSize.Height());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
--
|
||||
1.8.1.2
|
||||
|
@ -1,58 +0,0 @@
|
||||
From 569b4ed7a68751edafcca0b79e5c25d2370f96a4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Fri, 1 Mar 2013 13:28:21 +0000
|
||||
Subject: [PATCH] Resolves: fdo#61656 use order and orientation combobox select
|
||||
pos as index
|
||||
|
||||
not the associated entry data, which isn't set for these simple
|
||||
1 to 1 position -> data comboboxes
|
||||
|
||||
Change-Id: I0c73786bca00684cedc4672d0ad5e61d0c1f9bd7
|
||||
(cherry picked from commit 9c7cf46fbf01f62ea9520c4ba1ec4748fe62b20b)
|
||||
Reviewed-on: https://gerrit.libreoffice.org/2490
|
||||
Reviewed-by: Eike Rathke <erack@redhat.com>
|
||||
Tested-by: Eike Rathke <erack@redhat.com>
|
||||
---
|
||||
vcl/source/window/printdlg.cxx | 12 +++---------
|
||||
1 file changed, 3 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
|
||||
index 0e63800..0e88fa2 100644
|
||||
--- a/vcl/source/window/printdlg.cxx
|
||||
+++ b/vcl/source/window/printdlg.cxx
|
||||
@@ -449,11 +449,7 @@ void PrintDialog::NUpTabPage::initFromMultiPageSetup( const vcl::PrinterControll
|
||||
mpBorderCB->Check( i_rMPS.bDrawBorder );
|
||||
mpNupRowsEdt->SetValue( i_rMPS.nRows );
|
||||
mpNupColEdt->SetValue( i_rMPS.nColumns );
|
||||
- for( sal_uInt16 i = 0; i < mpNupOrderBox->GetEntryCount(); i++ )
|
||||
- {
|
||||
- if( int(sal_IntPtr(mpNupOrderBox->GetEntryData( i ))) == i_rMPS.nOrder )
|
||||
- mpNupOrderBox->SelectEntryPos( i );
|
||||
- }
|
||||
+ mpNupOrderBox->SelectEntryPos( i_rMPS.nOrder );
|
||||
if( i_rMPS.nRows != 1 || i_rMPS.nColumns != 1 )
|
||||
{
|
||||
mpNupPagesBox->SelectEntryPos( mpNupPagesBox->GetEntryCount()-1 );
|
||||
@@ -1444,8 +1440,7 @@ void PrintDialog::updateNup()
|
||||
|
||||
aMPS.bDrawBorder = maNUpPage.mpBorderCB->IsChecked();
|
||||
|
||||
- int nOrderMode = int(sal_IntPtr(maNUpPage.mpNupOrderBox->GetEntryData(
|
||||
- maNUpPage.mpNupOrderBox->GetSelectEntryPos() )));
|
||||
+ int nOrderMode = maNUpPage.mpNupOrderBox->GetSelectEntryPos();
|
||||
if( nOrderMode == SV_PRINT_PRT_NUP_ORDER_LRTB )
|
||||
aMPS.nOrder = PrinterController::LRTB;
|
||||
else if( nOrderMode == SV_PRINT_PRT_NUP_ORDER_TBLR )
|
||||
@@ -1455,8 +1450,7 @@ void PrintDialog::updateNup()
|
||||
else if( nOrderMode == SV_PRINT_PRT_NUP_ORDER_TBRL )
|
||||
aMPS.nOrder = PrinterController::TBRL;
|
||||
|
||||
- int nOrientationMode = int(sal_IntPtr(maNUpPage.mpNupOrientationBox->GetEntryData(
|
||||
- maNUpPage.mpNupOrientationBox->GetSelectEntryPos() )));
|
||||
+ int nOrientationMode = maNUpPage.mpNupOrientationBox->GetSelectEntryPos();
|
||||
if( nOrientationMode == SV_PRINT_PRT_NUP_ORIENTATION_LANDSCAPE )
|
||||
aMPS.aPaperSize = maNupLandscapeSize;
|
||||
else if( nOrientationMode == SV_PRINT_PRT_NUP_ORIENTATION_PORTRAIT )
|
||||
--
|
||||
1.8.1.2
|
||||
|
@ -1,96 +0,0 @@
|
||||
From 1b13c952f50aab2b907dab13395ab23d0955c238 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Fri, 15 Feb 2013 17:12:00 +0000
|
||||
Subject: [PATCH] Resolves: rhbz#895196 sc filter float a11y parent of itself
|
||||
loop/recurse
|
||||
|
||||
Change-Id: I3679e7cfcd32a78b40c6a7b803c92ff0abe6f32c
|
||||
---
|
||||
accessibility/source/helper/acc_factory.cxx | 8 +++++---
|
||||
vcl/inc/vcl/popupmenuwindow.hxx | 3 +++
|
||||
vcl/source/window/popupmenuwindow.cxx | 6 ++++++
|
||||
vcl/source/window/window.cxx | 12 +++++++++---
|
||||
4 files changed, 23 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx
|
||||
index dc16fe6..93f6bf5 100644
|
||||
--- a/accessibility/source/helper/acc_factory.cxx
|
||||
+++ b/accessibility/source/helper/acc_factory.cxx
|
||||
@@ -382,9 +382,11 @@ inline bool hasFloatingChild(Window *pWindow)
|
||||
}
|
||||
else if ( nType == WINDOW_BORDERWINDOW && hasFloatingChild( pWindow ) )
|
||||
{
|
||||
- PopupMenuFloatingWindow* pChild = dynamic_cast<PopupMenuFloatingWindow*>(
|
||||
- pWindow->GetAccessibleChildWindow(0));
|
||||
- if ( pChild && pChild->IsPopupMenu() )
|
||||
+ // The logic here has to match that of Window::GetAccessibleParentWindow in
|
||||
+ // vcl/source/window/window.cxx to avoid PopupMenuFloatingWindow
|
||||
+ // becoming a11y parents of themselves
|
||||
+ Window* pChild = pWindow->GetAccessibleChildWindow(0);
|
||||
+ if (PopupMenuFloatingWindow::isPopupMenu(pChild))
|
||||
{
|
||||
// Get the accessible context from the child window.
|
||||
Reference<XAccessible> xAccessible = pChild->CreateAccessible();
|
||||
diff --git a/vcl/inc/vcl/popupmenuwindow.hxx b/vcl/inc/vcl/popupmenuwindow.hxx
|
||||
index 57b7747..a5856dc 100644
|
||||
--- a/vcl/inc/vcl/popupmenuwindow.hxx
|
||||
+++ b/vcl/inc/vcl/popupmenuwindow.hxx
|
||||
@@ -34,6 +34,9 @@ public:
|
||||
sal_uInt16 GetMenuStackLevel() const;
|
||||
void SetMenuStackLevel( sal_uInt16 nLevel );
|
||||
bool IsPopupMenu() const;
|
||||
+
|
||||
+ //determine if a given window is an activated PopupMenuFloatingWindow
|
||||
+ static bool isPopupMenu(const Window *pWindow);
|
||||
};
|
||||
|
||||
#endif
|
||||
diff --git a/vcl/source/window/popupmenuwindow.cxx b/vcl/source/window/popupmenuwindow.cxx
|
||||
index e5e773a..7a03794 100644
|
||||
--- a/vcl/source/window/popupmenuwindow.cxx
|
||||
+++ b/vcl/source/window/popupmenuwindow.cxx
|
||||
@@ -67,4 +67,10 @@ bool PopupMenuFloatingWindow::IsPopupMenu() const
|
||||
return mpImplData->mnMenuStackLevel != ::std::numeric_limits<sal_uInt16>::max();
|
||||
}
|
||||
|
||||
+bool PopupMenuFloatingWindow::isPopupMenu(const Window *pWindow)
|
||||
+{
|
||||
+ const PopupMenuFloatingWindow* pChild = dynamic_cast<const PopupMenuFloatingWindow*>(pWindow);
|
||||
+ return pChild && pChild->IsPopupMenu();
|
||||
+}
|
||||
+
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
|
||||
index 6767fde..7ddb6b1 100644
|
||||
--- a/vcl/source/window/window.cxx
|
||||
+++ b/vcl/source/window/window.cxx
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "vcl/unowrap.hxx"
|
||||
#include "vcl/gdimtf.hxx"
|
||||
#include "vcl/pdfextoutdevdata.hxx"
|
||||
+#include "vcl/popupmenuwindow.hxx"
|
||||
#include "vcl/lazydelete.hxx"
|
||||
#include "vcl/virdev.hxx"
|
||||
|
||||
@@ -8601,10 +8602,15 @@ Window* Window::GetAccessibleParentWindow() const
|
||||
pWorkWin = pWorkWin->mpWindowImpl->mpNext;
|
||||
pParent = pWorkWin;
|
||||
}
|
||||
- // If this a floating window which has a native boarder window, this one should be reported as
|
||||
- // accessible parent
|
||||
+ // If this is a floating window which has a native border window, then that border should be reported as
|
||||
+ // the accessible parent, unless the floating window is a PopupMenuFloatingWindow
|
||||
+ //
|
||||
+ // The logic here has to match that of AccessibleFactory::createAccessibleContext in
|
||||
+ // accessibility/source/helper/acc_factory.cxx to avoid PopupMenuFloatingWindow
|
||||
+ // becoming a11y parents of themselves
|
||||
else if( GetType() == WINDOW_FLOATINGWINDOW &&
|
||||
- mpWindowImpl->mpBorderWindow && mpWindowImpl->mpBorderWindow->mpWindowImpl->mbFrame)
|
||||
+ mpWindowImpl->mpBorderWindow && mpWindowImpl->mpBorderWindow->mpWindowImpl->mbFrame &&
|
||||
+ !PopupMenuFloatingWindow::isPopupMenu(this))
|
||||
{
|
||||
pParent = mpWindowImpl->mpBorderWindow;
|
||||
}
|
||||
--
|
||||
1.8.1.2
|
||||
|
@ -1,79 +0,0 @@
|
||||
From e34b40bcd923027a26540e1a215c155ed0753472 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <e34b40bcd923027a26540e1a215c155ed0753472.1361313167.git.erack@redhat.com>
|
||||
From: Eike Rathke <erack@redhat.com>
|
||||
Date: Tue, 19 Feb 2013 19:22:27 +0100
|
||||
Subject: [PATCH] do not access vector elements beyond size, rhbz#847519
|
||||
related
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
|
||||
|
||||
This is a multi-part message in MIME format.
|
||||
--------------erAck-patch-parts
|
||||
Content-Type: text/plain; charset=UTF-8; format=fixed
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
|
||||
The actual bug (crash) is not triggered anymore because the categories
|
||||
are assembled differently, nevertheless the code in question could
|
||||
expose the same behavior under different preconditions.
|
||||
|
||||
Change-Id: Ic37f6b34effaf4e5252e80aab46b021547b36efb
|
||||
(cherry picked from commit d1ba2cd612a4c39976e2980c7dc4e3fa38c88470)
|
||||
---
|
||||
chart2/source/tools/ExplicitCategoriesProvider.cxx | 24 ++++++++++++-------
|
||||
1 files changed, 15 insertions(+), 9 deletions(-)
|
||||
|
||||
|
||||
--------------erAck-patch-parts
|
||||
Content-Type: text/x-patch; name="0001-do-not-access-vector-elements-beyond-size-rhbz-84751.patch"
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Content-Disposition: attachment; filename="0001-do-not-access-vector-elements-beyond-size-rhbz-84751.patch"
|
||||
|
||||
diff --git a/chart2/source/tools/ExplicitCategoriesProvider.cxx b/chart2/source/tools/ExplicitCategoriesProvider.cxx
|
||||
index e3d800f..00b481c 100644
|
||||
--- a/chart2/source/tools/ExplicitCategoriesProvider.cxx
|
||||
+++ b/chart2/source/tools/ExplicitCategoriesProvider.cxx
|
||||
@@ -353,11 +353,14 @@ Sequence< OUString > lcl_getExplicitSimpleCategories(
|
||||
}
|
||||
for( aOuterIt=rComplexCats.begin(); aOuterIt != aOuterEnd; ++aOuterIt )
|
||||
{
|
||||
- sal_Int32 nCurrentCount = lcl_getCategoryCount( *aOuterIt );
|
||||
- if( nCurrentCount< nMaxCategoryCount )
|
||||
+ if ( !aOuterIt->empty() )
|
||||
{
|
||||
- ComplexCategory& rComplexCategory = aOuterIt->back();
|
||||
- rComplexCategory.Count += (nMaxCategoryCount-nCurrentCount);
|
||||
+ sal_Int32 nCurrentCount = lcl_getCategoryCount( *aOuterIt );
|
||||
+ if( nCurrentCount< nMaxCategoryCount )
|
||||
+ {
|
||||
+ ComplexCategory& rComplexCategory = aOuterIt->back();
|
||||
+ rComplexCategory.Count += (nMaxCategoryCount-nCurrentCount);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -389,12 +392,15 @@ Sequence< OUString > lcl_getExplicitSimpleCategories(
|
||||
OUString aText;
|
||||
for( aOuterIt=aComplexCatsPerIndex.begin() ; aOuterIt != aOuterEnd; ++aOuterIt )
|
||||
{
|
||||
- OUString aAddText = (*aOuterIt)[nN].Text;
|
||||
- if( !aAddText.isEmpty() )
|
||||
+ if ( static_cast<size_t>(nN) < aOuterIt->size() )
|
||||
{
|
||||
- if(!aText.isEmpty())
|
||||
- aText += aSpace;
|
||||
- aText += aAddText;
|
||||
+ OUString aAddText = (*aOuterIt)[nN].Text;
|
||||
+ if( !aAddText.isEmpty() )
|
||||
+ {
|
||||
+ if(!aText.isEmpty())
|
||||
+ aText += aSpace;
|
||||
+ aText += aAddText;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
aRet[nN]=aText;
|
||||
|
||||
--------------erAck-patch-parts--
|
||||
|
||||
|
Loading…
Reference in new issue