alt vs MOD1, MOD2, etc
- From: Skip Montanaro <skip pobox com>
- To: pygtk daa com au, gtk-list gnome org
- Subject: alt vs MOD1, MOD2, etc
- Date: Mon, 9 Jul 2001 12:20:14 -0500
I'm still fiddling around with interpreting keyboard input. I have this
little key reader script:
import gtk
def check_key(widget, evt):
print "state (%d, %d) : <" % (evt.state, evt.keyval),
for i in xrange(21):
state = evt.state & 1 << i
if state:
print gtk.GDK.GdkModifierType.names[state],
print ">", gtk.GDK.GdkKeySym.names[evt.keyval]
return gtk.TRUE
def _test():
window = gtk.GtkWindow(gtk.WINDOW_TOPLEVEL)
window.set_title("title")
window.connect("destroy", gtk.mainquit)
b = gtk.GtkButton(label="Type here")
b.set_usize(200, 200)
b.connect("key-press-event", check_key)
b.connect("clicked", gtk.mainquit)
window.add(b)
b.grab_focus()
window.show_all()
gtk.mainloop()
if __name__ == "__main__":
_test()
which prints out the event's state and keyval, then a printable version of
them. Output looks like
state (0, 65513) : < > Alt_L
state (64, 102) : < MOD4_MASK > f
state (0, 65514) : < > Alt_R
state (64, 102) : < MOD4_MASK > f
state (0, 65407) : < > Num_Lock
state (16, 102) : < MOD2_MASK > f
state (16, 65407) : < MOD2_MASK > Num_Lock
state (0, 102) : < > f
What's confusing me is that the Gtk 2.0 docs say that <alt> is an alias for
<mod1>. On my laptop at least (Dell 7500 running Mandrake 8.0 and XFree86
4.0.3, patch level 7mdk), I see the following correspondence between keys
and modmask bits:
Alt_L MOD4
Alt_R MOD4
Num_Lock MOD2
Scroll_Lock MOD5
Who's right? The relevant bit of the docs is in the "Key bindings" section
of
http://developer.gnome.org/doc/API/2.0/gtk/gtk-resource-files.html
I haven't found anything that generates the other MOD bits on my laptop.
Someone (Sawfish?) intercepts the Windows keypress and pops up a menu. I
haven't been able to figure out how to turn that off. Is the correspondence
between keys and mask bits more tenuous than the documentation suggests? If
so, it looks like I will have to track modifier key presses and maintain my
own modifier key state.
On a side note, are there some publically browsable examples of Gtk rc
files?
Thx,
--
Skip Montanaro (skip pobox com)
(847)971-7098
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]