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