[g-a-devel] AtkKeyEventStruct tied to Gdk



Right now in the definition of AtkKeyEventStruct you can find this:

"guint state; A bitmask representing the state of the modifier keys
	immediately after the event takes place. The meaning of the
	bits is currently defined to match the bitmask used by GDK in
	GdkEventType.state, see
	http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.htmlGdkEventKey";

"guint keyval; A guint representing a keysym value corresponding to
those used by GDK and X11: see /usr/X11/include/keysymdef.h."

So ATK, a toolkit thought as a toolkit abstraction, is asking
something in a toolkit-way.

This is causing some problems:

1.) Gtk+ is emitting this keyval applying the modifiers (in Atk the
state)
2.) Clutter is not, so I needed to use a gdk method to make a
transformation on Cally, adding a gdk dependency here. And this is not
a good idea, IMHO.
3.) JAVA is also emitting a different value. Joanmarie Diggs told me
that Orca is doing as well a translation.
4.) Missing other toolkit?

So, right now this is a mess (taking into account as well the
atk->keycode field).

Although apps like Orca are (right now) just using the string, this
could change in the future.

In my opinion, this field should be removed (and using just the
modifiers and the string), or defined in a abstract way. Probably it
would mean define the correct modifiers and keyval on Atk, so any ATK
toolkit implementation should make the proper translation. Althought
this sound as well really complex.

On bug 614121, Emmanuele Bassi adds:

"another issue is: we've seen that ATK is tailored to GDK (e.g.: event
structures); should we take advantage of the API break in GTK+ to get rid of
that and make ATK toolkit agnostic?"

Is right now GTK+ defining the event information in a more general
way?

So this mail is just an attempt to start the discussion in order to
solve, if possible, this issue.

Ideas, thoughts, comments?

[1] http://library.gnome.org/devel/atk/stable/AtkUtil.html#AtkKeyEventStruct
[2] https://bugzilla.gnome.org/show_bug.cgi?id=614121

===
API (apinheiro igalia com)


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