GtkCTree keyboard binding problem
- From: "Rene' Seindal" <rene seindal dk>
- To: gtk-list redhat com
- Subject: GtkCTree keyboard binding problem
- Date: Fri, 17 Sep 1999 22:30:50 +0200
I have a problem with the default bindings in GtkCTree. Pressing +
should expand a branch and - should collapse it, likewise for the
keypad. The keypad works, - likewise, but + has no effect. = should
toggle, but that doesn't work either.
I am using gtk+ 1.2.3, linux 2.2.10, slackware 4.0, XFree86 3.3.5.
I went though the code for GtkCTree, and found this:
binding_set = gtk_binding_set_by_class (klass);
gtk_binding_entry_add_signal (binding_set,
'+', GDK_SHIFT_MASK,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND);
The + has to be shifted! On my keyboard it is not. A shifted + is a
question mark. Likewise for the binding of =, which is shifted on my
keyboard (unshifted it is zero), but shouldn't be according to the
bindings in GtkCTree.
Gtk+ is making some assumptions that don't always hold. You have to
press shift to get a + on an american keyboard, but not on a danish
keyboard.
I think gtk+ should either make mappings that ignores modifiers, if
possible, or these keys should be mapped both shifted and
unshifted. Double mappings shouldn't harm, as the shifted/unshifted key
will normally generate another character, preventing mistakes. On my
keyboard, I cannot make a shifted +, because it generates a shifted
question mark. Likewise, I cannot make an unshifted question mark.
I did some changes to my program to test it, and the following changes
makes the keyboard shortcuts work in the GtkCtree with my keyboard.
GtkCTree *ctree;
GtkBindingSet *binding_set;
...
binding_set = gtk_binding_set_by_class(GTK_OBJECT(ctree)->klass);
gtk_binding_entry_add_signal(binding_set,
'+', 0,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND);
gtk_binding_entry_add_signal(binding_set,
'=', GDK_SHIFT_MASK,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
I just don't think this belongs in my application.
--
René Seindal (rene@seindal.dk) http://www.seindal.dk/rene/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]