diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2014-06-29 23:42:32 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2014-06-30 14:59:09 +0100 |
commit | 752a36457f6cddc5265a2d5f60157fd625f56b02 (patch) | |
tree | d6cebea7f8f1a9f9c40e3a0ffec38f719b018fcb | |
parent | a7540d9f59a172b81f075890f1835b21ec6ab7b3 (diff) |
use VCL_HIDE_WINDOWS env on Mac to 'simulate' headless mode on Mac
Building, and running the unit/subsequent test on Mac cause massive amount
of flashing windows creation/destruction that make building with test
very annoying on a box used for other purposes.
This patch prevent the windows to be actually displayed hence mitigating
the problem
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Conflicts:
vcl/source/window/window.cxx
Change-Id: Ied2a36699b50856e0c4e6b618212481796ec99d3
-rw-r--r-- | include/vcl/settings.hxx | 1 | ||||
-rw-r--r-- | solenv/gbuild/platform/macosx.mk | 3 | ||||
-rw-r--r-- | vcl/source/app/settings.cxx | 9 | ||||
-rw-r--r-- | vcl/source/window/window.cxx | 7 |
4 files changed, 18 insertions, 2 deletions
diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx index 0a6c6e937188..021161f90324 100644 --- a/include/vcl/settings.hxx +++ b/include/vcl/settings.hxx @@ -588,6 +588,7 @@ public: bool GetDisablePrinting() const; void SetEnableLocalizedDecimalSep( bool bEnable ); bool GetEnableLocalizedDecimalSep() const; + bool GetPseudoHeadless() const; bool operator ==( const MiscSettings& rSet ) const; bool operator !=( const MiscSettings& rSet ) const; diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index 8d6f8341ce01..a40e054f00ab 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -17,6 +17,9 @@ # the License at http://www.apache.org/licenses/LICENSE-2.0 . # +# to avoid flashing windows during tests +export VCL_HIDE_WINDOWS=1 + gb_SDKDIR := $(MACOSX_SDK_PATH) include $(GBUILDDIR)/platform/com_GCC_defs.mk diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 4174d5af59ae..97b05d04c855 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -213,6 +213,7 @@ struct ImplMiscData TriState mnEnableATT; bool mbEnableLocalizedDecimalSep; TriState mnDisablePrinting; + bool mbPseudoHeadless; }; struct ImplHelpData @@ -2341,6 +2342,8 @@ ImplMiscData::ImplMiscData() mnDisablePrinting = TRISTATE_INDET; static const char* pEnv = getenv("SAL_DECIMALSEP_ENABLED" ); // set default without UI mbEnableLocalizedDecimalSep = (pEnv != NULL); + pEnv = getenv("VCL_HIDE_WINDOWS"); // do not display any windows + mbPseudoHeadless = (pEnv != NULL); } ImplMiscData::ImplMiscData( const ImplMiscData& rData ) @@ -2348,6 +2351,7 @@ ImplMiscData::ImplMiscData( const ImplMiscData& rData ) mnEnableATT = rData.mnEnableATT; mnDisablePrinting = rData.mnDisablePrinting; mbEnableLocalizedDecimalSep = rData.mbEnableLocalizedDecimalSep; + mbPseudoHeadless = rData.mbPseudoHeadless; } MiscSettings::MiscSettings() @@ -2535,6 +2539,11 @@ bool MiscSettings::GetEnableLocalizedDecimalSep() const return mpData->mbEnableLocalizedDecimalSep; } +bool MiscSettings::GetPseudoHeadless() const +{ + return mpData->mbPseudoHeadless; +} + ImplHelpData::ImplHelpData() { mnTipDelay = 500; diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index b77447c06a39..fff59e573720 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -5259,8 +5259,11 @@ void Window::Show( bool bVisible, sal_uInt16 nFlags ) mpWindowImpl->mbSuppressAccessibilityEvents = false; mpWindowImpl->mbPaintFrame = true; - bool bNoActivate = (nFlags & (SHOW_NOACTIVATE|SHOW_NOFOCUSCHANGE)) ? sal_True : sal_False; - mpWindowImpl->mpFrame->Show( true, bNoActivate ); + if (!Application::GetSettings().GetMiscSettings().GetPseudoHeadless()) + { + bool bNoActivate = (nFlags & (SHOW_NOACTIVATE|SHOW_NOFOCUSCHANGE)) ? true : false; + mpWindowImpl->mpFrame->Show( true, bNoActivate ); + } if( aDogTag.IsDead() ) return; |