mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
split windows were broken. added some checks to textbuffer.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1449 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
a147dfc90c
commit
26312fae9a
@ -120,6 +120,7 @@ MAIN_WINDOW_REC *mainwindow_create(void)
|
||||
int space;
|
||||
|
||||
rec = g_new0(MAIN_WINDOW_REC, 1);
|
||||
rec->width = screen_width;
|
||||
rec->statusbar_lines = 1;
|
||||
|
||||
if (mainwindows == NULL) {
|
||||
@ -128,7 +129,6 @@ MAIN_WINDOW_REC *mainwindow_create(void)
|
||||
rec->first_line = reserved_up;
|
||||
rec->last_line = screen_height-1 -
|
||||
reserved_down-rec->statusbar_lines;
|
||||
rec->width = screen_width;
|
||||
rec->height = rec->last_line-rec->first_line+1;
|
||||
} else {
|
||||
parent = WINDOW_GUI(active_win)->parent;
|
||||
|
@ -377,6 +377,9 @@ TEXT_BUFFER_VIEW_REC *textbuffer_view_create(TEXT_BUFFER_REC *buffer,
|
||||
{
|
||||
TEXT_BUFFER_VIEW_REC *view;
|
||||
|
||||
g_return_val_if_fail(buffer != NULL, NULL);
|
||||
g_return_val_if_fail(width > 0, NULL);
|
||||
|
||||
view = g_new0(TEXT_BUFFER_VIEW_REC, 1);
|
||||
view->buffer = buffer;
|
||||
view->siblings = textbuffer_get_views(buffer);
|
||||
@ -406,6 +409,8 @@ void textbuffer_view_destroy(TEXT_BUFFER_VIEW_REC *view)
|
||||
{
|
||||
GSList *tmp;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
views = g_slist_remove(views, view);
|
||||
|
||||
if (view->siblings == NULL) {
|
||||
@ -432,6 +437,8 @@ void textbuffer_view_destroy(TEXT_BUFFER_VIEW_REC *view)
|
||||
void textbuffer_view_set_default_indent(TEXT_BUFFER_VIEW_REC *view,
|
||||
int default_indent)
|
||||
{
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
view->default_indent = default_indent;
|
||||
}
|
||||
|
||||
@ -572,6 +579,9 @@ void textbuffer_view_resize(TEXT_BUFFER_VIEW_REC *view, int width, int height)
|
||||
{
|
||||
int linecount;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
g_return_if_fail(width > 0);
|
||||
|
||||
if (view->buffer->lines == NULL)
|
||||
return;
|
||||
|
||||
@ -629,6 +639,8 @@ void textbuffer_view_resize(TEXT_BUFFER_VIEW_REC *view, int width, int height)
|
||||
/* Clear the view, don't actually remove any lines from buffer. */
|
||||
void textbuffer_view_clear(TEXT_BUFFER_VIEW_REC *view)
|
||||
{
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
view->ypos = -1;
|
||||
view->bottom_startline = view->startline =
|
||||
g_list_last(view->buffer->lines);
|
||||
@ -646,6 +658,8 @@ void textbuffer_view_scroll(TEXT_BUFFER_VIEW_REC *view, int lines)
|
||||
{
|
||||
int count;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
count = view_scroll(view, &view->startline, &view->subline,
|
||||
lines, TRUE);
|
||||
view->ypos += lines < 0 ? count : -count;
|
||||
@ -660,6 +674,8 @@ void textbuffer_view_scroll_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
|
||||
{
|
||||
GList *tmp;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
if (g_list_find(view->bottom_startline->next, line) != NULL) {
|
||||
view->startline = view->bottom_startline;
|
||||
view->subline = view->bottom_subline;
|
||||
@ -687,6 +703,9 @@ LINE_CACHE_REC *textbuffer_view_get_line_cache(TEXT_BUFFER_VIEW_REC *view,
|
||||
{
|
||||
LINE_CACHE_REC *cache;
|
||||
|
||||
g_return_val_if_fail(view != NULL, NULL);
|
||||
g_return_val_if_fail(line != NULL, NULL);
|
||||
|
||||
cache = g_hash_table_lookup(view->cache->line_cache, line);
|
||||
if (cache == NULL)
|
||||
cache = view_update_line_cache(view, line);
|
||||
@ -783,6 +802,9 @@ void textbuffer_view_insert_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
|
||||
GSList *tmp;
|
||||
unsigned char update_counter;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
g_return_if_fail(line != NULL);
|
||||
|
||||
if (!view->buffer->last_eol)
|
||||
return;
|
||||
|
||||
@ -931,6 +953,9 @@ void textbuffer_view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
|
||||
unsigned char update_counter;
|
||||
int linecount;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
g_return_if_fail(line != NULL);
|
||||
|
||||
linecount = view_get_linecount(view, line);
|
||||
update_counter = view->cache->update_counter+1;
|
||||
|
||||
@ -952,6 +977,8 @@ void textbuffer_view_remove_all_lines(TEXT_BUFFER_VIEW_REC *view)
|
||||
{
|
||||
GSList *tmp;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
textbuffer_remove_all_lines(view->buffer);
|
||||
|
||||
/* destroy line caches - note that you can't do simultaneously
|
||||
@ -977,6 +1004,9 @@ void textbuffer_view_set_bookmark(TEXT_BUFFER_VIEW_REC *view,
|
||||
{
|
||||
gpointer key, value;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
g_return_if_fail(name != NULL);
|
||||
|
||||
if (g_hash_table_lookup_extended(view->bookmarks, name,
|
||||
&key, &value)) {
|
||||
g_hash_table_remove(view->bookmarks, key);
|
||||
@ -992,6 +1022,9 @@ void textbuffer_view_set_bookmark_bottom(TEXT_BUFFER_VIEW_REC *view,
|
||||
{
|
||||
LINE_REC *line;
|
||||
|
||||
g_return_if_fail(view != NULL);
|
||||
g_return_if_fail(name != NULL);
|
||||
|
||||
if (view->bottom_startline != NULL) {
|
||||
line = g_list_last(view->bottom_startline)->data;
|
||||
textbuffer_view_set_bookmark(view, name, line);
|
||||
@ -1002,6 +1035,9 @@ void textbuffer_view_set_bookmark_bottom(TEXT_BUFFER_VIEW_REC *view,
|
||||
LINE_REC *textbuffer_view_get_bookmark(TEXT_BUFFER_VIEW_REC *view,
|
||||
const char *name)
|
||||
{
|
||||
g_return_val_if_fail(view != NULL, NULL);
|
||||
g_return_val_if_fail(name != NULL, NULL);
|
||||
|
||||
return g_hash_table_lookup(view->bookmarks, name);
|
||||
}
|
||||
|
||||
@ -1009,6 +1045,8 @@ LINE_REC *textbuffer_view_get_bookmark(TEXT_BUFFER_VIEW_REC *view,
|
||||
NULL disables it. */
|
||||
void textbuffer_view_set_window(TEXT_BUFFER_VIEW_REC *view, WINDOW *window)
|
||||
{
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
if (view->window != window) {
|
||||
view->window = window;
|
||||
if (window != NULL)
|
||||
@ -1019,6 +1057,8 @@ void textbuffer_view_set_window(TEXT_BUFFER_VIEW_REC *view, WINDOW *window)
|
||||
/* Redraw a view to window */
|
||||
void textbuffer_view_redraw(TEXT_BUFFER_VIEW_REC *view)
|
||||
{
|
||||
g_return_if_fail(view != NULL);
|
||||
|
||||
if (view->window != NULL) {
|
||||
view_draw_top(view, view->height);
|
||||
screen_refresh(view->window);
|
||||
|
Loading…
Reference in New Issue
Block a user