aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-08-20 14:31:45 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-08-20 14:31:45 +0200
commite9b7cd8485539db84d3b37fce828d8c051a0d8a4 (patch)
tree1834dc1bbce09710d7500c126d80de6fff32235a
parentfe94f363725052b4157cf595a12e75f64e1289df (diff)
downloadvconsole-e9b7cd8485539db84d3b37fce828d8c051a0d8a4.tar.gz
separate out domain walker
-rw-r--r--domain.c44
1 files changed, 26 insertions, 18 deletions
diff --git a/domain.c b/domain.c
index 0ff2c26..8215057 100644
--- a/domain.c
+++ b/domain.c
@@ -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)