[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - 16 commits - cui/source external/boost formula/source reportdesign/source sc/source solenv/gbuild sw/qa sw/source vcl/inc vcl/opengl vcl/unx writerfilter/source
Justin Luth
justin_luth at sil.org
Mon Jul 4 15:02:47 UTC 2016
cui/source/options/optopencl.cxx | 7 +-
external/boost/UnpackedTarball_boost.mk | 1
external/boost/boost.function.Wplacement-new.patch.1 | 16 +++++
formula/source/core/resource/core_resource.src | 2
reportdesign/source/ui/dlg/CondFormat.cxx | 5 +
reportdesign/source/ui/dlg/Condition.cxx | 1
sc/source/core/data/column2.cxx | 8 +-
sc/source/core/opencl/formulagroupcl.cxx | 13 ++++
sc/source/core/tool/compiler.cxx | 22 +++++++
sc/source/ui/app/transobj.cxx | 15 +++++
sc/source/ui/inc/transobj.hxx | 8 ++
sc/source/ui/miscdlgs/datafdlg.cxx | 8 ++
sc/source/ui/view/cellsh2.cxx | 4 -
sc/source/ui/view/gridwin.cxx | 14 ++++
sc/source/ui/view/select.cxx | 1
sc/source/ui/view/tabcont.cxx | 2
solenv/gbuild/Output.mk | 1
sw/qa/extras/ooxmlexport/data/tdf90697_complexBreaksHeaders.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport4.cxx | 29 ++++++++--
sw/qa/extras/rtfexport/data/hyperlink_empty.rtf | 8 ++
sw/qa/extras/rtfexport/rtfexport.cxx | 11 +++
sw/source/core/layout/flowfrm.cxx | 5 +
sw/source/filter/ww8/rtfattributeoutput.cxx | 28 ++++-----
sw/source/uibase/dbui/dbmgr.cxx | 1
vcl/inc/openglgdiimpl.hxx | 2
vcl/opengl/gdiimpl.cxx | 10 +++
vcl/unx/gtk/gtksys.cxx | 18 +++++-
writerfilter/source/dmapper/PropertyMap.cxx | 4 +
28 files changed, 206 insertions(+), 38 deletions(-)
New commits:
commit 312ba80b3b8fcb57dbdfd8c1afb1a38149ff9fe7
Author: Justin Luth <justin_luth at sil.org>
Date: Sat Jun 25 22:21:08 2016 +0300
tdf#90697 docx - don't change continuous break into page break
As soon as you set PROP_PAGE_DESC_NAME, you are inserting that
style as a page break. Setting a pagebreak via a continous break
was first introduced in commit 50cb1667020494906afaacb68d4163d1eda527cf
but the unittest for that commit no longer uses this code.
I'm suggesting it be reverted. It really messes up round-tripping
when continuous breaks are removed/replaced with hard page breaks.
There are a few odd cases where the very first section needs to set the
page break via the continuous break, so it hasn't been eliminated
completely.
Change-Id: I5b0e4bb7612ee9df47e5c49b8c2316dc001b5238
Reviewed-on: https://gerrit.libreoffice.org/26662
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
(cherry picked from commit 50bf96d31ab2eb546f6c71cc93c1fa5dd4bf3044)
diff --git a/sw/qa/extras/ooxmlexport/data/tdf90697_complexBreaksHeaders.docx b/sw/qa/extras/ooxmlexport/data/tdf90697_complexBreaksHeaders.docx
new file mode 100644
index 0000000..b5e7ef0
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf90697_complexBreaksHeaders.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 4cc0f07..b9dbde4 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -25,6 +25,7 @@
#include <com/sun/star/text/XTextFramesSupplier.hpp>
#include <com/sun/star/text/XTextViewCursorSupplier.hpp>
#include <com/sun/star/text/XTextSection.hpp>
+#include <com/sun/star/text/XTextColumns.hpp>
#include <com/sun/star/style/CaseMap.hpp>
#include <com/sun/star/style/ParagraphAdjust.hpp>
#include <com/sun/star/style/LineSpacing.hpp>
@@ -373,6 +374,22 @@ DECLARE_OOXMLEXPORT_TEST(testColumnBreak_ColumnCountIsZero,"fdo74153.docx")
CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xCursor->getPage());
}
+DECLARE_OOXMLEXPORT_TEST(testTdf90697_complexBreaksHeaders,"tdf90697_complexBreaksHeaders.docx")
+{
+// This is a complex document using many types of section breaks and re-defined headers.
+// Paragraphs 44-47 were in two columns
+ uno::Reference<beans::XPropertySet> xTextSection = getProperty< uno::Reference<beans::XPropertySet> >(getParagraph(45), "TextSection");
+ CPPUNIT_ASSERT(xTextSection.is());
+ uno::Reference<text::XTextColumns> xTextColumns = getProperty< uno::Reference<text::XTextColumns> >(xTextSection, "TextColumns");
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xTextColumns->getColumnCount());
+
+// after that, the section break should switch things back to one column.
+ xTextSection = getProperty< uno::Reference<beans::XPropertySet> >(getParagraph(50), "TextSection");
+ CPPUNIT_ASSERT(xTextSection.is());
+ xTextColumns = getProperty< uno::Reference<text::XTextColumns> >(xTextSection, "TextColumns");
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), xTextColumns->getColumnCount());
+}
+
DECLARE_OOXMLEXPORT_TEST(testIndentation, "test_indentation.docx")
{
// fdo#74141 :There was a problem that in style.xml and document.xml in <w:ind> tag "right" & "left" margin
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index 08c7f56..75aee73 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -1160,7 +1160,9 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl )
{
try
{
- xRangeProperties->setPropertyValue(getPropertyName(PROP_PAGE_DESC_NAME), uno::makeAny(aName));
+ if( m_bIsFirstSection )
+ xRangeProperties->setPropertyValue(getPropertyName(PROP_PAGE_DESC_NAME), uno::makeAny(aName));
+
uno::Reference<beans::XPropertySet> xPageStyle (rDM_Impl.GetPageStyles()->getByName(aName), uno::UNO_QUERY_THROW);
HandleMarginsHeaderFooter(rDM_Impl);
if (rDM_Impl.IsNewDoc())
commit a0d1d84a94af41eba94fba2a1f14ad4d8ad12ee7
Author: Justin Luth <justin_luth at sil.org>
Date: Sat Jun 11 10:30:18 2016 +0300
tdf#76349 writer: treat single-column break as page break
Writerfilter imports docx-defined column breaks that exist without
being in a column. Word treats these as if they were a page break.
Writer basically just preserved and ignored them.
I limited the fix to only consider SVX_BREAK_COLUMN_BEFORE since
writerfilter is only given “column break” and treats it as column_before.
Change-Id: I0d974441d53243c4426048dd7cb60b3897b803f6
Reviewed-on: https://gerrit.libreoffice.org/26181
Tested-by: Justin Luth <justin_luth at sil.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
(cherry picked from commit 2721111437706372eaac9bf1d748723196c573ac)
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 041e54b..4cc0f07 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -362,9 +362,15 @@ DECLARE_OOXMLEXPORT_TEST(testColumnBreak_ColumnCountIsZero,"fdo74153.docx")
* The <w:br w:type="column" /> was missing after roundtrip
*/
xmlDocPtr pXmlDoc = parseExport("word/document.xml");
- if (!pXmlDoc)
- return;
- assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:br","type","column");
+ if (pXmlDoc)
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:br","type","column");
+
+ //tdf76349 match Word's behavior of treating breaks in single columns as page breaks.
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+ xCursor->jumpToLastPage();
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xCursor->getPage());
}
DECLARE_OOXMLEXPORT_TEST(testIndentation, "test_indentation.docx")
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index 850fc4e303..0dba6fd 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -1123,8 +1123,11 @@ bool SwFlowFrame::IsPageBreak( bool bAct ) const
return false;
}
+ //for compatibility, also break at column break if no columns exist
const SvxBreak eBreak = pSet->GetBreak().GetBreak();
- if ( eBreak == SVX_BREAK_PAGE_BEFORE || eBreak == SVX_BREAK_PAGE_BOTH )
+ if ( eBreak == SVX_BREAK_PAGE_BEFORE ||
+ eBreak == SVX_BREAK_PAGE_BOTH ||
+ (eBreak == SVX_BREAK_COLUMN_BEFORE && !m_rThis.FindColFrame()) )
return true;
else
{
commit fd32aefd8140b01d35664c4f51c2b7614e373a5d
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Wed Jun 29 16:21:52 2016 +0200
Step towards disposing of ScDataFormDlg properly
There were some VclPtrs hiding inside std::vector (twice), so fix
that, but the destructor is still not called (getting Window::~Window
inconsistency assert). With this patch however the screenshot cppunit
test no longer fails
Thanks noelgrandin for help
Change-Id: I8b46c4608cbab2070e36ef4abec226bcd997425e
Reviewed-on: https://gerrit.libreoffice.org/26772
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
(cherry picked from commit ec6956491a0c6553a9fb91f64c6ceb7cd8e8aa52)
fix Window::~Window: inconsistency in top window chain leak
Change-Id: I4f32b77a4b107e5315e0c2bc9b20db897135c8b0
(cherry picked from commit 937cbdb579820aa1dd0526682df1ea98a34168c5)
Reviewed-on: https://gerrit.libreoffice.org/26792
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
(cherry picked from commit aa7f3a3434c60bec0196e763ff56c76a8c9b57ff)
diff --git a/sc/source/ui/miscdlgs/datafdlg.cxx b/sc/source/ui/miscdlgs/datafdlg.cxx
index 64dd5de..f1d8f63 100644
--- a/sc/source/ui/miscdlgs/datafdlg.cxx
+++ b/sc/source/ui/miscdlgs/datafdlg.cxx
@@ -216,8 +216,14 @@ void ScDataFormDlg::dispose()
m_pBtnNext.clear();
m_pBtnClose.clear();
m_pSlider.clear();
- m_pGrid.clear();
m_pFixedText.clear();
+ for ( auto aFTIter = maFixedTexts.begin(); aFTIter != maFixedTexts.end(); ++aFTIter )
+ aFTIter->disposeAndClear();
+ for ( auto aEditIter = maEdits.begin(); aEditIter != maEdits.end(); ++aEditIter )
+ aEditIter->disposeAndClear();
+ maFixedTexts.clear();
+ maEdits.clear();
+ m_pGrid.clear();
ModalDialog::dispose();
}
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index ca73059..6c54992 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -345,8 +345,8 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- AbstractScDataFormDlg* pDlg = pFact->CreateScDataFormDlg(
- pTabViewShell->GetDialogParent(), pTabViewShell);
+ std::unique_ptr<AbstractScDataFormDlg> pDlg(pFact->CreateScDataFormDlg(
+ pTabViewShell->GetDialogParent(), pTabViewShell));
OSL_ENSURE(pDlg, "Dialog create fail!");
pDlg->Execute();
commit e3bb9903849929ac426db7add856cba5280e2966
Author: Michael Stahl <mstahl at redhat.com>
Date: Wed Jun 29 13:06:41 2016 +0200
vcl: GTK: fix libstdc++ "irreflexive" assert
/usr/include/c++/6.1.1/bits/stl_algo.h:4737:
Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)).
GdkRectangleCoincident is clearly not a less-than operator as required
for std::sort.
Change-Id: If2e65d420dc8cdf0707081361a40d4eaea28424e
(cherry picked from commit e2b267b1906817cc45f0e4896bed58cff5b6b0f9)
Reviewed-on: https://gerrit.libreoffice.org/26767
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 92cdfa1cb576cfe5048c17b10208eac71445d3c2)
diff --git a/vcl/unx/gtk/gtksys.cxx b/vcl/unx/gtk/gtksys.cxx
index e663bb9..a29e721 100644
--- a/vcl/unx/gtk/gtksys.cxx
+++ b/vcl/unx/gtk/gtksys.cxx
@@ -62,6 +62,17 @@ GtkSalSystem::GetDisplayXScreenCount()
namespace
{
+struct GdkRectangleCoincidentLess
+{
+ // fdo#78799 - detect and elide overlaying monitors of different sizes
+ bool operator()(GdkRectangle const& rLeft, GdkRectangle const& rRight)
+ {
+ return
+ rLeft.x < rRight.x
+ || rLeft.y < rRight.y
+ ;
+ }
+};
struct GdkRectangleCoincident
{
// fdo#78799 - detect and elide overlaying monitors of different sizes
@@ -101,10 +112,11 @@ GtkSalSystem::countScreenMonitors()
gdk_screen_get_monitor_geometry(pScreen, j, &aGeometry);
aGeometries.push_back(aGeometry);
}
- GdkRectangleCoincident aCmp;
- std::sort(aGeometries.begin(), aGeometries.end(), aCmp);
+ std::sort(aGeometries.begin(), aGeometries.end(),
+ GdkRectangleCoincidentLess());
const std::vector<GdkRectangle>::iterator aUniqueEnd(
- std::unique(aGeometries.begin(), aGeometries.end(), aCmp));
+ std::unique(aGeometries.begin(), aGeometries.end(),
+ GdkRectangleCoincident()));
nMonitors = std::distance(aGeometries.begin(), aUniqueEnd);
}
maScreenMonitors.push_back(std::make_pair(pScreen, nMonitors));
commit 498b3eaa782a76024a7847399a468741d183427a
Author: Michael Stahl <mstahl at redhat.com>
Date: Wed Jun 29 15:09:41 2016 +0200
boost: suppress GCC6 -Wplacement-new=
function_base.hpp line 308
error: placement new constructing an object of type "boost::..." and
size ‘16’ in a region of type ‘char’ and size ‘1’
Change-Id: If905d56bd21dd30a957b50fa3d5eed3a63899d62
Reviewed-on: https://gerrit.libreoffice.org/26769
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 0a15048b075a9a610ce7b660dabd3b723d489a6a)
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index e52f6cd..af1210f 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -64,6 +64,7 @@ boost_patches += boost.wunused.patch
boost_patches += boost.wdeprecated-auto_ptr.patch.0
boost_patches += boost.signal2.Wshadow.warnings.patch
boost_patches += boost.boost_static_assert_unused_attribute.patch.0
+boost_patches += boost.function.Wplacement-new.patch.1
boost_patches += ubsan.patch.0
boost_patches += rtti.patch.0
diff --git a/external/boost/boost.function.Wplacement-new.patch.1 b/external/boost/boost.function.Wplacement-new.patch.1
new file mode 100644
index 0000000..88908f1
--- /dev/null
+++ b/external/boost/boost.function.Wplacement-new.patch.1
@@ -0,0 +1,16 @@
+GCC 6 warns about function_buffer::data
+
+--- boost/boost/function/function_base.hpp.orig2 2016-06-29 13:54:55.270121431 +0200
++++ boost/boost/function/function_base.hpp 2016-06-29 13:58:50.343103199 +0200
+@@ -37,6 +37,11 @@
+ #include <boost/function_equal.hpp>
+ #include <boost/function/function_fwd.hpp>
+
++#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 600)
++# pragma GCC diagnostic push
++# pragma GCC diagnostic ignored "-Wplacement-new="
++#endif
++
+ #if defined(BOOST_MSVC)
+ # pragma warning( push )
+ # pragma warning( disable : 4793 ) // complaint about native code generation
commit 386c462e8b9c6e71f804906671af030c82b6d056
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jun 28 22:10:06 2016 +0200
gbuild: recognize newfangled screen TERM=screen.xterm-256color
Seems to have changed from Fedora 23, where it was just "screen", to 24.
Change-Id: I9078c337093d12d62e9afe10b1f02aaf346d4b43
(cherry picked from commit 4dcba01d97b72db35885c505e647425059740a4c)
Reviewed-on: https://gerrit.libreoffice.org/26766
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 1ddc2f93c49660cf651f4faeb1f0f596eab953e2)
diff --git a/solenv/gbuild/Output.mk b/solenv/gbuild/Output.mk
index cd3682f..64bea4e 100644
--- a/solenv/gbuild/Output.mk
+++ b/solenv/gbuild/Output.mk
@@ -62,6 +62,7 @@ KNOWN_TERM:=Eterm aterm gnome kterm linux putty rxvt rxvt-unicode screen xterm x
KNOWN_TERM+=$(patsubst %,%-color,$(KNOWN_TERM))
KNOWN_TERM+=$(patsubst %-color,%-256color,$(KNOWN_TERM))
KNOWN_TERM+=$(patsubst %-color,%+256color,$(KNOWN_TERM))
+KNOWN_TERM+=$(patsubst %,screen.%,$(KNOWN_TERM))
ifneq ($(strip $(gb_COLOR)),)
ifneq ($(filter $(TERM),$(KNOWN_TERM)),)
commit b425d0d9439344f4ea03ba91ad656267ee5747a7
Author: Eike Rathke <erack at redhat.com>
Date: Mon Jun 27 13:02:20 2016 +0200
tdf#100641 correct OOXML function name is EFFECT instead of EFFECTIVE
(cherry picked from commit ed5bcef57b678cb92c68bf842a72e50f4dd1e2ea)
accept EFFECTIVE as EFFECT in OOXML import
(cherry picked from commit f3f89f4f3180b0fd63c5290c665894c6a27f2ae2)
18a914972d69a37e9dcf5b18ffbea9177004dad7
Change-Id: Ieb7484afe210e378efd43ba3a181cd90d29619b9
Reviewed-on: https://gerrit.libreoffice.org/26704
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 4c6685a93cc4b82d2a9300f9a4fd64c5c54fb568)
diff --git a/formula/source/core/resource/core_resource.src b/formula/source/core/resource/core_resource.src
index af22f1b..a024aa0 100644
--- a/formula/source/core/resource/core_resource.src
+++ b/formula/source/core/resource/core_resource.src
@@ -663,7 +663,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
String SC_OPCODE_PPMT { Text = "PPMT" ; };
String SC_OPCODE_CUM_IPMT { Text = "CUMIPMT" ; };
String SC_OPCODE_CUM_PRINC { Text = "CUMPRINC" ; };
- String SC_OPCODE_EFFECTIVE { Text = "EFFECTIVE" ; };
+ String SC_OPCODE_EFFECTIVE { Text = "EFFECT" ; };
String SC_OPCODE_NOMINAL { Text = "NOMINAL" ; };
String SC_OPCODE_SUB_TOTAL { Text = "SUBTOTAL" ; };
String SC_OPCODE_DB_SUM { Text = "DSUM" ; };
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index a841c80..c6684c8 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2672,6 +2672,28 @@ bool ScCompiler::IsOpCode( const OUString& rName, bool bInArray )
}
}
}
+ else if (mxSymbols->isOOXML())
+ {
+ // OOXML names that are not written in the current mapping but to be
+ // recognized as old versions wrote them.
+ struct FunctionName
+ {
+ const sal_Char* pName;
+ OpCode eOp;
+ };
+ static const FunctionName aOoxmlAliases[] = {
+ { "EFFECTIVE", ocEffective } // EFFECTIVE -> EFFECT
+ };
+ for (const FunctionName& rOoxmlAlias : aOoxmlAliases)
+ {
+ if (rName.equalsIgnoreAsciiCaseAscii( rOoxmlAlias.pName))
+ {
+ maRawToken.SetOpCode( rOoxmlAlias.eOp);
+ bFound = true;
+ break; // for
+ }
+ }
+ }
if (!bFound)
{
OUString aIntName;
commit ad2debcefa7a2669004155e58b3afdda70ba7434
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Jun 27 10:28:55 2016 +0300
tdf#100222: Show the dialog just once even if both toggles were changed
Change-Id: If6058d68f80ebc3e235f0a681cfe3240985e2429
Reviewed-on: https://gerrit.libreoffice.org/26697
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
(cherry picked from commit 93440e1c1237a2237e8a3b8914514d8889bb6172)
diff --git a/cui/source/options/optopencl.cxx b/cui/source/options/optopencl.cxx
index f055ed0..2bf4cfe 100644
--- a/cui/source/options/optopencl.cxx
+++ b/cui/source/options/optopencl.cxx
@@ -155,9 +155,6 @@ bool SvxOpenCLTabPage::FillItemSet( SfxItemSet* )
{
officecfg::Office::Common::Misc::UseSwInterpreter::set(mpUseSwInterpreter->IsChecked(), batch);
bModified = true;
-
- ScopedVclPtrInstance<MessageDialog> aWarnBox(this, CUI_RES(RID_SVXSTR_OPTIONS_RESTART), VCL_MESSAGE_INFO);
- aWarnBox->Execute();
}
if (mpUseOpenCL->IsValueChangedFromSaved())
@@ -167,13 +164,14 @@ bool SvxOpenCLTabPage::FillItemSet( SfxItemSet* )
{
maConfig.set();
bModified = true;
-
- ScopedVclPtrInstance<MessageDialog> aWarnBox(this, CUI_RES(RID_SVXSTR_OPTIONS_RESTART), VCL_MESSAGE_INFO);
- aWarnBox->Execute();
}
if (bModified)
+ {
+ ScopedVclPtrInstance<MessageDialog> aWarnBox(this, CUI_RES(RID_SVXSTR_OPTIONS_RESTART), VCL_MESSAGE_INFO);
+ aWarnBox->Execute();
batch->commit();
+ }
return bModified;
}
commit 34dbeaed44df03a57faa346d1a7e7e0a0205476d
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Jun 27 17:26:44 2016 +0300
tdf#75387: Don't case-fold strings for formula group calculations
There should be no need for it as far as I see. Possibly it made some
sense back when we thought we could use OpenCL for operators and
functions that are supposed to ignore the case of strings they
handle. But we hopefully should never try to use OpenCL for string
data nowadays anyway. And actually, the case-folding ended up
affecting strings handled by the so-called software interpreter. For
the tdf#75387, the sample sheet worked fine when OpenCL was enabled.
Change-Id: I1c170ebf09551fea0964f394cdb3c65079672257
(cherry picked from commit f948dce856d51704e1962553198015dbebb6e527)
Reviewed-on: https://gerrit.libreoffice.org/26746
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
(cherry picked from commit 593d8c825df9c0e79b2a8bb9a726ffb34b146845)
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 2287b3b..4d7476e 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -2326,7 +2326,7 @@ bool appendToBlock(
rCxt.ensureStrArray(rColArray, nArrayLen);
for (; itData != itDataEnd; ++itData, ++nPos)
- (*rColArray.mpStrArray)[nPos] = itData->getDataIgnoreCase();
+ (*rColArray.mpStrArray)[nPos] = itData->getData();
}
break;
case sc::element_type_edittext:
@@ -2338,7 +2338,7 @@ bool appendToBlock(
for (; itData != itDataEnd; ++itData, ++nPos)
{
OUString aStr = ScEditUtil::GetString(**itData, pDoc);
- (*rColArray.mpStrArray)[nPos] = rPool.intern(aStr).getDataIgnoreCase();
+ (*rColArray.mpStrArray)[nPos] = rPool.intern(aStr).getData();
}
}
break;
@@ -2439,7 +2439,7 @@ void copyFirstStringBlock(
sc::string_block::iterator itEnd = it;
std::advance(itEnd, nLen);
for (; it != itEnd; ++it, ++itArray)
- *itArray = it->getDataIgnoreCase();
+ *itArray = it->getData();
}
break;
case sc::element_type_edittext:
@@ -2453,7 +2453,7 @@ void copyFirstStringBlock(
{
EditTextObject* pText = *it;
OUString aStr = ScEditUtil::GetString(*pText, &rDoc);
- *itArray = rPool.intern(aStr).getDataIgnoreCase();
+ *itArray = rPool.intern(aStr).getData();
}
}
break;
commit 1a62df94f05d538738b5c62afeed7db103280a5c
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Jun 20 12:13:02 2016 +0100
tdf#96540 dragging between sheets can change the current cursor position
so the at position at time of drop may not be that at the start of
the drag.
So set the current cursor position to ScTransferObj when the drag starts
and retrieve it later
Related to:
commit ac3b66057ba677903b6de354317417b267be0fa0
Author: Kohei Yoshida <kyoshida at novell.com>
Date: Thu Sep 16 11:09:29 2010 +0200
calc-selection-fixed-cursor.diff: Migrated
n#502717, i#21869, i#97093, when making selection, don't move the cursor position
and
commit c433fa0639ccf5caeb0c128c8a3794322e2a1c81
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Fri Jul 6 02:04:44 2012 +0200
adjust the calculation of the cursor pos if ALT is used, fdo#48869
Change-Id: I6316717c860d999270aa7f0fb50af5f6dfc7efd7
I haven't used SetSourceCursorPos everywhere a ScTransferObj is created, just
where its created through a drag event
Change-Id: I50c36b4a2ba45426edebc1f1dfa5e262db3c5d03
Reviewed-on: https://gerrit.libreoffice.org/26512
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
(cherry picked from commit f9b46bbd2446a6c9a0aaab31016536bda4a77294)
Reviewed-on: https://gerrit.libreoffice.org/26538
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
(cherry picked from commit 172d13121ff2afa1a2d2697570394560ae9a6ffa)
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index 85f65e2..d1ac04e 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -116,6 +116,8 @@ ScTransferObj::ScTransferObj( ScDocument* pClipDoc, const TransferableObjectDesc
aObjDesc( rDesc ),
nDragHandleX( 0 ),
nDragHandleY( 0 ),
+ nSourceCursorX( MAXCOL + 1 ),
+ nSourceCursorY( MAXROW + 1 ),
nDragSourceFlags( 0 ),
bDragWasInternal( false ),
bUsedForLink( false ),
@@ -517,6 +519,19 @@ void ScTransferObj::SetDragHandlePos( SCCOL nX, SCROW nY )
nDragHandleY = nY;
}
+void ScTransferObj::SetSourceCursorPos( SCCOL nX, SCROW nY )
+{
+ nSourceCursorX = nX;
+ nSourceCursorY = nY;
+}
+
+bool ScTransferObj::WasSourceCursorInSelection() const
+{
+ return
+ nSourceCursorX >= aBlock.aStart.Col() && nSourceCursorX <= aBlock.aEnd.Col() &&
+ nSourceCursorY >= aBlock.aStart.Row() && nSourceCursorY <= aBlock.aEnd.Row();
+}
+
void ScTransferObj::SetVisibleTab( SCTAB nNew )
{
nVisibleTab = nNew;
diff --git a/sc/source/ui/inc/transobj.hxx b/sc/source/ui/inc/transobj.hxx
index a29fd4c..abce989 100644
--- a/sc/source/ui/inc/transobj.hxx
+++ b/sc/source/ui/inc/transobj.hxx
@@ -49,6 +49,8 @@ private:
css::uno::Reference<css::sheet::XSheetCellRanges> xDragSourceRanges;
SCCOL nDragHandleX;
SCROW nDragHandleY;
+ SCCOL nSourceCursorX;
+ SCROW nSourceCursorY;
SCTAB nVisibleTab;
sal_uInt16 nDragSourceFlags;
bool bDragWasInternal;
@@ -83,8 +85,11 @@ public:
SCROW GetNonFilteredRows() const { return nNonFiltered; }
SCCOL GetDragHandleX() const { return nDragHandleX; }
SCROW GetDragHandleY() const { return nDragHandleY; }
+ bool WasSourceCursorInSelection() const;
+ SCCOL GetSourceCursorX() const { return nSourceCursorX; }
+ SCROW GetSourceCursorY() const { return nSourceCursorY; }
SCTAB GetVisibleTab() const { return nVisibleTab; }
- sal_uInt16 GetDragSourceFlags() const { return nDragSourceFlags; }
+ sal_uInt16 GetDragSourceFlags() const { return nDragSourceFlags; }
bool HasFilteredRows() const { return bHasFiltered; }
bool GetUseInApi() const { return bUseInApi; }
ScDocShell* GetSourceDocShell();
@@ -93,6 +98,7 @@ public:
void SetDrawPersist( const SfxObjectShellRef& rRef );
void SetDragHandlePos( SCCOL nX, SCROW nY );
+ void SetSourceCursorPos( SCCOL nX, SCROW nY );
void SetVisibleTab( SCTAB nNew );
void SetDragSource( ScDocShell* pSourceShell, const ScMarkData& rMark );
void SetDragSourceFlags( sal_uInt16 nFlags );
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 8982dbd..2518a29 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -4340,8 +4340,18 @@ sal_Int8 ScGridWindow::DropTransferObj( ScTransferObj* pTransObj, SCCOL nDestPos
{
pView->MarkRange( aDest, false );
- SCCOL nDCol = pViewData->GetCurX() - aSource.aStart.Col() + nCorrectCursorPosCol;
- SCROW nDRow = pViewData->GetCurY() - aSource.aStart.Row() + nCorrectCursorPosRow;
+ SCCOL nDCol;
+ SCROW nDRow;
+ if (pTransObj->WasSourceCursorInSelection())
+ {
+ nDCol = pTransObj->GetSourceCursorX() - aSource.aStart.Col() + nCorrectCursorPosCol;
+ nDRow = pTransObj->GetSourceCursorY() - aSource.aStart.Row() + nCorrectCursorPosRow;
+ }
+ else
+ {
+ nDCol = 0;
+ nDRow = 0;
+ }
pView->SetCursor( aDest.aStart.Col() + nDCol, aDest.aStart.Row() + nDRow );
}
diff --git a/sc/source/ui/view/select.cxx b/sc/source/ui/view/select.cxx
index a9b4a20..b7a629a 100644
--- a/sc/source/ui/view/select.cxx
+++ b/sc/source/ui/view/select.cxx
@@ -198,6 +198,7 @@ void ScViewFunctionSet::BeginDrag()
SCCOL nHandleX = (nPosX >= (SCsCOL) nStartX) ? nPosX - nStartX : 0;
SCROW nHandleY = (nPosY >= (SCsROW) nStartY) ? nPosY - nStartY : 0;
pTransferObj->SetDragHandlePos( nHandleX, nHandleY );
+ pTransferObj->SetSourceCursorPos( pViewData->GetCurX(), pViewData->GetCurY() );
pTransferObj->SetVisibleTab( nTab );
pTransferObj->SetDragSource( pDocSh, rMark );
diff --git a/sc/source/ui/view/tabcont.cxx b/sc/source/ui/view/tabcont.cxx
index bfb992e..ae51a99 100644
--- a/sc/source/ui/view/tabcont.cxx
+++ b/sc/source/ui/view/tabcont.cxx
@@ -482,6 +482,8 @@ void ScTabControl::DoDrag( const vcl::Region& /* rRegion */ )
pTransferObj->SetDragSource( pDocSh, aTabMark );
+ pTransferObj->SetSourceCursorPos( pViewData->GetCurX(), pViewData->GetCurY() );
+
vcl::Window* pWindow = pViewData->GetActiveWin();
SC_MOD()->SetDragObject( pTransferObj, nullptr ); // for internal D&D
pTransferObj->StartDrag( pWindow, DND_ACTION_COPYMOVE | DND_ACTION_LINK );
commit 1ef195a39ae1534218e953cafeb17586bbc42c1b
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Jun 22 12:22:20 2016 +0100
Resolves: tdf#100303 Report crashes on close of conditional formatting dialog
Condition multiply inherits so the Builder::disposeBuilder call was missed
and prenotify occurs during ::dispose when there is no m_pConditionPlayground
anymore, so m_pConditionPlayground == 0 where pPlaygroundCandidate is 0
passes, so a random widget gets cast to somethings its not, hence the bad
cast exception
Change-Id: I6d081dd55df1a68ab893294858e1ab0054d5e049
(cherry picked from commit 547e4b3a80708600edbc3f5669b4428877b5a951)
Reviewed-on: https://gerrit.libreoffice.org/26569
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Michael Stahl <mstahl at redhat.com>
(cherry picked from commit 7cb1840b41fcb1cf0ec60a0ceecfd1cbf6e44ae7)
diff --git a/reportdesign/source/ui/dlg/CondFormat.cxx b/reportdesign/source/ui/dlg/CondFormat.cxx
index 175a740..8351806 100644
--- a/reportdesign/source/ui/dlg/CondFormat.cxx
+++ b/reportdesign/source/ui/dlg/CondFormat.cxx
@@ -500,7 +500,10 @@ namespace rptui
}
case MouseNotifyEvent::GETFOCUS:
{
- if ( m_bDeletingCondition )
+ if (m_bDeletingCondition)
+ break;
+
+ if (!m_pConditionPlayground) //e.g. during dispose
break;
const vcl::Window* pGetFocusWindow( _rNEvt.GetWindow() );
diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx
index d5477f1..43c8b7b 100644
--- a/reportdesign/source/ui/dlg/Condition.cxx
+++ b/reportdesign/source/ui/dlg/Condition.cxx
@@ -329,6 +329,7 @@ void Condition::dispose()
m_pAddCondition.clear();
m_pRemoveCondition.clear();
m_pColorFloat.disposeAndClear();
+ disposeBuilder();
VclHBox::dispose();
}
commit db719b93cfd0aef145a2cef55776df9a7865ea7d
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Jun 27 12:36:22 2016 +0300
tdf#98515: Bail out early if kernel would have ridiculously many parameters
The Right Thing to do would be to compare the accumulated kernel
parameter size against the CL_DEVICE_MAX_PARAMETER_SIZE of the device,
but let's just do this sanity check for now. Bail out if the kernel
would have more than 50 parameters.
Calculating the accumulated kernel parameter size would be more
complicated and I don't want to touch this code more than
necessary. The kernel compilation will fail anyway if the size of
parameters exceeds the limit and this sanity check is just to make us
bail out a bit earlier.
In tdf#98515 the slowness seems to indeed be caused by the OpenCL code
generation , and there the number of parameters was 999, so this
sanity check does fix the slow loading issue (I checked).
(cherry picked from commit a48aefcae40663b63005d49a04fc7b89a473d613)
Change-Id: Iead6dfb94ec8e7b2968ffed9423f0f9522a10ce9
Reviewed-on: https://gerrit.libreoffice.org/26703
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
(cherry picked from commit bc34f5bae1ffc42fb848b2341020fc3fa52afbe2)
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index 49360df..8055ecf 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -2630,6 +2630,19 @@ DynamicKernelSoPArguments::DynamicKernelSoPArguments(const ScCalcConfig& config,
const formula::DoubleVectorRefToken* pDVR =
static_cast<const formula::DoubleVectorRefToken*>(pChild);
+ // FIXME: The Right Thing to do would be to compare the accumulated kernel
+ // parameter size against the CL_DEVICE_MAX_PARAMETER_SIZE of the device, but
+ // let's just do this sanity check for now. The kernel compilation will
+ // hopefully fail anyway if the size of parameters exceeds the limit and this
+ // sanity check is just to make us bail out a bit earlier.
+
+ // The number 50 comes from the fact that the minimum size of
+ // CL_DEVICE_MAX_PARAMETER_SIZE is 256, which for 32-bit code probably means 64
+ // of them. Round down a bit.
+
+ if (pDVR->GetArrays().size() > 50)
+ throw UnhandledToken(pChild, ("Kernel would have ridiculously many parameters (" + std::to_string(2 + pDVR->GetArrays().size()) + ")").c_str());
+
for (size_t j = 0; j < pDVR->GetArrays().size(); ++j)
{
SAL_INFO("sc.opencl", "i=" << i << " j=" << j <<
commit 0e92c0fecb2e64cad90c8097653dc791aa4d546e
Author: Michael Stahl <mstahl at redhat.com>
Date: Mon Jun 27 17:28:05 2016 +0200
tdf#100495 sw: Exchange Database shouldn't delete the created odb file
(regression from f01f31201f9b26b3071ab25f9a5a3a0311ff7423)
Change-Id: Ie5b83a82711229bda045b7ef7a9167cfd873f616
(cherry picked from commit 5a042dad2779eefc76269e14b888bd84df590aac)
Reviewed-on: https://gerrit.libreoffice.org/26723
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit f1dc76532638a5093b878919a3c7dd3aa5d22f09)
diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx
index bfe28a3..abcf707 100644
--- a/sw/source/uibase/dbui/dbmgr.cxx
+++ b/sw/source/uibase/dbui/dbmgr.cxx
@@ -2698,7 +2698,6 @@ OUString SwDBManager::LoadAndRegisterDataSource(const DBConnURITypes type, const
// Cannot embed, as embedded data source would need the URL of the parent document.
OUString sHomePath(SvtPathOptions().GetWorkPath());
utl::TempFile aTempFile(sNewName, true, &sOutputExt, pDestDir ? pDestDir : &sHomePath);
- aTempFile.EnableKillingFile();
OUString sTmpName = aTempFile.GetURL();
xStore->storeAsURL(sTmpName, uno::Sequence<beans::PropertyValue>());
}
commit 84b87428195c2d1202fe8d648237526e6fa5fd0e
Author: Michael Stahl <mstahl at redhat.com>
Date: Wed Jun 15 18:07:12 2016 +0200
tdf#100105 sw: RTF export: fix empty hyperlinks
For empty hyperlinks the EndURL() is called immediately after StartURL()
Due to the way the various buffers are written, the group closing braces
are written before the groups are opened, which is rather invalid.
Using the m_aRun buffer instead of m_aStyles appears to fix the problem.
(regression from b8907bf3d3b37c686a414ffbbd2d732348aab5b9)
(cherry picked from commit b4855bd63c05096df1a2da339133f243bb30d902)
Reviewed-on: https://gerrit.libreoffice.org/26336
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Michael Stahl <mstahl at redhat.com>
(cherry picked from commit 744bd590fd2c39638e8df41a569cb2cc376e7450)
Change-Id: I6910e1afa0ee262ae0496cf1d3aa83ae3e537ad0
Reviewed-on: https://gerrit.libreoffice.org/26699
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
(cherry picked from commit f687c57465292e940f9e0d69aa2e4ee3376bd569)
diff --git a/sw/qa/extras/rtfexport/data/hyperlink_empty.rtf b/sw/qa/extras/rtfexport/data/hyperlink_empty.rtf
new file mode 100644
index 0000000..bdd263d
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/hyperlink_empty.rtf
@@ -0,0 +1,8 @@
+{\rtf1
+{\field
+{\*\fldinst HYPERLINK "http://example.net"}
+{\fldrslt }
+}
+foobar
+\par
+}
diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx
index fb2b63b..3fced50 100644
--- a/sw/qa/extras/rtfexport/rtfexport.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport.cxx
@@ -523,6 +523,17 @@ DECLARE_RTFEXPORT_TEST(testHyperlink, "hyperlink.rtf")
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(getRun(getParagraph(1), 3, "!"), "HyperLinkURL"));
}
+DECLARE_RTFEXPORT_TEST(testHyperlinkTdf100105, "hyperlink_empty.rtf")
+{
+ // export of empty link was invalid, group was closed before it was opened
+ uno::Reference<text::XTextDocument> xTextDoc(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextCursor> xCursor(xTextDoc->getText()->createTextCursor());
+ xCursor->gotoStart(false);
+ CPPUNIT_ASSERT_EQUAL(OUString("http://example.net"), getProperty<OUString>(xCursor, "HyperLinkURL"));
+ // getRun doesn't provide a 0-length hyperlink
+ CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(getRun(getParagraph(1), 1, "foobar"), "HyperLinkURL"));
+}
+
DECLARE_RTFEXPORT_TEST(test78758, "fdo78758.rtf")
{
CPPUNIT_ASSERT_EQUAL(OUString("#__RefHeading___Toc264438068"),
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 9e1c583..4e088f1 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -555,27 +555,27 @@ bool RtfAttributeOutput::StartURL(const OUString& rUrl, const OUString& rTarget)
// Ignore hyperlink without an URL.
if (!rUrl.isEmpty())
{
- m_aStyles.append('{');
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FIELD);
- m_aStyles.append('{');
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE);
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FLDINST);
- m_aStyles.append(" HYPERLINK ");
+ m_aRun->append('{');
+ m_aRun->append(OOO_STRING_SVTOOLS_RTF_FIELD);
+ m_aRun->append('{');
+ m_aRun->append(OOO_STRING_SVTOOLS_RTF_IGNORE);
+ m_aRun->append(OOO_STRING_SVTOOLS_RTF_FLDINST);
+ m_aRun->append(" HYPERLINK ");
OUString sURL(rUrl);
- m_aStyles.append("\"");
- m_aStyles.append(msfilter::rtfutil::OutString(sURL, m_rExport.eCurrentEncoding));
- m_aStyles.append("\" ");
+ m_aRun->append("\"");
+ m_aRun->append(msfilter::rtfutil::OutString(sURL, m_rExport.eCurrentEncoding));
+ m_aRun->append("\" ");
if (!rTarget.isEmpty())
{
- m_aStyles.append("\\\\t \"");
- m_aStyles.append(msfilter::rtfutil::OutString(rTarget, m_rExport.eCurrentEncoding));
- m_aStyles.append("\" ");
+ m_aRun->append("\\\\t \"");
+ m_aRun->append(msfilter::rtfutil::OutString(rTarget, m_rExport.eCurrentEncoding));
+ m_aRun->append("\" ");
}
- m_aStyles.append("}");
- m_aStyles.append("{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " {");
+ m_aRun->append("}");
+ m_aRun->append("{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " {");
}
return true;
}
commit d37e32b966fdfe8bad77e8e8fdcd3de86bf862e3
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date: Fri Jun 24 16:42:45 2016 +0800
tdf#100411 start the flush timer when batching (PostBatchDraw)
When we batch a draw command we need to start the flush timer
(if not already started) as otherwise it could happen that we
won't flush the offscreen texture at the correct time or at all.
This fixes a problem with drawing of pop-up "help" text.
(cherry picked from commit e1296e295e7d4f1104d2c90b1f51d52251358bea)
Change-Id: I6afcf173c3ac517ed0612cd413d95e28c19faa81
Reviewed-on: https://gerrit.libreoffice.org/26630
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 24c3838b5fd2005d9df902c9a7d03fcba78adbe4)
diff --git a/vcl/inc/openglgdiimpl.hxx b/vcl/inc/openglgdiimpl.hxx
index df7b9e9..2037268 100644
--- a/vcl/inc/openglgdiimpl.hxx
+++ b/vcl/inc/openglgdiimpl.hxx
@@ -169,6 +169,8 @@ public:
// operations to do after painting
void PostDraw();
+ void PostBatchDraw();
+
protected:
bool AcquireContext(bool bForceCreate = false);
bool ReleaseContext();
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index 188db65..1422c6a 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -249,6 +249,15 @@ void OpenGLSalGraphicsImpl::PostDraw()
OpenGLZone::leave();
}
+void OpenGLSalGraphicsImpl::PostBatchDraw()
+{
+ if (IsOffscreen())
+ return;
+
+ if (!mpFlush->IsActive())
+ mpFlush->Start();
+}
+
void OpenGLSalGraphicsImpl::ApplyProgramMatrices(float fPixelOffset)
{
mpProgram->ApplyMatrix(GetWidth(), GetHeight(), fPixelOffset);
@@ -1519,6 +1528,7 @@ void OpenGLSalGraphicsImpl::DrawMask( OpenGLTexture& rMask, SalColor nMaskColor,
void OpenGLSalGraphicsImpl::DeferredTextDraw(OpenGLTexture& rTexture, SalColor aMaskColor, const SalTwoRect& rPosAry)
{
mpAccumulatedTextures->insert(rTexture, aMaskColor, rPosAry);
+ PostBatchDraw();
}
void OpenGLSalGraphicsImpl::FlushDeferredDrawing()
commit 2ea72b322911ecb4c8df0c23bb2570e74bdc5407
Author: Tor Lillqvist <tml at collabora.com>
Date: Thu Jun 23 17:40:30 2016 +0300
tdf#100222: Inform user that a restart is needed after toggling OpenCL use
(cherry picked from commit c7c27b9b191291cf36e4940aef3e3e7371855797)
Change-Id: Ic33cb02440276bc0601c86f2c9eab7d74a6b9874
Reviewed-on: https://gerrit.libreoffice.org/26611
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 6d3a5d8aa07e575c153316a9725f36c43abd0bca)
diff --git a/cui/source/options/optopencl.cxx b/cui/source/options/optopencl.cxx
index db1470e..f055ed0 100644
--- a/cui/source/options/optopencl.cxx
+++ b/cui/source/options/optopencl.cxx
@@ -167,6 +167,9 @@ bool SvxOpenCLTabPage::FillItemSet( SfxItemSet* )
{
maConfig.set();
bModified = true;
+
+ ScopedVclPtrInstance<MessageDialog> aWarnBox(this, CUI_RES(RID_SVXSTR_OPTIONS_RESTART), VCL_MESSAGE_INFO);
+ aWarnBox->Execute();
}
if (bModified)
More information about the Libreoffice-commits
mailing list