update to 5.2.3 rc1

f41
David Tardon 8 years ago
parent f8a6016571
commit 73f25a02dc

3
.gitignore vendored

@ -45,3 +45,6 @@
/libreoffice-5.2.2.2.tar.xz /libreoffice-5.2.2.2.tar.xz
/libreoffice-help-5.2.2.2.tar.xz /libreoffice-help-5.2.2.2.tar.xz
/libreoffice-translations-5.2.2.2.tar.xz /libreoffice-translations-5.2.2.2.tar.xz
/libreoffice-5.2.3.1.tar.xz
/libreoffice-help-5.2.3.1.tar.xz
/libreoffice-translations-5.2.3.1.tar.xz

@ -25,7 +25,7 @@ index 6212d5d..01e8ca6 100644
+#endif +#endif
bool IsTimerExpired(); bool IsTimerExpired();
bool bNeedsInit; bool bNeedsInit;
cairo_font_options_t* m_pLastCairoFontOptions;
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index b5db25d..3cc4046 100644 index b5db25d..3cc4046 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx --- a/vcl/unx/gtk3/gtk3gtkinst.cxx

@ -1,141 +0,0 @@
From fce92e8db5bed5067e82a896513c9e43bdc40b4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 19 Sep 2016 09:26:22 +0100
Subject: [PATCH] Related: rhbz#1373933 gtk3 emits a lot of style-updateds
signals
so don't throw away font settings every time, check if the font settings
changed and only emit FontChanged if they differ from the last seen settings.
Change-Id: I129887e3e866f395da3b906a38cf568abea5de8e
---
vcl/inc/unx/gtk/gtkinst.hxx | 3 +++
vcl/unx/gtk/gtkinst.cxx | 21 ++++++++++++++++++++-
vcl/unx/gtk/gtksalframe.cxx | 16 +++++++++++++++-
vcl/unx/gtk3/gtk3gtkframe.cxx | 16 +++++++++++++++-
4 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/vcl/inc/unx/gtk/gtkinst.hxx b/vcl/inc/unx/gtk/gtkinst.hxx
index 490cf69..514b13f 100644
--- a/vcl/inc/unx/gtk/gtkinst.hxx
+++ b/vcl/inc/unx/gtk/gtkinst.hxx
@@ -242,6 +242,8 @@ public:
#endif
virtual const cairo_font_options_t* GetCairoFontOptions() override;
+ const cairo_font_options_t* GetLastSeenCairoFontOptions();
+ void ResetLastSeenCairoFontOptions();
void RemoveTimer (SalTimer *pTimer);
@@ -254,6 +256,7 @@ private:
#endif
bool IsTimerExpired();
bool bNeedsInit;
+ cairo_font_options_t* m_pLastCairoFontOptions;
mutable std::shared_ptr<vcl::unx::GtkPrintWrapper> m_xPrintWrapper;
};
diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx
index 0f62467..9a535f0 100644
--- a/vcl/unx/gtk/gtkinst.cxx
+++ b/vcl/unx/gtk/gtkinst.cxx
@@ -155,6 +155,7 @@ GtkInstance::GtkInstance( SalYieldMutex* pMutex )
: X11SalInstance( pMutex )
#endif
, bNeedsInit(true)
+ , m_pLastCairoFontOptions(nullptr)
{
}
@@ -200,6 +201,7 @@ GtkInstance::~GtkInstance()
while( !m_aTimers.empty() )
delete *m_aTimers.begin();
DeInitAtkBridge();
+ ResetLastSeenCairoFontOptions();
}
SalFrame* GtkInstance::CreateFrame( SalFrame* pParent, SalFrameStyleFlags nStyle )
@@ -483,7 +485,24 @@ GtkInstance::getPrintWrapper() const
const cairo_font_options_t* GtkInstance::GetCairoFontOptions()
{
- return gdk_screen_get_font_options(gdk_screen_get_default());
+ const cairo_font_options_t* pCairoFontOptions = gdk_screen_get_font_options(gdk_screen_get_default());
+ if (!m_pLastCairoFontOptions && pCairoFontOptions)
+ m_pLastCairoFontOptions = cairo_font_options_copy(pCairoFontOptions);
+ return pCairoFontOptions;
+}
+
+const cairo_font_options_t* GtkInstance::GetLastSeenCairoFontOptions()
+{
+ return m_pLastCairoFontOptions;
+}
+
+void GtkInstance::ResetLastSeenCairoFontOptions()
+{
+ if (m_pLastCairoFontOptions)
+ {
+ cairo_font_options_destroy(m_pLastCairoFontOptions);
+ m_pLastCairoFontOptions = nullptr;
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx
index 0d872cf..9167a3f 100644
--- a/vcl/unx/gtk/gtksalframe.cxx
+++ b/vcl/unx/gtk/gtksalframe.cxx
@@ -3235,7 +3235,21 @@ void GtkSalFrame::signalStyleSet( GtkWidget*, GtkStyle* pPrevious, gpointer fram
// so post user event to safely dispatch the SalEvent::SettingsChanged
// note: settings changed for multiple frames is avoided in winproc.cxx ImplHandleSettings
GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::SettingsChanged );
- GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged );
+
+ // fire off font-changed when the system cairo font hints change
+ GtkInstance *pInstance = static_cast<GtkInstance*>(GetSalData()->m_pInstance);
+ const cairo_font_options_t* pLastCairoFontOptions = pInstance->GetLastSeenCairoFontOptions();
+ const cairo_font_options_t* pCurrentCairoFontOptions = gdk_screen_get_font_options(gdk_screen_get_default());
+ bool bFontSettingsChanged = true;
+ if (pLastCairoFontOptions && pCurrentCairoFontOptions)
+ bFontSettingsChanged = !cairo_font_options_equal(pLastCairoFontOptions, pCurrentCairoFontOptions);
+ else if (!pLastCairoFontOptions && !pCurrentCairoFontOptions)
+ bFontSettingsChanged = false;
+ if (bFontSettingsChanged)
+ {
+ pInstance->ResetLastSeenCairoFontOptions();
+ GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged );
+ }
}
/* #i64117# gtk sets a nice background pixmap
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 49bce84..3d3fc9e 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -3107,7 +3107,21 @@ void GtkSalFrame::signalStyleUpdated(GtkWidget*, gpointer frame)
// note: settings changed for multiple frames is avoided in winproc.cxx ImplHandleSettings
GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::SettingsChanged );
- GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged );
+
+ // fire off font-changed when the system cairo font hints change
+ GtkInstance *pInstance = static_cast<GtkInstance*>(GetSalData()->m_pInstance);
+ const cairo_font_options_t* pLastCairoFontOptions = pInstance->GetLastSeenCairoFontOptions();
+ const cairo_font_options_t* pCurrentCairoFontOptions = gdk_screen_get_font_options(gdk_screen_get_default());
+ bool bFontSettingsChanged = true;
+ if (pLastCairoFontOptions && pCurrentCairoFontOptions)
+ bFontSettingsChanged = !cairo_font_options_equal(pLastCairoFontOptions, pCurrentCairoFontOptions);
+ else if (!pLastCairoFontOptions && !pCurrentCairoFontOptions)
+ bFontSettingsChanged = false;
+ if (bFontSettingsChanged)
+ {
+ pInstance->ResetLastSeenCairoFontOptions();
+ GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged );
+ }
}
gboolean GtkSalFrame::signalWindowState( GtkWidget*, GdkEvent* pEvent, gpointer frame )
--
2.7.4

@ -1,100 +0,0 @@
From 265829dd1a0fb6bd271f3661803645bd42e0ce39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 16 Sep 2016 11:19:52 +0100
Subject: [PATCH] Resolves: rhbz#1373933 gtk 3.21 emits a lot more "style-set"
signals
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
also deb#837356
since gtk3 commit of...
commit 0f116135f4a5033ce4e9dfa19f10624701fa615c
Author: Matthias Clasen <mclasen@redhat.com>
Date: Fri May 6 10:12:14 2016 -0400
Avoid emitting ::style-set by name
GtkStyle is deprecated, but we still emit ::style-set quite
a bit, so lets at least not be slow while doing it.
docs say...
'GtkWidget::style-set has been deprecated since version 3.0 and should not be
used in newly-written code.
Use the “style-updated” signal'
and this code just came over from gtk2 without any thought about it at the
time, so change it over to the "style-updated" which makes everything happy
again
Change-Id: I9e920d2fb2d820ff1b1b5a9ecb228484df3d6146
(cherry picked from commit ef7abe81df10cb8a8c04afbb1fbe700f94e73f04)
---
vcl/inc/unx/gtk/gtkframe.hxx | 6 +++++-
vcl/unx/gtk3/gtk3gtkframe.cxx | 19 +++++--------------
2 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index 2b5dc55..1b48aa3 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -242,7 +242,11 @@ class GtkSalFrame : public SalFrame
// signals
static gboolean signalButton( GtkWidget*, GdkEventButton*, gpointer );
- static void signalStyleSet( GtkWidget*, GtkStyle* pPrevious, gpointer );
+#if GTK_CHECK_VERSION(3,0,0)
+ static void signalStyleUpdated(GtkWidget*, gpointer);
+#else
+ static void signalStyleSet(GtkWidget*, GtkStyle* pPrevious, gpointer);
+#endif
#if GTK_CHECK_VERSION(3,0,0)
static gboolean signalDraw( GtkWidget*, cairo_t *cr, gpointer );
static void sizeAllocated(GtkWidget*, GdkRectangle *pAllocation, gpointer frame);
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 9ea6237..1eba8e2 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -993,7 +993,7 @@ void GtkSalFrame::InitCommon()
// connect signals
- g_signal_connect( G_OBJECT(m_pWindow), "style-set", G_CALLBACK(signalStyleSet), this );
+ g_signal_connect( G_OBJECT(m_pWindow), "style-updated", G_CALLBACK(signalStyleUpdated), this );
gtk_widget_set_has_tooltip(pEventWidget, true);
m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "query-tooltip", G_CALLBACK(signalTooltipQuery), this ));
m_aMouseSignalIds.push_back(g_signal_connect( G_OBJECT(pEventWidget), "button-press-event", G_CALLBACK(signalButton), this ));
@@ -3145,22 +3145,13 @@ gboolean GtkSalFrame::signalDelete( GtkWidget*, GdkEvent*, gpointer frame )
return true;
}
-void GtkSalFrame::signalStyleSet( GtkWidget*, GtkStyle* pPrevious, gpointer frame )
+void GtkSalFrame::signalStyleUpdated(GtkWidget*, gpointer frame)
{
GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
- // every frame gets an initial style set on creation
- // do not post these as the whole application tends to
- // redraw itself to adjust to the new style
- // where there IS no new style resulting in tremendous unnecessary flickering
- if( pPrevious != nullptr )
- {
- // signalStyleSet does NOT usually have the gdk lock
- // so post user event to safely dispatch the SalEvent::SettingsChanged
- // note: settings changed for multiple frames is avoided in winproc.cxx ImplHandleSettings
- GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::SettingsChanged );
- GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged );
- }
+ // note: settings changed for multiple frames is avoided in winproc.cxx ImplHandleSettings
+ GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::SettingsChanged );
+ GtkSalFrame::getDisplay()->SendInternalEvent( pThis, nullptr, SalEvent::FontChanged );
}
gboolean GtkSalFrame::signalWindowState( GtkWidget*, GdkEvent* pEvent, gpointer frame )
--
2.7.4

@ -1,199 +0,0 @@
From d6a33b409cfff921a8656d549f5f91b0b4f1bec3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 30 Sep 2016 12:45:03 +0100
Subject: [PATCH] Resolves: tdf#101711 problems with attempt to remove unused
bg images
only do the save, unset (and possibly restore) of a bg image on the
stylesheet if it has one owner, this continue to make the original
scenario function without (so far anyway) the various reported problems
Change-Id: I73382961973b1c53bf2ceff205615727dd378c77
---
include/svx/svdundo.hxx | 5 ++---
reportdesign/source/core/inc/ReportUndoFactory.hxx | 2 +-
reportdesign/source/core/sdr/ReportUndoFactory.cxx | 4 ++--
sc/source/core/data/drwlayer.cxx | 2 +-
sd/source/core/drawdoc3.cxx | 20 +++-----------------
svx/source/svdraw/svdundo.cxx | 19 +++++++++----------
6 files changed, 18 insertions(+), 34 deletions(-)
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index 9d63557..9e94342 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -588,10 +588,9 @@ class SVX_DLLPUBLIC SdrUndoDelPage : public SdrUndoPageList
SdrUndoGroup* pUndoGroup;
std::unique_ptr<SfxPoolItem> mpFillBitmapItem;
bool mbHasFillBitmap;
- bool mbSoleOwnerOfFillBitmapProps;
public:
- SdrUndoDelPage(SdrPage& rNewPg, bool bSoleOwnerOfFillBitmapProps);
+ SdrUndoDelPage(SdrPage& rNewPg);
virtual ~SdrUndoDelPage();
virtual void Undo() override;
@@ -763,7 +762,7 @@ public:
virtual SdrUndoAction* CreateUndoMoveLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel, sal_uInt16 nNeuPos1);
// Page
- virtual SdrUndoAction* CreateUndoDeletePage(SdrPage& rPage, bool bSoleOwnerOfFillBitmapProps = true);
+ virtual SdrUndoAction* CreateUndoDeletePage(SdrPage& rPage);
virtual SdrUndoAction* CreateUndoNewPage(SdrPage& rPage);
virtual SdrUndoAction* CreateUndoCopyPage(SdrPage& rPage);
virtual SdrUndoAction* CreateUndoSetPageNum(SdrPage& rNewPg, sal_uInt16 nOldPageNum1, sal_uInt16 nNewPageNum1);
diff --git a/reportdesign/source/core/inc/ReportUndoFactory.hxx b/reportdesign/source/core/inc/ReportUndoFactory.hxx
index 1839f1f..03baf07 100644
--- a/reportdesign/source/core/inc/ReportUndoFactory.hxx
+++ b/reportdesign/source/core/inc/ReportUndoFactory.hxx
@@ -59,7 +59,7 @@ namespace rptui
virtual SdrUndoAction* CreateUndoMoveLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel, sal_uInt16 nNeuPos1) override;
// page
- virtual SdrUndoAction* CreateUndoDeletePage(SdrPage& rPage, bool bSoleOwnerOfFillBitmapProps = true) override;
+ virtual SdrUndoAction* CreateUndoDeletePage(SdrPage& rPage) override;
virtual SdrUndoAction* CreateUndoNewPage(SdrPage& rPage) override;
virtual SdrUndoAction* CreateUndoCopyPage(SdrPage& rPage) override;
virtual SdrUndoAction* CreateUndoSetPageNum(SdrPage& rNewPg, sal_uInt16 nOldPageNum1, sal_uInt16 nNewPageNum1) override;
diff --git a/reportdesign/source/core/sdr/ReportUndoFactory.cxx b/reportdesign/source/core/sdr/ReportUndoFactory.cxx
index 566400c..d1f2bb5 100644
--- a/reportdesign/source/core/sdr/ReportUndoFactory.cxx
+++ b/reportdesign/source/core/sdr/ReportUndoFactory.cxx
@@ -133,9 +133,9 @@ SdrUndoAction* OReportUndoFactory::CreateUndoMoveLayer(sal_uInt16 nLayerNum, Sdr
}
// page
-SdrUndoAction* OReportUndoFactory::CreateUndoDeletePage(SdrPage& rPage, bool bSoleOwnerOfFillBitmapProps)
+SdrUndoAction* OReportUndoFactory::CreateUndoDeletePage(SdrPage& rPage)
{
- return m_pUndoFactory->CreateUndoDeletePage(rPage, bSoleOwnerOfFillBitmapProps);
+ return m_pUndoFactory->CreateUndoDeletePage(rPage);
}
SdrUndoAction* OReportUndoFactory::CreateUndoNewPage(SdrPage& rPage)
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index b2c7ab9..7ea6758 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -412,7 +412,7 @@ void ScDrawLayer::ScRemovePage( SCTAB nTab )
if (bRecording)
{
SdrPage* pPage = GetPage(static_cast<sal_uInt16>(nTab));
- AddCalcUndo(new SdrUndoDelPage(*pPage, true)); // Undo-Action becomes the page owner
+ AddCalcUndo(new SdrUndoDelPage(*pPage)); // Undo-Action becomes the page owner
RemovePage( static_cast<sal_uInt16>(nTab) ); // just deliver, not deleting
}
else
diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx
index 9bef42e..111db41 100644
--- a/sd/source/core/drawdoc3.cxx
+++ b/sd/source/core/drawdoc3.cxx
@@ -792,17 +792,8 @@ bool SdDrawDocument::InsertBookmarkAsPage(
aTest == aMPLayout &&
eKind == pTest->GetPageKind() )
{
- if (bUndo)
- {
- bool bSoleOwnerOfStyleSheet = true;
- if (pRefPage->IsMasterPage())
- {
- const SfxStyleSheet* pRefSheet = pRefPage->getSdrPageProperties().GetStyleSheet();
- const SfxStyleSheet* pTestSheet = pTest->getSdrPageProperties().GetStyleSheet();
- bSoleOwnerOfStyleSheet = pRefSheet != pTestSheet;
- }
- AddUndo(GetSdrUndoFactory().CreateUndoDeletePage(*pRefPage, bSoleOwnerOfStyleSheet));
- }
+ if( bUndo )
+ AddUndo(GetSdrUndoFactory().CreateUndoDeletePage(*pRefPage));
RemoveMasterPage(nPage);
@@ -1241,7 +1232,6 @@ void SdDrawDocument::RemoveUnnecessaryMasterPages(SdPage* pMasterPage, bool bOnl
{
// Do not delete master pages that have their precious flag set
bool bDeleteMaster = !pMaster->IsPrecious();
- bool bSoleOwnerOfStyleSheet = true;
OUString aLayoutName = pMaster->GetLayoutName();
if(bOnlyDuplicatePages )
@@ -1256,10 +1246,6 @@ void SdDrawDocument::RemoveUnnecessaryMasterPages(SdPage* pMasterPage, bool bOnl
{
// duplicate page found -> remove it
bDeleteMaster = true;
-
- const SfxStyleSheet* pRefSheet = pMaster->getSdrPageProperties().GetStyleSheet();
- const SfxStyleSheet* pTestSheet = pMPg->getSdrPageProperties().GetStyleSheet();
- bSoleOwnerOfStyleSheet = pRefSheet != pTestSheet;
}
}
}
@@ -1293,7 +1279,7 @@ void SdDrawDocument::RemoveUnnecessaryMasterPages(SdPage* pMasterPage, bool bOnl
delete pNotesMaster;
if( bUndo )
- AddUndo(GetSdrUndoFactory().CreateUndoDeletePage(*pMaster, bSoleOwnerOfStyleSheet));
+ AddUndo(GetSdrUndoFactory().CreateUndoDeletePage(*pMaster));
RemoveMasterPage( pMaster->GetPageNum() );
diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx
index ec5f2fe..18d7100 100644
--- a/svx/source/svdraw/svdundo.cxx
+++ b/svx/source/svdraw/svdundo.cxx
@@ -1444,11 +1444,10 @@ SdrUndoPageList::~SdrUndoPageList()
}
-SdrUndoDelPage::SdrUndoDelPage(SdrPage& rNewPg, bool bSoleOwnerOfFillBitmapProps)
+SdrUndoDelPage::SdrUndoDelPage(SdrPage& rNewPg)
: SdrUndoPageList(rNewPg)
, pUndoGroup(nullptr)
, mbHasFillBitmap(false)
- , mbSoleOwnerOfFillBitmapProps(bSoleOwnerOfFillBitmapProps)
{
bItsMine = true;
@@ -1558,10 +1557,10 @@ void SdrUndoDelPage::clearFillBitmap()
{
if (mrPage.IsMasterPage())
{
- if (mbSoleOwnerOfFillBitmapProps)
+ SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
+ assert(bool(pStyleSheet)); // who took away my stylesheet?
+ if (pStyleSheet->GetListenerCount() == 1)
{
- SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
- assert(bool(pStyleSheet)); // who took away my stylesheet?
SfxItemSet& rItemSet = pStyleSheet->GetItemSet();
rItemSet.ClearItem(XATTR_FILLBITMAP);
if (mbHasFillBitmap)
@@ -1581,10 +1580,10 @@ void SdrUndoDelPage::restoreFillBitmap()
{
if (mrPage.IsMasterPage())
{
- if (mbSoleOwnerOfFillBitmapProps)
+ SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
+ assert(bool(pStyleSheet)); // who took away my stylesheet?
+ if (pStyleSheet->GetListenerCount() == 1)
{
- SfxStyleSheet* const pStyleSheet = mrPage.getSdrPageProperties().GetStyleSheet();
- assert(bool(pStyleSheet)); // who took away my stylesheet?
SfxItemSet& rItemSet = pStyleSheet->GetItemSet();
rItemSet.Put(*mpFillBitmapItem);
if (mbHasFillBitmap)
@@ -1846,9 +1845,9 @@ SdrUndoAction* SdrUndoFactory::CreateUndoMoveLayer(sal_uInt16 nLayerNum, SdrLaye
}
// page
-SdrUndoAction* SdrUndoFactory::CreateUndoDeletePage(SdrPage& rPage, bool bSoleOwnerOfFillBitmapProps)
+SdrUndoAction* SdrUndoFactory::CreateUndoDeletePage(SdrPage& rPage)
{
- return new SdrUndoDelPage(rPage, bSoleOwnerOfFillBitmapProps);
+ return new SdrUndoDelPage(rPage);
}
SdrUndoAction* SdrUndoFactory::CreateUndoNewPage(SdrPage& rPage)
--
2.7.4

@ -1,59 +0,0 @@
From 38a61ddaf63768ebe19c92d561eac6f50d67ded7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 19 Sep 2016 21:21:58 +0100
Subject: [PATCH] Resolves: tdf#102293 triple click results in visually
unselected word
in previously unselected textboxes in impress
started happening after...
commit 16c7f8916661df24f4681ec82f6bd4d7ad85d141
Date: Tue Jan 12 16:36:49 2016 +0000
tdf#97075 - don't render sdr overlays before we paint
in impress instead flush the overlay after activating the edit object
if we go on to put the cursor in there. Seems to work.
Change-Id: Ib746c36d1074aee09771a3dc1d69834ce80a9c08
---
sd/source/ui/func/futext.cxx | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index 72f6ae2..9b0979b 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -21,6 +21,8 @@
#include <editeng/eeitem.hxx>
#include <editeng/editerr.hxx>
#include <svx/dlgutil.hxx>
+#include <svx/sdrpagewindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/svxerr.hxx>
#include <tools/urlobj.hxx>
#include <vcl/help.hxx>
@@ -1064,6 +1066,19 @@ void FuText::SetInEditMode(const MouseEvent& rMEvt, bool bQuickDrag)
if (mpView->SdrBeginTextEdit(pTextObj, pPV, mpWindow, true, pOutl) && mxTextObj->GetObjInventor() == SdrInventor)
{
+ //tdf#102293 flush overlay before going on to pass clicks down to
+ //the outline view which will want to paint selections
+ for (sal_uInt32 b = 0; b < pPV->PageWindowCount(); ++b)
+ {
+ const SdrPageWindow& rPageWindow = *pPV->GetPageWindow(b);
+ if (!rPageWindow.GetPaintWindow().OutputToWindow())
+ continue;
+ rtl::Reference< sdr::overlay::OverlayManager > xManager = rPageWindow.GetOverlayManager();
+ if (!xManager.is())
+ continue;
+ xManager->flush();
+ }
+
bFirstObjCreated = true;
DeleteDefaultText();
--
2.7.4

@ -1,27 +0,0 @@
From 875e1bafbd985addc632ccebcf41fe7c33669674 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Tue, 27 Sep 2016 22:06:04 +0200
Subject: [PATCH] fix build on 32-bit ARM on latest Rawhide
Change-Id: If00c42235d6ec92634dc8c23fdcbb50e332ffa68
---
configure.ac | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 9622255..f13cd25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7134,7 +7134,8 @@ then
else
case "$host_cpu" in
arm*)
- my_java_arch=arm
+ AS_IF([test -e "$JAVA_HOME/jre/lib/aarch32/libjawt.so"], [my_java_arch=aarch32], [my_java_arch=arm])
+ JAVA_ARCH=$my_java_arch
;;
i*86)
my_java_arch=i386
--
2.9.3

@ -1,150 +0,0 @@
From 463ae6186be38c6c4290b260f86b1e2044e233f0 Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Fri, 7 Oct 2016 15:02:47 +0200
Subject: [PATCH] rhbz#1382401: Support surrogate pairs in HTMLOutFuncs
(cherry picked from commit 375b99cad4a79d26a6cbcd0f71bc12b312d95818)
Conflicts:
svtools/source/svhtml/htmlout.cxx
plus cherry-pick of 6131bf9c96fb2ae37decf13e453f27304707271b "Minor performance
improvement of previous patch"
Change-Id: Ib578f758e4f5f355a79a014c2ad4660924dd34a4
---
include/svtools/htmlout.hxx | 2 +-
svtools/source/svhtml/htmlout.cxx | 44 ++++++++++++++++++++++++++-------------
2 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/include/svtools/htmlout.hxx b/include/svtools/htmlout.hxx
index 715f0ba..e8a5d50 100644
--- a/include/svtools/htmlout.hxx
+++ b/include/svtools/htmlout.hxx
@@ -60,7 +60,7 @@ struct HTMLOutFuncs
SVT_DLLPUBLIC static SvStream& Out_AsciiTag( SvStream&, const sal_Char* pStr,
bool bOn = true,
rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252);
- SVT_DLLPUBLIC static SvStream& Out_Char( SvStream&, sal_Unicode cChar,
+ SVT_DLLPUBLIC static SvStream& Out_Char( SvStream&, sal_uInt32 cChar,
HTMLOutContext& rContext,
OUString *pNonConvertableChars = nullptr );
SVT_DLLPUBLIC static SvStream& Out_String( SvStream&, const OUString&,
diff --git a/svtools/source/svhtml/htmlout.cxx b/svtools/source/svhtml/htmlout.cxx
index 99d9e38..13ff6d8 100644
--- a/svtools/source/svhtml/htmlout.cxx
+++ b/svtools/source/svhtml/htmlout.cxx
@@ -55,7 +55,7 @@ HTMLOutContext::~HTMLOutContext()
rtl_destroyUnicodeToTextConverter( m_hConv );
}
-static const sal_Char *lcl_svhtml_GetEntityForChar( sal_Unicode c,
+static const sal_Char *lcl_svhtml_GetEntityForChar( sal_uInt32 c,
rtl_TextEncoding eDestEnc )
{
const sal_Char* pStr = nullptr;
@@ -388,10 +388,12 @@ static const sal_Char *lcl_svhtml_GetEntityForChar( sal_Unicode c,
return pStr;
}
-static OString lcl_ConvertCharToHTML( sal_Unicode c,
+static OString lcl_ConvertCharToHTML( sal_uInt32 c,
HTMLOutContext& rContext,
OUString *pNonConvertableChars )
{
+ assert(rtl::isUnicodeCodePoint(c));
+
OStringBuffer aDest;
DBG_ASSERT( RTL_TEXTENCODING_DONTKNOW != rContext.m_eDestEnc,
"wrong destination encoding" );
@@ -427,7 +429,7 @@ static OString lcl_ConvertCharToHTML( sal_Unicode c,
if( pStr )
{
sal_Size nLen = rtl_convertUnicodeToText(
- rContext.m_hConv, rContext.m_hContext, &c, 0,
+ rContext.m_hConv, rContext.m_hContext, nullptr, 0,
cBuffer, TXTCONV_BUFFER_SIZE,
nFlags|RTL_UNICODETOTEXT_FLAGS_FLUSH,
&nInfo, &nSrcChars );
@@ -439,8 +441,18 @@ static OString lcl_ConvertCharToHTML( sal_Unicode c,
}
else
{
+ sal_Unicode utf16[2];
+ sal_Size n;
+ if (c < 0x10000) {
+ utf16[0] = c;
+ n = 1;
+ } else {
+ utf16[0] = rtl::getHighSurrogate(c);
+ utf16[1] = rtl::getLowSurrogate(c);
+ n = 2;
+ }
sal_Size nLen = rtl_convertUnicodeToText( rContext.m_hConv,
- rContext.m_hContext, &c, 1,
+ rContext.m_hContext, utf16, n,
cBuffer, TXTCONV_BUFFER_SIZE,
nFlags,
&nInfo, &nSrcChars );
@@ -457,7 +469,7 @@ static OString lcl_ConvertCharToHTML( sal_Unicode c,
// entity.
// coverity[callee_ptr_arith]
nLen = rtl_convertUnicodeToText(
- rContext.m_hConv, rContext.m_hContext, &c, 0,
+ rContext.m_hConv, rContext.m_hContext, nullptr, 0,
cBuffer, TXTCONV_BUFFER_SIZE,
nFlags|RTL_UNICODETOTEXT_FLAGS_FLUSH,
&nInfo, &nSrcChars );
@@ -466,11 +478,15 @@ static OString lcl_ConvertCharToHTML( sal_Unicode c,
while( nLen-- )
aDest.append(*pBuffer++);
- aDest.append('&').append('#').append(static_cast<sal_Int64>(c))
+ aDest.append('&').append('#').append(static_cast<sal_Int32>(c))
+ // Unicode code points guaranteed to fit into sal_Int32
.append(';');
- if( pNonConvertableChars &&
- -1 == pNonConvertableChars->indexOf( c ) )
- (*pNonConvertableChars) += OUString(c);
+ if( pNonConvertableChars )
+ {
+ OUString cs(&c, 1);
+ if( -1 == pNonConvertableChars->indexOf( cs ) )
+ (*pNonConvertableChars) += cs;
+ }
}
}
return aDest.makeStringAndClear();
@@ -505,9 +521,9 @@ OString HTMLOutFuncs::ConvertStringToHTML( const OUString& rSrc,
{
HTMLOutContext aContext( eDestEnc );
OStringBuffer aDest;
- for( sal_Int32 i=0, nLen = rSrc.getLength(); i < nLen; i++ )
+ for( sal_Int32 i=0, nLen = rSrc.getLength(); i < nLen; )
aDest.append(lcl_ConvertCharToHTML(
- rSrc[i], aContext, pNonConvertableChars));
+ rSrc.iterateCodePoints(&i), aContext, pNonConvertableChars));
aDest.append(lcl_FlushToAscii(aContext));
return aDest.makeStringAndClear();
}
@@ -525,7 +541,7 @@ SvStream& HTMLOutFuncs::Out_AsciiTag( SvStream& rStream, const sal_Char *pStr,
return rStream;
}
-SvStream& HTMLOutFuncs::Out_Char( SvStream& rStream, sal_Unicode c,
+SvStream& HTMLOutFuncs::Out_Char( SvStream& rStream, sal_uInt32 c,
HTMLOutContext& rContext,
OUString *pNonConvertableChars )
{
@@ -540,8 +556,8 @@ SvStream& HTMLOutFuncs::Out_String( SvStream& rStream, const OUString& rOUStr,
{
HTMLOutContext aContext( eDestEnc );
sal_Int32 nLen = rOUStr.getLength();
- for( sal_Int32 n = 0; n < nLen; n++ )
- HTMLOutFuncs::Out_Char( rStream, rOUStr[n],
+ for( sal_Int32 n = 0; n < nLen; )
+ HTMLOutFuncs::Out_Char( rStream, rOUStr.iterateCodePoints(&n),
aContext, pNonConvertableChars );
HTMLOutFuncs::FlushToAscii( rStream, aContext );
return rStream;
--
2.7.4

@ -1,5 +1,5 @@
# download path contains version without the last (fourth) digit # download path contains version without the last (fourth) digit
%define libo_version 5.2.2 %define libo_version 5.2.3
# Should contain .alphaX / .betaX, if this is pre-release (actually # Should contain .alphaX / .betaX, if this is pre-release (actually
# pre-RC) version. The pre-release string is part of tarball file names, # pre-RC) version. The pre-release string is part of tarball file names,
# so we need a way to define it easily at one place. # so we need a way to define it easily at one place.
@ -54,8 +54,8 @@
Summary: Free Software Productivity Suite Summary: Free Software Productivity Suite
Name: libreoffice Name: libreoffice
Epoch: 1 Epoch: 1
Version: %{libo_version}.2 Version: %{libo_version}.1
Release: 3%{?libo_prerelease}%{?dist} Release: 1%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0 License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0
URL: http://www.libreoffice.org/ URL: http://www.libreoffice.org/
@ -89,7 +89,7 @@ Source48: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/
%if 0%{?rhel} %if 0%{?rhel}
Source100: %{external_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz Source100: %{external_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
Source101: %{external_url}/liborcus-0.11.2.tar.gz Source101: %{external_url}/liborcus-0.11.2.tar.gz
Source102: %{external_url}/mdds-1.2.0.tar.bz2 Source102: %{external_url}/mdds-1.2.2.tar.bz2
Source103: %{external_url}/libcmis-0.5.1.tar.gz Source103: %{external_url}/libcmis-0.5.1.tar.gz
Source104: %{external_url}/libwps-0.4.3.tar.bz2 Source104: %{external_url}/libwps-0.4.3.tar.bz2
Source105: %{external_url}/libpagemaker-0.0.3.tar.bz2 Source105: %{external_url}/libpagemaker-0.0.3.tar.bz2
@ -245,16 +245,10 @@ Patch10: 0001-Resolves-rhbz-1351224-wayland-grab-related-crashes.patch
Patch11: 0001-Resolves-rhbz-1352965-gtk3-infinite-clipboard-recurs.patch Patch11: 0001-Resolves-rhbz-1352965-gtk3-infinite-clipboard-recurs.patch
Patch12: 0001-Related-rhbz-1351369-gtk3-clipboards-have-to-live-to.patch Patch12: 0001-Related-rhbz-1351369-gtk3-clipboards-have-to-live-to.patch
Patch13: 0001-add-xdg-email-as-the-default-email-route.patch Patch13: 0001-add-xdg-email-as-the-default-email-route.patch
Patch14: 0001-Resolves-rhbz-1373933-gtk-3.21-emits-a-lot-more-styl.patch Patch14: 0001-Related-rhbz-1353069-don-t-clear-XATTR_FILL-from-sty.patch
Patch15: 0001-Related-rhbz-1373933-gtk3-emits-a-lot-of-style-updat.patch Patch15: 0001-Related-rhbz-1362451-avoid-recursive-ownerchanged-ha.patch
Patch16: 0001-Related-rhbz-1353069-don-t-clear-XATTR_FILL-from-sty.patch Patch16: 0001-only-date-autofilter-menus-need-the-space-for-the-tr.patch
Patch17: 0001-Resolves-tdf-102293-triple-click-results-in-visually.patch Patch17: 0001-rhbz-1353069-don-t-record-undo-information-in-the-cl.patch
Patch18: 0001-Related-rhbz-1362451-avoid-recursive-ownerchanged-ha.patch
Patch19: 0001-fix-build-on-32-bit-ARM-on-latest-Rawhide.patch
Patch20: 0001-only-date-autofilter-menus-need-the-space-for-the-tr.patch
Patch21: 0001-rhbz-1353069-don-t-record-undo-information-in-the-cl.patch
Patch22: 0001-Resolves-tdf-101711-problems-with-attempt-to-remove-.patch
Patch23: 0001-rhbz-1382401-Support-surrogate-pairs-in-HTMLOutFuncs.patch
%if 0%{?fedora} >= 26 %if 0%{?fedora} >= 26
Patch400: 0001-Switch-from-orcus-0.11-to-orcus-0.12.patch Patch400: 0001-Switch-from-orcus-0.11-to-orcus-0.12.patch
@ -2317,6 +2311,9 @@ done
%endif %endif
%changelog %changelog
* Sat Oct 15 2016 David Tardon <dtardon@redhat.com> - 1:5.2.3.1-1
- update to 5.2.3 rc1
* Fri Oct 07 2016 Stephan Bergmann <sbergman@redhat.com> - 1:5.2.2.2-3 * Fri Oct 07 2016 Stephan Bergmann <sbergman@redhat.com> - 1:5.2.2.2-3
- Resolves: rhbz#1382401 broken export of emojis to HTML - Resolves: rhbz#1382401 broken export of emojis to HTML

@ -7,6 +7,6 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.
12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh 12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh
4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2
ce12af00283eb90d9281956524250d6e ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz ce12af00283eb90d9281956524250d6e ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz
4a001b0b43e58a3e584cb703d72cf19d libreoffice-5.2.2.2.tar.xz b7fa8d5c0f803a5bb64bb8a58f0736e9 libreoffice-5.2.3.1.tar.xz
ea273836b1e1b670eee6f211bd5d9acf libreoffice-help-5.2.2.2.tar.xz af7ffd5904e26ebbbefb18d441f2bd82 libreoffice-help-5.2.3.1.tar.xz
2b4d20576fbf5c26f57d268791bfa84c libreoffice-translations-5.2.2.2.tar.xz 9f40ca74b0ce67badb61c089ed5ccea9 libreoffice-translations-5.2.3.1.tar.xz

Loading…
Cancel
Save