ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #02862
[Merge] lp:~3v1n0/indicator-applet/scroll-event-support into lp:indicator-applet
Treviño (Marco Trevisan) has proposed merging lp:~3v1n0/indicator-applet/scroll-event-support into lp:indicator-applet.
Requested reviews:
Indicator Applet Developers (indicator-applet-developers)
Related bugs:
#708180 Indicators "scroll-event" support
https://bugs.launchpad.net/bugs/708180
For more details, see:
https://code.launchpad.net/~3v1n0/indicator-applet/scroll-event-support/+merge/47612
indicator-applet (like unity): now sends also a "scroll-entry" signal when an indicator is scrolled, with the target entry as parameter.
This depends on:
lp:~3v1n0/libindicator/scroll-event-support
lp:~3v1n0/indicator-application/scroll-event-support
lp:~3v1n0/libappindicator/scroll-event-support
This is part of the Indicators "scroll-event" support patch, see bug #708180
--
https://code.launchpad.net/~3v1n0/indicator-applet/scroll-event-support/+merge/47612
Your team ayatana-commits is subscribed to branch lp:indicator-applet.
=== modified file 'src/applet-main.c'
--- src/applet-main.c 2010-11-10 18:28:18 +0000
+++ src/applet-main.c 2011-01-27 00:02:23 +0000
@@ -228,6 +228,20 @@
return indicator_object_entry_activate(io, (IndicatorObjectEntry *)user_data, gtk_get_current_event_time());
}
+static gboolean
+entry_scrolled (GtkWidget *menuitem, GdkEventScroll *event, gpointer data)
+{
+ IndicatorObject *io = g_object_get_data (G_OBJECT (menuitem), MENU_DATA_INDICATOR_OBJECT);
+ IndicatorObjectEntry *entry = g_object_get_data (G_OBJECT (menuitem), MENU_DATA_INDICATOR_ENTRY);
+
+ g_return_val_if_fail(INDICATOR_IS_OBJECT(io), FALSE);
+
+ g_signal_emit_by_name (io, "scroll", 1, event->direction);
+ g_signal_emit_by_name (io, "scroll-entry", entry, 1, event->direction);
+
+ return FALSE;
+}
+
static void
entry_added (IndicatorObject * io, IndicatorObjectEntry * entry, GtkWidget * menubar)
{
@@ -243,6 +257,7 @@
g_object_set_data (G_OBJECT (menuitem), "box", box);
g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(entry_activated), entry);
+ g_signal_connect(G_OBJECT(menuitem), "scroll-event", G_CALLBACK(entry_scrolled), entry);
if (entry->image != NULL) {
gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(entry->image), FALSE, FALSE, 1);
@@ -479,21 +494,6 @@
}
static gboolean
-menubar_scroll (GtkWidget *widget G_GNUC_UNUSED,
- GdkEventScroll *event,
- gpointer data G_GNUC_UNUSED)
-{
- GtkWidget *menuitem;
-
- menuitem = gtk_get_event_widget ((GdkEvent *)event);
-
- IndicatorObject *io = g_object_get_data (G_OBJECT (menuitem), "indicator");
- g_signal_emit_by_name (io, "scroll", 1, event->direction);
-
- return FALSE;
-}
-
-static gboolean
menubar_on_expose (GtkWidget * widget,
GdkEventExpose *event G_GNUC_UNUSED,
GtkWidget * menubar)
@@ -797,7 +797,6 @@
GTK_WIDGET_SET_FLAGS (menubar, GTK_WIDGET_FLAGS(menubar) | GTK_CAN_FOCUS);
gtk_widget_set_name(GTK_WIDGET (menubar), "fast-user-switch-menubar");
g_signal_connect(menubar, "button-press-event", G_CALLBACK(menubar_press), NULL);
- g_signal_connect(menubar, "scroll-event", G_CALLBACK (menubar_scroll), NULL);
g_signal_connect_after(menubar, "expose-event", G_CALLBACK(menubar_on_expose), menubar);
g_signal_connect(applet, "change-orient",
G_CALLBACK(panelapplet_reorient_cb), menubar);
Follow ups