summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpurple/action.c21
-rw-r--r--libpurple/action.h17
-rw-r--r--libpurple/meson.build4
3 files changed, 15 insertions, 27 deletions
diff --git a/libpurple/action.c b/libpurple/action.c
index bfa0a5757f..72b35d4249 100644
--- a/libpurple/action.c
+++ b/libpurple/action.c
@@ -49,12 +49,14 @@ void
purple_action_menu_free(PurpleActionMenu *act) {
g_return_if_fail(act != NULL);
+ purple_action_menu_set_children(act, NULL);
+
g_free(act->stock_icon);
g_free(act->label);
g_free(act);
}
-gchar *
+const gchar *
purple_action_menu_get_label(const PurpleActionMenu *act) {
g_return_val_if_fail(act != NULL, NULL);
@@ -83,10 +85,12 @@ purple_action_menu_get_children(const PurpleActionMenu *act) {
}
void
-purple_action_menu_set_label(PurpleActionMenu *act, gchar *label) {
+purple_action_menu_set_label(PurpleActionMenu *act, const gchar *label) {
g_return_if_fail(act != NULL);
- act-> label = label;
+ g_free(act->label);
+
+ act->label = g_strdup(label);
}
void
@@ -107,16 +111,9 @@ void
purple_action_menu_set_children(PurpleActionMenu *act, GList *children) {
g_return_if_fail(act != NULL);
- act->children = children;
-}
+ g_list_free_full(act->children, purple_action_menu_free);
-void
-purple_action_menu_set_stock_icon(PurpleActionMenu *act, const gchar *stock) {
- g_return_if_fail(act != NULL);
-
- g_free(act->stock_icon);
-
- act->stock_icon = g_strdup(stock);
+ act->children = children;
}
const gchar *
diff --git a/libpurple/action.h b/libpurple/action.h
index 36b4ceb6b3..1450c38216 100644
--- a/libpurple/action.h
+++ b/libpurple/action.h
@@ -35,8 +35,8 @@ typedef void (*PurpleProtocolActionCallback)(PurpleProtocolAction *action);
/**
* PurpleActionMenu:
*
- * A generic structure that contains information about an "action." One
- * place this is is used is by protocols to tell the core the list of available
+ * A generic structure that contains information about an "action". One
+ * place this is used is by protocols to tell the core the list of available
* right-click actions for a buddy list row.
*/
typedef struct _PurpleActionMenu PurpleActionMenu;
@@ -93,7 +93,7 @@ void purple_action_menu_free(PurpleActionMenu *act);
*
* Returns: The label string.
*/
-gchar *purple_action_menu_get_label(const PurpleActionMenu *act);
+const gchar *purple_action_menu_get_label(const PurpleActionMenu *act);
/**
* purple_action_menu_get_callback:
@@ -132,7 +132,7 @@ GList* purple_action_menu_get_children(const PurpleActionMenu *act);
*
* Set the label to the PurpleActionMenu.
*/
-void purple_action_menu_set_label(PurpleActionMenu *act, gchar *label);
+void purple_action_menu_set_label(PurpleActionMenu *act, const gchar *label);
/**
* purple_action_menu_set_callback:
@@ -162,15 +162,6 @@ void purple_action_menu_set_data(PurpleActionMenu *act, gpointer data);
void purple_action_menu_set_children(PurpleActionMenu *act, GList *children);
/**
- * purple_action_menu_set_stock_icon:
- * @act: The menu action.
- * @stock: The stock icon identifier.
- *
- * Sets the icon for the PurpleActionMenu.
- */
-void purple_action_menu_set_stock_icon(PurpleActionMenu *act, const gchar *stock);
-
-/**
* purple_action_menu_get_stock_icon:
* @act: The menu action.
*
diff --git a/libpurple/meson.build b/libpurple/meson.build
index 9bb02ab820..dd5c06815d 100644
--- a/libpurple/meson.build
+++ b/libpurple/meson.build
@@ -2,8 +2,8 @@ purple_coresources = [
'account.c',
'accounts.c',
'accountopt.c',
- 'attention.c',
'action.c',
+ 'attention.c',
'blistnode.c',
'buddy.c',
'buddylist.c',
@@ -85,8 +85,8 @@ purple_coreheaders = [
'account.h',
'accounts.h',
'accountopt.h',
- 'attention.h',
'action.h',
+ 'attention.h',
'blistnode.h',
'buddy.h',
'buddylist.h',