diff options
author | Tim Janik <timj@gtk.org> | 1998-06-09 07:11:55 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-06-09 07:11:55 +0000 |
commit | a21d063ef867d0df151872f79cb04db8e730c42a (patch) | |
tree | 4e39ac11c98f2da3e38430d09843f6c74e007b07 /gtk/gtkbindings.c | |
parent | 257c54a0210d75fd17d19d555a90c52a07693ef4 (diff) | |
download | gtk+-a21d063ef867d0df151872f79cb04db8e730c42a.tar.gz |
new functions gtk_selection_data_copy and gtk_selection_data_free.
Tue Jun 9 01:57:23 1998 Tim Janik <timj@gtk.org>
* gtk/gtkselection.h:
* gtk/gtkselection.c: new functions gtk_selection_data_copy and
gtk_selection_data_free.
* gtk/gtkwidget.c (gtk_widget_class_init): fixed gtk_signal_new() call
for "selection_received", which was completely bogus.
* other fixups to gtk_signal_new() calls all over the place.
* gtk/gtktypebuiltins.h: types as variables (formerly macros).
* gtk/gtktypebuiltins_vars.c: type variable implementations.
* gtk/gtktypebuiltins_ids.c: array entries for builtin type
declarations.
* gtk/gtktypebuiltins_evals.c: enum value arrays.
* gtk/gtk-boxed.defs: gtk and gdk structure definitions, used to build
gtk.defs.
* gtk/gtk.defs: generated file with scheme syntax for type definitions
of gtk and gdk structures and enums.
* gtk/gtktypeutils.h:
* gtk/gtktypeutils.c: reworked type ids, so they are variables not
macros anymore (this fixes binary incompatibility with new enum
definitions).
* gtk/gtkwidget.c (gtk_widget_real_key_press_event): proccess possible
key bindings for this widget.
* gtk/gtkwindow.c (gtk_window_key_press_event): chain parent class'
handler.
* gtk/gtkobject.h:
* gtk/gtkobject.c: removed gtk_object_class_new_user_signal_no_recurse()
again. new functions gtk_object_class_user_signal_new () and
gtk_object_class_user_signal_newv (), to feature the GtkSignalRunType
flag on the signal creation.
Mon Jun 8 20:52:21 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.h: new signal GtkContainer::set_focus_child.
Diffstat (limited to 'gtk/gtkbindings.c')
-rw-r--r-- | gtk/gtkbindings.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/gtk/gtkbindings.c b/gtk/gtkbindings.c index c9e55181ed..5f3d5bab34 100644 --- a/gtk/gtkbindings.c +++ b/gtk/gtkbindings.c @@ -28,7 +28,7 @@ /* --- defines --- */ -#define BINDING_MOD_MASK() (gtk_accelerator_get_default_mod_mask () | GDK_AFTER_MASK) +#define BINDING_MOD_MASK() (gtk_accelerator_get_default_mod_mask ()) /* --- variables --- */ @@ -337,12 +337,11 @@ gtk_binding_entry_activate (GtkBindingEntry *entry, GtkSignalQuery *query; guint signal_id; GtkArg *params = NULL; + gchar *accelerator = NULL; signal_id = gtk_signal_lookup (sig->signal_name, GTK_OBJECT_TYPE (object)); if (!signal_id) { - gchar *accelerator; - accelerator = gtk_accelerator_name (entry->keyval, entry->modifiers); g_warning ("gtk_binding_entry_activate(): binding \"%s::%s\": " "could not find signal \"%s\" in the `%s' class ancestry", @@ -359,8 +358,6 @@ gtk_binding_entry_activate (GtkBindingEntry *entry, query->return_val != GTK_TYPE_NONE || !binding_compose_params (sig->args, query, ¶ms)) { - gchar *accelerator; - accelerator = gtk_accelerator_name (entry->keyval, entry->modifiers); g_warning ("gtk_binding_entry_activate(): binding \"%s::%s\": " "signature mismatch for signal \"%s\" in the `%s' class ancestry", @@ -368,11 +365,21 @@ gtk_binding_entry_activate (GtkBindingEntry *entry, accelerator, sig->signal_name, gtk_type_name (GTK_OBJECT_TYPE (object))); - g_free (accelerator); - g_free (query); - continue; } + else if (!(query->signal_flags & GTK_RUN_ACTION)) + { + accelerator = gtk_accelerator_name (entry->keyval, entry->modifiers); + g_warning ("gtk_binding_entry_activate(): binding \"%s::%s\": " + "signal \"%s\" in the `%s' class ancestry cannot be used for action emissions", + entry->binding_set->set_name, + accelerator, + sig->signal_name, + gtk_type_name (GTK_OBJECT_TYPE (object))); + } + g_free (accelerator); g_free (query); + if (accelerator) + continue; gtk_signal_emitv (object, signal_id, params); g_free (params); |