Subversion Repositories Kolibri OS

Rev

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

Rev 9926 Rev 9930
Line 75... Line 75...
75
format binary as "mnt"
75
format binary as "mnt"
Line 76... Line 76...
76
 
76
 
77
include 'macros.inc'
77
include 'macros.inc'
Line 78... Line 78...
78
include 'struct.inc'
78
include 'struct.inc'
Line 79... Line 79...
79
 
79
 
80
$Revision: 9926 $
80
$Revision: 9930 $
Line 895... Line 895...
895
 
895
 
896
        mov     esi, boot_resirqports
896
        mov     esi, boot_resirqports
897
        call    boot_log
897
        call    boot_log
Line -... Line 898...
-
 
898
        call    reserve_irqs_ports
-
 
899
 
-
 
900
        mov     [SLOT_BASE + APPDATA.window], window_data
-
 
901
        mov     [SLOT_BASE + sizeof.APPDATA + APPDATA.window], window_data + sizeof.WDATA
-
 
902
        mov     [SLOT_BASE + sizeof.APPDATA*2 + APPDATA.window], window_data + sizeof.WDATA*2
-
 
903
        mov     [window_data + WDATA.thread], SLOT_BASE
-
 
904
        mov     [window_data + sizeof.WDATA + WDATA.thread], SLOT_BASE + sizeof.APPDATA
898
        call    reserve_irqs_ports
905
        mov     [window_data + sizeof.WDATA*2 + WDATA.thread], SLOT_BASE + sizeof.APPDATA*2
899
 
906
 
900
        call    init_display
907
        call    init_display
901
        mov     eax, [def_cursor]
908
        mov     eax, [def_cursor]
Line 902... Line 909...
902
        mov     [SLOT_BASE + APPDATA.cursor + sizeof.APPDATA], eax
909
        mov     [window_data + sizeof.WDATA + WDATA.cursor], eax
Line 903... Line 910...
903
        mov     [SLOT_BASE + APPDATA.cursor + sizeof.APPDATA*2], eax
910
        mov     [window_data + sizeof.WDATA*2 + WDATA.cursor], eax
904
 
911
 
Line 1177... Line 1184...
1177
        lea     ecx, [sys_proc + PROC.thr_list]
1184
        lea     ecx, [sys_proc + PROC.thr_list]
1178
        list_add_tail ebx, ecx
1185
        list_add_tail ebx, ecx
Line 1179... Line 1186...
1179
 
1186
 
1180
        mov     [edx + APPDATA.wnd_number], dh
1187
        mov     [edx + APPDATA.wnd_number], dh
-
 
1188
        mov     byte [edx + APPDATA.tid], dh
-
 
1189
        movzx   eax, dh
-
 
1190
        shl     eax, BSF sizeof.WDATA
-
 
1191
        add     eax, window_data
Line 1181... Line 1192...
1181
        mov     byte [edx + APPDATA.tid], dh
1192
        mov     [edx + APPDATA.window], eax
1182
 
1193
 
Line 1183... Line 1194...
1183
        ret
1194
        ret
Line 1347... Line 1358...
1347
        xor     eax, eax
1358
        xor     eax, eax
1348
        mov     [BTN_ADDR], dword BUTTON_INFO ; address of button list
1359
        mov     [BTN_ADDR], dword BUTTON_INFO ; address of button list
Line 1349... Line 1360...
1349
 
1360
 
1350
        mov     byte [KEY_COUNT], al              ; keyboard buffer
1361
        mov     byte [KEY_COUNT], al              ; keyboard buffer
1351
        mov     byte [BTN_COUNT], al              ; button buffer
-
 
Line 1352... Line 1362...
1352
;        mov   [MOUSE_X],dword 100*65536+100    ; mouse x/y
1362
        mov     byte [BTN_COUNT], al              ; button buffer
1353
 
1363
 
1354
        pop     eax
1364
        pop     eax
Line 1552... Line 1562...
1552
        sub     edx, eax
1562
        sub     edx, eax
1553
        add     edx, esp
1563
        add     edx, esp
1554
        mov     ebx, [esp+64+32-8+4]
1564
        mov     ebx, [esp+64+32-8+4]
1555
; add window start x & y
1565
; add window start x & y
Line 1556... Line 1566...
1556
 
1566
 
1557
        mov     ecx, [current_slot_idx]
1567
        mov     ecx, [current_slot]
Line 1558... Line 1568...
1558
        shl     ecx, BSF sizeof.WDATA
1568
        mov     ecx, [ecx + APPDATA.window]
1559
 
1569
 
1560
        mov     eax, [window_data + ecx + WDATA.box.left]
1570
        mov     eax, [ecx + WDATA.box.left]
1561
        add     eax, [window_data + ecx + WDATA.clientbox.left]
1571
        add     eax, [ecx + WDATA.clientbox.left]
1562
        shl     eax, 16
1572
        shl     eax, 16
1563
        add     eax, [window_data + ecx + WDATA.box.top]
1573
        add     eax, [ecx + WDATA.box.top]
1564
        add     eax, [window_data + ecx + WDATA.clientbox.top]
1574
        add     eax, [ecx + WDATA.clientbox.top]
1565
        add     ebx, eax
1575
        add     ebx, eax
1566
        mov     ecx, [esp+64+32-12+4]
1576
        mov     ecx, [esp+64+32-12+4]
1567
        mov     eax, [esp+64+8]         ; background color (if given)
1577
        mov     eax, [esp+64+8]         ; background color (if given)
Line 1894... Line 1904...
1894
        cmp     [_display.select_cursor], 0
1904
        cmp     [_display.select_cursor], 0
1895
        je      @f
1905
        je      @f
1896
; restore default cursor before killing
1906
; restore default cursor before killing
1897
        pusha
1907
        pusha
1898
        mov     ecx, [current_slot]
1908
        mov     ecx, [current_slot]
-
 
1909
        mov     ecx, [ecx + APPDATA.window]
1899
        call    restore_default_cursor_before_killing
1910
        call    restore_default_cursor_before_killing
1900
        popa
1911
        popa
1901
@@:
1912
@@:
1902
;--------------------------------------
1913
;--------------------------------------
1903
; kill all sockets this process owns
1914
; kill all sockets this process owns
Line 1922... Line 1933...
1922
.waitterm:            ; wait here for termination
1933
.waitterm:            ; wait here for termination
1923
        call    change_task
1934
        call    change_task
1924
        jmp     .waitterm
1935
        jmp     .waitterm
1925
;------------------------------------------------------------------------------
1936
;------------------------------------------------------------------------------
1926
align 4
1937
align 4
-
 
1938
; ecx - ptr WDATA
1927
restore_default_cursor_before_killing:
1939
restore_default_cursor_before_killing:
1928
        pushfd
1940
        pushfd
1929
        cli
1941
        cli
1930
        mov     eax, [def_cursor]
1942
        mov     eax, [def_cursor]
1931
        mov     [ecx + APPDATA.cursor], eax
1943
        mov     [ecx + WDATA.cursor], eax
Line 1932... Line 1944...
1932
 
1944
 
1933
        movzx   eax, word [MOUSE_Y]
1945
        movzx   eax, word [MOUSE_Y]
1934
        movzx   ebx, word [MOUSE_X]
1946
        movzx   ebx, word [MOUSE_X]
Line 1935... Line 1947...
1935
        mov     eax, [d_width_calc_area + eax*4]
1947
        mov     eax, [d_width_calc_area + eax*4]
1936
 
1948
 
1937
        add     eax, [_display.win_map]
1949
        add     eax, [_display.win_map]
1938
        movzx   edx, byte [ebx + eax]
1950
        movzx   edx, byte [ebx + eax]
Line 1939... Line 1951...
1939
        shl     edx, BSF sizeof.APPDATA
1951
        shl     edx, BSF sizeof.WDATA
1940
        mov     esi, [SLOT_BASE + edx + APPDATA.cursor]
1952
        mov     esi, [window_data + edx + WDATA.cursor]
Line 1941... Line 1953...
1941
 
1953
 
Line 1992... Line 2004...
1992
@@:
2004
@@:
1993
        ret
2005
        ret
1994
;------------------------------------------------------------------------------
2006
;------------------------------------------------------------------------------
1995
sysfn_shutdown:          ; 18.9 = system shutdown
2007
sysfn_shutdown:          ; 18.9 = system shutdown
1996
        cmp     ecx, SYSTEM_SHUTDOWN
2008
        cmp     ecx, SYSTEM_SHUTDOWN
1997
        jl      exit_for_anyone
2009
        jl      .exit_for_anyone
1998
        cmp     ecx, SYSTEM_RESTART
2010
        cmp     ecx, SYSTEM_RESTART
1999
        jg      exit_for_anyone
2011
        jg      .exit_for_anyone
2000
        mov     [BOOT.shutdown_type], cl
2012
        mov     [BOOT.shutdown_type], cl
Line 2001... Line 2013...
2001
 
2013
 
2002
        mov     eax, [thread_count]
2014
        mov     eax, [thread_count]
2003
        mov     [SYS_SHUTDOWN], al
2015
        mov     [SYS_SHUTDOWN], al
2004
        mov     [shutdown_processes], eax
2016
        mov     [shutdown_processes], eax
2005
        call    wakeup_osloop
2017
        call    wakeup_osloop
2006
        and     dword [esp + SYSCALL_STACK.eax], 0
2018
        and     dword [esp + SYSCALL_STACK.eax], 0
2007
 exit_for_anyone:
2019
.exit_for_anyone:
2008
        ret
2020
        ret
2009
  uglobal
2021
  uglobal
2010
   shutdown_processes:
2022
   shutdown_processes:
2011
                       dd 0x0
2023
                       dd 0x0
Line 2053... Line 2065...
2053
        cmp     [_display.select_cursor], 0
2065
        cmp     [_display.select_cursor], 0
2054
        je      .restore_end
2066
        je      .restore_end
2055
; restore default cursor before killing
2067
; restore default cursor before killing
2056
        pusha
2068
        pusha
2057
        mov     ecx, [esp+32]
2069
        mov     ecx, [esp+32]
2058
        shl     ecx, BSF sizeof.APPDATA
2070
        shl     ecx, BSF sizeof.WDATA
2059
        add     ecx, SLOT_BASE
2071
        add     ecx, window_data
2060
        mov     eax, [def_cursor]
2072
        mov     eax, [def_cursor]
2061
        cmp     [ecx + APPDATA.cursor], eax
2073
        cmp     [ecx + WDATA.cursor], eax
2062
        je      @f
2074
        je      @f
2063
        call    restore_default_cursor_before_killing
2075
        call    restore_default_cursor_before_killing
2064
@@:
2076
@@:
2065
        popa
2077
        popa
2066
.restore_end:
2078
.restore_end:
Line 2170... Line 2182...
2170
        je      .fail
2182
        je      .fail
Line 2171... Line 2183...
2171
 
2183
 
2172
        mov     eax, edx
2184
        mov     eax, edx
Line 2173... Line 2185...
2173
        shl     edx, BSF sizeof.WDATA
2185
        shl     edx, BSF sizeof.WDATA
2174
 
2186
 
Line 2175... Line 2187...
2175
        cmp     [edx*(sizeof.APPDATA/sizeof.WDATA) + SLOT_BASE + APPDATA.state], TSTATE_FREE
2187
        test    [window_data + edx + WDATA.fl_wstate], WSTATE_USED
2176
        je      .fail
2188
        jz      .fail
Line 2177... Line 2189...
2177
 
2189
 
Line 2202... Line 2214...
2202
        call    window._.set_screen
2214
        call    window._.set_screen
2203
        call    window._.set_top_wnd
2215
        call    window._.set_top_wnd
2204
        call    window._.redraw_top_wnd
2216
        call    window._.redraw_top_wnd
Line 2205... Line 2217...
2205
 
2217
 
2206
        shl     esi, BSF sizeof.WDATA
2218
        shl     esi, BSF sizeof.WDATA
Line 2207... Line 2219...
2207
        mov     [esi + window_data + WDATA.fl_redraw], 1
2219
        mov     [esi + window_data + WDATA.fl_redraw], WSTATE_REDRAW
2208
 
2220
 
2209
 
2221
 
Line 2638... Line 2650...
2638
.no_widgets_away:
2650
.no_widgets_away:
Line 2639... Line 2651...
2639
 
2651
 
2640
        cmp     ebx, 2
2652
        cmp     ebx, 2
Line 2641... Line 2653...
2641
        jnz     .srl1
2653
        jnz     .srl1
2642
 
2654
 
2643
        mov     edx, [current_slot_idx]      ; return whole screen draw area for this app
2655
        mov     edx, [current_slot]      ; return whole screen draw area for this app
2644
        shl     edx, BSF sizeof.WDATA
2656
        mov     edx, [edx + APPDATA.window]
2645
        mov     [draw_data + edx + RECT.left], 0
2657
        mov     [edx + WDATA.draw_data.left], 0
2646
        mov     [draw_data + edx + RECT.top], 0
2658
        mov     [edx + WDATA.draw_data.top], 0
2647
        mov     eax, [_display.width]
2659
        mov     eax, [_display.width]
2648
        dec     eax
2660
        dec     eax
2649
        mov     [draw_data + edx + RECT.right], eax
2661
        mov     [edx + WDATA.draw_data.right], eax
2650
        mov     eax, [_display.height]
2662
        mov     eax, [_display.height]
Line 2651... Line 2663...
2651
        dec     eax
2663
        dec     eax
2652
        mov     [draw_data + edx + RECT.bottom], eax
2664
        mov     [edx + WDATA.draw_data.bottom], eax
Line 2653... Line 2665...
2653
 
2665
 
Line 2861... Line 2873...
2861
        cmp     [background_defined], 0
2873
        cmp     [background_defined], 0
2862
        jz      nobackgr
2874
        jz      nobackgr
2863
;--------------------------------------
2875
;--------------------------------------
2864
align 4
2876
align 4
2865
backgr:
2877
backgr:
2866
        mov     eax, [draw_data + sizeof.WDATA + RECT.left]
2878
        mov     eax, [background_window + WDATA.draw_data.left]
2867
        shl     eax, 16
2879
        shl     eax, 16
2868
        add     eax, [draw_data + sizeof.WDATA + RECT.right]
2880
        add     eax, [background_window + WDATA.draw_data.right]
2869
        mov     [BG_Rect_X_left_right], eax ; [left]*65536 + [right]
2881
        mov     [BG_Rect_X_left_right], eax ; [left]*65536 + [right]
Line 2870... Line 2882...
2870
 
2882
 
2871
        mov     eax, [draw_data + sizeof.WDATA + RECT.top]
2883
        mov     eax, [background_window + WDATA.draw_data.top]
2872
        shl     eax, 16
2884
        shl     eax, 16
2873
        add     eax, [draw_data + sizeof.WDATA + RECT.bottom]
2885
        add     eax, [background_window + WDATA.draw_data.bottom]
Line 2874... Line 2886...
2874
        mov     [BG_Rect_Y_top_bottom], eax ; [top]*65536 + [bottom]
2886
        mov     [BG_Rect_Y_top_bottom], eax ; [top]*65536 + [bottom]
2875
 
2887
 
2876
        call    drawbackground
2888
        call    drawbackground
Line 2882... Line 2894...
2882
        xor     edi, edi
2894
        xor     edi, edi
2883
        mov     ecx, [thread_count]
2895
        mov     ecx, [thread_count]
2884
;--------------------------------------
2896
;--------------------------------------
2885
align 4
2897
align 4
2886
set_bgr_event:
2898
set_bgr_event:
2887
        add     edi, sizeof.APPDATA
2899
        add     edi, sizeof.WDATA
2888
        mov     eax, [BG_Rect_X_left_right]
2900
        mov     eax, [BG_Rect_X_left_right]
2889
        mov     edx, [BG_Rect_Y_top_bottom]
2901
        mov     edx, [BG_Rect_Y_top_bottom]
2890
        cmp     [SLOT_BASE + edi + APPDATA.draw_bgr_x], 0
2902
        cmp     [window_data + edi + WDATA.draw_bgr_x], 0
2891
        jz      .set
2903
        jz      .set
2892
.join:
2904
.join:
2893
        cmp     word [SLOT_BASE + edi + APPDATA.draw_bgr_x], ax
2905
        cmp     word [window_data + edi + WDATA.draw_bgr_x], ax
2894
        jae     @f
2906
        jae     @f
2895
        mov     word [SLOT_BASE + edi + APPDATA.draw_bgr_x], ax
2907
        mov     word [window_data + edi + WDATA.draw_bgr_x], ax
2896
@@:
2908
@@:
2897
        shr     eax, 16
2909
        shr     eax, 16
2898
        cmp     word [SLOT_BASE + edi + APPDATA.draw_bgr_x + 2], ax
2910
        cmp     word [window_data + edi + WDATA.draw_bgr_x + 2], ax
2899
        jbe     @f
2911
        jbe     @f
2900
        mov     word [SLOT_BASE + edi + APPDATA.draw_bgr_x + 2], ax
2912
        mov     word [window_data + edi + WDATA.draw_bgr_x + 2], ax
2901
@@:
2913
@@:
2902
        cmp     word [SLOT_BASE + edi + APPDATA.draw_bgr_y], dx
2914
        cmp     word [window_data + edi + WDATA.draw_bgr_y], dx
2903
        jae     @f
2915
        jae     @f
2904
        mov     word [SLOT_BASE + edi + APPDATA.draw_bgr_y], dx
2916
        mov     word [window_data + edi + WDATA.draw_bgr_y], dx
2905
@@:
2917
@@:
2906
        shr     edx, 16
2918
        shr     edx, 16
2907
        cmp     word [SLOT_BASE + edi + APPDATA.draw_bgr_y+2], dx
2919
        cmp     word [window_data + edi + WDATA.draw_bgr_y+2], dx
2908
        jbe     @f
2920
        jbe     @f
2909
        mov     word [SLOT_BASE + edi + APPDATA.draw_bgr_y+2], dx
2921
        mov     word [window_data + edi + WDATA.draw_bgr_y+2], dx
2910
@@:
2922
@@:
2911
        jmp     .common
2923
        jmp     .common
2912
.set:
2924
.set:
2913
        mov     [SLOT_BASE + edi + APPDATA.draw_bgr_x], eax
2925
        mov     [window_data + edi + WDATA.draw_bgr_x], eax
2914
        mov     [SLOT_BASE + edi + APPDATA.draw_bgr_y], edx
2926
        mov     [window_data + edi + WDATA.draw_bgr_y], edx
2915
.common:
2927
.common:
-
 
2928
        mov     eax, [window_data + edi + WDATA.thread]
-
 
2929
        test    eax, eax
-
 
2930
        jz      @f
2916
        or      [SLOT_BASE + edi + APPDATA.occurred_events], EVENT_BACKGROUND
2931
        or      [eax + APPDATA.occurred_events], EVENT_BACKGROUND
-
 
2932
@@:
-
 
2933
        sub     ecx, 1
-
 
2934
        jnz     set_bgr_event
2917
        loop    set_bgr_event
2935
        ;loop    set_bgr_event
2918
        pop     edi ecx
2936
        pop     edi ecx
2919
;--------- set event 5 stop -----------
2937
;--------- set event 5 stop -----------
2920
        dec     [REDRAW_BACKGROUND]     ; got new update request?
2938
        dec     [REDRAW_BACKGROUND]     ; got new update request?
2921
        jnz     backgr
2939
        jnz     backgr
Line 2922... Line 2940...
2922
 
2940
 
2923
        xor     eax, eax
2941
        xor     eax, eax
2924
        mov     [draw_data + sizeof.WDATA + RECT.left], eax
2942
        mov     [background_window + WDATA.draw_data.left], eax
2925
        mov     [draw_data + sizeof.WDATA + RECT.top], eax
2943
        mov     [background_window + WDATA.draw_data.top], eax
2926
        mov     [draw_data + sizeof.WDATA + RECT.right], eax
2944
        mov     [background_window + WDATA.draw_data.right], eax
2927
        mov     [draw_data + sizeof.WDATA + RECT.bottom], eax
2945
        mov     [background_window + WDATA.draw_data.bottom], eax
2928
;--------------------------------------
2946
;--------------------------------------
2929
align 4
2947
align 4
2930
nobackgr:
2948
nobackgr:
2931
; system shutdown request
2949
; system shutdown request
Line 2984... Line 3002...
2984
        cmp     cl, TSTATE_TERMINATING
3002
        cmp     cl, TSTATE_TERMINATING
2985
        jnz     .noterminate
3003
        jnz     .noterminate
2986
.terminate:
3004
.terminate:
2987
        pushad
3005
        pushad
2988
        mov     ecx, eax
3006
        mov     ecx, eax
2989
        shl     ecx, BSF sizeof.APPDATA
3007
        shl     ecx, BSF sizeof.WDATA
2990
        add     ecx, SLOT_BASE
3008
        add     ecx, window_data
2991
        call    restore_default_cursor_before_killing
3009
        call    restore_default_cursor_before_killing
2992
        popad
3010
        popad
Line 2993... Line 3011...
2993
 
3011
 
2994
        pushad
3012
        pushad
Line 3077... Line 3095...
3077
 
3095
 
3078
        cmp     [REDRAW_BACKGROUND], 0
3096
        cmp     [REDRAW_BACKGROUND], 0
Line 3079... Line 3097...
3079
        jz      .az
3097
        jz      .az
3080
 
-
 
3081
        mov     dl, 0
3098
 
3082
        lea     eax, [edi + draw_data - window_data]
3099
        mov     dl, 0
3083
        mov     ebx, [draw_limits.left]
3100
        mov     ebx, [draw_limits.left]
Line 3084... Line 3101...
3084
        cmp     ebx, [eax + RECT.left]
3101
        cmp     ebx, [edi + WDATA.draw_data.left]
3085
        jae     @f
3102
        jae     @f
3086
 
3103
 
3087
        mov     [eax + RECT.left], ebx
3104
        mov     [edi + WDATA.draw_data.left], ebx
3088
        mov     dl, 1
3105
        mov     dl, 1
3089
;--------------------------------------
3106
;--------------------------------------
3090
align 4
3107
align 4
3091
@@:
3108
@@:
Line 3092... Line 3109...
3092
        mov     ebx, [draw_limits.top]
3109
        mov     ebx, [draw_limits.top]
3093
        cmp     ebx, [eax + RECT.top]
3110
        cmp     ebx, [edi + WDATA.draw_data.top]
3094
        jae     @f
3111
        jae     @f
3095
 
3112
 
3096
        mov     [eax + RECT.top], ebx
3113
        mov     [edi + WDATA.draw_data.top], ebx
3097
        mov     dl, 1
3114
        mov     dl, 1
3098
;--------------------------------------
3115
;--------------------------------------
3099
align 4
3116
align 4
Line 3100... Line 3117...
3100
@@:
3117
@@:
3101
        mov     ebx, [draw_limits.right]
3118
        mov     ebx, [draw_limits.right]
3102
        cmp     ebx, [eax + RECT.right]
3119
        cmp     ebx, [edi + WDATA.draw_data.right]
3103
        jbe     @f
3120
        jbe     @f
3104
 
3121
 
3105
        mov     [eax + RECT.right], ebx
3122
        mov     [edi + WDATA.draw_data.right], ebx
3106
        mov     dl, 1
3123
        mov     dl, 1
3107
;--------------------------------------
3124
;--------------------------------------
Line 3108... Line 3125...
3108
align 4
3125
align 4
3109
@@:
3126
@@:
3110
        mov     ebx, [draw_limits.bottom]
3127
        mov     ebx, [draw_limits.bottom]
3111
        cmp     ebx, [eax + RECT.bottom]
3128
        cmp     ebx, [edi + WDATA.draw_data.bottom]
3112
        jbe     @f
3129
        jbe     @f
3113
 
3130
 
Line 3121... Line 3138...
3121
        jmp     newdw8
3138
        jmp     newdw8
3122
;--------------------------------------
3139
;--------------------------------------
3123
align 4
3140
align 4
3124
.az:
3141
.az:
3125
        mov     eax, edi
3142
        mov     eax, edi
3126
        add     eax, draw_data-window_data
-
 
Line 3127... Line 3143...
3127
 
3143
 
3128
        mov     ebx, [draw_limits.left]        ; set limits
3144
        mov     ebx, [draw_limits.left]        ; set limits
3129
        mov     [eax + RECT.left], ebx
3145
        mov     [eax + WDATA.draw_data.left], ebx
3130
        mov     ebx, [draw_limits.top]
3146
        mov     ebx, [draw_limits.top]
3131
        mov     [eax + RECT.top], ebx
3147
        mov     [eax + WDATA.draw_data.top], ebx
3132
        mov     ebx, [draw_limits.right]
3148
        mov     ebx, [draw_limits.right]
3133
        mov     [eax + RECT.right], ebx
3149
        mov     [eax + WDATA.draw_data.right], ebx
3134
        mov     ebx, [draw_limits.bottom]
3150
        mov     ebx, [draw_limits.bottom]
3135
        mov     [eax + RECT.bottom], ebx
-
 
3136
 
-
 
Line 3137... Line 3151...
3137
        sub     eax, draw_data-window_data
3151
        mov     [eax + WDATA.draw_data.bottom], ebx
3138
 
3152
 
3139
        cmp     dword [esp], 1
3153
        cmp     dword [esp], 1
3140
        jne     nobgrd
3154
        jne     nobgrd
Line 3201... Line 3215...
3201
;--------------------------------------
3215
;--------------------------------------
3202
align 4
3216
align 4
3203
.found:
3217
.found:
3204
        pop     ebp edi eax
3218
        pop     ebp edi eax
Line 3205... Line 3219...
3205
 
3219
 
3206
        mov     [eax + WDATA.fl_redraw], byte 1  ; mark as redraw
3220
        mov     [eax + WDATA.fl_redraw], WSTATE_REDRAW  ; mark as redraw
3207
;--------------------------------------
3221
;--------------------------------------
3208
align 4
3222
align 4
3209
ricino:
3223
ricino:
3210
not_this_task:
3224
not_this_task:
Line 3222... Line 3236...
3222
        mov     edi, [_display.win_map]              ; set os to use all pixels
3236
        mov     edi, [_display.win_map]              ; set os to use all pixels
3223
        mov     eax, 0x01010101
3237
        mov     eax, 0x01010101
3224
        mov     ecx, [_display.win_map_size]
3238
        mov     ecx, [_display.win_map_size]
3225
        shr     ecx, 2
3239
        shr     ecx, 2
3226
        rep stosd
3240
        rep stosd
3227
        mov     byte[window_data + sizeof.WDATA + WDATA.z_modif], ZPOS_DESKTOP
3241
        mov     byte[background_window + WDATA.z_modif], ZPOS_DESKTOP
3228
        mov     [REDRAW_BACKGROUND], 0
3242
        mov     [REDRAW_BACKGROUND], 0
3229
        ret
3243
        ret
3230
;-----------------------------------------------------------------------------
3244
;-----------------------------------------------------------------------------
3231
uglobal
3245
uglobal
3232
  imax    dd 0x0
3246
  imax    dd 0x0