From d6c7c49e8ad324ee47c9740932bff6dbd7d1147a Mon Sep 17 00:00:00 2001 From: mshahzadiftikhar Date: Thu, 14 Dec 2023 19:40:13 +0500 Subject: [PATCH] Fix cursor behavior in memory view on HiDPI Cursor not behaving correctly in memory view editor while chaging variable value on Hi-DPI #641 Used GC.textExtent() method for getting width of a character as it handles zooming factor Fixes https://github.com/eclipse-cdt/cdt/issues/641 --- .../META-INF/MANIFEST.MF | 2 +- .../cdt/debug/ui/memory/floatingpoint/FPAbstractPane.java | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../eclipse/cdt/debug/ui/memory/traditional/AbstractPane.java | 2 +- .../org/eclipse/cdt/debug/ui/memory/traditional/TextPane.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/META-INF/MANIFEST.MF b/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/META-INF/MANIFEST.MF index d95301f6b2d..3cac85ed0c5 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/META-INF/MANIFEST.MF +++ b/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.debug.ui.memory.floatingpoint;singleton:=true -Bundle-Version: 1.2.0.qualifier +Bundle-Version: 1.2.100.qualifier Bundle-Localization: plugin Require-Bundle: org.eclipse.debug.core;bundle-version="3.7.100", org.eclipse.debug.ui;bundle-version="3.8.1", diff --git a/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/src/org/eclipse/cdt/debug/ui/memory/floatingpoint/FPAbstractPane.java b/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/src/org/eclipse/cdt/debug/ui/memory/floatingpoint/FPAbstractPane.java index 1215b755db1..ea5e6a39aa6 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/src/org/eclipse/cdt/debug/ui/memory/floatingpoint/FPAbstractPane.java +++ b/memory/org.eclipse.cdt.debug.ui.memory.floatingpoint/src/org/eclipse/cdt/debug/ui/memory/floatingpoint/FPAbstractPane.java @@ -774,7 +774,7 @@ protected int getCellCharacterWidth() { if (fCharacterWidth == -1) { GC gc = new GC(this); gc.setFont(fRendering.getFont()); - fCharacterWidth = gc.getAdvanceWidth('F'); + fCharacterWidth = gc.textExtent("F").x; //$NON-NLS-1$ gc.dispose(); } diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/META-INF/MANIFEST.MF b/memory/org.eclipse.cdt.debug.ui.memory.traditional/META-INF/MANIFEST.MF index 3907e7ec0a5..669c14f55ca 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/META-INF/MANIFEST.MF +++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.debug.ui.memory.traditional;singleton:=true -Bundle-Version: 1.7.0.qualifier +Bundle-Version: 1.7.100.qualifier Bundle-Localization: plugin Require-Bundle: org.eclipse.debug.core, org.eclipse.debug.ui, diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/AbstractPane.java b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/AbstractPane.java index 27906b65faa..91cb4abc858 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/AbstractPane.java +++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/AbstractPane.java @@ -742,7 +742,7 @@ protected int getCellCharacterWidth() { if (fCharacterWidth == -1) { GC gc = new GC(this); gc.setFont(fRendering.getFont()); - fCharacterWidth = gc.getAdvanceWidth('F'); + fCharacterWidth = gc.textExtent("F").x; //$NON-NLS-1$ gc.dispose(); } diff --git a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TextPane.java b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TextPane.java index 6d149abd04d..a0d9f5227ed 100644 --- a/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TextPane.java +++ b/memory/org.eclipse.cdt.debug.ui.memory.traditional/src/org/eclipse/cdt/debug/ui/memory/traditional/TextPane.java @@ -79,7 +79,7 @@ protected void editCell(BigInteger address, int subCellPosition, char character) protected int getCellWidth() { GC gc = new GC(this); gc.setFont(fRendering.getFont()); - int width = gc.getAdvanceWidth('F'); + int width = gc.textExtent("F").x; //$NON-NLS-1$ gc.dispose(); return fRendering.getBytesPerColumn() / fRendering.getBytesPerCharacter() * width;