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 |