Optimized frame repainting. Fixed mouse click processing.
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / gui / humaninput / KeyboardFocusStack.java
index 4ee7ed8..7690bab 100644 (file)
@@ -40,16 +40,20 @@ public class KeyboardFocusStack {
         currentUserInputHandler.focusReceived(viewPanel);
     }
 
-    public void pushFocusOwner(final UserInputHandler newInputHandler) {
+    public boolean pushFocusOwner(final UserInputHandler newInputHandler) {
+        boolean updateNeeded = false;
+
         if (currentUserInputHandler == newInputHandler)
-            return;
+            return false;
 
         if (currentUserInputHandler != null) {
-            currentUserInputHandler.focusLost(viewPanel);
+            updateNeeded = currentUserInputHandler.focusLost(viewPanel);
             inputHandlers.push(currentUserInputHandler);
         }
 
         currentUserInputHandler = newInputHandler;
-        currentUserInputHandler.focusReceived(viewPanel);
+        updateNeeded |= currentUserInputHandler.focusReceived(viewPanel);
+
+        return updateNeeded;
     }
 }