aboutsummaryrefslogtreecommitdiff
path: root/libindicator
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2011-07-09 03:39:10 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2011-07-09 03:39:10 +0200
commit6f1c8e020c0db10a1b2c69c0d2f08a5e69cbc271 (patch)
treed3f22299558dbbcefa779251a77b52d721dfbdca /libindicator
parent5f78a771bfb0a7f334da952eeb9a8b4c049110be (diff)
downloadlibayatana-indicator-6f1c8e020c0db10a1b2c69c0d2f08a5e69cbc271.tar.gz
libayatana-indicator-6f1c8e020c0db10a1b2c69c0d2f08a5e69cbc271.tar.bz2
libayatana-indicator-6f1c8e020c0db10a1b2c69c0d2f08a5e69cbc271.zip
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).
Diffstat (limited to 'libindicator')
-rw-r--r--libindicator/indicator-object-marshal.list1
-rw-r--r--libindicator/indicator-object.c24
-rw-r--r--libindicator/indicator-object.h5
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);
};
/**