Re: GTK, keycodes and keysyms



On Fri, Dec 29, 2000 at 06:19:01PM -0500, Havoc Pennington wrote:

Philip Kendall <pak ast cam ac uk> writes:

The previous version did this by calling XLookupKeysym(event,0), thus
giving me the keysym corresponding to the unshifted key, but GDK has
already done this lookup for me with the shift etc. modifiers applied...
gdk_keyval_to_lower(...) works for letters, but not for (say) Shift+3.

Is there any way I can get around this, or am I going to have to go
behind GTK's back somehow?


I recently added some code related to this to GTK+ 1.3.x (unstable
version), for a similar reason - for keyboard accelerators and in some
other cases, we want the keycap instead of the keysym.

I'll append the code. This feature is not in GTK 1.2, but you could
probably adapt this code to make things work.

[snip useful code]

Basically, a much more efficient version of what I eventually came up
with:

guint unshift_keysym(guint keysym)
{
  /* Oh boy is this ugly! */
  return XKeycodeToKeysym(gdk_display,
                          XKeysymToKeycode(gdk_display,keysym),
                          0);
}

Slow and ugly, but it works :-)

Thanks for the help!

Cheers,

Phil

-- 
  Philip Kendall <pak ast cam ac uk>
  http://www.srcf.ucam.org/~pak21/




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