Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
keyescgm
jadx
提交
84868917
J
jadx
项目概览
keyescgm
/
jadx
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jadx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
84868917
编写于
6月 20, 2022
作者:
S
Skylot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(gui): resolve various minor issues
上级
4679172d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
27 addition
and
6 deletion
+27
-6
jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java
jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java
+4
-3
jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java
.../src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java
+8
-0
jadx-gui/src/main/java/jadx/gui/ui/codearea/ClassCodeContentPanel.java
...main/java/jadx/gui/ui/codearea/ClassCodeContentPanel.java
+7
-2
jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java
jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java
+4
-0
jadx-gui/src/main/java/jadx/gui/ui/codearea/JadxTokenMaker.java
...ui/src/main/java/jadx/gui/ui/codearea/JadxTokenMaker.java
+4
-1
未找到文件。
jadx-gui/src/main/java/jadx/gui/jobs/BackgroundExecutor.java
浏览文件 @
84868917
...
...
@@ -145,11 +145,12 @@ public class BackgroundExecutor {
task
.
onDone
(
this
);
// treat UI task operations as part of the task to not mix with others
UiUtils
.
uiRunAndWait
(()
->
{
progressPane
.
setVisible
(
false
);
task
.
onFinish
(
this
);
progressPane
.
setVisible
(
false
);
});
}
finally
{
taskComplete
(
id
);
progressPane
.
changeVisibility
(
this
,
false
);
}
}
return
status
;
...
...
@@ -230,13 +231,13 @@ public class BackgroundExecutor {
// force termination
task
.
cancel
();
executor
.
shutdown
();
if
(
executor
.
awaitTermination
(
5
,
TimeUnit
.
SECONDS
))
{
if
(
executor
.
awaitTermination
(
2
,
TimeUnit
.
SECONDS
))
{
LOG
.
debug
(
"Task cancel complete"
);
return
;
}
LOG
.
debug
(
"Forcing tasks cancel"
);
executor
.
shutdownNow
();
boolean
complete
=
executor
.
awaitTermination
(
30
,
TimeUnit
.
SECONDS
);
boolean
complete
=
executor
.
awaitTermination
(
5
,
TimeUnit
.
SECONDS
);
LOG
.
debug
(
"Forced task cancel status: {}"
,
complete
?
"success"
:
"fail, still active: "
+
executor
.
getActiveCount
());
}
...
...
jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java
浏览文件 @
84868917
...
...
@@ -356,6 +356,10 @@ public abstract class AbstractCodeArea extends RSyntaxTextArea {
return
null
;
}
public
boolean
isDisposed
()
{
return
node
==
null
;
}
public
void
dispose
()
{
// code area reference can still be used somewhere in UI objects,
// reset node reference to allow to GC jadx objects tree
...
...
@@ -363,6 +367,10 @@ public abstract class AbstractCodeArea extends RSyntaxTextArea {
contentPanel
=
null
;
// also clear internals
setIgnoreRepaint
(
true
);
setText
(
""
);
setEnabled
(
false
);
setSyntaxEditingStyle
(
SYNTAX_STYLE_NONE
);
setLinkGenerator
(
null
);
for
(
MouseListener
mouseListener
:
getMouseListeners
())
{
removeMouseListener
(
mouseListener
);
...
...
jadx-gui/src/main/java/jadx/gui/ui/codearea/ClassCodeContentPanel.java
浏览文件 @
84868917
...
...
@@ -165,10 +165,15 @@ public final class ClassCodeContentPanel extends AbstractCodeContentPanel implem
}
catch
(
Exception
e
)
{
LOG
.
debug
(
"Failed to restore view position: {}"
,
viewState
.
getViewPoint
(),
e
);
}
int
caretPos
=
viewState
.
getCaretPos
();
try
{
activePanel
.
getCodeArea
().
setCaretPosition
(
viewState
.
getCaretPos
());
AbstractCodeArea
codeArea
=
activePanel
.
getCodeArea
();
int
codeLen
=
codeArea
.
getDocument
().
getLength
();
if
(
caretPos
>=
0
&&
caretPos
<
codeLen
)
{
codeArea
.
setCaretPosition
(
caretPos
);
}
}
catch
(
Exception
e
)
{
LOG
.
debug
(
"Failed to restore caret position: {}"
,
viewState
.
getCaretPos
()
,
e
);
LOG
.
debug
(
"Failed to restore caret position: {}"
,
caretPos
,
e
);
}
}
...
...
jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java
浏览文件 @
84868917
...
...
@@ -85,6 +85,10 @@ public final class CodeArea extends AbstractCodeArea {
@Override
public
ICodeInfo
getCodeInfo
()
{
if
(
cachedCodeInfo
==
null
)
{
if
(
isDisposed
())
{
LOG
.
debug
(
"CodeArea used after dispose!"
);
return
ICodeInfo
.
EMPTY
;
}
cachedCodeInfo
=
Objects
.
requireNonNull
(
node
.
getCodeInfo
());
}
return
cachedCodeInfo
;
...
...
jadx-gui/src/main/java/jadx/gui/ui/codearea/JadxTokenMaker.java
浏览文件 @
84868917
...
...
@@ -29,9 +29,12 @@ public final class JadxTokenMaker extends JavaTokenMaker {
@Override
public
Token
getTokenList
(
Segment
text
,
int
initialTokenType
,
int
startOffset
)
{
if
(
codeArea
.
isDisposed
())
{
return
new
TokenImpl
();
}
try
{
Token
tokens
=
super
.
getTokenList
(
text
,
initialTokenType
,
startOffset
);
if
(
tokens
.
getType
()
!=
TokenTypes
.
NULL
)
{
if
(
tokens
!=
null
&&
tokens
.
getType
()
!=
TokenTypes
.
NULL
)
{
processTokens
(
tokens
);
}
return
tokens
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录