From: GiWoong Kim Date: Mon, 9 Mar 2015 10:36:13 +0000 (+0900) Subject: skin: Command+Q handling on MacOS X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.2~552 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=efc85868376ee4e592b9a5bb7361861150593caf;p=sdk%2Femulator%2Fqemu.git skin: Command+Q handling on MacOS Change-Id: If229ed37e5336602ec84e060fa9ad14d42264382 Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java index 774333cfb0..408ff78fd1 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java @@ -195,13 +195,15 @@ public class EmulatorShmSkin extends EmulatorSkin { dataFramebuffer.setPixels(0, 0, sizeFramebuffer, arrayFramebuffer, 0); - display.asyncExec(new Runnable() { - @Override - public void run() { - imageFramebuffer.dispose(); - imageFramebuffer = new Image(display, dataFramebuffer); - } - }); + if (display.isDisposed() == false) { + display.asyncExec(new Runnable() { + @Override + public void run() { + imageFramebuffer.dispose(); + imageFramebuffer = new Image(display, dataFramebuffer); + } + }); + } } public void stopRequest() { diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index ce19d61591..a339ae0d78 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -221,6 +221,21 @@ public class EmulatorSkin { setColorVM(); /* generate a identity color */ this.keyWindowKeeper = new KeyWindowKeeper(this); + + if (SwtUtil.isMacPlatform() == true) { + shell.getDisplay().addListener(SWT.Close, new Listener() { + @Override + public void handleEvent(Event e) { + if (pressedKeyEventList.size() == 1) { + KeyEventData data = pressedKeyEventList.get(0); + if (data.keycode == SWT.COMMAND && data.stateMask == 0) { + logger.info("COMMAND terminated!"); + EmulatorSkinMain.terminateImmediately(-1); + } + } + } + }); + } } public void setCommunicator(SocketCommunicator communicator) { diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java index 8857421703..85266e695a 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java @@ -380,7 +380,9 @@ public class GeneralKeyWindow extends SkinWindow { logger.info("activate"); if (SwtUtil.isMacPlatform() == true) { - parent.moveAbove(shell); + if (parent.isDisposed() == false) { + parent.moveAbove(shell); + } } else { shell.getDisplay().asyncExec(new Runnable() { @Override diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/SpecialKeyWindow.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/SpecialKeyWindow.java index ad68a27157..c8f7367795 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/SpecialKeyWindow.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/SpecialKeyWindow.java @@ -231,7 +231,9 @@ public class SpecialKeyWindow extends SkinWindow { logger.info("activate"); if (SwtUtil.isMacPlatform() == true) { - parent.moveAbove(shell); + if (parent.isDisposed() == false) { + parent.moveAbove(shell); + } } else { shell.getDisplay().asyncExec(new Runnable() { @Override