Commit Graph

5 Commits

Author SHA1 Message Date
Owen Taylor
7425e42847 Partial fix for problem where keypad keys acted as shift-arrows in an
Fri Mar 22 11:29:11 2002  Owen Taylor  <otaylor@redhat.com>

        Partial fix for problem where keypad keys acted
        as shift-arrows in an entry rather than arrows (#74327)

        * gtk/gtkkeyhash.c (_gtk_key_hash_lookup): Sort lookup
        results by number of modifiers in the entry. Fixes
        problem where if a key matched both modified and unmodified
        key bindings ... e.g., the distinguishing key binding
        was consumed, then it was random which was used.

        * gtk/gtkbindings.c (gtk_binding_entries_sort_patterns):
        Catch the case where there are multiple entries from the
        same bindingset (with different modifiers), and use only
        the first entry, which, with the change in _gtk_key_hash_lookup()
2002-03-22 17:35:14 +00:00
Owen Taylor
7357b205de When removing keys from the key hash, reinsert the right list back into
Thu Mar 14 11:17:18 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkkeyhash.c (_gtk_key_hash_remove_entry): When
        removing keys from the key hash, reinsert the right list
        back into the hash. (Dave Camp, #74571)
2002-03-14 16:20:42 +00:00
Owen Taylor
f255d50bbf Fix double free.
Tue Feb 26 11:51:56 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkkeyhash.c (_gtk_key_hash_remove_entry): Fix
        double free.
2002-02-26 16:56:58 +00:00
Owen Taylor
9b1ce99cb4 Handle a keyval of 0, by returning an empty list. (#72617, Kevin Breit)
Tue Feb 26 10:38:14 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkkeyhash.c (_gtk_key_hash_lookup_keyval): Handle
        a keyval of 0, by returning an empty list. (#72617,
        Kevin Breit)
2002-02-26 15:52:20 +00:00
Owen Taylor
708e1a9574 Implement "fuzzy" key binding lookups; allow matches on key and level but
Wed Feb 20 14:26:47 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkkeyhash.[ch]: Implement "fuzzy" key binding lookups;
        allow matches on key and level but not group. Also, implement
        ignoring "consumed modifiers correctly."

        * gtk/gtkaccelgroup.c gtk/gtkbindings.c: Convert to using
        GtkKeyHash.

        * gtk/gtkdebug.h gtk/gtkmain.c: Support GTK_DEBUG=keybindings

        * gdk/x11/gdkevents-x11.c (gdk_event_translate): Fill in
        the group for key release events as well as key press events.

        * gdk/gdkkeys.h gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state):
        Rename unused_modifiers to consumed_modifiers, make the docs and
        non-Xkb implementation match the Xkb implementation.

        * gdk/linux-fb/gdkkeyboard-fb.c gdk/win32/gdkkeys-win32.c: Propagate
        doc and parameter name changes.

        * gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state):
        XkbTranslateKeyCode doesn't handle LockMask, we need to handle
        it ourselves.

        * gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state): Force
        <Shift>Tab to give GDK_ISO_Left_Tab, since we need consistency
        to allow dealing with ISO_Left_Tab.

        * gtk/gtkwindow.c gtk/gtktextview.c gtk/gtkscrolledwindow.c
        gtk/gtkpaned.c gtk/gtkcombo.c  gtk/gtknotebook.c:
        Remove inappropriate uses of GDK_ISO_Left_Tab. (GDK_ISO_Left_Tab
        or <Shift>Tab both are equivalent as a binding specifier.)

        * gtk/gtkbutton.c (gtk_button_class_init): Make ::activate
        GTK_RUN_ACTION, so you can bind an accelerator to it.

        * gtk/gtklabel.c (gtk_label_set_uline_text_internal): Call
        gdk_unicode_to_keyval on the mnemonic character.

        * tests/testgtk.c: Add a test for the new fuzzy key binding matching.
2002-02-21 17:14:10 +00:00