include/vcl/dialog.hxx | 5 +++++ sd/source/ui/dlg/brkdlg.cxx | 9 +++++++-- vcl/source/window/dialog.cxx | 18 +++++++++++------- 3 files changed, 23 insertions(+), 9 deletions(-)
New commits: commit b07163d73a28e7792011edddf246726919364a26 Author: Armin Le Grand <armin.le.gr...@cib.de> Date: Fri Sep 30 12:40:47 2016 +0200 tdf#102852 Fixed BreakDlg Needed to ensure correct return value in dialog and that it repaints Change-Id: I029d10b6699629b2f2f8651f6d96ceceba7a3d8c Reviewed-on: https://gerrit.libreoffice.org/29401 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Armin Le Grand <armin.le.gr...@cib.de> diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx index da3aa7e..0d763bd 100644 --- a/include/vcl/dialog.hxx +++ b/include/vcl/dialog.hxx @@ -100,6 +100,11 @@ public: virtual void PrePaint(vcl::RenderContext& rRenderContext) override; virtual void PostPaint(vcl::RenderContext& rRenderContext) override; + // ensureRepaint - triggers Application::Yield until the dialog is + // completely repainted. Sometimes needed for dialogs showing progress + // during actions + void ensureRepaint(); + // Screenshot interface virtual std::vector<OString> getAllPageUIXMLDescriptions() const; virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription); diff --git a/sd/source/ui/dlg/brkdlg.cxx b/sd/source/ui/dlg/brkdlg.cxx index be0c2d5..516a3bc 100644 --- a/sd/source/ui/dlg/brkdlg.cxx +++ b/sd/source/ui/dlg/brkdlg.cxx @@ -145,8 +145,13 @@ IMPL_LINK( BreakDlg, UpDate, void*, nInit, bool ) m_pFiInsInfo->SetText(info); } - Application::Reschedule(); - return bCancel; + // make sure dialog gets painted, it is intended to + // show the progress to the user. Also necessary to + // provide a clickable cancel button + ensureRepaint(); + + // return okay-value (-> !cancel) + return !bCancel; } /** diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index 5884a73..eef4c5a 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -863,14 +863,8 @@ bool Dialog::selectPageByUIXMLDescription(const OString& /*rUIXMLDescription*/) return true; } -Bitmap Dialog::createScreenshot() +void Dialog::ensureRepaint() { - // same prerequisites as in Execute() - setDeferredProperties(); - ImplAdjustNWFSizes(); - Show(); - ToTop(); - // ensure repaint Invalidate(); mbPaintComplete = false; @@ -879,6 +873,16 @@ Bitmap Dialog::createScreenshot() { Application::Yield(); } +} + +Bitmap Dialog::createScreenshot() +{ + // same prerequisites as in Execute() + setDeferredProperties(); + ImplAdjustNWFSizes(); + Show(); + ToTop(); + ensureRepaint(); return GetBitmap(Point(), GetOutputSizePixel()); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits