[Libreoffice-commits] core.git: Branch 'feature/msforms' - sw/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Mar 8 09:02:14 UTC 2019
sw/source/core/crsr/DropDownFormFieldButton.cxx | 2 +-
sw/source/core/crsr/bookmrk.cxx | 8 +++++++-
sw/source/core/doc/docbm.cxx | 5 ++---
sw/source/core/inc/bookmrk.hxx | 1 +
sw/source/uibase/shells/textsh1.cxx | 13 +++++++++----
5 files changed, 20 insertions(+), 9 deletions(-)
New commits:
commit 4d3e17afe589d2207dd2cb6dc8c2aa0889227e91
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Fri Mar 8 09:58:34 2019 +0100
Commit: Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Fri Mar 8 09:58:34 2019 +0100
More fixes about rendering
Change-Id: I927fcf986a0282448e4a046d7db847fe7bc5e066
diff --git a/sw/source/core/crsr/DropDownFormFieldButton.cxx b/sw/source/core/crsr/DropDownFormFieldButton.cxx
index cf73102f6ba4..b2b45af15264 100644
--- a/sw/source/core/crsr/DropDownFormFieldButton.cxx
+++ b/sw/source/core/crsr/DropDownFormFieldButton.cxx
@@ -196,7 +196,7 @@ void DropDownFormFieldButton::Paint(vcl::RenderContext& rRenderContext, const to
= Color(lcl_GetFillColor(aLineColor.getBColor(), (m_pFieldPopup ? 0.5 : 0.75)));
// Draw the frame around the field
- // GTK3 backend cuts down the frame top and left border so add a padding around the frame
+ // GTK3 backend cuts down the frame's top and left border, to avoid that add a padding around the frame
int nPadding = 1;
Point aPos (nPadding, nPadding);
Size aSize (m_aFieldFramePixel.GetSize().Width() - nPadding, m_aFieldFramePixel.GetSize().Height() - 2);
diff --git a/sw/source/core/crsr/bookmrk.cxx b/sw/source/core/crsr/bookmrk.cxx
index 954b0bfaf821..2e2a5417d0a0 100644
--- a/sw/source/core/crsr/bookmrk.cxx
+++ b/sw/source/core/crsr/bookmrk.cxx
@@ -537,13 +537,19 @@ namespace sw { namespace mark
if(!m_pButton)
m_pButton = VclPtr<DropDownFormFieldButton>::Create(pEditWin, *this);
m_pButton->CalcPosAndSize(m_aPortionPaintArea);
- m_pButton->Show(false); // Hide the button here and make it visible later, to make transparent background work with SAL_USE_VCLPLUGIN=gen
+ m_pButton->Show();
}
}
void DropDownFieldmark::HideButton()
{
if(m_pButton)
+ m_pButton->Show(false);
+ }
+
+ void DropDownFieldmark::RemoveButton()
+ {
+ if(m_pButton)
m_pButton.disposeAndClear();
}
}}
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index d9acb0f6a28f..13b1926ee62f 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -1166,8 +1166,7 @@ namespace sw { namespace mark
if(pNewActiveFieldmark != m_pLastActiveFieldmark)
{
- if(m_pLastActiveFieldmark)
- m_pLastActiveFieldmark->HideButton();
+ ClearFieldActivation();
m_pLastActiveFieldmark = pNewActiveFieldmark;
}
}
@@ -1175,7 +1174,7 @@ namespace sw { namespace mark
void MarkManager::ClearFieldActivation()
{
if(m_pLastActiveFieldmark)
- m_pLastActiveFieldmark->HideButton();
+ m_pLastActiveFieldmark->RemoveButton();
m_pLastActiveFieldmark = nullptr;
}
diff --git a/sw/source/core/inc/bookmrk.hxx b/sw/source/core/inc/bookmrk.hxx
index 22d55d723a5e..e14afc12ccf7 100644
--- a/sw/source/core/inc/bookmrk.hxx
+++ b/sw/source/core/inc/bookmrk.hxx
@@ -276,6 +276,7 @@ namespace sw {
void ShowButton(SwEditWin* pEditWin);
void HideButton();
+ void RemoveButton();
private:
SwRect m_aPortionPaintArea;
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index 3bcce84ca476..edda5ba52865 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -121,6 +121,7 @@
#include <memory>
#include <xmloff/odffields.hxx>
#include <swabstdlg.hxx>
+#include <bookmrk.hxx>
using namespace ::com::sun::star;
using namespace com::sun::star::beans;
@@ -1383,10 +1384,14 @@ void SwTextShell::Execute(SfxRequest &rReq)
{
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateDropDownFormFieldDialog(rWrtSh.GetView().GetFrameWeld(), pFieldBM));
- pDlg->Execute();
- pFieldBM->Invalidate();
- rWrtSh.InvalidateWindows( rWrtSh.GetView().GetVisArea() );
- rWrtSh.UpdateCursor(); // cursor position might be invalid
+ if (pDlg->Execute() == RET_OK)
+ {
+ pFieldBM->Invalidate();
+ rWrtSh.InvalidateWindows( rWrtSh.GetView().GetVisArea() );
+ rWrtSh.UpdateCursor(); // cursor position might be invalid
+ // Hide the button here and make it visible later, to make transparent background work with SAL_USE_VCLPLUGIN=gen
+ dynamic_cast<::sw::mark::DropDownFieldmark*>(pFieldBM)->HideButton();
+ }
}
else
{
More information about the Libreoffice-commits
mailing list