[Libreoffice-commits] core.git: vcl/inc vcl/win
Michael Stahl
mstahl at redhat.com
Tue Jan 20 11:36:58 PST 2015
vcl/inc/win/saldata.hxx | 2 +-
vcl/win/source/app/salinst.cxx | 24 +++++++++++++++---------
vcl/win/source/gdi/salnativewidgets-luna.cxx | 2 +-
vcl/win/source/window/salframe.cxx | 2 +-
4 files changed, 18 insertions(+), 12 deletions(-)
New commits:
commit 4398cc83945de8165e3713fdfa76499c2b3a55fa
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jan 20 13:28:02 2015 +0100
vcl: remove dependency of SalShlData on GetVersionEx()
4500afcc1be7774b3c35ab69a20e36165ca5445a was incomplete in that the
result of GetVersionEx() is actually stored and other functions do
manual checks on it.
Change-Id: I1f66a13e98e6bfc40bc35fa5382c2f6257f905d6
diff --git a/vcl/inc/win/saldata.hxx b/vcl/inc/win/saldata.hxx
index 8151c14..d61e26d 100644
--- a/vcl/inc/win/saldata.hxx
+++ b/vcl/inc/win/saldata.hxx
@@ -137,8 +137,8 @@ struct SalShlData
UINT mnWheelScrollChars; // WheelScrollChars
UINT mnWheelMsgId; // Wheel-Message-Id fuer W95
BOOL mbWXP; // Windows XP
+ BOOL mbWVista; // Windows Vista
BOOL mbW7; // Windows 7
- OSVERSIONINFO maVersionInfo;
};
extern SalShlData aSalShlData;
diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx
index 396b254..fe24ffa 100644
--- a/vcl/win/source/app/salinst.cxx
+++ b/vcl/win/source/app/salinst.cxx
@@ -448,24 +448,30 @@ SalInstance* CreateSalInstance()
// determine the windows version
aSalShlData.mbWXP = 0;
+ aSalShlData.mbWVista = 0;
aSalShlData.mbW7 = 0;
- memset( &aSalShlData.maVersionInfo, 0, sizeof(aSalShlData.maVersionInfo) );
- aSalShlData.maVersionInfo.dwOSVersionInfoSize = sizeof( aSalShlData.maVersionInfo );
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
aSalShlData.mbWXP = IsWindowsXPOrGreater() ? 1 : 0;
+ aSalShlData.mbWVista = IsWindowsVistaOrGreater() ? 1 : 0;
aSalShlData.mbW7 = IsWindows7OrGreater() ? 1 : 0;
#else
- if ( GetVersionEx( &aSalShlData.maVersionInfo ) )
+ OSVERSIONINFO aVersionInfo;
+ memset( &aVersionInfo, 0, sizeof(aVersionInfo) );
+ aVersionInfo.dwOSVersionInfoSize = sizeof( aVersionInfo );
+ if (GetVersionEx( &aVersionInfo ))
{
// Windows XP ?
- if ( aSalShlData.maVersionInfo.dwMajorVersion > 5 ||
- ( aSalShlData.maVersionInfo.dwMajorVersion == 5 && aSalShlData.maVersionInfo.dwMinorVersion >= 1 ) )
+ if (aVersionInfo.dwMajorVersion > 5 ||
+ (aVersionInfo.dwMajorVersion == 5 && aVersionInfo.dwMinorVersion >= 1))
aSalShlData.mbWXP = 1;
- // Windows 7 ?
- if ( aSalShlData.maVersionInfo.dwMajorVersion > 6 ||
- ( aSalShlData.maVersionInfo.dwMajorVersion == 6 && aSalShlData.maVersionInfo.dwMinorVersion >= 1 ) )
- aSalShlData.mbW7 = 1;
+ // Windows Vista ?
+ if (aVersionInfo.dwMajorVersion >= 6)
+ aSalShlData.mbWVista = 1;
+ // Windows 7 ?
+ if (aVersionInfo.dwMajorVersion > 6 ||
+ (aVersionInfo.dwMajorVersion == 6 && aVersionInfo.dwMinorVersion >= 1))
+ aSalShlData.mbW7 = 1;
}
#endif
diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx
index a8d21ff..179bc4e 100644
--- a/vcl/win/source/gdi/salnativewidgets-luna.cxx
+++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx
@@ -1538,7 +1538,7 @@ void WinSalGraphics::updateSettingsNative( AllSettings& rSettings )
// in Aero theme (and similar ?) the menu text color does not change
// for selected items; also on WinXP and earlier menus are not themed
// FIXME get the color directly from the theme, not from the settings
- if( aSalShlData.maVersionInfo.dwMajorVersion >= 6 )
+ if (aSalShlData.mbWVista)
{
Color aMenuBarTextColor = aStyleSettings.GetPersonaMenuBarTextColor().get_value_or( aStyleSettings.GetMenuTextColor() );
// in aero menuitem highlight text is drawn in the same color as normal
diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx
index eb8f548..13c273a 100644
--- a/vcl/win/source/window/salframe.cxx
+++ b/vcl/win/source/window/salframe.cxx
@@ -699,7 +699,7 @@ static UINT ImplSalGetWheelScrollChars()
{
// Depending on Windows version, use proper default or 1 (when
// driver emulates hscroll)
- if( aSalShlData.maVersionInfo.dwMajorVersion < 6 )
+ if (!aSalShlData.mbWVista)
{
// Windows 2000 & WinXP : emulating driver, use step size
// of 1
More information about the Libreoffice-commits
mailing list