tdf#121778: Work around odd macOS 10.14 graphicsContextWithWindow failure
Although Stephan's original commit message below talks mainly about a
unit test, this change helps at least in tdf#121778, too, and possibly
other cases.
It is interesting that wihout this change, a lot of these warnings are
printed before the crash:
warn:vcl.quartz:42670:52899343:vcl/quartz/salvd.cxx:312: No context
Original commit message:
When running on macOS 10.14, both master and libreoffice-6-1 (at least) started
to fail CppunitTest_vcl_bitmap_render_test with
I tracked that down to the OSL_DEBUG_LEVEL>0--only call to
Scheduler::ProcessEventsToIdle in test::BootstrapFixture::setUp
(test/source/bootstrapfixture.cxx). If that call is also included in non-debug
(i.e., OSL_DEBUG_LEVEL=0) builds, or if it is removed from all builds and
instead an unsuspecting
at the start of BitmapRenderTest::testTdf113918
(vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx:76), the test always fails.
What happens is that, after such a nextEventMatchingMask call done, the call to
NSGraphicsContext graphicsContextWithWindow in AquaSalVirtualDevice::SetSize (as
called from the SetOutputSizePixel call in the test) returns nil, for unclear
reasons.
Until those underlying reasons are understood, change the code of SetSize to
"fall back to a bitmap context" also in case the graphicsContextWithWindow call
returned nil.
Reviewed-on: https://gerrit.libreoffice.org/61519
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <email address hidden>
(cherry picked from commit e659c6a1857fbb8e5a6e8ff60fe241483eea32dd)
Don't create temp file in save destination folder when sandboxed
In a sandboxed environment we don't want to attempt to create
temporary files in the same directory where the user has selected an
output file to be stored. The sandboxed process has permission only to
create the specifically named output file that the user chose in the
system file dialog in that directory.