X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2Fhumaninput%2FKeyboardFocusStack.java;h=5b10ac05943e34a5abd322d3d830b84d52a93c00;hb=197ac1b87328bb5b06ba52d3768af04b2007b087;hp=4ee7ed8e096aa30d90d57e938e00fe2b9c5f69dd;hpb=70ee733b25c56bed539b89ff5507ae0af842d68a;p=sixth-3d.git 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..5b10ac0 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 @@ -1,10 +1,8 @@ /* - * Sixth 3D engine. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 3 of the GNU Lesser General Public License - * or later as published by the Free Software Foundation. + * Sixth 3D engine. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. * +* */ package eu.svjatoslav.sixth.e3d.gui.humaninput; @@ -40,16 +38,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; } }