skin: removed readAndDispatch on Key Window
authorgiwoong.kim <giwoong.kim@samsung.com>
Mon, 14 Jan 2013 02:53:24 +0000 (11:53 +0900)
committergiwoong.kim <giwoong.kim@samsung.com>
Mon, 14 Jan 2013 02:54:19 +0000 (11:54 +0900)
removed readAndDispatch function call on Key Window

Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/custom/KeyWindow.java
tizen/src/skin/client/src/org/tizen/emulator/skin/custom/SkinWindow.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java

index 68d4136..ac708a9 100644 (file)
@@ -181,9 +181,13 @@ public class EmulatorSkin {
                this.finger = finger;
                this.config = config;
                this.skinInfo = skinInfo;
+
+               this.screenShotDialog = null;
+               this.keyWindow = null;
+               this.pressedKeyEventList = new LinkedList<KeyEventData>();
+
                this.isOnTop = isOnTop;
                this.isKeyWindow = false;
-               this.pressedKeyEventList = new LinkedList<KeyEventData>();
 
                int style = SWT.NO_TRIM | SWT.DOUBLE_BUFFERED;
 //             if (skinInfo.isPhoneShape() == false) {
@@ -941,16 +945,21 @@ public class EmulatorSkin {
                return keyWindowItem.getSelection();
        }
 
-       public void openKeyWindow(int dockValue) {
+       public void openKeyWindow(int dockValue, boolean recreate) {
                if (keyWindow != null) {
-                       /* show the key window */
-                       keyWindowItem.setSelection(isKeyWindow = true);
-                       pairTagCanvas.setVisible(true);
-
-                       keyWindow.getShell().setVisible(true);
-                       SkinUtil.setTopMost(keyWindow.getShell(), isOnTop);
-
-                       return;
+                       if (recreate == false) {
+                               /* show the key window */
+                               keyWindowItem.setSelection(isKeyWindow = true);
+                               pairTagCanvas.setVisible(true);
+
+                               keyWindow.getShell().setVisible(true);
+                               SkinUtil.setTopMost(keyWindow.getShell(), isOnTop);
+
+                               return;
+                       } else {
+                               logger.info("recreate a keywindow");
+                               closeKeyWindow();
+                       }
                }
 
                /* create a key window */
@@ -967,21 +976,15 @@ public class EmulatorSkin {
                        return;
                }
 
-               try {
-                       keyWindow = new KeyWindow(this, shell, colorPairTag,
-                                       communicator, keyMapList);
+               keyWindow = new KeyWindow(this, shell, colorPairTag,
+                               communicator, keyMapList);
 
-                       keyWindowItem.setSelection(isKeyWindow = true);
-                       SkinUtil.setTopMost(keyWindow.getShell(), isOnTop);
+               keyWindowItem.setSelection(isKeyWindow = true);
+               SkinUtil.setTopMost(keyWindow.getShell(), isOnTop);
 
-                       //colorPairTag = keyWindow.getPairTagColor();
-                       pairTagCanvas.setVisible(true);
+               pairTagCanvas.setVisible(true);
 
-                       keyWindow.open(dockValue);
-                       /* do not add at this line */
-               } finally {
-                       keyWindow = null;
-               }
+               keyWindow.open(dockValue);
        }
 
        public void hideKeyWindow() {
@@ -1080,8 +1083,11 @@ public class EmulatorSkin {
                                final boolean selectKeyWindow = keyWindowItem.getSelection();
 
                                if (selectKeyWindow == true) {
-                                       openKeyWindow((keyWindow == null) ?
-                                                       SWT.RIGHT | SWT.CENTER : keyWindow.getDockPosition());
+                                       if (keyWindow == null) {
+                                               openKeyWindow(SWT.RIGHT | SWT.CENTER, false);
+                                       } else {
+                                               openKeyWindow(keyWindow.getDockPosition(), false);
+                                       }
                                } else { /* hide a key window */
                                        if (keyWindow != null &&
                                                        keyWindow.getDockPosition() != SWT.NONE) {
index 5e6d10c..5f0c31f 100644 (file)
@@ -352,6 +352,7 @@ public class KeyWindow extends SkinWindow {
                                if (skin.pairTagCanvas != null) {
                                        skin.pairTagCanvas.setVisible(false);
                                }
+                               skin.keyWindow = null;
 
                                if (null != shellPaintListener) {
                                        shell.removePaintListener(shellPaintListener);
index 35f31fa..abddad9 100644 (file)
@@ -61,12 +61,6 @@ public class SkinWindow {
                dock(dockValue, true, true);
 
                shell.open();
-
-               while (!shell.isDisposed()) {
-                       if (!shell.getDisplay().readAndDispatch()) {
-                               shell.getDisplay().sleep();
-                       }
-               }
        }
 
        public void dock(int dockValue,
index ead109a..53d26f5 100644 (file)
@@ -160,7 +160,7 @@ public class GeneralPurposeSkinComposer implements ISkinComposer {
                                if (skin.isSelectKeyWindow() == true) {
                                        skin.closeKeyWindow();
                                } else {
-                                       skin.openKeyWindow(SWT.RIGHT | SWT.CENTER);
+                                       skin.openKeyWindow(SWT.RIGHT | SWT.CENTER, true);
                                }
                        }
 
@@ -203,7 +203,7 @@ public class GeneralPurposeSkinComposer implements ISkinComposer {
                shell.getDisplay().asyncExec(new Runnable() {
                        @Override
                        public void run() {
-                               skin.openKeyWindow(SWT.RIGHT | SWT.CENTER);
+                               skin.openKeyWindow(SWT.RIGHT | SWT.CENTER, false);
                        }
                });
        }