Changes in uspace/lib/ui/src/ui.c [26edcd6:8279aab] in mainline
- File:
-
- 1 edited
-
uspace/lib/ui/src/ui.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/ui.c
r26edcd6 r8279aab 1 1 /* 2 * Copyright (c) 202 6Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 326 326 } 327 327 328 /** Resize UI after screen size change.329 *330 * @param ui UI331 * @param rect New screen rectangle.332 */333 static void ui_resize(ui_t *ui, gfx_rect_t *rect)334 {335 ui_window_t *wnd;336 337 ui->rect = *rect;338 339 /* Reposition/resize windows */340 wnd = ui_window_first(ui);341 while (wnd != NULL) {342 ui_window_update_placement(wnd);343 wnd = ui_window_next(wnd);344 }345 346 /*347 * XXX Resizing cleared console GC so we need to repaint the348 * background.349 */350 (void)ui_paint(ui);351 }352 353 328 static void ui_cons_event_process(ui_t *ui, cons_event_t *event) 354 329 { … … 356 331 ui_evclaim_t claim; 357 332 pos_event_t pos; 358 sysarg_t cols, rows;359 gfx_rect_t rect;360 errno_t rc;361 333 362 334 awnd = ui_window_get_active(ui); … … 386 358 break; 387 359 case CEV_RESIZE: 388 rc = console_gc_resize(ui->cgc);389 if (rc != EOK) {390 /* XXX No good way to recover. */391 console_done(ui->console);392 exit(1);393 }394 395 rc = console_get_size(ui->console, &cols, &rows);396 if (rc != EOK) {397 /* XXX No good way to recover. */398 console_done(ui->console);399 exit(1);400 }401 402 360 ui_lock(ui); 403 404 rect.p0.x = 0; 405 rect.p0.y = 0; 406 rect.p1.x = cols; 407 rect.p1.y = rows; 408 409 ui_resize(ui, &rect); 361 ui_window_send_resize(awnd); 410 362 ui_unlock(ui); 411 363 break; … … 460 412 errno_t rc; 461 413 gfx_context_t *gc; 462 ui_window_t * wnd;414 ui_window_t *awnd; 463 415 gfx_color_t *color = NULL; 464 416 … … 487 439 gfx_color_delete(color); 488 440 489 /* Repaint all windows */ 490 wnd = ui_window_first(ui); 491 while (wnd != NULL) { 492 rc = ui_wdecor_paint(wnd->wdecor); 493 if (rc != EOK) 494 return rc; 495 496 rc = ui_window_paint(wnd); 497 if (rc != EOK) 498 return rc; 499 500 wnd = ui_window_next(wnd); 501 } 502 503 return EOK; 441 /* XXX Should repaint all windows */ 442 awnd = ui_window_get_active(ui); 443 if (awnd == NULL) 444 return EOK; 445 446 rc = ui_wdecor_paint(awnd->wdecor); 447 if (rc != EOK) 448 return rc; 449 450 return ui_window_paint(awnd); 504 451 } 505 452
Note:
See TracChangeset
for help on using the changeset viewer.
