1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 12:56:37 +02:00

Fixed window switch functions and bug when line is removed and that a window uses this line at scroll start point

This commit is contained in:
Sebastien Helleu
2005-09-15 11:36:50 +00:00
parent 7f4a213239
commit 9d6ca20478
2 changed files with 34 additions and 14 deletions
+17 -7
View File
@@ -292,6 +292,7 @@ gui_buffer_clear (t_gui_buffer *buffer)
}
gui_draw_buffer_chat (buffer, 1);
gui_draw_buffer_status (buffer, 0);
}
/*
@@ -396,8 +397,17 @@ gui_infobar_remove ()
void
gui_line_free (t_gui_line *line)
{
t_gui_window *ptr_win;
t_gui_message *ptr_message;
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
{
if (ptr_win->start_line == line)
{
ptr_win->start_line = NULL;
ptr_win->start_line_pos = 0;
}
}
while (line->messages)
{
ptr_message = line->messages->next_message;
@@ -1665,9 +1675,9 @@ gui_switch_to_previous_window (t_gui_window *window)
if (gui_windows == last_gui_window)
return;
window = (window->prev_window) ? window->prev_window : last_gui_window;
gui_switch_to_buffer (window, window->buffer);
gui_redraw_buffer (window->buffer);
gui_current_window = (window->prev_window) ? window->prev_window : last_gui_window;
gui_switch_to_buffer (gui_current_window, window->buffer);
gui_redraw_buffer (gui_current_window->buffer);
}
/*
@@ -1684,9 +1694,9 @@ gui_switch_to_next_window (t_gui_window *window)
if (gui_windows == last_gui_window)
return;
window = (window->next_window) ? window->next_window : gui_windows;
gui_switch_to_buffer (window, window->buffer);
gui_redraw_buffer (window->buffer);
gui_current_window = (window->next_window) ? window->next_window : gui_windows;
gui_switch_to_buffer (gui_current_window, window->buffer);
gui_redraw_buffer (gui_current_window->buffer);
}
/*
+17 -7
View File
@@ -292,6 +292,7 @@ gui_buffer_clear (t_gui_buffer *buffer)
}
gui_draw_buffer_chat (buffer, 1);
gui_draw_buffer_status (buffer, 0);
}
/*
@@ -396,8 +397,17 @@ gui_infobar_remove ()
void
gui_line_free (t_gui_line *line)
{
t_gui_window *ptr_win;
t_gui_message *ptr_message;
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
{
if (ptr_win->start_line == line)
{
ptr_win->start_line = NULL;
ptr_win->start_line_pos = 0;
}
}
while (line->messages)
{
ptr_message = line->messages->next_message;
@@ -1665,9 +1675,9 @@ gui_switch_to_previous_window (t_gui_window *window)
if (gui_windows == last_gui_window)
return;
window = (window->prev_window) ? window->prev_window : last_gui_window;
gui_switch_to_buffer (window, window->buffer);
gui_redraw_buffer (window->buffer);
gui_current_window = (window->prev_window) ? window->prev_window : last_gui_window;
gui_switch_to_buffer (gui_current_window, window->buffer);
gui_redraw_buffer (gui_current_window->buffer);
}
/*
@@ -1684,9 +1694,9 @@ gui_switch_to_next_window (t_gui_window *window)
if (gui_windows == last_gui_window)
return;
window = (window->next_window) ? window->next_window : gui_windows;
gui_switch_to_buffer (window, window->buffer);
gui_redraw_buffer (window->buffer);
gui_current_window = (window->next_window) ? window->next_window : gui_windows;
gui_switch_to_buffer (gui_current_window, window->buffer);
gui_redraw_buffer (gui_current_window->buffer);
}
/*