summaryrefslogtreecommitdiff
path: root/gtk/gtkkeyhash.c
Commit message (Collapse)AuthorAgeFilesLines
* Use the slice allocator for many small allocations.Matthias Clasen2006-01-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | 2006-01-04 Matthias Clasen <mclasen@redhat.com> * gtk/gtkaccelmap.c: * gtk/gtkactiongroup.c: * gtk/gtkdialog.c: * gtk/gtkfilesystemunix.c: * gtk/gtkgc.c: * gtk/gtkkeyhash.c: * gtk/gtkplug.c: * gtk/gtktextiter.c: * gtk/gtktextlayout.c: * gtk/gtkuimanager.c: * gtk/gtkwidget.c: * gtk/gtkwindow.c: * gtk/gtkxembed.c: Use the slice allocator for many small allocations. * gtk/gtkcolorsel.c: * gtk/gtktreeview.c: Use IPN. * gtk/gtkwidget.c: Remove an unused field from the AccelPath struct.
* Add tests for extra virtual modifiers.Matthias Clasen2005-09-061-2/+11
| | | | | | | | | | | | | | 2005-09-06 Matthias Clasen <mclasen@redhat.com> * tests/testgtk.c (create_key_lookup): Add tests for extra virtual modifiers. * gtk/gtkkeyhash.c (_gtk_key_hash_lookup): Try to match both against Mod2 - Mod5 and against Super, Hyper, Meta. * gtk/gtkaccellabel.c (_gtk_accel_label_class_get_accelerator_label): * gtk/gtkaccelgroup.c (gtk_accelerator_parse) (gtk_accelerator_name): Support Super, Hyper Meta and Mod2 - Mod5.
* Make PLT-reduction work with gcc4, and don't include everything inMatthias Clasen2005-03-201-1/+1
| | | | | | | | | | | | | | | | | | 2005-03-20 Matthias Clasen <mclasen@redhat.com> Make PLT-reduction work with gcc4, and don't include everything in gdkalias.h: * gtk/grk.symbols: Group symbols by header and source file. * gtk/makegtkalias.pl: Protect definitions by the same preprocessor symbols used to guard the headers. Move the alias declarations to a separate file which is produced when calling makegtkalias.pl -def * gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate this file. * gtk/*.c: Include gtkalias.h after the other headers, include gtkaliasdef.c at the bottom. * gtk/*.h: Small cleanups.
* Don't sort a list of values as if it was a list of entries. This fixesMatthias Clasen2004-12-311-5/+15
| | | | | | | | | | 2004-12-31 Matthias Clasen <mclasen@redhat.com> * gtk/gtkkeyhash.c (_gtk_key_hash_lookup_keyval) (_gtk_key_hash_lookup): Don't sort a list of values as if it was a list of entries. This fixes crashes during mnemonic activation in the presence of multiple keymaps. (#162488, Christian Persch)
* Add hidden aliases for exported symbols which are used internally in orderMatthias Clasen2004-08-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de> Add hidden aliases for exported symbols which are used internally in order to get rid of many PLT entries. (#145519, Arjan van de Ven) * gtk/Makefile.am: Add rules to generate gtk.def and from gtk.symbols, and make make check check the abi with abicheck.sh. (gtk_private_h_sources): Add gtkinternals.h (gtk_built_private_headers): Add gtkalias.h (gtk_extra_sources): Add gtk.symbols (EXTRA_DIST): Add makegtkalias.pl and abicheck.sh * gtk/gtk.symbols: New file. Definition of the GTK+ ABI. The file can be processed by cpp to filter out certain subsets of symbols. * gtk/abicheck.sh: New file. Script to check the actually symbols exported from libgtk-x11.2.0.so against the symbols found in gtk.symbols. * gtk/makegtkalias.pl: New file. Perl script to generate the header containing the alias definitions for internally used exported symbols from a list of symbols. * gtk/gtkinternals.h: New file. An uninstalled header listing symbols which must be exported for some reason and do not appear in any other header. * gtk/*.c: Include gtkalias.h
* Fixes #136082 and #135265, patch by Morten Welinder.Federico Mena Quintero2004-03-061-0/+1
| | | | | | | | | | 2004-03-05 Federico Mena Quintero <federico@ximian.com> Fixes #136082 and #135265, patch by Morten Welinder. * configure.in: Use AC_SYS_LARGEFILE. * */*.c: #include <config.h>
* Remove GDK_LOCK_MASK before calling gdk_keymap_translate_keyboard_state soOwen Taylor2003-08-121-0/+4
| | | | | | | | | | Tue Aug 12 14:27:42 2003 Owen Taylor <otaylor@redhat.com> * gtk/gtkkeyhash.c (_gtk_key_hash_lookup): Remove GDK_LOCK_MASK before calling gdk_keymap_translate_keyboard_state so bindings and accelerators are independent of the Caps-lock key. (#115384, reported by Toni Willberg)
* We need to pass the unmasked state toOwen Taylor2003-05-211-1/+4
| | | | | | | | | | | | | | Wed May 21 12:52:01 2003 Owen Taylor <otaylor@redhat.com> * gtk/gtkkeyhash.[ch] (_gtk_key_hash_looku): We need to pass the unmasked state to gdk_keymap_translate_keyboard_state() to handle the case where a modifier not in the mask (like Num_Lock) changes the key value, so replace the masked state with a state/mask pair. (#106913, Olivier Ripoll) * gtk/gtkwindow.c gtk/gtkbinding.c: Update to pass in state/mask pair to _gtk_key_hash_lookup()
* Deprecation cleanupManish Singh2002-10-101-1/+2
| | | | | | | | Wed Oct 9 17:40:13 2002 Manish Singh <yosh@gimp.org> * gtk/gtkaccelmap.c gtk/gtkfixed.[ch] gtk/gtkkeyhash.c gtk/gtkmenu.c gtk/gtkobject.c gtk/gtkoldeditable.c gtk/gtkrc.c gtk/gtkspinbutton.[ch] gtk/gtktable.[ch] gtk/gtkthemes.c: Deprecation cleanup
* Add a keys_changed signal emitted when the keymap changes. (#72148)Owen Taylor2002-09-231-61/+82
| | | | | | | | | | | | | Mon Sep 23 16:48:46 2002 Owen Taylor <otaylor@redhat.com> * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: Add a keys_changed signal emitted when the keymap changes. (#72148) * gtk/gtkkeyhash.c (_gtk_key_hash_remove_entry): Hook up code to handle keymap changes, change to keep a linked list of keymap entries so that we can reinsert them in the same order on a keymap change.
* Partial fix for problem where keypad keys acted as shift-arrows in anOwen Taylor2002-03-221-4/+46
| | | | | | | | | | | | | | | | | | 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()
* When removing keys from the key hash, reinsert the right list back intoOwen Taylor2002-03-141-3/+3
| | | | | | | | 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)
* Fix double free.Owen Taylor2002-02-261-1/+0
| | | | | | | Tue Feb 26 11:51:56 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkkeyhash.c (_gtk_key_hash_remove_entry): Fix double free.
* Handle a keyval of 0, by returning an empty list. (#72617, Kevin Breit)Owen Taylor2002-02-261-1/+4
| | | | | | | | 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)
* Implement "fuzzy" key binding lookups; allow matches on key and level butOwen Taylor2002-02-211-0/+379
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.