Changeset 39f67f1 in mainline
- Timestamp:
- 2026-02-18T20:21:10Z (32 hours ago)
- Branches:
- master
- Children:
- b769ca0
- Parents:
- 26edcd6
- Location:
- uspace/lib/ui
- Files:
-
- 2 edited
-
private/window.h (modified) (1 diff)
-
src/window.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/private/window.h
r26edcd6 r39f67f1 82 82 /** Display position (if fullscreen mode) */ 83 83 gfx_coord2_t dpos; 84 /** Normal display position when not maximized (if fullscreen mode) */ 85 gfx_coord2_t normal_dpos; 84 86 /** Application area bitmap */ 85 87 gfx_bitmap_t *app_bmp; -
uspace/lib/ui/src/window.c
r26edcd6 r39f67f1 239 239 } 240 240 241 static void ui_window_set_dpos(ui_window_t *window, gfx_coord2_t *dpos) 242 { 243 window->dpos = *dpos; 244 if (window->xgc != NULL) 245 xlate_gc_set_off(window->xgc, &window->dpos); 246 } 247 241 248 /** Create window's system menu. 242 249 * … … 338 345 mem_gc_t *memgc = NULL; 339 346 xlate_gc_t *xgc = NULL; 347 gfx_coord2_t dpos; 340 348 errno_t rc; 341 349 … … 482 490 if (ui->display == NULL) { 483 491 ui_window_place(window, &ui->rect, ¶ms->rect, ¶ms->prect, 484 params->placement, &window->dpos); 485 486 if (window->xgc != NULL) 487 xlate_gc_set_off(window->xgc, &window->dpos); 492 params->placement, &dpos); 493 ui_window_set_dpos(window, &dpos); 488 494 } 489 495 … … 549 555 void ui_window_update_placement(ui_window_t *window) 550 556 { 551 if (window->placement != ui_wnd_place_popup) 557 gfx_coord2_t dpos; 558 559 if (window->placement != ui_wnd_place_popup) { 552 560 ui_window_place(window, &window->ui->rect, &window->rect, 553 561 NULL, window->placement, &window->dpos); 554 555 if (window->xgc != NULL) 556 xlate_gc_set_off(window->xgc, &window->dpos); 562 ui_window_set_dpos(window, &dpos); 563 } 557 564 558 565 if (window->placement == ui_wnd_place_full_screen) { … … 596 603 /* Need to repaint if windows are emulated */ 597 604 if (ui_is_fullscreen(ui)) { 598 ui_paint(ui);605 (void)ui_paint(ui); 599 606 /* Send focus event to newly active window */ 600 607 nwindow = ui_window_get_active(ui); … … 709 716 gfx_bitmap_alloc_t app_alloc; 710 717 gfx_bitmap_alloc_t win_alloc; 718 gfx_coord2_t dpos; 711 719 errno_t rc; 712 720 … … 784 792 break; 785 793 } 794 } else { 795 /* fullscreen mode or unit tests */ 796 switch (scop) { 797 case ui_wsc_resize: 798 break; 799 case ui_wsc_maximize: 800 window->normal_dpos = window->dpos; 801 dpos.x = 0; 802 dpos.y = 0; 803 ui_window_set_dpos(window, &dpos); 804 break; 805 case ui_wsc_unmaximize: 806 ui_window_set_dpos(window, &window->normal_dpos); 807 break; 808 } 786 809 } 787 810 … … 822 845 window->app_bmp = app_bmp; 823 846 } 847 848 /* Need to repaint UI if windows are emulated */ 849 if (ui_is_fullscreen(window->ui)) 850 (void)ui_paint(window->ui); 824 851 825 852 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.
