Rev 2513 | Rev 3390 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2513 | Rev 2534 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 2513 $ |
8 | $Revision: 2534 $ |
9 | 9 | ||
10 | WINDOW_MOVE_AND_RESIZE_FLAGS = \ |
10 | WINDOW_MOVE_AND_RESIZE_FLAGS = \ |
11 | mouse.WINDOW_RESIZE_N_FLAG + \ |
11 | mouse.WINDOW_RESIZE_N_FLAG + \ |
Line 495... | Line 495... | ||
495 | bsr eax, ecx ; íàõîäèì íåíóëåâîé áèò ìàñêè (31 -> 0) |
495 | bsr eax, ecx ; íàõîäèì íåíóëåâîé áèò ìàñêè (31 -> 0) |
496 | jz .no_events ; èñ÷åðïàëè âñå áèòû ìàñêè, íî íè÷åãî íå íàøëè ??? |
496 | jz .no_events ; èñ÷åðïàëè âñå áèòû ìàñêè, íî íè÷åãî íå íàøëè ??? |
497 | btr ecx, eax ; ñáðàñûâàåì ïðîâåðÿåìûé áèò ìàñêè |
497 | btr ecx, eax ; ñáðàñûâàåì ïðîâåðÿåìûé áèò ìàñêè |
498 | ; ïåðåõîäèì íà îáðàáîò÷èê ýòîãî (eax) áèòà |
498 | ; ïåðåõîäèì íà îáðàáîò÷èê ýòîãî (eax) áèòà |
499 | cmp eax, 9 |
499 | cmp eax, 9 |
500 | jae .loop ; eax=[9..31], ignored |
500 | jae .loop ; eax=[9..31], ignored (event 10...32) |
- | 501 | ||
501 | cmp eax, 3 |
502 | cmp eax, 3 |
502 | je .loop ; eax=3, ignored |
503 | je .loop ; eax=3, ignored (event 4) |
- | 504 | ||
- | 505 | cmp eax, 4 |
|
- | 506 | je .FlagAutoReset ; eax=4, retvals=eax+1 (event 5) |
|
- | 507 | ||
- | 508 | cmp eax, 5 |
|
- | 509 | je .mouse_check ; eax=5, retvals=eax+1 (event 6) |
|
- | 510 | ||
503 | ja .FlagAutoReset ; eax=[4..8], retvals=eax+1 |
511 | ja .FlagAutoReset ; eax=[6..8], retvals=eax+1 (event 7...9) |
- | 512 | ||
504 | cmp eax, 1 |
513 | cmp eax, 1 |
505 | jae .BtKy ; eax=[1,2], retvals=eax+1 |
514 | jae .BtKy ; eax=[1,2], retvals=eax+1 (event 2,3) |
506 | ;-------------------------------------- |
515 | ;-------------------------------------- |
507 | align 4 |
516 | align 4 |
508 | .WndRedraw: ; eax=0, retval WndRedraw=1 |
517 | .WndRedraw: ; eax=0, retval WndRedraw=1 |
509 | cmp [edi-twdw+WDATA.fl_redraw], al;al==0 |
518 | cmp [edi-twdw+WDATA.fl_redraw], al;al==0 |
510 | jne .result |
519 | jne .result |
Line 514... | Line 523... | ||
514 | .no_events: |
523 | .no_events: |
515 | xor eax, eax |
524 | xor eax, eax |
516 | ret |
525 | ret |
517 | ;-------------------------------------- |
526 | ;-------------------------------------- |
518 | align 4 |
527 | align 4 |
519 | .FlagAutoReset: ; retvals: BgrRedraw=5, Mouse=6, IPC=7, Stack=8, Debug=9 |
- | |
520 | cmp eax, 5; Mouse 5+1=6 |
528 | .mouse_check: ; Mouse 5+1=6 |
521 | jne .no_mouse_check |
- | |
522 | push eax |
529 | push eax |
523 | mov eax, [TASK_BASE] |
530 | mov eax, [TASK_BASE] |
524 | mov eax, [eax + TASKDATA.event_mask] |
531 | mov eax, [eax + TASKDATA.event_mask] |
525 | test eax, 0x80000000 ; bit 31: active/inactive filter f.40 |
532 | test eax, 0x80000000 ; bit 31: active/inactive filter f.40 |
526 | jz @f |
533 | jz @f |
527 | pop eax |
534 | pop eax |
528 | jmp .no_mouse_check |
535 | jmp .FlagAutoReset |
529 | ;-------------------------------------- |
536 | ;-------------------------------------- |
530 | align 4 |
537 | align 4 |
531 | @@: |
538 | @@: |
532 | ; If the window is captured and moved by the user, then no mouse events!!! |
539 | ; If the window is captured and moved by the user, then no mouse events!!! |
533 | mov al, [mouse.active_sys_window.action] |
540 | mov al, [mouse.active_sys_window.action] |
Line 535... | Line 542... | ||
535 | test al, al |
542 | test al, al |
536 | pop eax |
543 | pop eax |
537 | jnz .loop |
544 | jnz .loop |
538 | ;-------------------------------------- |
545 | ;-------------------------------------- |
539 | align 4 |
546 | align 4 |
540 | .no_mouse_check: |
547 | .FlagAutoReset: ; retvals: BgrRedraw=5, IPC=7, Stack=8, Debug=9 |
541 | btr [ebx+APPDATA.event_mask], eax |
548 | btr [ebx+APPDATA.event_mask], eax |
542 | jnc .loop |
549 | jnc .loop |
543 | ;-------------------------------------- |
550 | ;-------------------------------------- |
544 | align 4 |
551 | align 4 |
545 | .result: ; retval = eax+1 |
552 | .result: ; retval = eax+1 |