From 6f1c8e020c0db10a1b2c69c0d2f08a5e69cbc271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Sat, 9 Jul 2011 03:39:10 +0200 Subject: Added support for secondary activate signal: i.e. middle-click Secondary activate signal is designed to be used for a secondary kind of activation, for example using middle-click. It exports both the event time and the mouse position (this is mostly needed to follow the Status Notifier specifications). --- libindicator/indicator-object-marshal.list | 1 + libindicator/indicator-object.c | 24 ++++++++++++++++++++++-- libindicator/indicator-object.h | 5 ++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/libindicator/indicator-object-marshal.list b/libindicator/indicator-object-marshal.list index 4896ac4..d0b0437 100644 --- a/libindicator/indicator-object-marshal.list +++ b/libindicator/indicator-object-marshal.list @@ -2,3 +2,4 @@ VOID: POINTER, UINT, UINT VOID: POINTER, UINT, ENUM VOID: POINTER, UINT VOID: POINTER, BOOLEAN +VOID: POINTER, UINT, INT, INT diff --git a/libindicator/indicator-object.c b/libindicator/indicator-object.c index 2fe8dd1..04809f1 100644 --- a/libindicator/indicator-object.c +++ b/libindicator/indicator-object.c @@ -63,6 +63,7 @@ enum { MENU_SHOW, SHOW_NOW_CHANGED, ACCESSIBLE_DESC_UPDATE, + SECONDARY_ACTIVATE, LAST_SIGNAL }; @@ -149,8 +150,7 @@ indicator_object_class_init (IndicatorObjectClass *klass) NULL, NULL, _indicator_object_marshal_VOID__POINTER_UINT_UINT, G_TYPE_NONE, 3, G_TYPE_POINTER, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_NONE); - -/** + /** IndicatorObject::entry-scrolled: @arg0: The #IndicatorObject object @arg1: A pointer to the #IndicatorObjectEntry that @@ -169,6 +169,26 @@ indicator_object_class_init (IndicatorObjectClass *klass) _indicator_object_marshal_VOID__POINTER_UINT_ENUM, G_TYPE_NONE, 3, G_TYPE_POINTER, G_TYPE_UINT, INDICATOR_OBJECT_TYPE_SCROLL_DIRECTION); + /** + IndicatorObject::secondary-activate: + @arg0: The #IndicatorObject object + @arg1: A pointer to the #IndicatorObjectEntry that + receives the secondary activate event. + @arg2: The timestamp of the event + @arg3: The X position of the pointer + @arg4: The Y position of the pointer + + When the indicator receives a secondary activation event + from the user, this signal is emitted. + */ + signals[SECONDARY_ACTIVATE] = g_signal_new (INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVATE, + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (IndicatorObjectClass, secondary_activate), + NULL, NULL, + _indicator_object_marshal_VOID__POINTER_UINT_INT_INT, + G_TYPE_NONE, 4, G_TYPE_POINTER, G_TYPE_UINT, + G_TYPE_INT, G_TYPE_INT); /** IndicatorObject::menu-show: diff --git a/libindicator/indicator-object.h b/libindicator/indicator-object.h index a285949..097b4a1 100644 --- a/libindicator/indicator-object.h +++ b/libindicator/indicator-object.h @@ -57,6 +57,8 @@ typedef enum #define INDICATOR_OBJECT_SIGNAL_SHOW_NOW_CHANGED_ID (g_signal_lookup(INDICATOR_OBJECT_SIGNAL_SHOW_NOW_CHANGED, INDICATOR_OBJECT_TYPE)) #define INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE "accessible-desc-update" #define INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE_ID (g_signal_lookup(INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE, INDICATOR_OBJECT_TYPE)) +#define INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVATE "secondary-activate" +#define INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVATE_ID (g_signal_lookup(INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVATE, INDICATOR_OBJECT_TYPE)) typedef struct _IndicatorObject IndicatorObject; typedef struct _IndicatorObjectClass IndicatorObjectClass; @@ -99,6 +101,7 @@ typedef struct _IndicatorObjectEntry IndicatorObjectEntry; @entry_scrolled: Slot for #IndicatorObject::entry-scrolled @show_now_changed: Slot for #IndicatorObject::show-now-changed @accessible_desc_update: Slot for #IndicatorObject::accessible-desc-update + @secondary_activate: Slot for #IndicatorObject::secondary-activate */ struct _IndicatorObjectClass { GObjectClass parent_class; @@ -125,6 +128,7 @@ struct _IndicatorObjectClass { void (*menu_show) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp, gpointer user_data); void (*show_now_changed) (IndicatorObject * io, IndicatorObjectEntry * entry, gboolean show_now_state, gpointer user_data); void (*accessible_desc_update) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data); + void (*secondary_activate) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp, gint x, gint y, gpointer user_data); /* Reserved */ void (*reserved1) (void); @@ -132,7 +136,6 @@ struct _IndicatorObjectClass { void (*reserved3) (void); void (*reserved4) (void); void (*reserved5) (void); - void (*reserved6) (void); }; /** -- cgit v1.2.3 From 4234bd3c279346274d5acabc24a869c596a3e1e7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 21 Jul 2011 09:17:41 -0500 Subject: Dropping the x and y paramaters from the secondary activate signal --- libindicator/indicator-object-marshal.list | 1 - libindicator/indicator-object.c | 7 ++----- libindicator/indicator-object.h | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/libindicator/indicator-object-marshal.list b/libindicator/indicator-object-marshal.list index d0b0437..4896ac4 100644 --- a/libindicator/indicator-object-marshal.list +++ b/libindicator/indicator-object-marshal.list @@ -2,4 +2,3 @@ VOID: POINTER, UINT, UINT VOID: POINTER, UINT, ENUM VOID: POINTER, UINT VOID: POINTER, BOOLEAN -VOID: POINTER, UINT, INT, INT diff --git a/libindicator/indicator-object.c b/libindicator/indicator-object.c index 04809f1..ad74c79 100644 --- a/libindicator/indicator-object.c +++ b/libindicator/indicator-object.c @@ -175,8 +175,6 @@ indicator_object_class_init (IndicatorObjectClass *klass) @arg1: A pointer to the #IndicatorObjectEntry that receives the secondary activate event. @arg2: The timestamp of the event - @arg3: The X position of the pointer - @arg4: The Y position of the pointer When the indicator receives a secondary activation event from the user, this signal is emitted. @@ -186,9 +184,8 @@ indicator_object_class_init (IndicatorObjectClass *klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (IndicatorObjectClass, secondary_activate), NULL, NULL, - _indicator_object_marshal_VOID__POINTER_UINT_INT_INT, - G_TYPE_NONE, 4, G_TYPE_POINTER, G_TYPE_UINT, - G_TYPE_INT, G_TYPE_INT); + _indicator_object_marshal_VOID__POINTER_UINT, + G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_UINT); /** IndicatorObject::menu-show: diff --git a/libindicator/indicator-object.h b/libindicator/indicator-object.h index 097b4a1..3a120f5 100644 --- a/libindicator/indicator-object.h +++ b/libindicator/indicator-object.h @@ -128,7 +128,7 @@ struct _IndicatorObjectClass { void (*menu_show) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp, gpointer user_data); void (*show_now_changed) (IndicatorObject * io, IndicatorObjectEntry * entry, gboolean show_now_state, gpointer user_data); void (*accessible_desc_update) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data); - void (*secondary_activate) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp, gint x, gint y, gpointer user_data); + void (*secondary_activate) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp, gpointer user_data); /* Reserved */ void (*reserved1) (void); -- cgit v1.2.3