mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 01:19:28 +01:00
JBR-9301 Vulkan: SwingSet2 crash window server
Clear native peer on windowClosing in Frame object
This commit is contained in:
@@ -4373,6 +4373,11 @@ public class Window extends Container implements Accessible {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addWindowListener(Window w, WindowListener listener) {
|
||||||
|
w.addWindowListener(listener);
|
||||||
|
}
|
||||||
|
|
||||||
private static void dumpCounter(final String counterName, final double valPerSecond) {
|
private static void dumpCounter(final String counterName, final double valPerSecond) {
|
||||||
if (USE_COUNTERS) {
|
if (USE_COUNTERS) {
|
||||||
doLog(String.format("%s per second: %.2f", counterName, valPerSecond),
|
doLog(String.format("%s per second: %.2f", counterName, valPerSecond),
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import java.awt.event.InputEvent;
|
|||||||
import java.awt.event.InvocationEvent;
|
import java.awt.event.InvocationEvent;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.awt.event.WindowListener;
|
||||||
import java.awt.image.BufferStrategy;
|
import java.awt.image.BufferStrategy;
|
||||||
import java.awt.peer.ComponentPeer;
|
import java.awt.peer.ComponentPeer;
|
||||||
|
|
||||||
@@ -337,6 +338,8 @@ public final class AWTAccessor {
|
|||||||
double getCounterPerSecond(Window w, String counterName);
|
double getCounterPerSecond(Window w, String counterName);
|
||||||
|
|
||||||
void dumpStats(Window w, boolean reset, StringBuilder sb);
|
void dumpStats(Window w, boolean reset, StringBuilder sb);
|
||||||
|
|
||||||
|
void addWindowListener(Window w, WindowListener listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
package sun.awt.wl;
|
package sun.awt.wl;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
import java.awt.event.WindowAdapter;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
import java.awt.peer.FramePeer;
|
import java.awt.peer.FramePeer;
|
||||||
import sun.awt.AWTAccessor;
|
import sun.awt.AWTAccessor;
|
||||||
@@ -42,6 +43,12 @@ public class WLFramePeer extends WLDecoratedPeer implements FramePeer {
|
|||||||
super(target, target.isUndecorated(),
|
super(target, target.isUndecorated(),
|
||||||
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.ICONIFIED),
|
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.ICONIFIED),
|
||||||
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH));
|
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH));
|
||||||
|
AWTAccessor.getWindowAccessor().addWindowListener(target, new WindowAdapter() {
|
||||||
|
@Override
|
||||||
|
public void windowClosing(WindowEvent e) {
|
||||||
|
getFrame().removeNotify();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user