Ignore:
File:
1 edited

Legend:

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

    r8279aab rec50d65e  
    11/*
    2  * Copyright (c) 2025 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    189189        switch (params->placement) {
    190190        case ui_wnd_place_default:
    191         case ui_wnd_place_center:
    192                 assert(params->placement != ui_wnd_place_default ||
    193                     ui_is_fullscreen(window->ui));
     191                assert(ui_is_fullscreen(window->ui));
    194192                /* Center window */
    195193                gfx_rect_dims(&params->rect, &dims);
     
    345343        dparams.rect = params->rect;
    346344        dparams.caption = params->caption;
    347         dparams.min_size = params->min_size;
     345        /* Only allow making the window larger */
     346        gfx_rect_dims(&params->rect, &dparams.min_size);
    348347
    349348        /*
     
    359358        if ((params->flags & ui_wndf_popup) != 0)
    360359                dparams.flags |= wndf_popup;
    361         if ((params->flags & ui_wndf_nofocus) != 0)
    362                 dparams.flags |= wndf_nofocus;
    363360        if ((params->flags & ui_wndf_topmost) != 0)
    364361                dparams.flags |= wndf_topmost;
     
    978975        ui_t *ui = window->ui;
    979976
    980         fibril_mutex_lock(&ui->lock);
     977        ui_lock(ui);
    981978        ui_window_send_close(window);
    982         fibril_mutex_unlock(&ui->lock);
     979        ui_unlock(ui);
    983980}
    984981
     
    989986        ui_t *ui = window->ui;
    990987
    991         fibril_mutex_lock(&ui->lock);
     988        ui_lock(ui);
    992989        (void)nfocus;
    993990
     
    998995
    999996        ui_window_send_focus(window, nfocus);
    1000         fibril_mutex_unlock(&ui->lock);
     997        ui_unlock(ui);
    1001998}
    1002999
     
    10071004        ui_t *ui = window->ui;
    10081005
    1009         fibril_mutex_lock(&ui->lock);
     1006        ui_lock(ui);
    10101007        ui_window_send_kbd(window, kbd_event);
    1011         fibril_mutex_unlock(&ui->lock);
     1008        ui_unlock(ui);
    10121009}
    10131010
     
    10231020                return;
    10241021
    1025         fibril_mutex_lock(&ui->lock);
     1022        ui_lock(ui);
    10261023
    10271024        claim = ui_wdecor_pos_event(window->wdecor, event);
    10281025        if (claim == ui_claimed) {
    1029                 fibril_mutex_unlock(&ui->lock);
     1026                ui_unlock(ui);
    10301027                return;
    10311028        }
    10321029
    10331030        ui_window_send_pos(window, event);
    1034         fibril_mutex_unlock(&ui->lock);
     1031        ui_unlock(ui);
    10351032}
    10361033
     
    10481045                return;
    10491046
    1050         fibril_mutex_lock(&ui->lock);
     1047        ui_lock(ui);
    10511048        (void) ui_window_resize(window, rect);
    1052         ui_window_send_resize(window);
    1053         fibril_mutex_unlock(&ui->lock);
     1049        (void) ui_window_paint(window);
     1050        ui_unlock(ui);
    10541051}
    10551052
     
    10601057        ui_t *ui = window->ui;
    10611058
    1062         fibril_mutex_lock(&ui->lock);
     1059        ui_lock(ui);
    10631060
    10641061        if (window->wdecor != NULL && nfocus == 0) {
     
    10681065
    10691066        ui_window_send_unfocus(window, nfocus);
    1070         fibril_mutex_unlock(&ui->lock);
     1067        ui_unlock(ui);
    10711068}
    10721069
     
    12981295void ui_window_send_minimize(ui_window_t *window)
    12991296{
    1300         if (window->cb != NULL && window->cb->minimize != NULL)
     1297        if (window->cb != NULL && window->cb->maximize != NULL)
    13011298                window->cb->minimize(window, window->arg);
    13021299        else
     
    13961393        else
    13971394                return ui_window_def_unfocus(window, nfocus);
    1398 }
    1399 
    1400 /** Send window resize event.
    1401  *
    1402  * @param window Window
    1403  */
    1404 void ui_window_send_resize(ui_window_t *window)
    1405 {
    1406         if (window->cb != NULL && window->cb->resize != NULL)
    1407                 window->cb->resize(window, window->arg);
    1408         else
    1409                 return ui_window_def_resize(window);
    14101395}
    14111396
     
    15881573        if (window->control != NULL)
    15891574                ui_control_unfocus(window->control, nfocus);
    1590 }
    1591 
    1592 /** Default window resize routine.
    1593  *
    1594  * @param window Window
    1595  * @return EOK on success or an error code
    1596  */
    1597 void ui_window_def_resize(ui_window_t *window)
    1598 {
    1599         ui_window_paint(window);
    16001575}
    16011576
Note: See TracChangeset for help on using the changeset viewer.