[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XBoard-devel] ICS Interaction window in XBoard-GTK

From: h . g . muller
Subject: Re: [XBoard-devel] ICS Interaction window in XBoard-GTK
Date: Tue, 4 Feb 2014 09:42:11 +0100
User-agent: SquirrelMail

Something we still have to think about is key bindings for the ICS
Console. Most text entries in XBoard do not have a special key-event
handler associated with them. Those that do mostly use the 'standard'
handler that reacts to

<Esc>:   pop down the dialog the entry is in
<Enter>: emulate pressing of the OK button

Note that pressing OK does not always results in closing of the dialog;
this depends on the value returned by the OK handler.

The ICS Input Box had its own handler, which ignored <Esc>, and allowed
the use of Up and Down Arrow to recall previous input lines.

I used the standard handler on the the input field of the ICS Console, but
extended that handler to also intercept Up and Down Arrows, but only in
case it was handling an event from this input field. It seems to me that
to make it work conveniently, it would need some changes. In particular,
popping down the ICS Console on typing <Esc> does not seem a sensible
action. OTOH, it would be convenient if there was a way to switch between
chats and ICS commands by use of the keyboard, rather than by clicking the
Hide or one of the Chat buttons.

Perhaps the following would be helpful:
<Esc>: emulate pressing the Hide button (switch to ICS command mode)
<Tab>: switch to the next chat that is in use

Perhaps the <Tab> should give priority to chats marked as 'dirty'. Showing
them would make them clean, so repeated pressing of <Tab> would eventually
still cycle you through all the chats. <Tab> would just emulate pressing
of one of the top-row chat buttons, so when the chat pane was hidden, it
would open it (for the left-most active chat).

I don't know if there are other ideas for key bindings. In general, the
XBoard menu key bindings do not work when one of the dialogs has focus.
For the ICS console this could be a nuisance. We could try to intecept all
non-printables in the key-event handler of the input field, and perform
the corresponding XBoard menu function. (E.g. so that the user could press
F2 for Flip View, etc.)

A less complex alternative is to define a key that would transfer focus to
the main window, where all bindings would work autmatically. Typing
printables in the main window in ICS mode already transfers focus to the
ICS Console input field, putting the character there (and popping it up
when required). So you would easily get back to the console. Of course
playing moves would normally transfer focus to the main window all the
time, so this automatic transfer of focus to the ICS Console on typing is
pretty important. Perhaps <Esc> when the console is already in ICS mode
(when there is no chat pane to hide) should transfer focus to the main
window, so the user could use a key binding (e.g. to offer a draw, resign

reply via email to

[Prev in Thread] Current Thread [Next in Thread]