summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-09-11 12:37:15 +0200
committerThomas Haller <thaller@redhat.com>2015-09-11 13:40:46 +0200
commiteaf99061fba3cde9b94d3b802ff0e7d17bdfd41b (patch)
treec4031731d59c9e3d6de7e0b57aa32dc5e5ed989e
parent1ba974dfcfd0d6e05de2fca857b9c537f5fed842 (diff)
downloadnetwork-manager-applet-eaf99061fba3cde9b94d3b802ff0e7d17bdfd41b.tar.gz
libnma: take weak-ref to passwd_entry in PopupMenuItemInfo
-rw-r--r--src/libnm-gtk/nm-ui-utils.c9
-rw-r--r--src/libnma/nma-ui-utils.c9
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,