aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdbusmenu-glib/client-marshal.list2
-rw-r--r--libdbusmenu-glib/client.c14
-rw-r--r--libdbusmenu-glib/client.h6
3 files changed, 12 insertions, 10 deletions
diff --git a/libdbusmenu-glib/client-marshal.list b/libdbusmenu-glib/client-marshal.list
index f1d6a9f..2e14491 100644
--- a/libdbusmenu-glib/client-marshal.list
+++ b/libdbusmenu-glib/client-marshal.list
@@ -1,2 +1,2 @@
VOID: OBJECT, UINT
-VOID: OBJECT, STRING, POINTER, UINT
+VOID: OBJECT, STRING, POINTER, UINT, POINTER
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 5d0325a..43bde5f 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -56,7 +56,7 @@ enum {
ROOT_CHANGED,
NEW_MENUITEM,
ITEM_ACTIVATE,
- EVENT_ERROR,
+ EVENT_RESULT,
LAST_SIGNAL
};
@@ -224,17 +224,18 @@ dbusmenu_client_class_init (DbusmenuClientClass *klass)
@arg2: The ID of the event sent
@arg3: The data sent along with the event
@arg4: A timestamp that the event happened at
+ @arg5: Possibly the error in sending the event (or NULL)
Signal sent to show that there was an error in sending the event
to the server.
*/
- signals[ITEM_ACTIVATE] = g_signal_new(DBUSMENU_CLIENT_SIGNAL_EVENT_ERROR,
+ signals[EVENT_RESULT] = g_signal_new(DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT,
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (DbusmenuClientClass, event_error),
+ G_STRUCT_OFFSET (DbusmenuClientClass, event_result),
NULL, NULL,
- _dbusmenu_client_marshal_VOID__OBJECT_STRING_POINTER_UINT,
- G_TYPE_NONE, 4, G_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_UINT);
+ _dbusmenu_client_marshal_VOID__OBJECT_STRING_POINTER_UINT_POINTER,
+ G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_UINT, G_TYPE_POINTER);
g_object_class_install_property (object_class, PROP_DBUSOBJECT,
g_param_spec_string(DBUSMENU_CLIENT_PROP_DBUS_OBJECT, "DBus Object we represent",
@@ -1058,9 +1059,10 @@ menuitem_call_cb (DBusGProxy * proxy, GError * error, gpointer userdata)
if (error != NULL) {
g_warning("Unable to call menu item %d: %s", GPOINTER_TO_INT(userdata), error->message);
- g_signal_emit(edata->client, signals[EVENT_ERROR], 0, edata->menuitem, edata->event, edata->data, edata->timestamp, TRUE);
}
+ g_signal_emit(edata->client, signals[EVENT_RESULT], 0, edata->menuitem, edata->event, edata->data, edata->timestamp, error, TRUE);
+
g_value_unset(&edata->data);
g_free(edata->event);
g_object_unref(edata->menuitem);
diff --git a/libdbusmenu-glib/client.h b/libdbusmenu-glib/client.h
index 24d8f57..5d4b5c3 100644
--- a/libdbusmenu-glib/client.h
+++ b/libdbusmenu-glib/client.h
@@ -47,7 +47,7 @@ G_BEGIN_DECLS
#define DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED "root-changed"
#define DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM "new-menuitem"
#define DBUSMENU_CLIENT_SIGNAL_ITEM_ACTIVATE "item-activate"
-#define DBUSMENU_CLIENT_SIGNAL_EVENT_ERROR "event-error"
+#define DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT "event-result"
#define DBUSMENU_CLIENT_PROP_DBUS_NAME "dbus-name"
#define DBUSMENU_CLIENT_PROP_DBUS_OBJECT "dbus-object"
@@ -62,7 +62,7 @@ G_BEGIN_DECLS
@layout_updated: Slot for #DbusmenuClient::layout-updated.
@new_menuitem: Slot for #DbusmenuClient::new-menuitem.
@item_activate: Slot for #DbusmenuClient::item-activate.
- @event_error: Slot for #DbusmenuClient::event-error.
+ @event_result: Slot for #DbusmenuClient::event-error.
@reserved1: Reserved for future use.
@reserved2: Reserved for future use.
@@ -78,7 +78,7 @@ struct _DbusmenuClientClass {
void (*root_changed) (DbusmenuMenuitem * newroot);
void (*new_menuitem) (DbusmenuMenuitem * newitem);
void (*item_activate) (DbusmenuMenuitem * item, guint timestamp);
- void (*event_error) (DbusmenuMenuitem * item, gchar * event, GValue * data, guint timestamp);
+ void (*event_result) (DbusmenuMenuitem * item, gchar * event, GValue * data, guint timestamp, GError * error);
/* Reserved for future use */
void (*reserved1) (void);