Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2013-11-05 14:00:51 +0000
committerAnton Leherbauer2013-11-05 14:03:29 +0000
commit3e528ebafe873722a83c3bd379afcd2cab2e997f (patch)
treed69cdfefc031f477088056db1652c1e021f36131
parent61c76973a3e728144d373f840e99bda0f16ceeb4 (diff)
downloadorg.eclipse.cdt-3e528ebafe873722a83c3bd379afcd2cab2e997f.tar.gz
org.eclipse.cdt-3e528ebafe873722a83c3bd379afcd2cab2e997f.tar.xz
org.eclipse.cdt-3e528ebafe873722a83c3bd379afcd2cab2e997f.zip
Bug 420604 - Disassembly view tends to scroll upwards on refresh
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
index 104da9d347c..6290d34ba5c 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
@@ -278,6 +278,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
private volatile int fUpdateCount;
private BigInteger fPCAddress;
private BigInteger fGotoAddressPending= PC_UNKNOWN;
+ private boolean fGotoAddressOnTop;
private BigInteger fFocusAddress= PC_UNKNOWN;
private int fBufferZone;
private String fDebugSessionId;
@@ -1414,10 +1415,13 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
AddressRangePosition pos = getPositionOfAddress(address);
if (pos != null) {
if (pos.fValid) {
+ boolean onTop = false;
if (fGotoAddressPending.equals(address)) {
fGotoAddressPending = PC_UNKNOWN;
+ onTop = fGotoAddressOnTop;
+ fGotoAddressOnTop = false;
}
- gotoPosition(pos, false);
+ gotoPosition(pos, onTop);
} else {
int lines = fBufferZone+3;
BigInteger endAddress = pos.fAddressOffset.add(pos.fAddressLength).min(
@@ -2034,6 +2038,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
fTargetFrame = targetFrame;
fFrameAddress = frameAddress;
fPCAddress = pcAddress;
+ fGotoAddressOnTop = true;
gotoAddress(topAddress);
} else {
refreshView((int)(refreshViewScheduled - now));

Back to the top