Subversion Repositories Kolibri OS

Rev

Rev 860 | Rev 996 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 860 Rev 928
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2008. 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: 860 $
8
$Revision: 928 $
9
 
9
 
10
 
10
 
Line 627... Line 627...
627
 
627
 
628
    mov   eax,[timer_ticks]
628
    mov   eax,[timer_ticks]
629
    cmp   [new_window_starting],eax
629
    cmp   [new_window_starting],eax
Line 630... Line 630...
630
    jb	  swml1
630
    jb	  swml1
631
 
631
 
Line 632... Line 632...
632
    mov   [MOUSE_BACKGROUND],byte 0  ; no mouse background
632
    mov   [mouse_background], 0  ; no mouse background
Line 633... Line 633...
633
    mov   [DONT_DRAW_MOUSE],byte 0  ; draw mouse
633
    mov   [dont_draw_mouse],  0  ; draw mouse
Line 955... Line 955...
955
	inc   esi
955
	inc   esi
956
	movzx ebx, word [esi*2 + WIN_STACK]
956
	movzx ebx, word [esi*2 + WIN_STACK]
957
	mov   [ebx*2 + WIN_POS], si
957
	mov   [ebx*2 + WIN_POS], si
958
	jmp   waloop2
958
	jmp   waloop2
959
      wacont2:
959
wacont2:
960
	mov   [KEY_COUNT], byte 0	      ; empty keyboard buffer
960
    mov   [KEY_COUNT],  0         ; empty keyboard buffer
961
	mov   [BTN_COUNT], byte 0	      ; empty button buffer
961
    mov   [BTN_COUNT],  0             ; empty button buffer
962
	mov   [MOUSE_SCROLL_H], word 0  ; zero mouse z-index
962
    mov   [mouse_scroll_h],  0        ; zero mouse z-index
963
	mov   [MOUSE_SCROLL_V], word 0  ; zero mouse z-index
963
    mov   [mouse_scroll_v],  0        ; zero mouse z-index
964
	popad
964
	popad
965
	ret
965
	ret
Line 966... Line 966...
966
 
966
 
Line 1054... Line 1054...
1054
	call  checkwindowdraw	   ; draw window on activation ?
1054
	call  checkwindowdraw	   ; draw window on activation ?
1055
	test  ecx, ecx
1055
	test  ecx, ecx
1056
	jz    .do_not_draw
1056
	jz    .do_not_draw
Line 1057... Line 1057...
1057
 
1057
 
1058
	popad
-
 
1059
	mov   [MOUSE_DOWN], byte 1     ; do draw mouse
1058
	popad
Line 1060... Line 1059...
1060
	call  windowactivate
1059
	call  windowactivate
1061
 
1060
 
1062
	; update screen info
1061
	; update screen info
Line 1079... Line 1078...
1079
	movzx esi, word [WIN_POS + edi * 2]
1078
	movzx esi, word [WIN_POS + edi * 2]
1080
	call  setscreen
1079
	call  setscreen
1081
	popad
1080
	popad
Line 1082... Line 1081...
1082
 
1081
 
1083
    mov   [edi + WDATA.fl_redraw], 1  ; redraw flag for app
-
 
Line 1084... Line 1082...
1084
    mov   [MOUSE_DOWN],byte 0		  ; mouse down checks
1082
    mov   [edi + WDATA.fl_redraw], 1  ; redraw flag for app
Line 1085... Line 1083...
1085
 
1083
 
Line 1086... Line 1084...
1086
	ret
1084
	ret
Line 1087... Line 1085...
1087
 
1085
 
1088
     .do_not_draw:
-
 
1089
 
1086
     .do_not_draw:
1090
	popad
1087
 
1091
 
1088
	popad
Line 1092... Line 1089...
1092
	call  windowactivate
1089
 
1093
	mov   [MOUSE_DOWN],byte 0  ; mouse down checks
1090
	call  windowactivate
Line 1157... Line 1154...
1157
	mov   edx, ebx
1154
	mov   edx, ebx
1158
	add   ecx, [edi+WDATA.box.width]
1155
	add   ecx, [edi+WDATA.box.width]
1159
	add   edx, [edi+WDATA.box.height]
1156
	add   edx, [edi+WDATA.box.height]
1160
	call  calculatescreen
1157
	call  calculatescreen
1161
.done:
1158
.done:
1162
	mov   [MOUSE_BACKGROUND],byte 0 ; no mouse under
1159
    mov   [mouse_background], 0 ; no mouse under
1163
.skip_redrawings:
1160
.skip_redrawings:
1164
	popfd
1161
	popfd
1165
	ret
1162
	ret
Line 1187... Line 1184...
1187
  .restore:
1184
  .restore:
1188
	call  restore_minimized_window
1185
	call  restore_minimized_window
1189
  .continue:
1186
  .continue:
1190
  .no_minimizing:
1187
  .no_minimizing:
Line 1191... Line 1188...
1191
 
1188
 
1192
	cmp   [BTN_DOWN],byte 0    ; mouse buttons pressed ?
1189
    cmp  byte [btn_down],   0    ; mouse buttons pressed ?
1193
	jne  .mouse_buttons_pressed
1190
	jne  .mouse_buttons_pressed
1194
;..................................... start 1/4 : modified by vhanla .................
1191
;..................................... start 1/4 : modified by vhanla .................
1195
	mov [bPressedMouseXY_W],0
1192
	mov [bPressedMouseXY_W],0
1196
;..................................... end 1/4 : modified by vhanla ...................
1193
;..................................... end 1/4 : modified by vhanla ...................
Line 1204... Line 1201...
1204
;..................................... end 2/4 : modified by vhanla ...................
1201
;..................................... end 2/4 : modified by vhanla ...................
1205
	mov   esi,[TASK_COUNT]
1202
	mov   esi,[TASK_COUNT]
1206
	inc   esi
1203
	inc   esi
Line 1207... Line 1204...
1207
 
1204
 
1208
;..................................... start 3/4 : modified by vhanla .................
1205
;..................................... start 3/4 : modified by vhanla .................
1209
	push ax
1206
	push eax
1210
	cmp [bPressedMouseXY_W],0
1207
	cmp [bPressedMouseXY_W],0
1211
	jnz @f
1208
	jnz @f
1212
	mov [bPressedMouseXY_W],1
1209
	mov [bPressedMouseXY_W],1
1213
	mov ax,[MOUSE_X]
1210
	mov ax,[MOUSE_X]
1214
	mov [mx],ax
1211
	mov [mx],ax
1215
	mov ax,[MOUSE_Y]
1212
	mov ax,[MOUSE_Y]
1216
	mov [my],ax
1213
	mov [my],ax
1217
	@@:
1214
	@@:
1218
	pop ax
1215
	pop eax
Line 1219... Line 1216...
1219
;..................................... end 3/4 : modified by vhanla ...................
1216
;..................................... end 3/4 : modified by vhanla ...................
1220
 
1217
 
1221
      cwloop:
1218
      cwloop:
Line 1234... Line 1231...
1234
	mov   ebx,edx
1231
	mov   ebx,edx
1235
	test	[edi+WDATA.fl_wstate],WSTATE_MINIMIZED
1232
	test	[edi+WDATA.fl_wstate],WSTATE_MINIMIZED
1236
	jnz	cwloop
1233
	jnz	cwloop
Line 1237... Line 1234...
1237
 
1234
 
1238
;..................................... start 4/4 : modified by vhanla .................
1235
;..................................... start 4/4 : modified by vhanla .................
1239
       movzx  eax, word [mx]; movzx eax,word[MOUSE_X]
1236
       movzx  eax, word [mx]; movzx eax,word[mouse_x]
1240
       movzx  ebx, word [my]; movzx ebx,word[MOUSE_Y]
1237
       movzx  ebx, word [my]; movzx ebx,word[MOUSE_Y]
1241
;..................................... endt 4/4 : modified by vhanla ..................
1238
;..................................... endt 4/4 : modified by vhanla ..................
1242
	cmp   ecx, eax
1239
	cmp   ecx, eax
1243
	jae   cwloop
1240
	jae   cwloop
Line 1319... Line 1316...
1319
	mov   edx, ecx
1316
	mov   edx, ecx
1320
	sub   edx, [latest_window_touch]
1317
	sub   edx, [latest_window_touch]
1321
	mov   [latest_window_touch], ecx
1318
	mov   [latest_window_touch], ecx
1322
	mov   [latest_window_touch_delta], edx
1319
	mov   [latest_window_touch_delta], edx
Line 1323... Line 1320...
1323
 
1320
 
1324
	mov   cl, [BTN_DOWN]	 ; save for shade check
1321
    mov   cl, byte  [btn_down]     ; save for shade check
1325
	mov   [do_resize], cl
1322
	mov   [do_resize], cl
1326
     no_emulation_righ_button:
1323
     no_emulation_righ_button:
1327
    mov   ecx, [edi + WDATA.box.left]
1324
    mov   ecx, [edi + WDATA.box.left]
Line 1339... Line 1336...
1339
	pop   edx ecx eax
1336
	pop   edx ecx eax
Line 1340... Line 1337...
1340
 
1337
 
1341
	sub   eax, ecx
1338
	sub   eax, ecx
Line 1342... Line 1339...
1342
	sub   ebx, edx
1339
	sub   ebx, edx
1343
 
1340
 
Line 1344... Line 1341...
1344
	mov   esi, [MOUSE_X]
1341
    mov   esi, dword [MOUSE_X]
1345
	mov   [WIN_TEMP_XY], esi
1342
	mov   [WIN_TEMP_XY], esi
1346
 
1343
 
Line 1367... Line 1364...
1367
	pop eax
1364
	pop eax
Line 1368... Line 1365...
1368
 
1365
 
Line 1369... Line 1366...
1369
	call  drawwindowframes
1366
	call  drawwindowframes
1370
 
-
 
Line 1371... Line 1367...
1371
	mov   [reposition],0
1367
 
Line 1372... Line 1368...
1372
	mov   [MOUSE_DOWN],byte 1   ; no reaction to mouse up/down
1368
	mov   [reposition],0
Line 1373... Line 1369...
1373
 
1369
 
Line 1374... Line 1370...
1374
	; move window
1370
	; move window
Line 1375... Line 1371...
1375
 
1371
 
Line 1376... Line 1372...
1376
      newchm:
1372
      newchm:
Line 1377... Line 1373...
1377
 
1373
 
Line 1378... Line 1374...
1378
	mov   [DONT_DRAW_MOUSE],byte 1
1374
    mov   [dont_draw_mouse],  1
1379
 
1375
 
1380
	call  checkidle
1376
	call  checkidle
Line 1381... Line 1377...
1381
 
1377
 
1382
	call  checkVga_N13
1378
	call  checkVga_N13
1383
 
1379
 
Line 1384... Line 1380...
1384
	mov   [MOUSE_BACKGROUND],byte 0
1380
    mov   [mouse_background], 0
1385
 
1381
 
1386
	call  [draw_pointer]
1382
	call  [draw_pointer]
Line 1401... Line 1397...
1401
	push  ax
1397
	push  ax
1402
	push  bx
1398
	push  bx
Line 1403... Line 1399...
1403
 
1399
 
Line 1404... Line 1400...
1404
	call  drawwindowframes
1400
	call  drawwindowframes
1405
 
1401
 
Line 1406... Line 1402...
1406
        mov   ax,[Screen_Max_X]
1402
        mov   ax, word [Screen_Max_X]
1407
        mov   bx,[Screen_Max_Y]
1403
        mov   bx, word [Screen_Max_Y]
Line 1408... Line 1404...
1408
 
1404
 
Line 1475... Line 1471...
1475
 
1471
 
1476
	pop   bx
1472
	pop   bx
1477
	pop   ax
1473
	pop   ax
Line 1478... Line 1474...
1478
	call  drawwindowframes
1474
	call  drawwindowframes
1479
 
1475
 
Line 1480... Line 1476...
1480
	mov   esi,[MOUSE_X]
1476
    mov   esi, dword [MOUSE_X]
1481
	mov   [WIN_TEMP_XY],esi
1477
	mov   [WIN_TEMP_XY],esi
1482
 
1478
 
1483
      cwb:
1479
      cwb:
1484
	cmp   [BTN_DOWN],byte 0
1480
    cmp  byte [btn_down], 0
1485
	jne   newchm
1481
	jne   newchm
1486
				     ; new position done
1482
				     ; new position done
1487
	mov	[DONT_DRAW_MOUSE],byte 1
1483
    mov [dont_draw_mouse], 1
1488
	mov	cl,0
1484
	mov	cl,0
1489
	test	[edi+WDATA.fl_wstate],WSTATE_MAXIMIZED
1485
	test	[edi+WDATA.fl_wstate],WSTATE_MAXIMIZED
Line 1635... Line 1631...
1635
	popad
1631
	popad
Line 1636... Line 1632...
1636
 
1632
 
1637
	cmp   [reposition],0
1633
	cmp   [reposition],0
Line 1638... Line 1634...
1638
	je    retwm
1634
	je    retwm
Line 1639... Line 1635...
1639
 
1635
 
1640
	mov   [DONT_DRAW_MOUSE],byte 1 ; no mouse
1636
    mov   [dont_draw_mouse], 1 ; no mouse
1641
 
1637
 
Line 1664... Line 1660...
1664
 
1660
 
Line 1665... Line 1661...
1665
	mov	[edi+WDATA.fl_redraw],1
1661
	mov	[edi+WDATA.fl_redraw],1
1666
 
1662
 
1667
	mov   ecx,100	      ; wait to avoid mouse residuals
1663
	mov   ecx,100	      ; wait to avoid mouse residuals
1668
      waitre2:
1664
      waitre2:
1669
	mov   [DONT_DRAW_MOUSE],byte 1
1665
    mov   [dont_draw_mouse], 1
1670
	call  checkidle
1666
	call  checkidle
1671
	cmp	[edi+WDATA.fl_redraw],0
1667
	cmp	[edi+WDATA.fl_redraw],0
Line 1672... Line 1668...
1672
	jz    retwm
1668
	jz    retwm
Line 1673... Line 1669...
1673
	loop  waitre2
1669
	loop  waitre2
1674
 
1670
 
1675
      retwm:
-
 
Line 1676... Line 1671...
1676
 
1671
      retwm:
1677
	mov   [DONT_DRAW_MOUSE],byte 0 ; mouse pointer
1672
 
Line 1678... Line 1673...
1678
	mov   [MOUSE_BACKGROUND],byte 0 ; no mouse under
1673
    mov   [dont_draw_mouse],  0 ; mouse pointer