Re: Automatic focus handling? How do I turn it off?
- From: Ken Simpson <kens ActiveState com>
- To: Owen Taylor <otaylor redhat com>
- Cc: Havoc Pennington <hp redhat com>, <gtk-list gnome org>, <blizzard redhat com>, David Ascher <DavidA ActiveState com>, Mark Hammond <markh ActiveState com>
- Subject: Re: Automatic focus handling? How do I turn it off?
- Date: Tue, 12 Jun 2001 12:06:34 -0700 (PDT)
> Widgets are sent key presses before GTK+ checks for focus keys. If the
> widget handles the key press in its event handler and returns TRUE,
> then GTK+ will not check for tab/arrows.
>
> For instance, this is how GtkText prevents a tab key from tabbing out
> of the GtkText widget.
Hrm.. I guess the problem with Mozilla is that I need the keypress event
to live on for a little while so that Mozilla can grab it. I can't just
kill all the navigation keys -- Mozilla needs them so that it can farm
them out to its command system.
i.e., the order of operations should be:
1. Mozilla grabs ALL gdk events and processes them in its own handler
(i.e. gdk_event_handler_set (handle_gdk_event, NULL, NULL);)
2. Events are then farmed out to the widget from which they
originated (an nsWindow pointer is stored in the user data of the
event's any.window object).
3. The widget's key_press handler returns 0 for any keypress which is not
something simple, like [A-Za-z0-9_-+] etc..
4. (hopefully) The key_press event travels up the window hierarchy to the
main Mozilla window, where it is ground through the Mozilla keybinding
system and produces some result. The event then should _die_.
The problem is that, between stages 3 and 4, gtk intercepts the key press
and changes the focus. Yuck. I don't think the fix here is going to be
easy...
Ideas??
TTUL
Ken
--
New! ASPN - ActiveState Programmer Network
Essential programming tools and information
http://www.ActiveState.com/ASPN
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]