summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsWindow.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/org/gnu/emacs/EmacsWindow.java')
-rw-r--r--java/org/gnu/emacs/EmacsWindow.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/java/org/gnu/emacs/EmacsWindow.java b/java/org/gnu/emacs/EmacsWindow.java
index f935850b22b..fec95526835 100644
--- a/java/org/gnu/emacs/EmacsWindow.java
+++ b/java/org/gnu/emacs/EmacsWindow.java
@@ -271,20 +271,26 @@ public final class EmacsWindow extends EmacsHandleObject
}
}
- EmacsActivity.invalidateFocus (4);
-
+ /* This is just a sanity test and is not reliable since `children'
+ may be modified between isEmpty and handle destruction. */
if (!children.isEmpty ())
throw new IllegalStateException ("Trying to destroy window with "
+ "children!");
/* Remove the view from its parent and make it invisible. */
EmacsService.SERVICE.runOnUiThread (new Runnable () {
+ @Override
public void
run ()
{
ViewManager parent;
EmacsWindowManager manager;
+ /* Invalidate the focus; this should transfer the input focus
+ to the next eligible window as this window is no longer
+ present in parent.children. */
+ EmacsActivity.invalidateFocus (4);
+
if (EmacsActivity.focusedWindow == EmacsWindow.this)
EmacsActivity.focusedWindow = null;