Windows: Destroy the keyboard when we create a new one

This commit is contained in:
Elias Naur 2006-11-20 08:14:50 +00:00
parent 34e5ce2080
commit 6bac5f8bfa

View file

@ -68,10 +68,19 @@ final class WindowsAWTInput extends AbstractAWTInput {
if (cached_mouse != null) {
grab(false);
cached_mouse.destroy();
cached_mouse = null;
}
super.destroyMouse();
}
public synchronized void destroyKeyboard() {
if (cached_keyboard != null) {
cached_keyboard.destroy();
cached_keyboard = null;
}
super.destroyKeyboard();
}
public synchronized void processInput(PeerInfo peer_info) {
WindowsPeerInfo windows_peerinfo = (WindowsPeerInfo)peer_info;
long hwnd = windows_peerinfo.getHwnd();
@ -80,8 +89,12 @@ final class WindowsAWTInput extends AbstractAWTInput {
if (cached_mouse == null || hwnd != cached_hwnd) {
has_grabbed = false;
cached_hwnd = hwnd;
if (cached_mouse != null)
if (cached_mouse != null) {
cached_mouse.destroy();
}
if (cached_keyboard != null) {
cached_keyboard.destroy();
}
WindowsDirectInput dinput = WindowsDisplay.createDirectInput();
cached_mouse = new WindowsMouse(dinput, hwnd);
cached_keyboard = new WindowsKeyboard(dinput, hwnd);