/* A view button was clicked to activate it */ static void _xfdashboard_view_selector_on_view_button_clicked(XfdashboardViewSelector *self, gpointer inUserData) { XfdashboardViewSelectorPrivate *priv; XfdashboardToggleButton *button; XfdashboardView *view; g_return_if_fail(XFDASHBOARD_IS_VIEW_SELECTOR(self)); g_return_if_fail(XFDASHBOARD_IS_BUTTON(inUserData)); priv=self->priv; button=XFDASHBOARD_TOGGLE_BUTTON(inUserData); view=XFDASHBOARD_VIEW(g_object_get_data(G_OBJECT(button), "view")); xfdashboard_viewpad_set_active_view(priv->viewpad, view); }
/* Action signal to close currently selected window was emitted */ static gboolean _xfdashboard_view_activate(XfdashboardView *self, XfdashboardFocusable *inSource, const gchar *inAction, ClutterEvent *inEvent) { XfdashboardViewPrivate *priv; XfdashboardViewpad *viewpad; XfdashboardFocusManager *focusManager; g_return_val_if_fail(XFDASHBOARD_IS_VIEW(self), CLUTTER_EVENT_PROPAGATE); priv=self->priv; /* Only enabled views can be activated */ if(!priv->isEnabled) return(CLUTTER_EVENT_STOP); /* Find viewpad which contains this view */ viewpad=_xfdashboard_view_find_viewpad(self); if(!viewpad) return(CLUTTER_EVENT_STOP); /* Activate view at viewpad if this view is not the active one */ if(xfdashboard_viewpad_get_active_view(viewpad)!=self) { xfdashboard_viewpad_set_active_view(viewpad, self); } /* Set focus to view if it has not the focus */ focusManager=xfdashboard_focus_manager_get_default(); if(XFDASHBOARD_IS_FOCUSABLE(self) && !xfdashboard_focus_manager_has_focus(focusManager, XFDASHBOARD_FOCUSABLE(self))) { xfdashboard_focus_manager_set_focus(focusManager, XFDASHBOARD_FOCUSABLE(self)); } g_object_unref(focusManager); /* Action handled */ return(CLUTTER_EVENT_STOP); }