parent
f8a6016571
commit
73f25a02dc
@ -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
|
||||
|
Loading…
Reference in new issue