summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-02-18 11:25:26 +0000
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-02-19 14:55:22 +0000
commitea32554ad0be02d3946eb19c96b2c29081ef66d9 (patch)
tree9b5d4543de7ebfc94a9bfc92eacae58c78d6ef1e
parent05eccaef907c9fca4f874b8ffa608d4815fbeebd (diff)
Resolves: tdf#97904 opengl stuff isn't implemented for gtk3
Change-Id: I1abbceebadf320f28955f54058b2d0ebfc79b9bc (cherry picked from commit d967cc35fd0c77d9f3dd0b3d0c7df850db6ec274) Reviewed-on: https://gerrit.libreoffice.org/22472 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--cui/source/options/optgdlg.cxx10
-rw-r--r--include/vcl/svapp.hxx6
-rw-r--r--vcl/inc/svdata.hxx1
-rw-r--r--vcl/inc/unx/salinst.h2
-rw-r--r--vcl/source/app/svapp.cxx9
-rw-r--r--vcl/source/app/svmain.cxx5
-rw-r--r--vcl/unx/generic/app/salinst.cxx9
-rw-r--r--vcl/unx/gtk/gtkinst.cxx8
-rw-r--r--vcl/unx/kde4/KDESalInstance.cxx8
-rw-r--r--vcl/unx/kde4/KDESalInstance.hxx2
10 files changed, 58 insertions, 2 deletions
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 52fc00c996a0..07a26a5c143f 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -629,6 +629,14 @@ OfaViewTabPage::OfaViewTabPage(vcl::Window* pParent, const SfxItemSet& rSet)
get(m_pMousePosLB, "mousepos");
get(m_pMouseMiddleLB, "mousemiddle");
+ if (Application::GetToolkitName() == "gtk3")
+ {
+ m_pUseOpenGL->Hide();
+ m_pForceOpenGL->Hide();
+ m_pOpenGLStatusEnabled->Hide();
+ m_pOpenGLStatusDisabled->Hide();
+ }
+
#if defined( UNX )
m_pFontAntiAliasing->SetToggleHdl( LINK( this, OfaViewTabPage, OnAntialiasingToggled ) );
#else
@@ -969,6 +977,8 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
void OfaViewTabPage::UpdateOGLStatus()
{
+ if (Application::GetToolkitName() == "gtk3")
+ return;
// Easier than a custom translation string.
bool bEnabled = OpenGLWrapper::isVCLOpenGLEnabled();
m_pOpenGLStatusEnabled->Show(bEnabled);
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index c5b52ca279df..2658fca6e1f4 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -982,6 +982,12 @@ public:
*/
static OUString GetDisplayName();
+ /** Get the toolkit's name. e.g. gtk3
+
+ @returns The toolkit name.
+ */
+ static OUString GetToolkitName();
+
/** Get the number of screens available for the display.
@returns The number of screens available.
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index b559cf3ee06d..eef919d32a3b 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -126,6 +126,7 @@ struct ImplSVAppData
OUString* mpAppName; // Application name
OUString* mpAppFileName; // Abs. Application FileName
OUString* mpDisplayName; // Application Display Name
+ OUString* mpToolkitName; // Toolkit Name
Help* mpHelp; // Application help
PopupMenu* mpActivePopupMenu; // Actives Popup-Menu (in Execute)
ImplIdleMgr* mpIdleMgr; // Idle-Manager
diff --git a/vcl/inc/unx/salinst.h b/vcl/inc/unx/salinst.h
index 54119d46f8a2..ee8dbcdc8b9c 100644
--- a/vcl/inc/unx/salinst.h
+++ b/vcl/inc/unx/salinst.h
@@ -45,7 +45,7 @@ protected:
SalXLib *mpXLib;
public:
- X11SalInstance( SalYieldMutex* pMutex ) : SalGenericInstance( pMutex ), mpXLib(NULL) {}
+ explicit X11SalInstance(SalYieldMutex* pMutex);
virtual ~X11SalInstance();
virtual SalFrame* CreateChildFrame( SystemParentData* pParent, SalFrameStyleFlags nStyle ) override;
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index ef0847d56d5b..0270b8c9578a 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -1400,6 +1400,15 @@ void Application::SetDialogScaleX( short nScale )
pSVData->maGDIData.mnAppFontX += (pSVData->maGDIData.mnAppFontX*nScale)/100;
}
+OUString Application::GetToolkitName()
+{
+ ImplSVData* pSVData = ImplGetSVData();
+ if ( pSVData->maAppData.mpToolkitName )
+ return *(pSVData->maAppData.mpToolkitName);
+ else
+ return OUString();
+}
+
void Application::SetDefDialogParent( vcl::Window* pWindow )
{
ImplGetSVData()->maWinData.mpDefDialogParent = pWindow;
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index ce44f6003387..952ac03e3b3c 100644
--- a/vcl/source/app/svmain.cxx
+++ b/vcl/source/app/svmain.cxx
@@ -499,6 +499,11 @@ void DeInitVCL()
delete pSVData->maAppData.mpDisplayName;
pSVData->maAppData.mpDisplayName = nullptr;
}
+ if ( pSVData->maAppData.mpToolkitName )
+ {
+ delete pSVData->maAppData.mpToolkitName;
+ pSVData->maAppData.mpToolkitName = nullptr;
+ }
if ( pSVData->maAppData.mpEventListeners )
{
delete pSVData->maAppData.mpEventListeners;
diff --git a/vcl/unx/generic/app/salinst.cxx b/vcl/unx/generic/app/salinst.cxx
index af3f95cf09a2..0093d3f3e827 100644
--- a/vcl/unx/generic/app/salinst.cxx
+++ b/vcl/unx/generic/app/salinst.cxx
@@ -65,6 +65,15 @@ extern "C"
}
}
+X11SalInstance::X11SalInstance(SalYieldMutex* pMutex)
+ : SalGenericInstance(pMutex)
+ , mpXLib(nullptr)
+{
+ ImplSVData* pSVData = ImplGetSVData();
+ delete pSVData->maAppData.mpToolkitName;
+ pSVData->maAppData.mpToolkitName = new OUString("x11");
+}
+
X11SalInstance::~X11SalInstance()
{
// close session management
diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx
index 7ae75c43f963..f07363566894 100644
--- a/vcl/unx/gtk/gtkinst.cxx
+++ b/vcl/unx/gtk/gtkinst.cxx
@@ -186,6 +186,14 @@ void GtkInstance::EnsureInit()
InitAtkBridge();
+ ImplSVData* pSVData = ImplGetSVData();
+ delete pSVData->maAppData.mpToolkitName;
+#if GTK_CHECK_VERSION(3,0,0)
+ pSVData->maAppData.mpToolkitName = new OUString("gtk3");
+#else
+ pSVData->maAppData.mpToolkitName = new OUString("gtk2");
+#endif
+
bNeedsInit = false;
}
diff --git a/vcl/unx/kde4/KDESalInstance.cxx b/vcl/unx/kde4/KDESalInstance.cxx
index e28fb2d70328..86c9d8f2e50f 100644
--- a/vcl/unx/kde4/KDESalInstance.cxx
+++ b/vcl/unx/kde4/KDESalInstance.cxx
@@ -26,6 +26,14 @@
using namespace com::sun::star;
+KDESalInstance::KDESalInstance(SalYieldMutex* pMutex)
+ : X11SalInstance(pMutex)
+{
+ ImplSVData* pSVData = ImplGetSVData();
+ delete pSVData->maAppData.mpToolkitName;
+ pSVData->maAppData.mpToolkitName = new OUString("kde4");
+}
+
SalFrame* KDESalInstance::CreateFrame( SalFrame *pParent, SalFrameStyleFlags nState )
{
return new KDESalFrame( pParent, nState );
diff --git a/vcl/unx/kde4/KDESalInstance.hxx b/vcl/unx/kde4/KDESalInstance.hxx
index 8eabb3be8981..aaa8d2f46d5b 100644
--- a/vcl/unx/kde4/KDESalInstance.hxx
+++ b/vcl/unx/kde4/KDESalInstance.hxx
@@ -27,7 +27,7 @@ class SalFrame;
class KDESalInstance : public X11SalInstance
{
public:
- explicit KDESalInstance( SalYieldMutex* pMutex ) : X11SalInstance( pMutex ) {}
+ explicit KDESalInstance(SalYieldMutex* pMutex);
virtual ~KDESalInstance() {}
virtual SalFrame* CreateFrame( SalFrame* pParent, SalFrameStyleFlags nStyle ) override;