Mercurial > pidgin.yaz
diff console/libgnt/gntbox.c @ 13878:0d0ab1e39d0a
[gaim-migrate @ 16355]
Change the behaviour of the widgets about how they update themselves.
This makes things a little better, and hopefully easier to build more
stuff on top of this.
committer: Tailor Script <tailor@pidgin.im>
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Tue, 27 Jun 2006 02:33:55 +0000 |
parents | 5642f4658b59 |
children | 5c750626eaa5 |
line wrap: on
line diff
--- a/console/libgnt/gntbox.c Mon Jun 26 19:54:53 2006 +0000 +++ b/console/libgnt/gntbox.c Tue Jun 27 02:33:55 2006 +0000 @@ -12,14 +12,10 @@ gnt_box_draw(GntWidget *widget) { GntBox *box = GNT_BOX(widget); - GList *iter; - for (iter = box->list; iter; iter = iter->next) - { - GntWidget *w = GNT_WIDGET(iter->data); - gnt_widget_draw(w); - overwrite(w->window, widget->window); - } + g_list_foreach(box->list, (GFunc)gnt_widget_draw, NULL); + + gnt_box_sync_children(box); if (box->title) { @@ -40,9 +36,6 @@ mvwprintw(widget->window, 0, pos, title); g_free(title); } - wrefresh(widget->window); - - gnt_screen_occupy(widget); DEBUG; } @@ -376,3 +369,16 @@ GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_NO_BORDER | GNT_WIDGET_NO_SHADOW); } +void gnt_box_sync_children(GntBox *box) +{ + GList *iter; + GntWidget *widget = GNT_WIDGET(box); + + for (iter = box->list; iter; iter = iter->next) + { + GntWidget *w = GNT_WIDGET(iter->data); + copywin(w->window, widget->window, 0, 0, w->priv.y - widget->priv.y, w->priv.x - widget->priv.x, + w->priv.height, w->priv.width, FALSE); + } +} +