Changeset a2e104e in mainline for uspace/srv/hid/display/window.c
- Timestamp:
- 2020-03-05T11:23:41Z (5 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1e4a937
- Parents:
- 338d0935
- git-author:
- Jiri Svoboda <jiri@…> (2020-03-04 19:23:29)
- git-committer:
- Jiri Svoboda <jiri@…> (2020-03-05 11:23:41)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/display/window.c
r338d0935 ra2e104e 436 436 } 437 437 438 /** Start moving a window, detected by client. 439 * 440 * @param wnd Window 441 * @param pos Position where the pointer was when the move started 442 * relative to the window 443 * @param event Button press event 444 */ 445 void ds_window_move_req(ds_window_t *wnd, gfx_coord2_t *pos) 446 { 447 log_msg(LOG_DEFAULT, LVL_DEBUG, "ds_window_move_req (%d, %d)", 448 (int) pos->x, (int) pos->y); 449 450 if (wnd->state != dsw_idle) 451 return; 452 453 gfx_coord2_add(&wnd->dpos, pos, &wnd->orig_pos); 454 wnd->state = dsw_moving; 455 } 456 438 457 /** Start moving a window by mouse drag. 439 458 * … … 446 465 (int) event->hpos, (int) event->vpos); 447 466 448 assert(wnd->state == dsw_idle); 467 if (wnd->state != dsw_idle) 468 return; 449 469 450 470 wnd->orig_pos.x = event->hpos; … … 467 487 (int) event->hpos, (int) event->vpos); 468 488 469 assert(wnd->state == dsw_moving); 489 if (wnd->state != dsw_moving) 490 return; 491 470 492 pos.x = event->hpos; 471 493 pos.y = event->vpos; … … 497 519 (int) event->hpos, (int) event->vpos); 498 520 521 if (wnd->state != dsw_moving) 522 return; 523 499 524 gfx_rect_translate(&wnd->dpos, &wnd->rect, &drect); 500 525 … … 505 530 } 506 531 507 assert(wnd->state == dsw_moving);508 532 pos.x = event->hpos; 509 533 pos.y = event->vpos; … … 559 583 { 560 584 pos_event_t tevent; 585 gfx_coord2_t pos; 586 gfx_rect_t drect; 587 bool inside; 561 588 562 589 log_msg(LOG_DEFAULT, LVL_DEBUG, … … 564 591 (int) event->hpos, (int) event->vpos); 565 592 566 if (event->type == POS_PRESS) { 567 if (wnd->state == dsw_idle) 568 ds_window_start_move(wnd, event); 569 } 570 571 if (event->type == POS_RELEASE) { 572 if (wnd->state == dsw_moving) 573 ds_window_finish_move(wnd, event); 574 } 575 576 if (event->type == POS_UPDATE) { 577 if (wnd->state == dsw_moving) 578 ds_window_update_move(wnd, event); 579 } 593 pos.x = event->hpos; 594 pos.y = event->vpos; 595 gfx_rect_translate(&wnd->dpos, &wnd->rect, &drect); 596 inside = gfx_pix_inside_rect(&pos, &drect); 597 598 if (event->type == POS_PRESS && event->btn_num == 2 && inside) 599 ds_window_start_move(wnd, event); 600 601 if (event->type == POS_RELEASE) 602 ds_window_finish_move(wnd, event); 603 604 if (event->type == POS_UPDATE) 605 ds_window_update_move(wnd, event); 580 606 581 607 /* Transform event coordinates to window-local */
Note:
See TracChangeset
for help on using the changeset viewer.