diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2012-08-20 14:31:45 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2012-08-20 14:31:45 +0200 |
commit | e9b7cd8485539db84d3b37fce828d8c051a0d8a4 (patch) | |
tree | 1834dc1bbce09710d7500c126d80de6fff32235a | |
parent | fe94f363725052b4157cf595a12e75f64e1289df (diff) | |
download | vconsole-e9b7cd8485539db84d3b37fce828d8c051a0d8a4.tar.gz |
separate out domain walker
-rw-r--r-- | domain.c | 44 |
1 files changed, 26 insertions, 18 deletions
@@ -22,6 +22,28 @@ static const char *domain_state_name(struct vconsole_domain *dom) /* ------------------------------------------------------------------ */ +static void domain_foreach(struct vconsole_window *win, + void (*func)(struct vconsole_domain *dom)) +{ + GtkTreeModel *model = GTK_TREE_MODEL(win->store); + GtkTreeIter host, guest; + struct vconsole_domain *dom; + int rc; + + rc = gtk_tree_model_get_iter_first(model, &host); + while (rc) { + rc = gtk_tree_model_iter_nth_child(model, &guest, &host, 0); + while (rc) { + gtk_tree_model_get(model, &guest, + DPTR_COL, &dom, + -1); + func(dom); + rc = gtk_tree_model_iter_next(model, &guest); + } + rc = gtk_tree_model_iter_next(model, &host); + } +} + static void domain_configure_vte(struct vconsole_domain *dom) { struct vconsole_window *win = dom->conn->win; @@ -31,6 +53,9 @@ static void domain_configure_vte(struct vconsole_domain *dom) GdkColor fg = {0,0,0,0}; GdkColor bg = {0,0,0,0}; + if (!dom->vte) + return; + gdk_color_parse(win->tty_fg, &fg); gdk_color_parse(win->tty_bg, &bg); @@ -42,24 +67,7 @@ static void domain_configure_vte(struct vconsole_domain *dom) void domain_configure_all_vtes(struct vconsole_window *win) { - GtkTreeModel *model = GTK_TREE_MODEL(win->store); - GtkTreeIter host, guest; - struct vconsole_domain *dom; - int rc; - - rc = gtk_tree_model_get_iter_first(model, &host); - while (rc) { - rc = gtk_tree_model_iter_nth_child(model, &guest, &host, 0); - while (rc) { - gtk_tree_model_get(model, &guest, - DPTR_COL, &dom, - -1); - if (dom->vte) - domain_configure_vte(dom); - rc = gtk_tree_model_iter_next(model, &guest); - } - rc = gtk_tree_model_iter_next(model, &host); - } + domain_foreach(win, domain_configure_vte); } static void domain_update_status(struct vconsole_domain *dom) |