You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/03/22 15:19:58 UTC

svn commit: r926097 - /pivot/trunk/wtk/src/org/apache/pivot/wtk/DesktopApplicationContext.java

Author: gbrown
Date: Mon Mar 22 14:19:57 2010
New Revision: 926097

URL: http://svn.apache.org/viewvc?rev=926097&view=rev
Log:
Fix minor issue in managing root window listener.

Modified:
    pivot/trunk/wtk/src/org/apache/pivot/wtk/DesktopApplicationContext.java

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/DesktopApplicationContext.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/DesktopApplicationContext.java?rev=926097&r1=926096&r2=926097&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/DesktopApplicationContext.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/DesktopApplicationContext.java Mon Mar 22 14:19:57 2010
@@ -245,12 +245,12 @@ public final class DesktopApplicationCon
     private static final WindowListener TOP_WINDOW_LISTENER = new WindowListener.Adapter() {
         @Override
         public void titleChanged(Window window, String previousTitle) {
-            updateFrameTitleBar(window.getRootOwner());
+            updateFrameTitleBar(window);
         }
 
         @Override
         public void iconChanged(Window window, Image previousIcon) {
-            updateFrameTitleBar(window.getRootOwner());
+            updateFrameTitleBar(window);
         }
     };
 
@@ -476,18 +476,25 @@ public final class DesktopApplicationCon
             }
 
             private void topWindowChanged(Display display, final Window previousTopWindow) {
+                if (previousTopWindow != null) {
+                    Window previousRootOwner = previousTopWindow.getRootOwner();
+                    previousRootOwner.getWindowListeners().remove(TOP_WINDOW_LISTENER);
+                }
+
+                int n = display.getLength();
+                if (n > 0) {
+                    Window topWindow = (Window)display.get(n - 1);
+                    Window rootOwner = topWindow.getRootOwner();
+                    rootOwner.getWindowListeners().add(TOP_WINDOW_LISTENER);
+                }
+
                 if (updateFrameTitleBarCallback == null) {
                     updateFrameTitleBarCallback = new Runnable() {
                         @Override
                         public void run() {
-                            if (previousTopWindow != null) {
-                                Window previousRootOwner = previousTopWindow.getRootOwner();
-                                previousRootOwner.getWindowListeners().remove(TOP_WINDOW_LISTENER);
-                            }
-
                             Display display = applicationContext.getDisplay();
-                            int n = display.getLength();
 
+                            int n = display.getLength();
                             if (n == 0) {
                                 windowedHostFrame.setTitle(DEFAULT_HOST_FRAME_TITLE);
                                 windowedHostFrame.setIconImage(null);
@@ -495,8 +502,6 @@ public final class DesktopApplicationCon
                                 Window topWindow = (Window)display.get(n - 1);
                                 Window rootOwner = topWindow.getRootOwner();
                                 updateFrameTitleBar(rootOwner);
-
-                                rootOwner.getWindowListeners().add(TOP_WINDOW_LISTENER);
                             }
 
                             updateFrameTitleBarCallback = null;