summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2001-11-18 22:15:56 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2001-11-18 22:15:56 +0000
commit99120dc50803c8537c50cabc9289179ae4b1d39d (patch)
tree853ce3fd2e461bb65545607286fe0b84ccf8261f /src
parent0be0cc8198d70f98ffc205d80cb585ce37f42b23 (diff)
downloadirssi-99120dc50803c8537c50cabc9289179ae4b1d39d.zip
back to "Irssi didn't always remove the statusbar item from screen when it
should have." bug - this time with right-aligned items :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2065 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r--src/fe-text/statusbar.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/fe-text/statusbar.c b/src/fe-text/statusbar.c
index c8c9c14d..986b153d 100644
--- a/src/fe-text/statusbar.c
+++ b/src/fe-text/statusbar.c
@@ -276,8 +276,17 @@ static void statusbar_calc_item_positions(STATUSBAR_REC *bar)
for (tmp = bar->items; tmp != NULL; tmp = tmp->next) {
SBAR_ITEM_REC *rec = tmp->data;
- if (rec->config->right_alignment && rec->size > 0)
- right_items = g_slist_prepend(right_items, rec);
+ if (rec->config->right_alignment) {
+ if (rec->size > 0)
+ right_items = g_slist_prepend(right_items, rec);
+ else if (rec->current_size > 0) {
+ /* item was hidden - set the dirty position
+ to begin from the item's old xpos */
+ irssi_set_dirty();
+ bar->dirty = TRUE;
+ bar->dirty_xpos = rec->xpos;
+ }
+ }
}
rxpos = term_width;