Skip to content

Wrong zoom taken for system metrics in autoscale-disabled controls/scrollables #546

@HeikoKlare

Description

@HeikoKlare

Description
Several calculations in controls/scrollables (trim, border etc.) rely on the retrieval of system metrics that currently always use a control's nativeZoom. In case autoscaling for that control is disabled, this is not the correct zoom as the relevant values for such system-side elements (borders, scrollbars) will be according the autoscaled zoom. So the proper zoom needs to be passed to the system metrics calculations. We already have the computeBoundsZoom() and computeGetBoundsZoom() methods in Control which can be called to retrieve proper zoom for these cases (if not already present).

Reproduction
We are not aware of a concrete visible issue, but we have seen that some calculations in GEF (e.g., related to trim) are currently wrong. GEF uses the autoscale disablement at control level, which is why it is the best candidate for testing any changes here.

Additional knowledge
A implementation of the above already exists in this branch: https://github.com/vi-eclipse/eclipse.platform.swt/commits/win32-fix-autoscale-computetrim/

Metadata

Metadata

Assignees

No one assigned

    Labels

    HiDPIA HiDPI-Related Issue or FeatureSWTIssue for SWT

    Type

    No type

    Projects

    Status

    🔖 Ready: Atomic

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions