Changes in uspace/lib/ui/src/window.c [ec50d65e:8279aab] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/window.c
rec50d65e r8279aab 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 189 189 switch (params->placement) { 190 190 case ui_wnd_place_default: 191 assert(ui_is_fullscreen(window->ui)); 191 case ui_wnd_place_center: 192 assert(params->placement != ui_wnd_place_default || 193 ui_is_fullscreen(window->ui)); 192 194 /* Center window */ 193 195 gfx_rect_dims(¶ms->rect, &dims); … … 343 345 dparams.rect = params->rect; 344 346 dparams.caption = params->caption; 345 /* Only allow making the window larger */ 346 gfx_rect_dims(¶ms->rect, &dparams.min_size); 347 dparams.min_size = params->min_size; 347 348 348 349 /* … … 358 359 if ((params->flags & ui_wndf_popup) != 0) 359 360 dparams.flags |= wndf_popup; 361 if ((params->flags & ui_wndf_nofocus) != 0) 362 dparams.flags |= wndf_nofocus; 360 363 if ((params->flags & ui_wndf_topmost) != 0) 361 364 dparams.flags |= wndf_topmost; … … 975 978 ui_t *ui = window->ui; 976 979 977 ui_lock(ui);980 fibril_mutex_lock(&ui->lock); 978 981 ui_window_send_close(window); 979 ui_unlock(ui);982 fibril_mutex_unlock(&ui->lock); 980 983 } 981 984 … … 986 989 ui_t *ui = window->ui; 987 990 988 ui_lock(ui);991 fibril_mutex_lock(&ui->lock); 989 992 (void)nfocus; 990 993 … … 995 998 996 999 ui_window_send_focus(window, nfocus); 997 ui_unlock(ui);1000 fibril_mutex_unlock(&ui->lock); 998 1001 } 999 1002 … … 1004 1007 ui_t *ui = window->ui; 1005 1008 1006 ui_lock(ui);1009 fibril_mutex_lock(&ui->lock); 1007 1010 ui_window_send_kbd(window, kbd_event); 1008 ui_unlock(ui);1011 fibril_mutex_unlock(&ui->lock); 1009 1012 } 1010 1013 … … 1020 1023 return; 1021 1024 1022 ui_lock(ui);1025 fibril_mutex_lock(&ui->lock); 1023 1026 1024 1027 claim = ui_wdecor_pos_event(window->wdecor, event); 1025 1028 if (claim == ui_claimed) { 1026 ui_unlock(ui);1029 fibril_mutex_unlock(&ui->lock); 1027 1030 return; 1028 1031 } 1029 1032 1030 1033 ui_window_send_pos(window, event); 1031 ui_unlock(ui);1034 fibril_mutex_unlock(&ui->lock); 1032 1035 } 1033 1036 … … 1045 1048 return; 1046 1049 1047 ui_lock(ui);1050 fibril_mutex_lock(&ui->lock); 1048 1051 (void) ui_window_resize(window, rect); 1049 (void) ui_window_paint(window);1050 ui_unlock(ui);1052 ui_window_send_resize(window); 1053 fibril_mutex_unlock(&ui->lock); 1051 1054 } 1052 1055 … … 1057 1060 ui_t *ui = window->ui; 1058 1061 1059 ui_lock(ui);1062 fibril_mutex_lock(&ui->lock); 1060 1063 1061 1064 if (window->wdecor != NULL && nfocus == 0) { … … 1065 1068 1066 1069 ui_window_send_unfocus(window, nfocus); 1067 ui_unlock(ui);1070 fibril_mutex_unlock(&ui->lock); 1068 1071 } 1069 1072 … … 1295 1298 void ui_window_send_minimize(ui_window_t *window) 1296 1299 { 1297 if (window->cb != NULL && window->cb->m aximize != NULL)1300 if (window->cb != NULL && window->cb->minimize != NULL) 1298 1301 window->cb->minimize(window, window->arg); 1299 1302 else … … 1393 1396 else 1394 1397 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); 1395 1410 } 1396 1411 … … 1573 1588 if (window->control != NULL) 1574 1589 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); 1575 1600 } 1576 1601
Note:
See TracChangeset
for help on using the changeset viewer.