Mercurial > hg > ristipolku
diff game/IDMContainer.java @ 175:55ea5821c802
Implement "real" widget modality.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 16 Mar 2017 10:42:54 +0200 |
parents | f664e851bc07 |
children | 4568c8016377 |
line wrap: on
line diff
--- a/game/IDMContainer.java Mon Mar 06 11:55:40 2017 +0200 +++ b/game/IDMContainer.java Thu Mar 16 10:42:54 2017 +0200 @@ -83,6 +83,10 @@ synchronized public boolean mousePressed(MouseEvent e) { + IDMWidget modal = getActiveModalWidget(); + if (modal != null) + return modal.mousePressed(e); + try { beginIteration(); for (IDMWidget widget : children) @@ -100,6 +104,10 @@ synchronized public boolean mouseReleased(MouseEvent e) { + IDMWidget modal = getActiveModalWidget(); + if (modal != null) + return modal.mouseReleased(e); + try { beginIteration(); for (IDMWidget widget : children) @@ -114,6 +122,10 @@ synchronized public boolean mouseExited(MouseEvent e) { + IDMWidget modal = getActiveModalWidget(); + if (modal != null) + return modal.mouseExited(e); + try { beginIteration(); for (IDMWidget widget : children) @@ -128,6 +140,10 @@ synchronized public boolean mouseEntered(MouseEvent e) { + IDMWidget modal = getActiveModalWidget(); + if (modal != null) + return modal.mouseEntered(e); + try { beginIteration(); for (IDMWidget widget : children) @@ -145,6 +161,10 @@ synchronized public boolean keyPressed(KeyEvent e) { + IDMWidget modal = getActiveModalWidget(); + if (modal != null) + return modal.keyPressed(e); + try { beginIteration(); for (IDMWidget widget : children) @@ -186,4 +206,14 @@ } return false; } + + synchronized public IDMWidget getActiveModalWidget() + { + for (IDMWidget widget : children) + { + if (widget.isModal()) + return widget; + } + return null; + } }