nanogui: Support for on-screen keyboard - SUMMARY
Subject:
Support for on-screen keyboard - SUMMARY
From:
Vidar Hokstad ####@####.####
Date:
16 May 1999 09:45:50 -0000
Message-Id: <Pine.LNX.4.10.9905161115500.2715-100000@a.ncg.net>
To summarize, here's an updated suggestion, based on Alex' suggestion,
with a few modifications by me, and a change prompted by Warners concerns:
- We don't guarantee that on-screen keyboards will work properly with
a mouse as a pointing device unless you use "click to focus".
For a touchpad other focus mechanisms (including the present)
should work just fine, since you typically would lift whatever
it is you touch the screen with, and move it to the on-screen
keyboard in one movement.
- An on-screen keyboard "registers" itself with the NanoX server
by calling a SendCopiesOfAllFocusEventsToMe() (preferrably with
a shorter name :-) type function. This is done _instead_ of the
on-screen keyboard itself requesting the ID of the last focused
window, to ensure that the last focus id that the on-screen keyboard
records before a button on it is pressed is always the last one to
actually happen before the button press (removing a potential
race situation, jfr. Warners mails).
This require:
* A small command to be added to the server to register the
on-screen keyboard client as receiver of server wide focus
events.
* A small change to the command that generate focus events to
send a copy to any client registered to receive server
wide events.
- The on-screen keyboard then sits and waits for focus events, and
as long as it is focus events for other windows than itself, it
updates it's last-focused flag. Whenever it receive a button press
over one of it's keys, it then calls a "SendKeyEvent()" type
function, with the last-focused windowid, the key, and any modifiers
as arguments.
This require:
* A command to be added to the server to send key events
to the server, that will then resend the key event to
the specified window.
Anyone that sees problems, or have suggestions for changes to this
modified suggestion?
If not, I'll go ahead and write a simple test implementation of it.
Regards,
Vidar
--
Vidar Hokstad ####@####.####
Director of R&D, Screen Media AS