diff --git a/ChangeLog.md b/ChangeLog.md index 7006a312..eedceac0 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,6 +1,28 @@ This is the master changelog for Elite Dangerous Market Connector. Entries are in reverse chronological order (latest first). --- +Release 4.1.3 +=== + +* Revert to not setting `gdiScaling` in the application manifest. This should + fix [#734](https://github.com/EDCD/EDMarketConnector/issues/734) + and [#739](https://github.com/EDCD/EDMarketConnector/issues/739). + + A side effect will be that the radio buttons in Preferences > Appearance + for the Theme selection will once more be improperly sized under any UI + scaling. This is a Tcl/Tk bug which they have fixed in their code, but not + yet made a new release containing that fix. We'll have it fixed when Tcl/Tk + release a fixed version *and* Python releases a fixed version, that we use, + that includes the fixed libraries. + +* Wraps some ctypes code in a try/except in order to fix + [#737](https://github.com/EDCD/EDMarketConnector/issues/737). This should + benefit anyone running EDMC under any Wine version that doesn't set the + registry key we check for. + + **Note, however, that we recommend running EDMarketConnector natively from + source if using Linux**. + Release 4.1.2 === diff --git a/config.py b/config.py index 1f756baa..3dcdca95 100644 --- a/config.py +++ b/config.py @@ -13,7 +13,7 @@ appcmdname = 'EDMC' # appversion **MUST** follow Semantic Versioning rules: # # Major.Minor.Patch(-prerelease)(+buildmetadata) -appversion = '4.1.2' #-rc1+a872b5f' +appversion = '4.1.3' #-rc1+a872b5f' # For some things we want appversion without (possible) +build metadata appversion_nobuild = str(semantic_version.Version(appversion).truncate('prerelease')) copyright = u'© 2015-2019 Jonathan Harris, 2020 EDCD' diff --git a/edmarketconnector.xml b/edmarketconnector.xml index 924f5d0a..a8e751fc 100644 --- a/edmarketconnector.xml +++ b/edmarketconnector.xml @@ -168,11 +168,34 @@ - Release 4.1.1 + Release 4.1.3 body { font-family:"Segoe UI","Tahoma"; font-size: 75%; } h2 { font-family:"Segoe UI","Tahoma"; font-size: 105%; } +

Release 4.1.3

+
    +
  • +

    Revert to not setting gdiScaling in the application manifest. This should +fix #734 +and #739.

    +

    A side effect will be that the radio buttons in Preferences > Appearance +for the Theme selection will once more be improperly sized under any UI +scaling. This is a Tcl/Tk bug which they have fixed in their code, but not +yet made a new release containing that fix. We'll have it fixed when Tcl/Tk +release a fixed version and Python releases a fixed version, that we use, +that includes the fixed libraries.

    +
  • +
  • +

    Wraps some ctypes code in a try/except in order to fix +#737. This should +benefit anyone running EDMC under any Wine version that doesn't set the +registry key we check for.

    +

    Note, however, that we recommend running EDMarketConnector natively from +source if using Linux.

    +
  • +
+

Release 4.1.2

  • Minor fix to EDMC.py to revert broken logic trying to detect when there is @@ -793,11 +816,11 @@ If any of your plugins are listed in that section then they will need updating, ]]> diff --git a/prefs.py b/prefs.py index 1ad2d71a..95612e6a 100644 --- a/prefs.py +++ b/prefs.py @@ -206,19 +206,28 @@ elif platform == 'win32': CalculatePopupWindowPosition = None if not is_wine: - CalculatePopupWindowPosition = ctypes.windll.user32.CalculatePopupWindowPosition - CalculatePopupWindowPosition.argtypes = [ - ctypes.POINTER(POINT), - ctypes.POINTER(SIZE), - UINT, - ctypes.POINTER(RECT), - ctypes.POINTER(RECT) - ] + try: + CalculatePopupWindowPosition = ctypes.windll.user32.CalculatePopupWindowPosition - GetParent = ctypes.windll.user32.GetParent - GetParent.argtypes = [HWND] - GetWindowRect = ctypes.windll.user32.GetWindowRect - GetWindowRect.argtypes = [HWND, ctypes.POINTER(RECT)] + except AttributeError as e: + logger.error( + 'win32 and not is_wine, but ctypes.windll.user32.CalculatePopupWindowPosition invalid', + exc_info=e + ) + + else: + CalculatePopupWindowPosition.argtypes = [ + ctypes.POINTER(POINT), + ctypes.POINTER(SIZE), + UINT, + ctypes.POINTER(RECT), + ctypes.POINTER(RECT) + ] + + GetParent = ctypes.windll.user32.GetParent + GetParent.argtypes = [HWND] + GetWindowRect = ctypes.windll.user32.GetWindowRect + GetWindowRect.argtypes = [HWND, ctypes.POINTER(RECT)] SHGetLocalizedName = ctypes.windll.shell32.SHGetLocalizedName SHGetLocalizedName.argtypes = [LPCWSTR, LPWSTR, UINT, ctypes.POINTER(ctypes.c_int)]