diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index 1fa8ad81d1..8f79b394e9 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -1792,8 +1792,6 @@ gtk_menu_popup_at_widget gtk_menu_popup_at_pointer gtk_menu_set_accel_group gtk_menu_get_accel_group -gtk_menu_set_accel_path -gtk_menu_get_accel_path gtk_menu_set_monitor gtk_menu_get_monitor gtk_menu_place_on_monitor @@ -1891,8 +1889,6 @@ gtk_menu_item_get_use_underline gtk_menu_item_set_use_underline gtk_menu_item_set_submenu gtk_menu_item_get_submenu -gtk_menu_item_set_accel_path -gtk_menu_item_get_accel_path gtk_menu_item_select gtk_menu_item_deselect gtk_menu_item_activate @@ -4446,7 +4442,6 @@ gtk_widget_class_add_binding gtk_widget_class_add_binding_signal gtk_widget_add_accelerator gtk_widget_remove_accelerator -gtk_widget_set_accel_path gtk_widget_list_accel_closures gtk_widget_can_activate_accel gtk_widget_event diff --git a/gtk/gtkaccelmap.c b/gtk/gtkaccelmap.c index bbb2dd2bc8..8c6b7995e4 100644 --- a/gtk/gtkaccelmap.c +++ b/gtk/gtkaccelmap.c @@ -41,7 +41,7 @@ * SECTION:gtkaccelmap * @Short_description: Loadable keyboard accelerator specifications * @Title: Accelerator Maps - * @See_also: #GtkAccelGroup, #GtkAccelKey, gtk_widget_set_accel_path(), gtk_menu_item_set_accel_path() + * @See_also: #GtkAccelGroup, #GtkAccelKey * * Accelerator maps are used to define runtime configurable accelerators. * Functions for manipulating them are are usually used by higher level diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 924ec56a1b..49bcd6f894 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -105,7 +105,6 @@ #include "gtkscrollbar.h" #include "gtksettings.h" #include "gtkshortcutmanager.h" -#include "gtksnapshot.h" #include "gtkstylecontextprivate.h" #include "gtktypebuiltins.h" #include "gtkwidgetpath.h" @@ -151,7 +150,6 @@ enum { PROP_0, PROP_ACTIVE, PROP_ACCEL_GROUP, - PROP_ACCEL_PATH, PROP_ATTACH_WIDGET, PROP_TEAROFF_STATE, PROP_TEAROFF_TITLE, @@ -180,7 +178,6 @@ static void gtk_menu_size_allocate (GtkWidget *widget, int widget_width, int widget_height, int baseline); -static void gtk_menu_show (GtkWidget *widget); static void gtk_menu_motion (GtkEventController *controller, double x, double y, @@ -214,8 +211,6 @@ static GdkSurface *menu_grab_transfer_surface_get (GtkMenu *menu); static gboolean gtk_menu_real_can_activate_accel (GtkWidget *widget, guint signal_id); -static void _gtk_menu_refresh_accel_paths (GtkMenu *menu, - gboolean group_changed); static void gtk_menu_measure (GtkWidget *widget, GtkOrientation orientation, int for_size, @@ -319,7 +314,6 @@ gtk_menu_class_init (GtkMenuClass *class) widget_class->realize = gtk_menu_realize; widget_class->unrealize = gtk_menu_unrealize; widget_class->size_allocate = gtk_menu_size_allocate; - widget_class->show = gtk_menu_show; widget_class->focus = gtk_menu_focus; widget_class->can_activate_accel = gtk_menu_real_can_activate_accel; widget_class->grab_notify = gtk_menu_grab_notify; @@ -427,19 +421,6 @@ gtk_menu_class_init (GtkMenuClass *class) GTK_TYPE_ACCEL_GROUP, GTK_PARAM_READWRITE)); - /** - * GtkMenu:accel-path: - * - * An accel path used to conveniently construct accel paths of child items. - **/ - g_object_class_install_property (gobject_class, - PROP_ACCEL_PATH, - g_param_spec_string ("accel-path", - P_("Accel Path"), - P_("An accel path used to conveniently construct accel paths of child items"), - NULL, - GTK_PARAM_READWRITE)); - /** * GtkMenu:attach-widget: * @@ -679,9 +660,6 @@ gtk_menu_set_property (GObject *object, case PROP_ACCEL_GROUP: gtk_menu_set_accel_group (menu, g_value_get_object (value)); break; - case PROP_ACCEL_PATH: - gtk_menu_set_accel_path (menu, g_value_get_string (value)); - break; case PROP_ATTACH_WIDGET: { GtkWidget *widget; @@ -755,9 +733,6 @@ gtk_menu_get_property (GObject *object, case PROP_ACCEL_GROUP: g_value_set_object (value, gtk_menu_get_accel_group (menu)); break; - case PROP_ACCEL_PATH: - g_value_set_string (value, gtk_menu_get_accel_path (menu)); - break; case PROP_ATTACH_WIDGET: g_value_set_object (value, gtk_menu_get_attach_widget (menu)); break; @@ -1853,7 +1828,6 @@ gtk_menu_set_accel_group (GtkMenu *menu, priv->accel_group = accel_group; if (priv->accel_group) g_object_ref (priv->accel_group); - _gtk_menu_refresh_accel_paths (menu, TRUE); } } @@ -1892,107 +1866,6 @@ gtk_menu_real_can_activate_accel (GtkWidget *widget, return gtk_widget_is_sensitive (widget); } -/** - * gtk_menu_set_accel_path: - * @menu: a valid #GtkMenu - * @accel_path: (nullable): a valid accelerator path, or %NULL to unset the path - * - * Sets an accelerator path for this menu from which accelerator paths - * for its immediate children, its menu items, can be constructed. - * The main purpose of this function is to spare the programmer the - * inconvenience of having to call gtk_menu_item_set_accel_path() on - * each menu item that should support runtime user changable accelerators. - * Instead, by just calling gtk_menu_set_accel_path() on their parent, - * each menu item of this menu, that contains a label describing its - * purpose, automatically gets an accel path assigned. - * - * For example, a menu containing menu items “New” and “Exit”, will, after - * `gtk_menu_set_accel_path (menu, "/File");` has been - * called, assign its items the accel paths: `"/File/New"` - * and `"/File/Exit"`. - * - * Assigning accel paths to menu items then enables the user to change - * their accelerators at runtime. More details about accelerator paths - * and their default setups can be found at gtk_accel_map_add_entry(). - * - * Note that @accel_path string will be stored in a #GQuark. Therefore, - * if you pass a static string, you can save some memory by interning - * it first with g_intern_static_string(). - */ -void -gtk_menu_set_accel_path (GtkMenu *menu, - const gchar *accel_path) -{ - GtkMenuPrivate *priv; - - g_return_if_fail (GTK_IS_MENU (menu)); - - priv = menu->priv; - - if (accel_path) - g_return_if_fail (accel_path[0] == '<' && strchr (accel_path, '/')); /* simplistic check */ - - priv->accel_path = g_intern_string (accel_path); - if (priv->accel_path) - _gtk_menu_refresh_accel_paths (menu, FALSE); -} - -/** - * gtk_menu_get_accel_path: - * @menu: a valid #GtkMenu - * - * Retrieves the accelerator path set on the menu. - * - * Returns: the accelerator path set on the menu. - */ -const gchar* -gtk_menu_get_accel_path (GtkMenu *menu) -{ - g_return_val_if_fail (GTK_IS_MENU (menu), NULL); - - return menu->priv->accel_path; -} - -typedef struct { - GtkMenu *menu; - gboolean group_changed; -} AccelPropagation; - -static void -refresh_accel_paths_foreach (GtkWidget *widget, - gpointer data) -{ - GtkMenuPrivate *priv; - AccelPropagation *prop = data; - - if (GTK_IS_MENU_ITEM (widget)) /* should always be true */ - { - priv = prop->menu->priv; - _gtk_menu_item_refresh_accel_path (GTK_MENU_ITEM (widget), - priv->accel_path, - priv->accel_group, - prop->group_changed); - } -} - -static void -_gtk_menu_refresh_accel_paths (GtkMenu *menu, - gboolean group_changed) -{ - GtkMenuPrivate *priv = menu->priv; - - if (priv->accel_path && priv->accel_group) - { - AccelPropagation prop; - - prop.menu = menu; - prop.group_changed = group_changed; - gtk_container_foreach (GTK_CONTAINER (menu), - refresh_accel_paths_foreach, - &prop); - } -} - /** * gtk_menu_reposition: * @menu: a #GtkMenu @@ -2129,16 +2002,6 @@ gtk_menu_size_allocate (GtkWidget *widget, baseline); } -static void -gtk_menu_show (GtkWidget *widget) -{ - GtkMenu *menu = GTK_MENU (widget); - - _gtk_menu_refresh_accel_paths (menu, FALSE); - - GTK_WIDGET_CLASS (gtk_menu_parent_class)->show (widget); -} - static void gtk_menu_measure (GtkWidget *widget, GtkOrientation orientation, diff --git a/gtk/gtkmenu.h b/gtk/gtkmenu.h index c4217516db..6b3ceeac20 100644 --- a/gtk/gtkmenu.h +++ b/gtk/gtkmenu.h @@ -93,11 +93,6 @@ void gtk_menu_set_accel_group (GtkMenu *menu, GtkAccelGroup *accel_group); GDK_AVAILABLE_IN_ALL GtkAccelGroup* gtk_menu_get_accel_group (GtkMenu *menu); -GDK_AVAILABLE_IN_ALL -void gtk_menu_set_accel_path (GtkMenu *menu, - const gchar *accel_path); -GDK_AVAILABLE_IN_ALL -const gchar* gtk_menu_get_accel_path (GtkMenu *menu); GDK_AVAILABLE_IN_ALL void gtk_menu_attach_to_widget (GtkMenu *menu, diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c index 549c9b479c..578802a731 100644 --- a/gtk/gtkmenuitem.c +++ b/gtk/gtkmenuitem.c @@ -125,7 +125,6 @@ enum { enum { PROP_0, PROP_SUBMENU, - PROP_ACCEL_PATH, PROP_LABEL, PROP_USE_UNDERLINE, @@ -607,20 +606,6 @@ gtk_menu_item_class_init (GtkMenuItemClass *klass) GTK_TYPE_MENU, GTK_PARAM_READWRITE); - /** - * GtkMenuItem:accel-path: - * - * Sets the accelerator path of the menu item, through which runtime - * changes of the menu item's accelerator caused by the user can be - * identified and saved to persistant storage. - */ - menu_item_props[PROP_ACCEL_PATH] = - g_param_spec_string ("accel-path", - P_("Accel Path"), - P_("Sets the accelerator path of the menu item"), - NULL, - GTK_PARAM_READWRITE); - /** * GtkMenuItem:label: * @@ -760,9 +745,6 @@ gtk_menu_item_set_property (GObject *object, case PROP_SUBMENU: gtk_menu_item_set_submenu (menu_item, g_value_get_object (value)); break; - case PROP_ACCEL_PATH: - gtk_menu_item_set_accel_path (menu_item, g_value_get_string (value)); - break; case PROP_LABEL: gtk_menu_item_set_label (menu_item, g_value_get_string (value)); break; @@ -795,9 +777,6 @@ gtk_menu_item_get_property (GObject *object, case PROP_SUBMENU: g_value_set_object (value, gtk_menu_item_get_submenu (menu_item)); break; - case PROP_ACCEL_PATH: - g_value_set_string (value, gtk_menu_item_get_accel_path (menu_item)); - break; case PROP_LABEL: g_value_set_string (value, gtk_menu_item_get_label (menu_item)); break; @@ -1600,44 +1579,12 @@ gtk_menu_item_can_activate_accel (GtkWidget *widget, menu_shell && gtk_widget_can_activate_accel (GTK_WIDGET (menu_shell), signal_id)); } -static void -gtk_menu_item_accel_name_foreach (GtkWidget *widget, - gpointer data) -{ - const gchar **path_p = data; - - if (!*path_p) - { - if (GTK_IS_LABEL (widget)) - { - *path_p = gtk_label_get_text (GTK_LABEL (widget)); - if (*path_p && (*path_p)[0] == 0) - *path_p = NULL; - } - else if (GTK_IS_CONTAINER (widget)) - gtk_container_foreach (GTK_CONTAINER (widget), - gtk_menu_item_accel_name_foreach, - data); - } -} - static void gtk_menu_item_parent_cb (GObject *object, GParamSpec *pspec, gpointer user_data) { GtkMenuItem *menu_item = GTK_MENU_ITEM (object); - GtkMenu *menu; - GtkMenuShell *menu_shell; - - menu_shell = gtk_menu_item_get_menu_shell (menu_item); - menu = GTK_IS_MENU (menu_shell) ? GTK_MENU (menu_shell) : NULL; - - if (menu) - _gtk_menu_item_refresh_accel_path (menu_item, - menu->priv->accel_path, - menu->priv->accel_group, - TRUE); update_arrow_widget (menu_item); } @@ -1653,133 +1600,6 @@ gtk_menu_item_direction_changed (GtkWidget *widget, GTK_WIDGET_CLASS (gtk_menu_item_parent_class)->direction_changed (widget, previous_dir); } -void -_gtk_menu_item_refresh_accel_path (GtkMenuItem *menu_item, - const gchar *prefix, - GtkAccelGroup *accel_group, - gboolean group_changed) -{ - GtkMenuItemPrivate *priv = menu_item->priv; - const gchar *path; - GtkWidget *widget; - - g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); - g_return_if_fail (!accel_group || GTK_IS_ACCEL_GROUP (accel_group)); - - widget = GTK_WIDGET (menu_item); - - if (!accel_group) - { - gtk_widget_set_accel_path (widget, NULL, NULL); - return; - } - - path = _gtk_widget_get_accel_path (widget, NULL); - if (!path) /* no active accel_path yet */ - { - path = priv->accel_path; - if (!path && prefix) - { - const gchar *postfix = NULL; - gchar *new_path; - - /* try to construct one from label text */ - gtk_container_foreach (GTK_CONTAINER (menu_item), - gtk_menu_item_accel_name_foreach, - &postfix); - if (postfix) - { - new_path = g_strconcat (prefix, "/", postfix, NULL); - path = priv->accel_path = g_intern_string (new_path); - g_free (new_path); - } - } - if (path) - gtk_widget_set_accel_path (widget, path, accel_group); - } - else if (group_changed) /* reinstall accelerators */ - gtk_widget_set_accel_path (widget, path, accel_group); -} - -/** - * gtk_menu_item_set_accel_path: - * @menu_item: a valid #GtkMenuItem - * @accel_path: (allow-none): accelerator path, corresponding to this menu - * item’s functionality, or %NULL to unset the current path. - * - * Set the accelerator path on @menu_item, through which runtime - * changes of the menu item’s accelerator caused by the user can be - * identified and saved to persistent storage (see gtk_accel_map_save() - * on this). To set up a default accelerator for this menu item, call - * gtk_accel_map_add_entry() with the same @accel_path. See also - * gtk_accel_map_add_entry() on the specifics of accelerator paths, - * and gtk_menu_set_accel_path() for a more convenient variant of - * this function. - * - * This function is basically a convenience wrapper that handles - * calling gtk_widget_set_accel_path() with the appropriate accelerator - * group for the menu item. - * - * Note that you do need to set an accelerator on the parent menu with - * gtk_menu_set_accel_group() for this to work. - * - * Note that @accel_path string will be stored in a #GQuark. - * Therefore, if you pass a static string, you can save some memory - * by interning it first with g_intern_static_string(). - */ -void -gtk_menu_item_set_accel_path (GtkMenuItem *menu_item, - const gchar *accel_path) -{ - GtkMenuItemPrivate *priv = menu_item->priv; - GtkWidget *widget; - GtkMenuShell *menu_shell; - - g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); - g_return_if_fail (accel_path == NULL || - (accel_path[0] == '<' && strchr (accel_path, '/'))); - - widget = GTK_WIDGET (menu_item); - - /* store new path */ - priv->accel_path = g_intern_string (accel_path); - - /* forget accelerators associated with old path */ - gtk_widget_set_accel_path (widget, NULL, NULL); - - /* install accelerators associated with new path */ - menu_shell = gtk_menu_item_get_menu_shell (menu_item); - if (GTK_IS_MENU (menu_shell)) - { - GtkMenu *menu = GTK_MENU (menu_shell); - - if (menu->priv->accel_group) - _gtk_menu_item_refresh_accel_path (GTK_MENU_ITEM (widget), - NULL, - menu->priv->accel_group, - FALSE); - } -} - -/** - * gtk_menu_item_get_accel_path: - * @menu_item: a valid #GtkMenuItem - * - * Retrieve the accelerator path that was previously set on @menu_item. - * - * See gtk_menu_item_set_accel_path() for details. - * - * Returns: (nullable) (transfer none): the accelerator path corresponding to - * this menu item’s functionality, or %NULL if not set - */ -const gchar * -gtk_menu_item_get_accel_path (GtkMenuItem *menu_item) -{ - g_return_val_if_fail (GTK_IS_MENU_ITEM (menu_item), NULL); - - return menu_item->priv->accel_path; -} - static void gtk_menu_item_forall (GtkContainer *container, GtkCallback callback, diff --git a/gtk/gtkmenuitem.h b/gtk/gtkmenuitem.h index 422706a2af..36216236b5 100644 --- a/gtk/gtkmenuitem.h +++ b/gtk/gtkmenuitem.h @@ -129,11 +129,6 @@ void gtk_menu_item_toggle_size_request (GtkMenuItem *menu_item, GDK_AVAILABLE_IN_ALL void gtk_menu_item_toggle_size_allocate (GtkMenuItem *menu_item, gint allocation); -GDK_AVAILABLE_IN_ALL -void gtk_menu_item_set_accel_path (GtkMenuItem *menu_item, - const gchar *accel_path); -GDK_AVAILABLE_IN_ALL -const gchar * gtk_menu_item_get_accel_path (GtkMenuItem *menu_item); GDK_AVAILABLE_IN_ALL void gtk_menu_item_set_label (GtkMenuItem *menu_item, diff --git a/gtk/gtkmenuitemprivate.h b/gtk/gtkmenuitemprivate.h index 7b461f100e..53fbc51669 100644 --- a/gtk/gtkmenuitemprivate.h +++ b/gtk/gtkmenuitemprivate.h @@ -35,8 +35,6 @@ struct _GtkMenuItemPrivate guint timer; - const char *accel_path; - GtkActionHelper *action_helper; GtkWidget *arrow_widget; @@ -49,10 +47,6 @@ struct _GtkMenuItemPrivate guint reserve_indicator : 1; }; -void _gtk_menu_item_refresh_accel_path (GtkMenuItem *menu_item, - const gchar *prefix, - GtkAccelGroup *accel_group, - gboolean group_changed); gboolean _gtk_menu_item_is_selectable (GtkWidget *menu_item); void _gtk_menu_item_popup_submenu (GtkWidget *menu_item, gboolean with_delay); diff --git a/gtk/gtkmenuprivate.h b/gtk/gtkmenuprivate.h index 3e6e41b566..3658fea742 100644 --- a/gtk/gtkmenuprivate.h +++ b/gtk/gtkmenuprivate.h @@ -52,7 +52,6 @@ struct _GtkMenuPrivate GtkWidget *old_active_menu_item; GtkAccelGroup *accel_group; - const char *accel_path; gint position_x; gint position_y; diff --git a/gtk/gtkshortcut.h b/gtk/gtkshortcut.h index 09e8a82cef..8a5e42e69f 100644 --- a/gtk/gtkshortcut.h +++ b/gtk/gtkshortcut.h @@ -69,6 +69,11 @@ gboolean gtk_shortcut_get_mnemonic_activate (GtkShortcut GDK_AVAILABLE_IN_ALL void gtk_shortcut_set_mnemonic_activate (GtkShortcut *self, gboolean mnemonic_activate); +GDK_AVAILABLE_IN_ALL +gboolean gtk_shortcut_get_activate (GtkShortcut *self); +GDK_AVAILABLE_IN_ALL +void gtk_shortcut_set_activate (GtkShortcut *self, + gboolean activate); G_END_DECLS diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 8afd7f028f..3430ff06ef 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -724,7 +724,6 @@ static gpointer gtk_widget_parent_class = NULL; static guint widget_signals[LAST_SIGNAL] = { 0 }; GtkTextDirection gtk_default_direction = GTK_TEXT_DIR_LTR; -static GQuark quark_accel_path = 0; static GQuark quark_accel_closures = 0; static GQuark quark_input_shape_info = 0; static GQuark quark_pango_context = 0; @@ -891,7 +890,6 @@ gtk_widget_class_init (GtkWidgetClass *klass) g_type_class_adjust_private_offset (klass, &GtkWidget_private_offset); gtk_widget_parent_class = g_type_class_peek_parent (klass); - quark_accel_path = g_quark_from_static_string ("gtk-accel-path"); quark_accel_closures = g_quark_from_static_string ("gtk-accel-closures"); quark_input_shape_info = g_quark_from_static_string ("gtk-input-shape-info"); quark_pango_context = g_quark_from_static_string ("gtk-pango-context"); @@ -5053,9 +5051,7 @@ widget_new_accel_closure (GtkWidget *widget, * The @accel_group needs to be added to the widget’s toplevel via * gtk_window_add_accel_group(), and the signal must be of type %G_SIGNAL_ACTION. * Accelerators added through this function are not user changeable during - * runtime. If you want to support accelerators that can be changed by the - * user, use gtk_accel_map_add_entry() and gtk_widget_set_accel_path() or - * gtk_menu_item_set_accel_path() instead. + * runtime. */ void gtk_widget_add_accelerator (GtkWidget *widget, @@ -5182,99 +5178,6 @@ gtk_widget_list_accel_closures (GtkWidget *widget) return clist; } -typedef struct { - GQuark path_quark; - GtkAccelGroup *accel_group; - GClosure *closure; -} AccelPath; - -static void -destroy_accel_path (gpointer data) -{ - AccelPath *apath = data; - - gtk_accel_group_disconnect (apath->accel_group, apath->closure); - - /* closures_destroy takes care of unrefing the closure */ - g_object_unref (apath->accel_group); - - g_slice_free (AccelPath, apath); -} - - -/** - * gtk_widget_set_accel_path: - * @widget: a #GtkWidget - * @accel_path: (allow-none): path used to look up the accelerator - * @accel_group: (allow-none): a #GtkAccelGroup. - * - * Given an accelerator group, @accel_group, and an accelerator path, - * @accel_path, sets up an accelerator in @accel_group so whenever the - * key binding that is defined for @accel_path is pressed, @widget - * will be activated. This removes any accelerators (for any - * accelerator group) installed by previous calls to - * gtk_widget_set_accel_path(). Associating accelerators with - * paths allows them to be modified by the user and the modifications - * to be saved for future use. (See gtk_accel_map_save().) - * - * This function is a low level function that would most likely - * be used by a menu creation system. - * - * If you only want to - * set up accelerators on menu items gtk_menu_item_set_accel_path() - * provides a somewhat more convenient interface. - * - * Note that @accel_path string will be stored in a #GQuark. Therefore, if you - * pass a static string, you can save some memory by interning it first with - * g_intern_static_string(). - **/ -void -gtk_widget_set_accel_path (GtkWidget *widget, - const gchar *accel_path, - GtkAccelGroup *accel_group) -{ - AccelPath *apath; - - g_return_if_fail (GTK_IS_WIDGET (widget)); - g_return_if_fail (GTK_WIDGET_GET_CLASS (widget)->activate_signal != 0); - - if (accel_path) - { - g_return_if_fail (GTK_IS_ACCEL_GROUP (accel_group)); - g_return_if_fail (_gtk_accel_path_is_valid (accel_path)); - - gtk_accel_map_add_entry (accel_path, 0, 0); - apath = g_slice_new (AccelPath); - apath->accel_group = g_object_ref (accel_group); - apath->path_quark = g_quark_from_string (accel_path); - apath->closure = widget_new_accel_closure (widget, GTK_WIDGET_GET_CLASS (widget)->activate_signal); - } - else - apath = NULL; - - /* also removes possible old settings */ - g_object_set_qdata_full (G_OBJECT (widget), quark_accel_path, apath, destroy_accel_path); - - if (apath) - gtk_accel_group_connect_by_path (apath->accel_group, g_quark_to_string (apath->path_quark), apath->closure); - - g_signal_emit (widget, widget_signals[ACCEL_CLOSURES_CHANGED], 0); -} - -const gchar* -_gtk_widget_get_accel_path (GtkWidget *widget, - gboolean *locked) -{ - AccelPath *apath; - - g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); - - apath = g_object_get_qdata (G_OBJECT (widget), quark_accel_path); - if (locked) - *locked = apath ? gtk_accel_group_get_is_locked (apath->accel_group) : TRUE; - return apath ? g_quark_to_string (apath->path_quark) : NULL; -} - /** * gtk_widget_mnemonic_activate: * @widget: a #GtkWidget @@ -8237,7 +8140,6 @@ gtk_widget_real_destroy (GtkWidget *object) } /* wipe accelerator closures (keep order) */ - g_object_set_qdata (G_OBJECT (widget), quark_accel_path, NULL); g_object_set_qdata (G_OBJECT (widget), quark_accel_closures, NULL); /* Callers of add_mnemonic_label() should disconnect on ::destroy */ diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index c514af7655..fbb7b5d09d 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -454,10 +454,6 @@ gboolean gtk_widget_remove_accelerator (GtkWidget *widget, guint accel_key, GdkModifierType accel_mods); GDK_AVAILABLE_IN_ALL -void gtk_widget_set_accel_path (GtkWidget *widget, - const gchar *accel_path, - GtkAccelGroup *accel_group); -GDK_AVAILABLE_IN_ALL GList* gtk_widget_list_accel_closures (GtkWidget *widget); GDK_AVAILABLE_IN_ALL gboolean gtk_widget_can_activate_accel (GtkWidget *widget, diff --git a/testsuite/gtk/notify.c b/testsuite/gtk/notify.c index 99b8f82ae8..15561d5721 100644 --- a/testsuite/gtk/notify.c +++ b/testsuite/gtk/notify.c @@ -493,13 +493,8 @@ test_type (gconstpointer data) g_str_equal (pspec->name, "text-column")) continue; - if (g_type_is_a (pspec->owner_type, GTK_TYPE_MENU_ITEM) && - g_str_equal (pspec->name, "accel-path")) - continue; - if (g_type_is_a (pspec->owner_type, GTK_TYPE_MENU) && - (g_str_equal (pspec->name, "accel-path") || - g_str_equal (pspec->name, "active"))) + g_str_equal (pspec->name, "active")) continue; if (g_type_is_a (pspec->owner_type, GTK_TYPE_CHECK_MENU_ITEM) && diff --git a/testsuite/gtk/object.c b/testsuite/gtk/object.c index 7b48446cbc..ccaae1fae0 100644 --- a/testsuite/gtk/object.c +++ b/testsuite/gtk/object.c @@ -72,8 +72,6 @@ list_ignore_properties (gboolean buglist) { "GtkFileChooserButton", "action", (void*) GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER }, { "GtkFileChooserWidget", "select-multiple", (void*) 0x1 }, /* property conflicts */ { "GtkFileChooserDialog", "select-multiple", (void*) MATCH_ANY_VALUE }, /* property disabled */ - { "GtkMenu", "accel-path", (void*) MATCH_ANY_VALUE }, /* has odd restrictions in the setter */ - { "GtkMenuItem", "accel-path", (void*) MATCH_ANY_VALUE }, /* has odd restrictions in the setter */ { "GtkTextView", "overwrite", (void*) MATCH_ANY_VALUE }, /* needs text buffer */ { "GtkTreeView", "expander-column", (void*) MATCH_ANY_VALUE }, /* assertion list != NULL */ { "GtkWindow", "display", (void*) MATCH_ANY_VALUE },