X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2Fhumaninput%2FKeyboardFocusStack.java;h=7690babab7d6261ff7fbeaddc3dfc999341a01e8;hp=4ee7ed8e096aa30d90d57e938e00fe2b9c5f69dd;hb=9dcd9d8a7d3bc16eb6fde3681cd32e02dc0707e9;hpb=4bb8945294848559aab76e248207781c6e097714 diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardFocusStack.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardFocusStack.java index 4ee7ed8..7690bab 100644 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardFocusStack.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardFocusStack.java @@ -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; } }