Commit Graph

12 Commits

Author SHA1 Message Date
Matthias Clasen
d4e082d71c Don't sort a list of values as if it was a list of entries. This fixes
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)
2004-12-31 06:40:05 +00:00
Matthias Clasen
3612aee585 Add hidden aliases for exported symbols which are used internally in order
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
2004-08-09 16:59:53 +00:00
Federico Mena Quintero
80581c3011 Fixes #136082 and #135265, patch by Morten Welinder.
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>
2004-03-06 03:38:59 +00:00
Owen Taylor
43811f5dc0 Remove GDK_LOCK_MASK before calling gdk_keymap_translate_keyboard_state so
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)
2003-08-12 18:38:16 +00:00
Owen Taylor
e1fb536724 We need to pass the unmasked state to
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()
2003-05-21 17:49:49 +00:00
Manish Singh
28bc53032b Deprecation cleanup
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
2002-10-10 01:02:25 +00:00
Owen Taylor
a16b63eb35 Add a keys_changed signal emitted when the keymap changes. (#72148)
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.
2002-09-23 21:35:00 +00:00
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