diff options
-rw-r--r-- | vcl/Library_vcl.mk | 3 | ||||
-rw-r--r-- | vcl/generic/app/geninst.cxx | 134 | ||||
-rw-r--r-- | vcl/generic/fontmanager/fontmanager.cxx | 23 | ||||
-rw-r--r-- | vcl/generic/fontmanager/fontsubst.cxx (renamed from vcl/generic/print/fontsubst.cxx) | 21 | ||||
-rw-r--r-- | vcl/generic/print/genprnpsp.cxx | 28 | ||||
-rw-r--r-- | vcl/generic/print/pspgraphics.cxx | 2 | ||||
-rw-r--r-- | vcl/inc/generic/geninst.h | 88 | ||||
-rw-r--r-- | vcl/inc/unx/headless/svpinst.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/unx/salinst.h | 29 | ||||
-rw-r--r-- | vcl/unx/generic/app/salinst.cxx | 102 | ||||
-rw-r--r-- | vcl/unx/generic/gdi/salgdi3.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/gtk/window/gtkframe.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/headless/svpinst.cxx | 3 |
13 files changed, 239 insertions, 204 deletions
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 339e57fb6a66..0b35f1d85bb7 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -264,6 +264,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/window/window \ vcl/source/window/winproc \ vcl/source/window/wrkwin \ + vcl/generic/app/geninst \ vcl/generic/print/bitmap_gfx \ vcl/generic/print/common_gfx \ vcl/generic/print/glyphset \ @@ -272,7 +273,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/generic/print/pspgraphics \ vcl/generic/print/genprnpsp \ vcl/generic/print/text_gfx \ - vcl/generic/print/fontsubst \ + vcl/generic/fontmanager/fontsubst \ )) # optional parts diff --git a/vcl/generic/app/geninst.cxx b/vcl/generic/app/geninst.cxx new file mode 100644 index 000000000000..a4127d32ba95 --- /dev/null +++ b/vcl/generic/app/geninst.cxx @@ -0,0 +1,134 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_vcl.hxx" + +#include <string.h> +#include <stdio.h> +#include <stdlib.h> + +#include "osl/module.hxx" +#include "tools/solarmutex.hxx" + +#include "generic/geninst.h" + +// ------------------------------------------------------------------------- +// +// SalYieldMutex +// +// ------------------------------------------------------------------------- + +SalYieldMutex::SalYieldMutex() +{ + mnCount = 0; + mnThreadId = 0; + ::tools::SolarMutex::SetSolarMutex( this ); +} + +void SalYieldMutex::acquire() +{ + SolarMutexObject::acquire(); + mnThreadId = osl::Thread::getCurrentIdentifier(); + mnCount++; +} + +void SalYieldMutex::release() +{ + if ( mnThreadId == osl::Thread::getCurrentIdentifier() ) + { + if ( mnCount == 1 ) + mnThreadId = 0; + mnCount--; + } + SolarMutexObject::release(); +} + +sal_Bool SalYieldMutex::tryToAcquire() +{ + if ( SolarMutexObject::tryToAcquire() ) + { + mnThreadId = osl::Thread::getCurrentIdentifier(); + mnCount++; + return sal_True; + } + else + return sal_False; +} + +osl::SolarMutex* SalGenericInstance::GetYieldMutex() +{ + return mpSalYieldMutex; +} + +sal_uLong SalGenericInstance::ReleaseYieldMutex() +{ + SalYieldMutex* pYieldMutex = mpSalYieldMutex; + if ( pYieldMutex->GetThreadId() == + osl::Thread::getCurrentIdentifier() ) + { + sal_uLong nCount = pYieldMutex->GetAcquireCount(); + sal_uLong n = nCount; + while ( n ) + { + pYieldMutex->release(); + n--; + } + + return nCount; + } + else + return 0; +} + +void SalGenericInstance::AcquireYieldMutex( sal_uLong nCount ) +{ + SalYieldMutex* pYieldMutex = mpSalYieldMutex; + while ( nCount ) + { + pYieldMutex->acquire(); + nCount--; + } +} + +bool SalGenericInstance::CheckYieldMutex() +{ + bool bRet = true; + + SalYieldMutex* pYieldMutex = mpSalYieldMutex; + if ( pYieldMutex->GetThreadId() != osl::Thread::getCurrentIdentifier() ) + bRet = false; + + return bRet; +} + +SalGenericInstance::~SalGenericInstance() +{ + ::tools::SolarMutex::SetSolarMutex( 0 ); + delete mpSalYieldMutex; +} diff --git a/vcl/generic/fontmanager/fontmanager.cxx b/vcl/generic/fontmanager/fontmanager.cxx index 80cddeec3317..3d95034160e8 100644 --- a/vcl/generic/fontmanager/fontmanager.cxx +++ b/vcl/generic/fontmanager/fontmanager.cxx @@ -41,7 +41,7 @@ #include "fontsubset.hxx" #include "impfont.hxx" #include "svdata.hxx" -#include "salinst.hxx" +#include "generic/geninst.h" #include "vcl/fontmanager.hxx" #include "vcl/strhelper.hxx" #include "vcl/ppdparser.hxx" @@ -2100,28 +2100,9 @@ void PrintFontManager::initFontsAlias() } } -// code stolen from vcl's RegisterFontSubstitutors() -// TODO: use that method once psprint gets merged into vcl static bool AreFCSubstitutionsEnabled() { - // init font substitution defaults - int nDisableBits = 0; -#ifdef SOLARIS - // TODO: check the OS version and fc-data maintenance level - nDisableBits = 1; // disable "font fallback" here on default -#endif - // apply the environment variable if any - const char* pEnvStr = ::getenv( "SAL_DISABLE_FC_SUBST" ); - if( pEnvStr ) - { - // - if( (*pEnvStr >= '0') && (*pEnvStr <= '9') ) - nDisableBits = (*pEnvStr - '0'); - else - nDisableBits = ~0U; // no specific bits set: disable all - } - - return ((nDisableBits & 3) == 0); + return (SalGenericInstance::FetchFontSubstitutionFlags() & 3) == 0; } void PrintFontManager::initialize() diff --git a/vcl/generic/print/fontsubst.cxx b/vcl/generic/fontmanager/fontsubst.cxx index 5c0dff6f25be..2ddcb5cb835d 100644 --- a/vcl/generic/print/fontsubst.cxx +++ b/vcl/generic/fontmanager/fontsubst.cxx @@ -64,7 +64,26 @@ public: bool FindFontSubstitute( ImplFontSelectData&, OUString& rMissingCodes ) const; }; -void RegisterFontSubstitutors( ImplDevFontList* pList ) +int SalGenericInstance::FetchFontSubstitutionFlags() +{ + // init font substitution defaults + int nDisableBits = 0; +#ifdef SOLARIS + nDisableBits = 1; // disable "font fallback" here on default +#endif + // apply the environment variable if any + const char* pEnvStr = ::getenv( "SAL_DISABLE_FC_SUBST" ); + if( pEnvStr ) + { + if( (*pEnvStr >= '0') && (*pEnvStr <= '9') ) + nDisableBits = (*pEnvStr - '0'); + else + nDisableBits = ~0U; // no specific bits set: disable all + } + return nDisableBits; +} + +void SalGenericInstance::RegisterFontSubstitutors( ImplDevFontList* pList ) { // init font substitution defaults int nDisableBits = 0; diff --git a/vcl/generic/print/genprnpsp.cxx b/vcl/generic/print/genprnpsp.cxx index c0b88fe001b7..06e29a4d74c6 100644 --- a/vcl/generic/print/genprnpsp.cxx +++ b/vcl/generic/print/genprnpsp.cxx @@ -382,7 +382,7 @@ static bool createPdf( const String& rToFile, const String& rFromFile, const Str * SalInstance */ -SalInfoPrinter* GenericInstance::CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo, +SalInfoPrinter* SalGenericInstance::CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo, ImplJobSetup* pJobSetup ) { mbPrinterInit = true; @@ -421,12 +421,12 @@ SalInfoPrinter* GenericInstance::CreateInfoPrinter( SalPrinterQueueInfo* pQueueI return pPrinter; } -void GenericInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter ) +void SalGenericInstance::DestroyInfoPrinter( SalInfoPrinter* pPrinter ) { delete pPrinter; } -SalPrinter* GenericInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter ) +SalPrinter* SalGenericInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter ) { mbPrinterInit = true; // create and initialize SalPrinter @@ -436,12 +436,12 @@ SalPrinter* GenericInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter ) return pPrinter; } -void GenericInstance::DestroyPrinter( SalPrinter* pPrinter ) +void SalGenericInstance::DestroyPrinter( SalPrinter* pPrinter ) { delete pPrinter; } -void GenericInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList ) +void SalGenericInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList ) { mbPrinterInit = true; PrinterInfoManager& rManager( PrinterInfoManager::get() ); @@ -480,17 +480,17 @@ void GenericInstance::GetPrinterQueueInfo( ImplPrnQueueList* pList ) } } -void GenericInstance::DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) +void SalGenericInstance::DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) { delete pInfo; } -void GenericInstance::GetPrinterQueueState( SalPrinterQueueInfo* ) +void SalGenericInstance::GetPrinterQueueState( SalPrinterQueueInfo* ) { mbPrinterInit = true; } -String GenericInstance::GetDefaultPrinter() +String SalGenericInstance::GetDefaultPrinter() { mbPrinterInit = true; PrinterInfoManager& rManager( PrinterInfoManager::get() ); @@ -1330,7 +1330,7 @@ class PrinterUpdate static void doUpdate(); DECL_STATIC_LINK( PrinterUpdate, UpdateTimerHdl, void* ); public: - static void update(GenericInstance &rInstance); + static void update(SalGenericInstance &rInstance); static void jobStarted() { nActiveJobs++; } static void jobEnded(); }; @@ -1341,7 +1341,7 @@ int PrinterUpdate::nActiveJobs = 0; void PrinterUpdate::doUpdate() { ::psp::PrinterInfoManager& rManager( ::psp::PrinterInfoManager::get() ); - GenericInstance *pInst = static_cast<GenericInstance *>( GetSalData()->m_pInstance ); + SalGenericInstance *pInst = static_cast<SalGenericInstance *>( GetSalData()->m_pInstance ); if( pInst && rManager.checkPrintersChanged( false ) ) pInst->PostPrintersChanged(); } @@ -1362,7 +1362,7 @@ IMPL_STATIC_LINK_NOINSTANCE( PrinterUpdate, UpdateTimerHdl, void*, EMPTYARG ) return 0; } -void PrinterUpdate::update(GenericInstance &rInstance) +void PrinterUpdate::update(SalGenericInstance &rInstance) { if( Application::GetSettings().GetMiscSettings().GetDisablePrinting() ) return; @@ -1385,12 +1385,12 @@ void PrinterUpdate::update(GenericInstance &rInstance) } } -void GenericInstance::updatePrinterUpdate() +void SalGenericInstance::updatePrinterUpdate() { PrinterUpdate::update(*this); } -void GenericInstance::jobStartedPrinterUpdate() +void SalGenericInstance::jobStartedPrinterUpdate() { PrinterUpdate::jobStarted(); } @@ -1410,7 +1410,7 @@ void PrinterUpdate::jobEnded() } } -void GenericInstance::jobEndedPrinterUpdate() +void SalGenericInstance::jobEndedPrinterUpdate() { PrinterUpdate::jobEnded(); } diff --git a/vcl/generic/print/pspgraphics.cxx b/vcl/generic/print/pspgraphics.cxx index c99ae54b4ed5..7e11aeea616d 100644 --- a/vcl/generic/print/pspgraphics.cxx +++ b/vcl/generic/print/pspgraphics.cxx @@ -877,7 +877,7 @@ void PspGraphics::GetDevFontList( ImplDevFontList *pList ) // register platform specific font substitutions if available if( rMgr.hasFontconfig() ) - GenericInstance::RegisterFontSubstitutors( pList ); + SalGenericInstance::RegisterFontSubstitutors( pList ); } void PspGraphics::GetDevFontSubstList( OutputDevice* pOutDev ) diff --git a/vcl/inc/generic/geninst.h b/vcl/inc/generic/geninst.h index 61382f02912d..be8846317bf2 100644 --- a/vcl/inc/generic/geninst.h +++ b/vcl/inc/generic/geninst.h @@ -1,31 +1,30 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ +/************************************************************************* * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. + * Copyright 2000, 2010 Oracle and/or its affiliates. * - * Major Contributor(s): - * Copyright (C) 2011 SUSE, Inc. + * OpenOffice.org - a multi-platform office productivity suite * - * All Rights Reserved. + * This file is part of OpenOffice.org. * - * For minor contributions see the git repository. + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ #ifndef _SV_GENERIC_INST_H #define _SV_GENERIC_INST_H @@ -33,38 +32,65 @@ #include <osl/thread.hxx> #include <vclpluginapi.h> #include <salinst.hxx> +#include <vcl/solarmutex.hxx> + +class VCL_DLLPUBLIC SalYieldMutex : public vcl::SolarMutexObject +{ +protected: + sal_uIntPtr mnCount; + oslThreadIdentifier mnThreadId; + +public: + SalYieldMutex(); + + virtual void acquire(); + virtual void release(); + virtual sal_Bool tryToAcquire(); + + sal_uIntPtr GetAcquireCount() const { return mnCount; } + oslThreadIdentifier GetThreadId() const { return mnThreadId; } +}; /* * Abstract generic class to build vclplugin's instance classes from */ class ImplDevFontList; -class VCL_DLLPUBLIC GenericInstance : public SalInstance +class VCL_DLLPUBLIC SalGenericInstance : public SalInstance { protected: - bool mbPrinterInit; + bool mbPrinterInit; + SalYieldMutex *mpSalYieldMutex; public: - GenericInstance() : mbPrinterInit( false ) {} - virtual ~GenericInstance() {} + SalGenericInstance( SalYieldMutex* pMutex ) + : mbPrinterInit( false ), mpSalYieldMutex( pMutex ) {} + virtual ~SalGenericInstance(); + + // Yield mutex + virtual osl::SolarMutex* GetYieldMutex(); + virtual sal_uIntPtr ReleaseYieldMutex(); + virtual void AcquireYieldMutex( sal_uIntPtr nCount ); + virtual bool CheckYieldMutex(); + // Printing virtual SalInfoPrinter* CreateInfoPrinter ( SalPrinterQueueInfo* pQueueInfo, ImplJobSetup* pSetupData ); virtual void DestroyInfoPrinter ( SalInfoPrinter* pPrinter ); virtual SalPrinter* CreatePrinter ( SalInfoPrinter* pInfoPrinter ); virtual void DestroyPrinter ( SalPrinter* pPrinter ); - virtual void GetPrinterQueueInfo ( ImplPrnQueueList* pList ); virtual void GetPrinterQueueState ( SalPrinterQueueInfo* pInfo ); virtual void DeletePrinterQueueInfo ( SalPrinterQueueInfo* pInfo ); virtual String GetDefaultPrinter(); virtual void PostPrintersChanged() = 0; - - virtual void updatePrinterUpdate(); - virtual void jobStartedPrinterUpdate(); - virtual void jobEndedPrinterUpdate(); - + virtual void updatePrinterUpdate(); + virtual void jobStartedPrinterUpdate(); + virtual void jobEndedPrinterUpdate(); bool isPrinterInit() const { return mbPrinterInit; } + + // prolly belongs somewhere else ... just a font help static void RegisterFontSubstitutors( ImplDevFontList* pList ); + static int FetchFontSubstitutionFlags(); }; #endif // _SV_GENERIC_INST_H diff --git a/vcl/inc/unx/headless/svpinst.hxx b/vcl/inc/unx/headless/svpinst.hxx index 09f701f3b750..34a9c7f8ba2e 100644 --- a/vcl/inc/unx/headless/svpinst.hxx +++ b/vcl/inc/unx/headless/svpinst.hxx @@ -87,7 +87,7 @@ public: // - SalInstance - // --------------- class SvpSalFrame; -class SvpSalInstance : public GenericInstance +class SvpSalInstance : public SalGenericInstance { timeval m_aTimeout; sal_uLong m_nTimeoutMS; diff --git a/vcl/inc/unx/salinst.h b/vcl/inc/unx/salinst.h index 53c16891131c..9b9a150deaab 100644 --- a/vcl/inc/unx/salinst.h +++ b/vcl/inc/unx/salinst.h @@ -37,34 +37,14 @@ #include <vcl/solarmutex.hxx> #include "generic/geninst.h" -class VCLPLUG_GEN_PUBLIC SalYieldMutex : public vcl::SolarMutexObject -{ -protected: - sal_uIntPtr mnCount; - oslThreadIdentifier mnThreadId; - -public: - SalYieldMutex(); - - virtual void acquire(); - virtual void release(); - virtual sal_Bool tryToAcquire(); - - sal_uIntPtr GetAcquireCount() const { return mnCount; } - oslThreadIdentifier GetThreadId() const { return mnThreadId; } -}; // -=-= SalInstanceData =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -class VCLPLUG_GEN_PUBLIC X11SalInstance : public GenericInstance +class VCLPLUG_GEN_PUBLIC X11SalInstance : public SalGenericInstance { protected: - SalYieldMutex* mpSalYieldMutex; public: - X11SalInstance( SalYieldMutex* pMutex ) - : GenericInstance() - , mpSalYieldMutex( pMutex ) - {} + X11SalInstance( SalYieldMutex* pMutex ) : SalGenericInstance( pMutex ) {} virtual ~X11SalInstance(); virtual SalFrame* CreateChildFrame( SystemParentData* pParent, sal_uIntPtr nStyle ); @@ -86,11 +66,6 @@ public: virtual SalBitmap* CreateSalBitmap(); virtual SalSession* CreateSalSession(); - virtual osl::SolarMutex* GetYieldMutex(); - virtual sal_uIntPtr ReleaseYieldMutex(); - virtual void AcquireYieldMutex( sal_uIntPtr nCount ); - virtual bool CheckYieldMutex(); - virtual void Yield( bool bWait, bool bHandleAllCurrentEvents ); virtual bool AnyInput( sal_uInt16 nType ); diff --git a/vcl/unx/generic/app/salinst.cxx b/vcl/unx/generic/app/salinst.cxx index 514ff82ee3fb..05e50061102e 100644 --- a/vcl/unx/generic/app/salinst.cxx +++ b/vcl/unx/generic/app/salinst.cxx @@ -39,7 +39,7 @@ #include "unx/salunx.h" #include "unx/saldata.hxx" #include "unx/saldisp.hxx" -#include "unx/salinst.h" +#include "generic/geninst.h" #include "unx/salframe.h" #include "generic/genprn.h" #include "unx/sm.hxx" @@ -50,49 +50,6 @@ #include "salwtype.hxx" #include <sal/macros.h> -// ------------------------------------------------------------------------- -// -// SalYieldMutex -// -// ------------------------------------------------------------------------- - -SalYieldMutex::SalYieldMutex() -{ - mnCount = 0; - mnThreadId = 0; - ::tools::SolarMutex::SetSolarMutex( this ); -} - -void SalYieldMutex::acquire() -{ - SolarMutexObject::acquire(); - mnThreadId = osl::Thread::getCurrentIdentifier(); - mnCount++; -} - -void SalYieldMutex::release() -{ - if ( mnThreadId == osl::Thread::getCurrentIdentifier() ) - { - if ( mnCount == 1 ) - mnThreadId = 0; - mnCount--; - } - SolarMutexObject::release(); -} - -sal_Bool SalYieldMutex::tryToAcquire() -{ - if ( SolarMutexObject::tryToAcquire() ) - { - mnThreadId = osl::Thread::getCurrentIdentifier(); - mnCount++; - return True; - } - else - return False; -} - //---------------------------------------------------------------------------- // -=-= SalInstance =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= @@ -138,9 +95,6 @@ X11SalInstance::~X11SalInstance() pSalData->deInitNWF(); delete pSalData; SetSalData( NULL ); - - ::tools::SolarMutex::SetSolarMutex( 0 ); - delete mpSalYieldMutex; } @@ -220,60 +174,6 @@ bool X11SalInstance::AnyInput(sal_uInt16 nType) return bRet; } -osl::SolarMutex* X11SalInstance::GetYieldMutex() -{ - return mpSalYieldMutex; -} - -// ----------------------------------------------------------------------- - -sal_uLong X11SalInstance::ReleaseYieldMutex() -{ - SalYieldMutex* pYieldMutex = mpSalYieldMutex; - if ( pYieldMutex->GetThreadId() == - osl::Thread::getCurrentIdentifier() ) - { - sal_uLong nCount = pYieldMutex->GetAcquireCount(); - sal_uLong n = nCount; - while ( n ) - { - pYieldMutex->release(); - n--; - } - - return nCount; - } - else - return 0; -} - -// ----------------------------------------------------------------------- - -void X11SalInstance::AcquireYieldMutex( sal_uLong nCount ) -{ - SalYieldMutex* pYieldMutex = mpSalYieldMutex; - while ( nCount ) - { - pYieldMutex->acquire(); - nCount--; - } -} - -// ----------------------------------------------------------------------- - -bool X11SalInstance::CheckYieldMutex() -{ - bool bRet = true; - - SalYieldMutex* pYieldMutex = mpSalYieldMutex; - if ( pYieldMutex->GetThreadId() != osl::Thread::getCurrentIdentifier() ) - { - bRet = false; - } - - return bRet; -} - // ----------------------------------------------------------------------- void X11SalInstance::Yield( bool bWait, bool bHandleAllCurrentEvents ) diff --git a/vcl/unx/generic/gdi/salgdi3.cxx b/vcl/unx/generic/gdi/salgdi3.cxx index 79139392c664..e653aaf60e73 100644 --- a/vcl/unx/generic/gdi/salgdi3.cxx +++ b/vcl/unx/generic/gdi/salgdi3.cxx @@ -556,8 +556,6 @@ bool X11SalGraphics::AddTempDevFont( ImplDevFontList* pFontList, // ---------------------------------------------------------------------------- -void RegisterFontSubstitutors( ImplDevFontList* ); - void X11SalGraphics::GetDevFontList( ImplDevFontList *pList ) { // prepare the GlyphCache using psprint's font infos @@ -601,7 +599,7 @@ void X11SalGraphics::GetDevFontList( ImplDevFontList *pList ) // register platform specific font substitutions if available if( rMgr.hasFontconfig() ) - GenericInstance::RegisterFontSubstitutors( pList ); + SalGenericInstance::RegisterFontSubstitutors( pList ); ImplGetSVData()->maGDIData.mbNativeFontConfig = rMgr.hasFontconfig(); } diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx index 9775dbcdabd4..645be9a636d8 100644 --- a/vcl/unx/gtk/window/gtkframe.cxx +++ b/vcl/unx/gtk/window/gtkframe.cxx @@ -3312,12 +3312,12 @@ gboolean GtkSalFrame::signalConfigure( GtkWidget*, GdkEventConfigure* pEvent, gp * - which is not good since the window manager will now size the window back to this * wrong size at some point. */ - fprintf (stderr, "configure %d %d %d (%d) %d, %d diff? %d\n", + /* fprintf (stderr, "configure %d %d %d (%d) %d, %d diff? %d\n", (int)pThis->m_bFullscreen, (pThis->m_nStyle & (SAL_FRAME_STYLE_SIZEABLE | SAL_FRAME_STYLE_PLUG)), SAL_FRAME_STYLE_SIZEABLE, !!( pThis->m_bFullscreen || (pThis->m_nStyle & (SAL_FRAME_STYLE_SIZEABLE | SAL_FRAME_STYLE_PLUG)) == SAL_FRAME_STYLE_SIZEABLE ), pEvent->width, pEvent->height, !!(pEvent->width != (int)pThis->maGeometry.nWidth || pEvent->height != (int)pThis->maGeometry.nHeight) - ); + ); */ if( pThis->m_bFullscreen || (pThis->m_nStyle & (SAL_FRAME_STYLE_SIZEABLE | SAL_FRAME_STYLE_PLUG)) == SAL_FRAME_STYLE_SIZEABLE ) { if( pEvent->width != (int)pThis->maGeometry.nWidth || pEvent->height != (int)pThis->maGeometry.nHeight ) diff --git a/vcl/unx/headless/svpinst.cxx b/vcl/unx/headless/svpinst.cxx index 3924f404b813..24b10e56f7b0 100644 --- a/vcl/unx/headless/svpinst.cxx +++ b/vcl/unx/headless/svpinst.cxx @@ -77,7 +77,8 @@ bool SvpSalInstance::isFrameAlive( const SalFrame* pFrame ) const SvpSalInstance* SvpSalInstance::s_pDefaultInstance = NULL; -SvpSalInstance::SvpSalInstance() +SvpSalInstance::SvpSalInstance() : + SalGenericInstance( new SalYieldMutex() ) { m_aTimeout.tv_sec = 0; m_aTimeout.tv_usec = 0; |