Changes in uspace/lib/ui/src/ui.c [26edcd6:983052c] in mainline
- File:
-
- 1 edited
-
uspace/lib/ui/src/ui.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/ui.c
r26edcd6 r983052c 1 1 /* 2 * Copyright (c) 202 6Jiri Svoboda2 * Copyright (c) 2023 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); … … 385 357 386 358 break; 387 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 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);410 ui_unlock(ui);411 break;412 359 } 413 360 } … … 460 407 errno_t rc; 461 408 gfx_context_t *gc; 462 ui_window_t * wnd;409 ui_window_t *awnd; 463 410 gfx_color_t *color = NULL; 464 411 … … 487 434 gfx_color_delete(color); 488 435 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; 436 /* XXX Should repaint all windows */ 437 awnd = ui_window_get_active(ui); 438 if (awnd == NULL) 439 return EOK; 440 441 rc = ui_wdecor_paint(awnd->wdecor); 442 if (rc != EOK) 443 return rc; 444 445 return ui_window_paint(awnd); 504 446 } 505 447 … … 621 563 void ui_lock(ui_t *ui) 622 564 { 623 if (ui->display != NULL)624 display_lock(ui->display);625 565 fibril_mutex_lock(&ui->lock); 626 566 } … … 637 577 { 638 578 fibril_mutex_unlock(&ui->lock); 639 if (ui->display != NULL)640 display_unlock(ui->display);641 579 } 642 580
Note:
See TracChangeset
for help on using the changeset viewer.
