From 1c28896c7b681ea72c7d3b74e6363bb905fff672 Mon Sep 17 00:00:00 2001
From: ghidragon <106987263+ghidragon@users.noreply.github.com>
Date: Wed, 22 Apr 2026 11:50:15 -0400
Subject: [PATCH] GP-6749 added feature to Decocompiler window to disable
auto-refresh and also added feature to broadcast location an selection events
on decompiler snapshots
---
.../data/decompiler.theme.properties | 1 +
.../src/main/doc/decompileplugin.xml | 33 ++++-
.../DecompilePlugin/DecompilerWindow.html | 27 +++-
.../DecompilePlugin/images/DecompWindow.png | Bin 81452 -> 51428 bytes
.../decompiler/component/DecompilerPanel.java | 17 +++
.../core/decompile/DecompilePlugin.java | 4 +-
.../core/decompile/DecompilerProvider.java | 115 ++++++++++++++----
.../core/decompile/OverlayMessagePainter.java | 82 +++++++++++++
.../docking/test/AbstractDockingTest.java | 3 +
.../indexedscrollpane/IndexedScrollPane.java | 23 +++-
.../DecompilePluginScreenShots.java | 79 +++++-------
11 files changed, 306 insertions(+), 78 deletions(-)
create mode 100644 Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/decompile/OverlayMessagePainter.java
diff --git a/Ghidra/Features/Decompiler/data/decompiler.theme.properties b/Ghidra/Features/Decompiler/data/decompiler.theme.properties
index b94edc13b5..f1a2f31b59 100644
--- a/Ghidra/Features/Decompiler/data/decompiler.theme.properties
+++ b/Ghidra/Features/Decompiler/data/decompiler.theme.properties
@@ -41,6 +41,7 @@ icon.decompiler.action.provider.clone = icon.provider.clone
icon.decompiler.action.provider.unreachable = eliminateUnreachable.png
icon.decompiler.action.provider.readonly = readOnly.png
icon.decompiler.action.export = page_edit.png
+icon.decompiler.action.display.lock = lock.gif
font.decompiler = font.monospaced
font.decompiler.pcode.dfg = font.graphdisplay.default
diff --git a/Ghidra/Features/Decompiler/src/main/doc/decompileplugin.xml b/Ghidra/Features/Decompiler/src/main/doc/decompileplugin.xml
index a3a301b715..25289be0fe 100644
--- a/Ghidra/Features/Decompiler/src/main/doc/decompileplugin.xml
+++ b/Ghidra/Features/Decompiler/src/main/doc/decompileplugin.xml
@@ -4009,7 +4009,7 @@
tokens (see
+ For very large functions, the decompile window can take a significant amount of time to re-decompile + and update the display as changes are made to the program. This makes using some actions + frustrating, such as renaming or retyping variables. +
+
+ As a work around, you may use the lock toggle action
+
. When selected, this action will prevent
+ the decompiler from auto refreshing for each change. This may make the display appear to be
+ broken since any changes will not appear to take effect until the display is manually refreshed.
+
+ Normally, snapshot windows are completely disconnected from the location and selection
+ events that synchronize the main components in the tool. To allow the snapshot window
+ to export its location and selection, select the
+
toolbar action.
+
B$L
z)-b~2r?1=fZg+`(6A;70<1i;#2qwKn4By{tNUe=8M)NEJlr>7XvwON)H*jV@G2U0^
zx{hVlgXT@IUib07Oc*DSNL<%{s;PRrdtp1tt61y%EU0j+QpPN(^=Fe`F>bt$vFzUY
zb~47~KkUhG{NcLk3CYJ216(w%T1iXv#SN2UGo1=T45%4Wp_*?V`Wg()MJYLGc(30V
zQS5=dkv|dZ2)B8RFK!n1ZY7%rc>7E_Ng23%4=yQhhxC+(kKE-ElMXYybfXa<6MD63JM7$oG2^%Rc_h?7VpJKu*
zR~_cN(L=+EG}rFh($m<}?S&@X{h-5^QEZgxLld