Skip to content

Caret not scaled when switching from high to low zoom #585

@arunjose696

Description

@arunjose696

Description
Caret does not rescale correctly when moving from high to low zoom levels (e.g., 250% → 100%) while the editor is focused and the caret is visible.

I have observed this issue in both the IDE and the runtime workspace. In the runtime workspace, it occurs only when multiple projects are open (for example, when I have EGit projects imported). With very few projects in the workspace, this issue does not appear.

I suspect this may be related to an asynchronous DPI change, although I don’t see any background tasks running in the progress viewer at the time. If I change the async DPI change call in handleMonitorSpecificDpiChange to false I no longer have the issue

@@ -2526,7 +2526,7 @@ private void handleMonitorSpecificDpiChange(int newNativeZoom, Rectangle newBoun
        // Do not process DPI change for child shells asynchronous to avoid relayouting when
        // repositioning the child shell to a different monitor upon opening
        boolean processDpiChangeAsynchronous = getParent() == null;
-       Event zoomChangedEvent = createZoomChangedEvent(newNativeZoom, processDpiChangeAsynchronous);
+       Event zoomChangedEvent = createZoomChangedEvent(newNativeZoom, false);

Here is a screenshot showing the caret when switching from 250% to 100% with the caret visible:

Caret zoom issue

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