Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 928 → Rev 996

/kernel/branches/kolibri_pe/gui/window.inc
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