From: Kimmo R. <ki...@us...> - 2012-04-21 17:47:03
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui In directory vz-cvs-4.sog:/tmp/cvs-serv3627/src/games/stendhal/client/gui Modified Files: j2DClient.java Log Message: Chatlog tab switching using keyboard Index: j2DClient.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2DClient.java,v retrieving revision 1.411 retrieving revision 1.412 diff -C2 -d -r1.411 -r1.412 *** j2DClient.java 9 Apr 2012 15:44:04 -0000 1.411 --- j2DClient.java 21 Apr 2012 17:47:00 -0000 1.412 *************** *** 65,68 **** --- 65,69 ---- import java.awt.event.FocusEvent; import java.awt.event.FocusListener; + import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; *************** *** 281,293 **** * Game log */ ! JComponent chatLogArea = createLogArea(); chatLogArea.setPreferredSize(new Dimension(getWidth(), 171)); final KeyListener keyListener = new GameKeyHandler(); - // add a key input system (defined below) to our canvas so we can // respond to key pressed chatText.addKeyListener(keyListener); screen.addKeyListener(keyListener); // Display a warning message in case the screen size was adjusted --- 282,313 ---- * Game log */ ! final JComponent chatLogArea = createLogArea(); chatLogArea.setPreferredSize(new Dimension(getWidth(), 171)); + // *** Key handling *** final KeyListener keyListener = new GameKeyHandler(); // add a key input system (defined below) to our canvas so we can // respond to key pressed chatText.addKeyListener(keyListener); screen.addKeyListener(keyListener); + // Also redirect key presses to the chatlog tabs, so that the tabs + // can be switched with ctrl-PgUp/Down + chatText.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + /* + * Redispatch only if CTRL is pressed. Otherwise any arrow key + * press will be interpreted as switching log tabs. + * + * What should be used for Macs? + */ + if (e.isControlDown()) { + chatLogArea.dispatchEvent(e); + // The log tab contents like stealing the focus if they get + // key events. + chatText.getPlayerChatText().requestFocus(); + } + } + }); // Display a warning message in case the screen size was adjusted |