From: Timm Bäder Date: Thu, 26 Mar 2020 16:31:38 +0000 (+0100) Subject: shortcutscontroller: Make add_shortcut transfer-full X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~19^2~26 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ecb8dda30970b01f64a5d070507ac1c09972b925;p=gtk4.git shortcutscontroller: Make add_shortcut transfer-full Like all the other shortcut api --- diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 1d591877bd..0b7b884685 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -1838,7 +1838,6 @@ gtk_label_setup_mnemonic (GtkLabel *label) g_object_ref (gtk_mnemonic_action_get ())); gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (priv->mnemonic_controller), shortcut); gtk_widget_add_controller (GTK_WIDGET (label), priv->mnemonic_controller); - g_object_unref (shortcut); } else { diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index 1bbdd46c50..4cc292c980 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -748,7 +748,6 @@ update_accel (GtkModelButton *self, if (GTK_IS_POPOVER (gtk_widget_get_native (GTK_WIDGET (self)))) { - GtkShortcut *shortcut; GtkShortcutTrigger *trigger; GtkShortcutAction *action; @@ -756,7 +755,7 @@ update_accel (GtkModelButton *self, { while (g_list_model_get_n_items (G_LIST_MODEL (self->controller)) > 0) { - shortcut = g_list_model_get_item (G_LIST_MODEL (self->controller), 0); + GtkShortcut *shortcut = g_list_model_get_item (G_LIST_MODEL (self->controller), 0); gtk_shortcut_controller_remove_shortcut (GTK_SHORTCUT_CONTROLLER (self->controller), shortcut); g_object_unref (shortcut); @@ -771,9 +770,8 @@ update_accel (GtkModelButton *self, trigger = gtk_keyval_trigger_new (key, mods); action = gtk_signal_action_new ("clicked"); - shortcut = gtk_shortcut_new (trigger, action); - gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (self->controller), shortcut); - g_object_unref (shortcut); + gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (self->controller), + gtk_shortcut_new (trigger, action)); } } else diff --git a/gtk/gtkshortcutcontroller.c b/gtk/gtkshortcutcontroller.c index c141f7887c..8123d796e6 100644 --- a/gtk/gtkshortcutcontroller.c +++ b/gtk/gtkshortcutcontroller.c @@ -659,7 +659,7 @@ gtk_shortcut_controller_new_for_model (GListModel *model) /** * gtk_shortcut_controller_add_shortcut: * @self: the controller - * @shortcut: a #GtkShortcut + * @shortcut: (transfer-full): a #GtkShortcut * * Adds @shortcut to the list of shortcuts handled by @self. * @@ -676,13 +676,17 @@ gtk_shortcut_controller_add_shortcut (GtkShortcutController *self, g_return_if_fail (GTK_IS_SHORTCUT (shortcut)); if (!self->custom_shortcuts) - return; + { + g_object_unref (shortcut); + return; + } widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (self)); if (widget) update_accel (shortcut, widget, TRUE); g_list_store_append (G_LIST_STORE (self->shortcuts), shortcut); + g_object_unref (shortcut); } /**