shell: Make the mouse back button go to the homepage

https://bugzilla.gnome.org/show_bug.cgi?id=690087
This commit is contained in:
Jasper St. Pierre 2013-03-26 14:39:34 +01:00 committed by Bastien Nocera
parent 848ce2bd3c
commit c764fbe745

View file

@ -56,6 +56,8 @@ G_DEFINE_TYPE_WITH_CODE (CcWindow, cc_window, GTK_TYPE_APPLICATION_WINDOW,
#define MIN_ICON_VIEW_HEIGHT 300
#define MOUSE_BACK_BUTTON 8
#define DEFAULT_WINDOW_TITLE N_("Settings")
#define DEFAULT_WINDOW_ICON_NAME "preferences-desktop"
@ -1157,6 +1159,18 @@ cc_window_class_init (CcWindowClass *klass)
g_object_class_override_property (object_class, PROP_ACTIVE_PANEL, "active-panel");
}
static gboolean
window_button_release_event (GtkWidget *win,
GdkEventButton *event,
CcWindow *self)
{
g_message ("button release");
/* back button */
if (event->button == MOUSE_BACK_BUTTON)
shell_show_overview_page (self);
return FALSE;
}
static gboolean
window_key_press_event (GtkWidget *win,
GdkEventKey *event,
@ -1453,6 +1467,10 @@ create_window (CcWindow *self)
g_signal_connect (self, "notify::application", G_CALLBACK (application_set_cb), self);
g_signal_connect_after (self, "key_press_event",
G_CALLBACK (window_key_press_event), self);
gtk_widget_add_events (GTK_WIDGET (self), GDK_BUTTON_RELEASE_MASK);
g_signal_connect (self, "button-release-event",
G_CALLBACK (window_button_release_event), self);
g_signal_connect (self, "notify::window", G_CALLBACK (gdk_window_set_cb), self);
g_signal_connect (priv->stack, "notify::visible-child",