498,7 → 498,7 |
|
repos_windows: |
mov ecx,[TASK_COUNT] |
mov edi, OS_BASE+0x20*2 |
mov edi, window_data+0x20*2 |
call force_redraw_background |
dec ecx |
jge @f |
616,33 → 616,6 |
ret |
|
|
uglobal |
new_window_starting dd 0 |
endg |
|
|
sys_window_mouse: |
|
push eax |
|
mov eax,[timer_ticks] |
cmp [new_window_starting],eax |
jb swml1 |
|
mov [mouse_background], 0 ; no mouse background |
mov [dont_draw_mouse], 0 ; draw mouse |
|
mov [new_window_starting],eax |
|
swml1: |
|
pop eax |
|
ret |
|
|
|
|
drawwindow_I_caption: |
|
mov ecx,[edx+WDATA.cl_titlebar] ; grab bar |
1045,8 → 1018,6 |
ret |
|
|
|
|
waredraw: ; if redraw necessary at activate |
|
pushad |
1088,8 → 1059,6 |
popad |
|
call windowactivate |
mov [mouse_background], 0 ; no mouse background |
mov [dont_draw_mouse], 0 ; draw mouse |
ret |
|
|
1156,7 → 1125,6 |
add edx, [edi+WDATA.box.height] |
call calculatescreen |
.done: |
mov [mouse_background], 0 ; no mouse under |
.skip_redrawings: |
popfd |
ret |
1167,6 → 1135,8 |
window_moved db 'K : Window - done',13,10,0 |
endg |
|
bPressedMouseXY_W db 0x0 |
|
; check window touch |
align 4 |
checkwindows: |
1194,59 → 1164,34 |
popad |
ret |
.mouse_buttons_pressed: |
;..................................... start 2/4 : modified by vhanla ................. |
jmp @f |
bPressedMouseXY_W db 0x0 |
@@: |
;..................................... end 2/4 : modified by vhanla ................... |
mov esi,[TASK_COUNT] |
inc esi |
|
;..................................... start 3/4 : modified by vhanla ................. |
push eax |
cmp [bPressedMouseXY_W],0 |
jnz @f |
mov [bPressedMouseXY_W],1 |
mov ax,[MOUSE_X] |
mov [mx],ax |
mov ax,[MOUSE_Y] |
mov [my],ax |
@@: |
pop eax |
;..................................... end 3/4 : modified by vhanla ................... |
|
movzx eax,word [MOUSE_Y] |
movzx ebx,word [MOUSE_X] |
mov ecx, [Screen_Max_X] |
add ebx, [_display_data] |
inc ecx |
mul ecx |
movzx edi, byte [ebx+eax] |
|
cwloop: |
cmp esi,2 |
jb .exit |
|
dec esi |
movzx edi, word [WIN_POS + esi * 2] ; ebx |
movzx esi, word [WIN_STACK + edi * 2] |
|
shl edi, 5 |
add edi, window_data |
; mov edi, ebx |
mov ecx, [edi + WDATA.box.left] |
mov edx, [edi + WDATA.box.top] |
|
mov eax,ecx |
mov ebx,edx |
test [edi+WDATA.fl_wstate],WSTATE_MINIMIZED |
jnz cwloop |
movzx eax,word [MOUSE_X] |
movzx ebx,word [MOUSE_Y] |
|
;..................................... start 4/4 : modified by vhanla ................. |
movzx eax, word [mx]; movzx eax,word[mouse_x] |
movzx ebx, word [my]; movzx ebx,word[MOUSE_Y] |
;..................................... endt 4/4 : modified by vhanla .................. |
cmp ecx, eax |
jae cwloop |
cmp edx, ebx |
jae cwloop |
add ecx, [edi + WDATA.box.width] |
add edx, [edi + WDATA.box.height] |
cmp eax, ecx |
jae cwloop |
cmp ebx, edx |
jae cwloop |
|
pushad |
mov eax, esi |
mov ebx, [TASK_COUNT] |
1371,13 → 1316,10 |
|
newchm: |
|
mov [dont_draw_mouse], 1 |
|
call checkidle |
|
call checkVga_N13 |
|
mov [mouse_background], 0 |
|
call [draw_pointer] |
|
1480,7 → 1422,6 |
cmp byte [btn_down], 0 |
jne newchm |
; new position done |
mov [dont_draw_mouse], 1 |
mov cl,0 |
test [edi+WDATA.fl_wstate],WSTATE_MAXIMIZED |
jnz @f |
1507,7 → 1448,8 |
test [edi+WDATA.fl_wstate],WSTATE_ROLLEDUP or WSTATE_MAXIMIZED |
jnz @f |
add ecx,2 |
@@: sub edi,window_data |
@@: |
sub edi,window_data |
shr edi,5 |
shl edi,8 |
add edi,SLOT_BASE+APPDATA.saved_box |
1633,9 → 1575,6 |
cmp [reposition],0 |
je retwm |
|
mov [dont_draw_mouse], 1 ; no mouse |
|
|
push eax ebx ecx edx |
mov eax,[edi+WDATA.box.left] |
mov ebx,[edi+WDATA.box.top] |
1662,7 → 1601,6 |
|
mov ecx,100 ; wait to avoid mouse residuals |
waitre2: |
mov [dont_draw_mouse], 1 |
call checkidle |
cmp [edi+WDATA.fl_redraw],0 |
jz retwm |
1670,9 → 1608,6 |
|
retwm: |
|
mov [dont_draw_mouse], 0 ; mouse pointer |
mov [mouse_background], 0 ; no mouse under |
|
mov esi,window_moved |
call sys_msg_board_str |
|