| | 181 | | | | MAIN_WINDOW_REC *mainwindow_create(void) |
| | 182 | | | | { |
| | 183 | | | | MAIN_WINDOW_REC *rec, *parent; |
| | 184 | | | | int space; |
| | 185 | | | | |
| | 186 | | | | rec = g_new0(MAIN_WINDOW_REC, 1);
|
| | 187 | | | | rec->dirty = TRUE;
|
| | 188 | | | | rec->width = term_width; |
| | 189 | | | | |
| | 190 | | | | if (mainwindows == NULL) {
|
| | 191 | | | | active_mainwin = rec; |
| | 192 | | | | |
| | 193 | | | | rec->first_line = screen_reserved_top; |
| | 194 | | | | rec->last_line = term_height-1 - screen_reserved_bottom; |
| | 195 | | | | rec->height = rec->last_line-rec->first_line+1; |
| | 196 | | | | } else { |
| | 197 | | | | parent = WINDOW_MAIN(active_win);
|
| | 198 | | | | if (MAIN_WINDOW_TEXT_HEIGHT(parent) <
|
| | 199 | | | | WINDOW_MIN_SIZE+NEW_WINDOW_SIZE)
|
| | 200 | | | | parent = find_window_with_room(); |
| | 201 | | | | if (parent == NULL)
|
| true | 202 | | | | return NULL;
|
| | 203 | | | | |
| | 204 | | | | space = parent->height / 2; |
| | 205 | | | | rec->first_line = parent->first_line; |
| | 206 | | | | rec->last_line = rec->first_line + space; |
| | 207 | | | | rec->height = rec->last_line-rec->first_line+1; |
| | 208 | | | | |
| | 209 | | | | parent->first_line += space+1; |
| | 210 | | | | mainwindow_resize(parent, 0, -space-1); |
| | 211 | | | | } |
| | 212 | | | | |
| | 213 | | | | rec->screen_win = mainwindow_create_screen(rec);
|
| | 214 | | | | term_refresh(NULL);
|
| | 215 | | | | |
| | 216 | | | | mainwindows = g_slist_append(mainwindows, rec); |
| | 217 | | | | signal_emit("mainwindow created", 1, rec); |
| | 218 | | | | return rec; |
| mainwindow_create$return <= 4095 | 219 | | | | } | Problem | | mainwindow_create$return <= 4095 |
|