diff -r 0ea12c182930 -r 63b81d807542 javauis/lcdui_qt/src/javax/microedition/lcdui/Displayable.java --- a/javauis/lcdui_qt/src/javax/microedition/lcdui/Displayable.java Mon Aug 23 14:24:31 2010 +0300 +++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/Displayable.java Thu Sep 02 13:22:59 2010 +0300 @@ -255,15 +255,18 @@ { // Implementation in child-classes // Logger.method(this, "handleShellActivatedEvent"); - if(ESWTUIThreadRunner.getInstance().getDisplay().getActiveShell() - != null) + if(!isShellActive) { - if(JadAttributeUtil.isValue(JadAttributeUtil.ATTRIB_NOKIA_MIDLET_BACKGROUND_EVENT, - JadAttributeUtil.VALUE_PAUSE)) - { - ApplicationUtils.getInstance().resumeApplication(); - } - isShellActive = true; + if(JadAttributeUtil.isValue(JadAttributeUtil.ATTRIB_NOKIA_MIDLET_BACKGROUND_EVENT, + JadAttributeUtil.VALUE_PAUSE)) + { + if(ESWTUIThreadRunner.getInstance().getDisplay().getActiveShell() + != null) + { + ApplicationUtils.getInstance().resumeApplication(); + } + isShellActive = true; + } } } @@ -276,11 +279,11 @@ // Logger.method(this, "handleShellDeActivatedEvent"); if(isShellActive) { - if(ESWTUIThreadRunner.getInstance().getDisplay().getActiveShell() - == null) + if(JadAttributeUtil.isValue(JadAttributeUtil.ATTRIB_NOKIA_MIDLET_BACKGROUND_EVENT, + JadAttributeUtil.VALUE_PAUSE)) { - if(JadAttributeUtil.isValue(JadAttributeUtil.ATTRIB_NOKIA_MIDLET_BACKGROUND_EVENT, - JadAttributeUtil.VALUE_PAUSE)) + if(ESWTUIThreadRunner.getInstance().getDisplay().getActiveShell() + == null) { ApplicationUtils.getInstance().pauseApplication(); isShellActive = false;