mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-134432 Set value collapses the whole tree
This commit is contained in:
@@ -55,7 +55,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
private static final DataKey<XDebugSessionTab> TAB_KEY = DataKey.create("XDebugSessionTab");
|
||||
public static final DataKey<XDebugSessionTab> TAB_KEY = DataKey.create("XDebugSessionTab");
|
||||
|
||||
private XWatchesViewImpl myWatchesView;
|
||||
private final List<XDebugView> myViews = new ArrayList<XDebugView>();
|
||||
|
||||
+14
-6
@@ -16,6 +16,7 @@
|
||||
package com.intellij.xdebugger.impl.ui.tree;
|
||||
|
||||
import com.intellij.codeInsight.hint.HintManager;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.ui.AppUIUtil;
|
||||
@@ -24,6 +25,7 @@ import com.intellij.xdebugger.frame.XValueModifier;
|
||||
import com.intellij.xdebugger.frame.presentation.XValuePresentation;
|
||||
import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XExpressionImpl;
|
||||
import com.intellij.xdebugger.impl.ui.XDebugSessionTab;
|
||||
import com.intellij.xdebugger.impl.ui.XDebuggerUIConstants;
|
||||
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl;
|
||||
import com.intellij.xdebugger.impl.ui.tree.nodes.XValuePresentationUtil;
|
||||
@@ -104,12 +106,14 @@ public class SetValueInplaceEditor extends XDebuggerTreeInplaceEditor {
|
||||
myModifier.setValue(myExpressionEditor.getExpression().getExpression(), new XValueModifier.XModificationCallback() {
|
||||
@Override
|
||||
public void valueModified() {
|
||||
AppUIUtil.invokeOnEdt(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myTree.rebuildAndRestore(treeState);
|
||||
}
|
||||
});
|
||||
if (isDetachedTree(myTree)) {
|
||||
AppUIUtil.invokeOnEdt(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myTree.rebuildAndRestore(treeState);
|
||||
}
|
||||
});
|
||||
}
|
||||
XDebuggerUtilImpl.rebuildAllSessionsViews(getProject());
|
||||
}
|
||||
|
||||
@@ -131,6 +135,10 @@ public class SetValueInplaceEditor extends XDebuggerTreeInplaceEditor {
|
||||
});
|
||||
XDebuggerUtilImpl.rebuildAllSessionsViews(getProject());
|
||||
}
|
||||
|
||||
boolean isDetachedTree(XDebuggerTree tree) {
|
||||
return XDebugSessionTab.TAB_KEY.getData(DataManager.getInstance().getDataContext(tree)) == null;
|
||||
}
|
||||
});
|
||||
super.doOKAction();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user