Changeset 252d03c in mainline for uspace/lib/ui/src/window.c
- Timestamp:
- 2021-04-28T09:22:39Z (4 years ago)
- Branches:
- master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7470d97
- Parents:
- de227aba
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/window.c
rde227aba r252d03c 133 133 gfx_bitmap_t *bmp = NULL; 134 134 mem_gc_t *memgc = NULL; 135 console_gc_t *cgc = NULL;136 135 errno_t rc; 137 138 if (ui->root_wnd != NULL)139 return EEXIST;140 136 141 137 window = calloc(1, sizeof(ui_window_t)); … … 202 198 goto error; 203 199 } else if (ui->console != NULL) { 204 rc = console_gc_create(ui->console, NULL, &cgc); 205 if (rc != EOK) 206 goto error; 207 208 gc = console_gc_get_ctx(cgc); 200 gc = console_gc_get_ctx(ui->cgc); 209 201 } else { 210 202 /* Needed for unit tests */ … … 257 249 window->gc = gc; 258 250 #endif 259 window->cgc = cgc;260 251 261 252 rc = ui_resource_create(window->gc, ui_is_textmode(ui), &res); … … 282 273 *rwindow = window; 283 274 284 ui->root_wnd = window;275 list_append(&window->lwindows, &ui->windows); 285 276 return EOK; 286 277 error: … … 295 286 if (dgc != NULL) 296 287 dummygc_destroy(dgc); 297 if (cgc != NULL)298 console_gc_delete(cgc);299 288 if (dwindow != NULL) 300 289 display_window_destroy(dwindow); … … 309 298 void ui_window_destroy(ui_window_t *window) 310 299 { 300 ui_t *ui; 301 311 302 if (window == NULL) 312 303 return; 313 304 305 ui = window->ui; 306 307 list_remove(&window->lwindows); 314 308 ui_control_destroy(window->control); 315 309 ui_wdecor_destroy(window->wdecor); … … 328 322 if (window->dwindow != NULL) 329 323 display_window_destroy(window->dwindow); 330 if (window->cgc != NULL) 331 console_gc_delete(window->cgc); 324 332 325 free(window); 326 327 /* Need to repaint if windows are emulated */ 328 if (ui_is_fullscreen(ui)) { 329 ui_paint(ui); 330 } 333 331 } 334 332 … … 362 360 window->control = NULL; 363 361 control->elemp = NULL; 362 } 363 364 /** Get active window (only valid in fullscreen mode). 365 * 366 * @param ui User interface 367 * @return Active window 368 */ 369 ui_window_t *ui_window_get_active(ui_t *ui) 370 { 371 link_t *link; 372 373 link = list_last(&ui->windows); 374 if (link == NULL) 375 return NULL; 376 377 return list_get_instance(link, ui_window_t, lwindows); 364 378 } 365 379
Note:
See TracChangeset
for help on using the changeset viewer.