summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2011-09-29 14:45:58 +0100
committerMichael Meeks <michael.meeks@suse.com>2011-10-25 13:41:47 +0100
commit6ff506e6e92719049c6f42c8e5327ac16954ecb0 (patch)
tree2aac58f86b553ad5d9af5c32c3eb1cb30f429460
parent08fb22932015cc0d57fa1dbe422e4109cf8be071 (diff)
generic: merge me with last commit please ... - more work
-rw-r--r--vcl/Library_vcl.mk3
-rw-r--r--vcl/generic/app/geninst.cxx134
-rw-r--r--vcl/generic/fontmanager/fontmanager.cxx23
-rw-r--r--vcl/generic/fontmanager/fontsubst.cxx (renamed from vcl/generic/print/fontsubst.cxx)21
-rw-r--r--vcl/generic/print/genprnpsp.cxx28
-rw-r--r--vcl/generic/print/pspgraphics.cxx2
-rw-r--r--vcl/inc/generic/geninst.h88
-rw-r--r--vcl/inc/unx/headless/svpinst.hxx2
-rw-r--r--vcl/inc/unx/salinst.h29
-rw-r--r--vcl/unx/generic/app/salinst.cxx102
-rw-r--r--vcl/unx/generic/gdi/salgdi3.cxx4
-rw-r--r--vcl/unx/gtk/window/gtkframe.cxx4
-rw-r--r--vcl/unx/headless/svpinst.cxx3
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;