mirror of
https://github.com/irssi/irssi.git
synced 2024-10-27 05:20:20 -04:00
A bit kludge fix for perl statusbar items breaking prompt changes at
startup. Now the entry isn't destroyed until the statusbar is, and there can be only one entry per statusbar (well, who would want more anyway :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2447 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
6eaf161199
commit
612c061605
@ -344,13 +344,13 @@ static void item_input(SBAR_ITEM_REC *item, int get_size_only)
|
||||
{
|
||||
GUI_ENTRY_REC *rec;
|
||||
|
||||
rec = g_hash_table_lookup(input_entries, item);
|
||||
rec = g_hash_table_lookup(input_entries, item->bar);
|
||||
if (rec == NULL) {
|
||||
rec = gui_entry_create(item->xpos, item->bar->real_ypos,
|
||||
item->size,
|
||||
settings_get_bool("term_utf8"));
|
||||
gui_entry_set_active(rec);
|
||||
g_hash_table_insert(input_entries, item, rec);
|
||||
g_hash_table_insert(input_entries, item->bar, rec);
|
||||
}
|
||||
|
||||
if (get_size_only) {
|
||||
@ -364,14 +364,14 @@ static void item_input(SBAR_ITEM_REC *item, int get_size_only)
|
||||
gui_entry_redraw(rec); /* FIXME: this is only necessary with ^L.. */
|
||||
}
|
||||
|
||||
static void sig_statusbar_item_destroyed(SBAR_ITEM_REC *item)
|
||||
static void sig_statusbar_destroyed(STATUSBAR_REC *bar)
|
||||
{
|
||||
GUI_ENTRY_REC *rec;
|
||||
|
||||
rec = g_hash_table_lookup(input_entries, item);
|
||||
rec = g_hash_table_lookup(input_entries, bar);
|
||||
if (rec != NULL) {
|
||||
gui_entry_destroy(rec);
|
||||
g_hash_table_remove(input_entries, item);
|
||||
g_hash_table_remove(input_entries, bar);
|
||||
}
|
||||
}
|
||||
|
||||
@ -421,7 +421,7 @@ void statusbar_items_init(void)
|
||||
/* input */
|
||||
input_entries = g_hash_table_new((GHashFunc) g_direct_hash,
|
||||
(GCompareFunc) g_direct_equal);
|
||||
signal_add("statusbar item destroyed", (SIGNAL_FUNC) sig_statusbar_item_destroyed);
|
||||
signal_add("statusbar destroyed", (SIGNAL_FUNC) sig_statusbar_destroyed);
|
||||
|
||||
read_settings();
|
||||
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
|
||||
@ -451,7 +451,7 @@ void statusbar_items_deinit(void)
|
||||
g_source_remove(lag_timeout_tag);
|
||||
|
||||
/* input */
|
||||
signal_remove("statusbar item destroyed", (SIGNAL_FUNC) sig_statusbar_item_destroyed);
|
||||
signal_remove("statusbar destroyed", (SIGNAL_FUNC) sig_statusbar_destroyed);
|
||||
g_hash_table_destroy(input_entries);
|
||||
|
||||
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
|
||||
|
Loading…
Reference in New Issue
Block a user