Subversion Repositories Kolibri OS

Rev

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

Rev 1391 Rev 1392
Line 55... Line 55...
55
;;
55
;;
56
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 57... Line 57...
57
 
57
 
Line 58... Line 58...
58
include 'macros.inc'
58
include 'macros.inc'
Line 59... Line 59...
59
 
59
 
Line 60... Line 60...
60
$Revision: 1391 $
60
$Revision: 1392 $
Line 2434... Line 2434...
2434
;    cmp   [bgrchanged],1 ;0
2434
;    cmp   [bgrchanged],1 ;0
2435
;    je    nosb31
2435
;    je    nosb31
2436
;draw_background_temp:
2436
;draw_background_temp:
2437
;    mov   [bgrchanged],1 ;0
2437
;    mov   [bgrchanged],1 ;0
2438
    mov    [background_defined], 1
2438
    mov    [background_defined], 1
-
 
2439
    mov    byte[BACKGROUND_CHANGED], 1
2439
    call  force_redraw_background
2440
    call  force_redraw_background
2440
    mov    [REDRAW_BACKGROUND], byte 2
-
 
2441
   nosb31:
2441
   nosb31:
2442
    ret
2442
    ret
2443
  nosb3:
2443
  nosb3:
Line 2444... Line 2444...
2444
 
2444
 
Line 2555... Line 2555...
2555
 
2555
 
2556
nosb7:
2556
nosb7:
Line 2557... Line 2557...
2557
    ret
2557
    ret
2558
 
2558
 
2559
force_redraw_background:
2559
force_redraw_background:
2560
    and   [draw_data+32 + RECT.left],dword 0
2560
    and   [draw_data+32 + RECT.left], 0
2561
    and   [draw_data+32 + RECT.top],dword 0
2561
    and   [draw_data+32 + RECT.top], 0
2562
    push  eax ebx
2562
    push  eax ebx
2563
    mov   eax,[Screen_Max_X]
2563
    mov   eax,[Screen_Max_X]
2564
    mov   ebx,[Screen_Max_Y]
2564
    mov   ebx,[Screen_Max_Y]
2565
    mov   [draw_data+32 + RECT.right],eax
2565
    mov   [draw_data+32 + RECT.right],eax
2566
    mov   [draw_data+32 + RECT.bottom],ebx
2566
    mov   [draw_data+32 + RECT.bottom],ebx
2567
    pop   ebx eax
2567
    pop   ebx eax
Line 2568... Line 2568...
2568
    mov   byte [REDRAW_BACKGROUND], 1
2568
    inc   byte[REDRAW_BACKGROUND]
Line 2569... Line 2569...
2569
    ret
2569
    ret
Line 3081... Line 3081...
3081
    add   edi, 256
3081
    add   edi, 256
3082
    or    [edi+SLOT_BASE+APPDATA.event_mask], dword 100000b
3082
    or    [edi+SLOT_BASE+APPDATA.event_mask], dword 100000b
3083
    loop  set_mouse_event
3083
    loop  set_mouse_event
Line 3084... Line 3084...
3084
 
3084
 
3085
mouse_not_active:
-
 
3086
    cmp   [REDRAW_BACKGROUND],byte 0               ; background update ?
-
 
3087
    jz    nobackgr
-
 
3088
    cmp    [background_defined], 0
-
 
3089
    jz    nobackgr
3085
mouse_not_active:
3090
    cmp   [REDRAW_BACKGROUND], byte 2
3086
    cmp   byte[BACKGROUND_CHANGED], 0
3091
    jnz   no_set_bgr_event
3087
    jz    no_set_bgr_event
3092
    xor   edi, edi
3088
    xor   edi, edi
3093
    mov   ecx,  [TASK_COUNT]
3089
    mov   ecx, [TASK_COUNT]
3094
set_bgr_event:
3090
set_bgr_event:
3095
    add   edi, 256
3091
    add   edi, 256
3096
    or    [edi+SLOT_BASE+APPDATA.event_mask], 16
3092
    or    [edi+SLOT_BASE+APPDATA.event_mask], 16
-
 
3093
    loop  set_bgr_event
3097
    loop  set_bgr_event
3094
    mov   byte[BACKGROUND_CHANGED], 0
-
 
3095
no_set_bgr_event:
-
 
3096
    cmp   byte[REDRAW_BACKGROUND], 0               ; background update ?
-
 
3097
    jz    nobackgr
-
 
3098
    cmp    [background_defined], 0
3098
no_set_bgr_event:
3099
    jz    nobackgr
3099
;    mov   [draw_data+32 + RECT.left],dword 0
3100
;    mov   [draw_data+32 + RECT.left],dword 0
3100
;    mov   [draw_data+32 + RECT.top],dword 0
3101
;    mov   [draw_data+32 + RECT.top],dword 0
3101
;    mov   eax,[Screen_Max_X]
3102
;    mov   eax,[Screen_Max_X]
3102
;    mov   ebx,[Screen_Max_Y]
3103
;    mov   ebx,[Screen_Max_Y]
3103
;    mov   [draw_data+32 + RECT.right],eax
3104
;    mov   [draw_data+32 + RECT.right],eax
-
 
3105
;    mov   [draw_data+32 + RECT.bottom],ebx
3104
;    mov   [draw_data+32 + RECT.bottom],ebx
3106
@@:
-
 
3107
    call  drawbackground
3105
    call  drawbackground
3108
    xor   eax, eax
-
 
3109
    xchg  al, [REDRAW_BACKGROUND]
-
 
3110
    test  al, al                                   ; got new update request?
-
 
3111
    jnz   @b
-
 
3112
    mov   [draw_data+32 + RECT.left], eax
-
 
3113
    mov   [draw_data+32 + RECT.top], eax
-
 
3114
    mov   [draw_data+32 + RECT.right], eax
3106
    mov   [REDRAW_BACKGROUND],byte 0
3115
    mov   [draw_data+32 + RECT.bottom], eax
Line 3107... Line 3116...
3107
    mov   [MOUSE_BACKGROUND],byte 0
3116
    mov   [MOUSE_BACKGROUND],byte 0
Line 3108... Line 3117...
3108
 
3117
 
Line 3217... Line 3226...
3217
 
3226
 
Line 3218... Line 3227...
3218
        bgli:
3227
        bgli:
3219
 
3228
 
3220
         cmp   ecx,1
3229
         cmp   ecx,1
3221
         jnz   .az
-
 
3222
         mov   al,[REDRAW_BACKGROUND]
3230
         jnz   .az
3223
         cmp   al,2
3231
;         cmp   byte[BACKGROUND_CHANGED], 0
3224
         jz    newdw8
3232
;         jnz   newdw8
-
 
3233
         cmp   byte[REDRAW_BACKGROUND], 0
3225
         test  al,al
3234
         jz    .az
3226
         jz    .az
3235
         mov   dl, 0
3227
         lea   eax,[edi+draw_data-window_data]
3236
         lea   eax,[edi+draw_data-window_data]
3228
         mov   ebx,[draw_limits.left]
3237
         mov   ebx,[draw_limits.left]
3229
         cmp   ebx,[eax+RECT.left]
3238
         cmp   ebx,[eax+RECT.left]
-
 
3239
         jae   @f
3230
         jae   @f
3240
         mov   [eax+RECT.left],ebx
3231
         mov   [eax+RECT.left],ebx
3241
         mov   dl, 1
3232
        @@:
3242
        @@:
3233
         mov   ebx,[draw_limits.top]
3243
         mov   ebx,[draw_limits.top]
3234
         cmp   ebx,[eax+RECT.top]
3244
         cmp   ebx,[eax+RECT.top]
-
 
3245
         jae   @f
3235
         jae   @f
3246
         mov   [eax+RECT.top],ebx
3236
         mov   [eax+RECT.top],ebx
3247
         mov   dl, 1
3237
        @@:
3248
        @@:
3238
         mov   ebx,[draw_limits.right]
3249
         mov   ebx,[draw_limits.right]
3239
         cmp   ebx,[eax+RECT.right]
3250
         cmp   ebx,[eax+RECT.right]
-
 
3251
         jbe   @f
3240
         jbe   @f
3252
         mov   [eax+RECT.right],ebx
3241
         mov   [eax+RECT.right],ebx
3253
         mov   dl, 1
3242
        @@:
3254
        @@:
3243
         mov   ebx,[draw_limits.bottom]
3255
         mov   ebx,[draw_limits.bottom]
3244
         cmp   ebx,[eax+RECT.bottom]
3256
         cmp   ebx,[eax+RECT.bottom]
-
 
3257
         jbe   @f
3245
         jbe   @f
3258
         mov   [eax+RECT.bottom],ebx
-
 
3259
         mov   dl, 1
3246
         mov   [eax+RECT.bottom],ebx
3260
        @@:
3247
        @@:
3261
         add   byte[REDRAW_BACKGROUND], dl
Line 3248... Line 3262...
3248
         jmp   newdw8
3262
         jmp   newdw8
3249
        .az:
3263
        .az:
Line 3262... Line 3276...
3262
 
3276
 
Line 3263... Line 3277...
3263
         sub   eax,draw_data-window_data
3277
         sub   eax,draw_data-window_data
3264
 
3278
 
3265
         cmp   dword [esp],1
3279
         cmp   dword [esp],1
Line 3266... Line 3280...
3266
         jne   nobgrd
3280
         jne   nobgrd
3267
         mov   byte [REDRAW_BACKGROUND], 1
3281
         inc   byte[REDRAW_BACKGROUND]
Line 3268... Line 3282...
3268
 
3282
 
Line 3292... Line 3306...
3292
        mov   ecx, [_WinMapSize]
3306
        mov   ecx, [_WinMapSize]
3293
        shr   ecx, 2
3307
        shr   ecx, 2
3294
        rep   stosd
3308
        rep   stosd
Line 3295... Line 3309...
3295
 
3309
 
-
 
3310
        mov   byte[REDRAW_BACKGROUND], 0              ; do not draw background!
Line 3296... Line 3311...
3296
        mov   byte [REDRAW_BACKGROUND], 0              ; do not draw background!
3311
        mov   byte[BACKGROUND_CHANGED], 0
Line 3297... Line 3312...
3297
 
3312
 
3298
        ret
3313
        ret