summaryrefslogtreecommitdiff
path: root/gtk/gtkkeyhash.c
Commit message (Collapse)AuthorAgeFilesLines
* gtk/: fully remove gtkalias hacksJavier Jardón2010-07-101-1/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=623845
* Fix a compatibility problemMatthias Clasen2010-02-121-0/+1
| | | | | | | | It turns out that my attempt at handling Super, Hyper and Meta better is causing problems, mostly because Alt and Meta are commonly colocated in the modmap, and apps do a check for the Alt modifier regularly. See e.g bug 607697.
* Try harder to handle accelerators involving virtual modifiersMatthias Clasen2009-12-211-10/+17
| | | | | | | | | This patch changes GDK to add all matching virtual modifiers in the state field of the key event. The corresponding GTK+ change makes use of a new GdkKeymap function to map virtual modifiers back to real modifiers and detect conflicts while doing so. This should fix bug 603190 and bug 427409.
* Fix compilation warning: initialize the variableJavier Jardón2009-11-091-1/+1
|
* Handle accelerators involving virtual modifiers betterMatthias Clasen2009-08-171-3/+3
| | | | | | | The previous code would trigger on an unmodified 'S' key for a 'Super+S' accel. The current code avoids that at the cost of breaking combinations like 'Mod4+Super+S' which are too exotic to worry about... Bug 591526
* Bug 162726 – Multiple Latin layouts in XKB break keyboard shortcutsMatthias Clasen2009-01-311-5/+83
| | | | | | | | | | | | | * gtk/gtkkeyhash.c (_gtk_key_hash_lookup): Change the handling of fuzzy matches: As long there are any exact matches, only exact matches are returned. If there are no exact matches, fuzzy matches will be returned, as long as they are not shadowing a possible exact match. This means that fuzzy matches won't be considered if their keyval is present in the current group. Problem reported by many people, patch by Simos Xenitellis. svn path=/trunk/; revision=22266
* gtk/gtkaccellabel.c gtk/gtkaction.c gtk/gtkclist.c gtk/gtkcolorbutton.cSven Neumann2008-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-12 Sven Neumann <sven@gimp.org> * gtk/gtkaccellabel.c * gtk/gtkaction.c * gtk/gtkclist.c * gtk/gtkcolorbutton.c * gtk/gtkctree.c * gtk/gtkdialog.c * gtk/gtkdnd-quartz.c * gtk/gtkdnd.c * gtk/gtkentry.c * gtk/gtkfilechooserdefault.c * gtk/gtkfilesel.c * gtk/gtkgamma.c * gtk/gtkiconview.c * gtk/gtkkeyhash.c * gtk/gtklabel.c * gtk/gtkmenu.c * gtk/gtkmenubar.c * gtk/gtkpaned.c * gtk/gtkrecentchooserdialog.c * gtk/gtkrecentchooserutils.c * gtk/gtkselection.c * gtk/gtksizegroup.c * gtk/gtktextbtree.c * gtk/gtktextbuffer.c * gtk/gtktextview.c * gtk/gtktoolbar.c * gtk/gtktreemodel.c * gtk/gtkuimanager.c * gtk/gtkwindow-decorate.c * gtk/gtkwindow.c: use canonical signal names in some more places that I missed earlier. Also changed this in the documentation and comments. svn path=/trunk/; revision=21094
* Revert name changeCody Russell2008-07-011-1/+1
| | | | svn path=/trunk/; revision=20724
* Practically everything changed.Cody Russell2008-06-301-1/+1
| | | | | | | | | | | | | 2008-06-30 Cody Russell <bratsche@gnome.org> * Practically everything changed. Change all references of GIMP Toolkit (and variations of it) to GTK+ Toolkit, showing no mercy at all to our beloved ancestry. (#540529) svn path=/trunk/; revision=20709
* Include "config.h" instead of <config.h> Command used: find -nameJohan Dahlin2008-06-221-1/+1
| | | | | | | | | | | | 2008-06-21 Johan Dahlin <jdahlin@async.com.br> * *.[ch]: Include "config.h" instead of <config.h> Command used: find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g' Rubberstamped by Mitch and Tim svn path=/trunk/; revision=20669
* 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.