static void search_active_cb(GObject* source, GParamSpec* pspec, gpointer udata) { GtGamesView* self = GT_GAMES_VIEW(udata); GtGamesViewPrivate* priv = gt_games_view_get_instance_private(self); if (priv->search_active) gt_games_view_show_type(self, GT_GAMES_CONTAINER_TYPE_SEARCH); else if (priv->was_showing_game) gt_games_view_show_type(self, GT_CHANNELS_CONTAINER_TYPE_GAME); else gt_games_view_show_type(self, GT_GAMES_CONTAINER_TYPE_TOP); }
static void show_view_default_cb(GSimpleAction* action, GVariant* arg, gpointer udata) { GtWin* self = GT_WIN(udata); GtWinPrivate* priv = gt_win_get_instance_private(self); if (gtk_stack_get_visible_child(GTK_STACK(priv->browse_stack)) == priv->channels_view) gt_channels_view_show_type(GT_CHANNELS_VIEW(priv->channels_view), GT_CHANNELS_CONTAINER_TYPE_TOP); else if (gtk_stack_get_visible_child(GTK_STACK(priv->browse_stack)) == priv->games_view) gt_games_view_show_type(GT_GAMES_VIEW(priv->games_view), GT_GAMES_CONTAINER_TYPE_TOP); }
static void game_activated_cb(GtGamesContainer* container, GtGame* game, gpointer udata) { GtGamesView* self = GT_GAMES_VIEW(udata); GtGamesViewPrivate* priv = gt_games_view_get_instance_private(self); gchar* name; g_object_get(game, "name", &name, NULL); gt_channels_container_set_filter_query(GT_CHANNELS_CONTAINER(priv->game_container), name); gt_games_view_show_type(self, GT_CHANNELS_CONTAINER_TYPE_GAME); g_signal_handlers_block_by_func(self, search_active_cb, self); g_object_set(self, "search-active", FALSE, NULL); g_signal_handlers_unblock_by_func(self, search_active_cb, self); g_free(name); }