diff options
author | Thomas Haller <thaller@redhat.com> | 2015-09-11 12:37:15 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-09-11 13:40:46 +0200 |
commit | eaf99061fba3cde9b94d3b802ff0e7d17bdfd41b (patch) | |
tree | c4031731d59c9e3d6de7e0b57aa32dc5e5ed989e | |
parent | 1ba974dfcfd0d6e05de2fca857b9c537f5fed842 (diff) | |
download | network-manager-applet-eaf99061fba3cde9b94d3b802ff0e7d17bdfd41b.tar.gz |
libnma: take weak-ref to passwd_entry in PopupMenuItemInfo
-rw-r--r-- | src/libnm-gtk/nm-ui-utils.c | 9 | ||||
-rw-r--r-- | src/libnma/nma-ui-utils.c | 9 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/libnm-gtk/nm-ui-utils.c b/src/libnm-gtk/nm-ui-utils.c index bfc53459..21ad099b 100644 --- a/src/libnm-gtk/nm-ui-utils.c +++ b/src/libnm-gtk/nm-ui-utils.c @@ -715,7 +715,6 @@ menu_item_to_secret_flags (MenuItem item) case ITEM_STORAGE_SYSTEM: default: break; - } return flags; } @@ -735,6 +734,8 @@ popup_menu_item_info_destroy (gpointer data, GClosure *closure) if (info->setting) g_object_unref (info->setting); g_clear_pointer (&info->password_flags_name, g_free); + if (info->passwd_entry) + g_object_remove_weak_pointer (G_OBJECT (info->passwd_entry), (gpointer *) &info->passwd_entry); g_slice_free (PopupMenuItemInfo, info); } @@ -754,7 +755,8 @@ activate_menu_item_cb (GtkMenuItem *menuitem, gpointer user_data) flags, NULL); /* Change icon */ - change_password_storage_icon (info->passwd_entry, info->item_number); + if (info->passwd_entry) + change_password_storage_icon (info->passwd_entry, info->item_number); } } @@ -773,6 +775,9 @@ popup_menu_item_info_register (GtkWidget *item, info->item_number = item_number; info->passwd_entry = passwd_entry; + if (info->passwd_entry) + g_object_add_weak_pointer (G_OBJECT (info->passwd_entry), (gpointer *) &info->passwd_entry); + g_signal_connect_data (item, "activate", G_CALLBACK (activate_menu_item_cb), info, diff --git a/src/libnma/nma-ui-utils.c b/src/libnma/nma-ui-utils.c index 678ffe11..88749de1 100644 --- a/src/libnma/nma-ui-utils.c +++ b/src/libnma/nma-ui-utils.c @@ -150,7 +150,6 @@ menu_item_to_secret_flags (MenuItem item) case ITEM_STORAGE_SYSTEM: default: break; - } return flags; } @@ -170,6 +169,8 @@ popup_menu_item_info_destroy (gpointer data, GClosure *closure) if (info->setting) g_object_unref (info->setting); g_clear_pointer (&info->password_flags_name, g_free); + if (info->passwd_entry) + g_object_remove_weak_pointer (G_OBJECT (info->passwd_entry), (gpointer *) &info->passwd_entry); g_slice_free (PopupMenuItemInfo, info); } @@ -189,7 +190,8 @@ activate_menu_item_cb (GtkMenuItem *menuitem, gpointer user_data) flags, NULL); /* Change icon */ - change_password_storage_icon (info->passwd_entry, info->item_number); + if (info->passwd_entry) + change_password_storage_icon (info->passwd_entry, info->item_number); } } @@ -208,6 +210,9 @@ popup_menu_item_info_register (GtkWidget *item, info->item_number = item_number; info->passwd_entry = passwd_entry; + if (info->passwd_entry) + g_object_add_weak_pointer (G_OBJECT (info->passwd_entry), (gpointer *) &info->passwd_entry); + g_signal_connect_data (item, "activate", G_CALLBACK (activate_menu_item_cb), info, |