[gnome-builder/editor-layout] stack: reselect item in combobox
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/editor-layout] stack: reselect item in combobox
- Date: Wed, 26 Nov 2014 03:58:42 +0000 (UTC)
commit 752dbb6eeac7be72925fff7d531564b50e014b28
Author: Christian Hergert <christian hergert me>
Date: Tue Nov 25 19:58:30 2014 -0800
stack: reselect item in combobox
src/tabs/gb-tab-stack.c | 51 +++++++++++++++++++++++++++++-----------------
1 files changed, 32 insertions(+), 19 deletions(-)
---
diff --git a/src/tabs/gb-tab-stack.c b/src/tabs/gb-tab-stack.c
index 9e64d8b..dbeaa73 100644
--- a/src/tabs/gb-tab-stack.c
+++ b/src/tabs/gb-tab-stack.c
@@ -117,25 +117,6 @@ gb_tab_stack_get_tab_iter (GbTabStack *stack,
return FALSE;
}
-void
-gb_tab_stack_remove_tab (GbTabStack *stack,
- GbTab *tab)
-{
- GtkTreeIter iter;
-
- g_return_if_fail (GB_IS_TAB_STACK (stack));
- g_return_if_fail (GB_IS_TAB (tab));
-
- if (gb_tab_stack_get_tab_iter (stack, tab, &iter))
- {
- gtk_container_remove (GTK_CONTAINER (stack->priv->controls),
- gb_tab_get_controls (tab));
- gtk_container_remove (GTK_CONTAINER (stack->priv->stack),
- GTK_WIDGET (tab));
- gtk_list_store_remove (stack->priv->store, &iter);
- }
-}
-
static gboolean
gb_tab_stack_focus_iter (GbTabStack *stack,
GtkTreeIter *iter)
@@ -162,6 +143,38 @@ gb_tab_stack_focus_iter (GbTabStack *stack,
return ret;
}
+void
+gb_tab_stack_remove_tab (GbTabStack *stack,
+ GbTab *tab)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+
+ g_return_if_fail (GB_IS_TAB_STACK (stack));
+ g_return_if_fail (GB_IS_TAB (tab));
+
+ model = GTK_TREE_MODEL (stack->priv->store);
+
+ if (gb_tab_stack_get_tab_iter (stack, tab, &iter))
+ {
+ gtk_container_remove (GTK_CONTAINER (stack->priv->controls),
+ gb_tab_get_controls (tab));
+ gtk_container_remove (GTK_CONTAINER (stack->priv->stack),
+ GTK_WIDGET (tab));
+ if (!gtk_list_store_remove (stack->priv->store, &iter))
+ {
+ guint count;
+
+ count = gtk_tree_model_iter_n_children (model, NULL);
+
+ if (gtk_tree_model_iter_nth_child (model, &iter, NULL, count-1))
+ gb_tab_stack_focus_iter (stack, &iter);
+ }
+ else
+ gb_tab_stack_focus_iter (stack, &iter);
+ }
+}
+
gboolean
gb_tab_stack_focus_next (GbTabStack *stack)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]