Changes in uspace/lib/ui/src/ui.c [26edcd6:8279aab] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/src/ui.c

    r26edcd6 r8279aab  
    11/*
    2  * Copyright (c) 2026 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    326326}
    327327
    328 /** Resize UI after screen size change.
    329  *
    330  * @param ui UI
    331  * @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 the
    348          * background.
    349          */
    350         (void)ui_paint(ui);
    351 }
    352 
    353328static void ui_cons_event_process(ui_t *ui, cons_event_t *event)
    354329{
     
    356331        ui_evclaim_t claim;
    357332        pos_event_t pos;
    358         sysarg_t cols, rows;
    359         gfx_rect_t rect;
    360         errno_t rc;
    361333
    362334        awnd = ui_window_get_active(ui);
     
    386358                break;
    387359        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 
    402360                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);
    410362                ui_unlock(ui);
    411363                break;
     
    460412        errno_t rc;
    461413        gfx_context_t *gc;
    462         ui_window_t *wnd;
     414        ui_window_t *awnd;
    463415        gfx_color_t *color = NULL;
    464416
     
    487439        gfx_color_delete(color);
    488440
    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);
    504451}
    505452
Note: See TracChangeset for help on using the changeset viewer.