forked from KolibriOS/kolibrios
fix click on window activation, fix background redraw, cleaning
git-svn-id: svn://kolibrios.org@6585 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
22e2a5b010
commit
e47ae79991
@ -338,6 +338,11 @@ cur_saved_data:
|
|||||||
rb 4096
|
rb 4096
|
||||||
fpu_data:
|
fpu_data:
|
||||||
rb 512
|
rb 512
|
||||||
|
draw_data:
|
||||||
|
rb 32*256
|
||||||
|
BPSLine_calc_area rd 1440
|
||||||
|
d_width_calc_area rd 1140
|
||||||
|
mouseunder rd 16*24
|
||||||
|
|
||||||
mem_block_list rd 64*2
|
mem_block_list rd 64*2
|
||||||
mem_used_list rd 64*2
|
mem_used_list rd 64*2
|
||||||
@ -345,57 +350,124 @@ mem_hash_cnt rd 64
|
|||||||
|
|
||||||
thr_slot_map rd 8
|
thr_slot_map rd 8
|
||||||
|
|
||||||
cpu_freq rq 1
|
|
||||||
|
|
||||||
heap_mutex MUTEX
|
|
||||||
heap_size rd 1
|
|
||||||
heap_free rd 1
|
|
||||||
heap_blocks rd 1
|
|
||||||
free_blocks rd 1
|
|
||||||
|
|
||||||
mem_block_mask rd 2
|
|
||||||
next_memblock rd 1
|
|
||||||
|
|
||||||
mst MEM_STATE
|
|
||||||
|
|
||||||
pte_valid_mask rd 1
|
|
||||||
page_start rd 1
|
|
||||||
page_end rd 1
|
|
||||||
sys_page_map rd 1
|
|
||||||
os_stack_seg rd 1
|
|
||||||
|
|
||||||
|
|
||||||
srv.fd rd 1
|
|
||||||
srv.bk rd 1
|
|
||||||
|
|
||||||
align 16
|
|
||||||
|
|
||||||
_display display_t
|
_display display_t
|
||||||
bios_fb FRB
|
bios_fb FRB
|
||||||
|
|
||||||
LFBAddress dd ?
|
mst MEM_STATE
|
||||||
|
|
||||||
SCR_MODE rw 2
|
cpu_freq dq ?
|
||||||
|
|
||||||
|
heap_mutex MUTEX
|
||||||
|
heap_size dd ?
|
||||||
|
heap_free dd ?
|
||||||
|
heap_blocks dd ?
|
||||||
|
free_blocks dd ?
|
||||||
|
mem_block_mask rd 2
|
||||||
|
next_memblock dd ?
|
||||||
|
|
||||||
|
pte_valid_mask dd ?
|
||||||
|
page_start dd ?
|
||||||
|
page_end dd ?
|
||||||
|
sys_page_map dd ?
|
||||||
|
os_stack_seg dd ?
|
||||||
|
|
||||||
|
srv.fd dd ?
|
||||||
|
srv.bk dd ?
|
||||||
|
|
||||||
|
LFBAddress dd ?
|
||||||
|
|
||||||
PUTPIXEL dd ?
|
PUTPIXEL dd ?
|
||||||
GETPIXEL dd ?
|
GETPIXEL dd ?
|
||||||
|
|
||||||
if VESA_1_2_VIDEO
|
if VESA_1_2_VIDEO
|
||||||
BANK_SWITCH rd 1 reserved for vesa 1.2
|
BANK_SWITCH dd ? ; reserved for vesa 1.2
|
||||||
BANK_RW rd 1
|
BANK_RW dd ?
|
||||||
end if
|
end if
|
||||||
|
|
||||||
REDRAW_BACKGROUND rb 4
|
|
||||||
|
|
||||||
align 4
|
|
||||||
draw_data: rb 32*256
|
|
||||||
BPSLine_calc_area rd 1440
|
|
||||||
d_width_calc_area rd 1140
|
|
||||||
|
|
||||||
mouseunder rd 16*24
|
|
||||||
|
|
||||||
MOUSE_PICTURE dd ?
|
MOUSE_PICTURE dd ?
|
||||||
|
|
||||||
|
def_cursor dd ?
|
||||||
|
def_cursor_clock dd ?
|
||||||
|
current_cursor dd ?
|
||||||
|
hw_cursor dd ?
|
||||||
|
cur_saved_base dd ?
|
||||||
|
|
||||||
|
cur.lock dd ? ; 1 - lock update, 2- hide
|
||||||
|
cur.left dd ? ; cursor clip box
|
||||||
|
cur.top dd ?
|
||||||
|
cur.w dd ?
|
||||||
|
cur.h dd ?
|
||||||
|
|
||||||
|
ipc_tmp dd ?
|
||||||
|
ipc_pdir dd ?
|
||||||
|
ipc_ptab dd ?
|
||||||
|
|
||||||
|
proc_mem_map dd ?
|
||||||
|
proc_mem_pdir dd ?
|
||||||
|
proc_mem_tab dd ?
|
||||||
|
|
||||||
|
tmp_task_ptab dd ?
|
||||||
|
|
||||||
|
default_io_map dd ?
|
||||||
|
|
||||||
|
LFBSize dd ?
|
||||||
|
|
||||||
|
current_process dd ?
|
||||||
|
current_slot dd ? ; i.e. cureent thread
|
||||||
|
|
||||||
|
; device addresses
|
||||||
|
mididp dd ?
|
||||||
|
midisp dd ?
|
||||||
|
|
||||||
|
cdbase dd ?
|
||||||
|
cdid dd ?
|
||||||
|
|
||||||
|
hdbase dd ? ; for boot 0x1f0
|
||||||
|
hdid dd ?
|
||||||
|
hdpos dd ? ; for boot 0x1
|
||||||
|
cdpos dd ?
|
||||||
|
|
||||||
|
;CPUID information
|
||||||
|
cpu_vendor rd 3
|
||||||
|
cpu_sign dd ?
|
||||||
|
cpu_info dd ?
|
||||||
|
cpu_caps rd 4
|
||||||
|
|
||||||
|
pg_data PG_DATA
|
||||||
|
heap_test dd ?
|
||||||
|
|
||||||
|
skin_data dd ?
|
||||||
|
|
||||||
|
mouse_active dd ?
|
||||||
|
mouse_pause dd ?
|
||||||
|
|
||||||
|
BgrDrawMode dd ?
|
||||||
|
BgrDataWidth dd ?
|
||||||
|
BgrDataHeight dd ?
|
||||||
|
|
||||||
|
buttontype dd ?
|
||||||
|
windowtypechanged dd ?
|
||||||
|
|
||||||
|
debug_step_pointer dd ?
|
||||||
|
|
||||||
|
lba_read_enabled dd ? ; 0 = disabled , 1 = enabled
|
||||||
|
pci_access_enabled dd ? ; 0 = disabled , 1 = enabled
|
||||||
|
|
||||||
|
NumBiosDisks dd ?
|
||||||
|
BiosDisksData rb 200h
|
||||||
|
BiosDiskCaches rb 80h*(cache_ide1-cache_ide0)
|
||||||
|
BiosDiskPartitions rd 80h
|
||||||
|
|
||||||
|
img_background dd ?
|
||||||
|
mem_BACKGROUND dd ?
|
||||||
|
static_background_data dd ?
|
||||||
|
|
||||||
|
hd1_status dd ? ; 0 - free : other - pid
|
||||||
|
application_table_owner dd ? ; 0 - free : other - pid
|
||||||
|
application_table_mutex MUTEX
|
||||||
|
|
||||||
|
redrawmouse_unconditional dd ?
|
||||||
|
|
||||||
MOUSE_SCROLL_H rw 1
|
MOUSE_SCROLL_H rw 1
|
||||||
MOUSE_X: rw 1
|
MOUSE_X: rw 1
|
||||||
MOUSE_Y: rw 1
|
MOUSE_Y: rw 1
|
||||||
@ -403,105 +475,20 @@ MOUSE_SCROLL_V rw 1
|
|||||||
|
|
||||||
X_UNDER rw 1
|
X_UNDER rw 1
|
||||||
Y_UNDER rw 1
|
Y_UNDER rw 1
|
||||||
COLOR_TEMP rd 1
|
COLOR_TEMP dd ?
|
||||||
MOUSE_COLOR_MEM rd 1
|
MOUSE_COLOR_MEM dd ?
|
||||||
|
|
||||||
|
SCR_MODE rw 2
|
||||||
|
|
||||||
BTN_DOWN: rb 4
|
BTN_DOWN: rb 4
|
||||||
|
|
||||||
align 4
|
cpu_phys_addr_width db ? ; also known as MAXPHYADDR in Intel manuals
|
||||||
def_cursor rd 1
|
hdd_appl_data db ? ; 0 = system cache, 1 - application cache
|
||||||
def_cursor_clock rd 1
|
cd_appl_data db ? ; 0 = system cache, 1 - application cache
|
||||||
current_cursor rd 1
|
|
||||||
hw_cursor rd 1
|
|
||||||
cur_saved_base rd 1
|
|
||||||
|
|
||||||
cur.lock rd 1 ;1 - lock update, 2- hide
|
timer_ticks_enable db ? ; for cd driver
|
||||||
cur.left rd 1 ;cursor clip box
|
|
||||||
cur.top rd 1
|
|
||||||
cur.w rd 1
|
|
||||||
cur.h rd 1
|
|
||||||
|
|
||||||
ipc_tmp rd 1
|
REDRAW_BACKGROUND db ?
|
||||||
ipc_pdir rd 1
|
|
||||||
ipc_ptab rd 1
|
|
||||||
|
|
||||||
proc_mem_map rd 1
|
|
||||||
proc_mem_pdir rd 1
|
|
||||||
proc_mem_tab rd 1
|
|
||||||
|
|
||||||
tmp_task_ptab rd 1
|
|
||||||
|
|
||||||
default_io_map rd 1
|
|
||||||
|
|
||||||
LFBSize rd 1
|
|
||||||
|
|
||||||
current_process rd 1
|
|
||||||
current_slot rd 1 ; i.e. cureent thread
|
|
||||||
|
|
||||||
|
|
||||||
; status
|
|
||||||
hd1_status rd 1 ; 0 - free : other - pid
|
|
||||||
application_table_owner rd 1 ; 0 - free : other - pid
|
|
||||||
application_table_mutex MUTEX
|
|
||||||
|
|
||||||
; device addresses
|
|
||||||
mididp rd 1
|
|
||||||
midisp rd 1
|
|
||||||
|
|
||||||
cdbase rd 1
|
|
||||||
cdid rd 1
|
|
||||||
|
|
||||||
hdbase rd 1 ; for boot 0x1f0
|
|
||||||
hdid rd 1
|
|
||||||
hdpos rd 1 ; for boot 0x1
|
|
||||||
cdpos rd 1
|
|
||||||
|
|
||||||
;CPUID information
|
|
||||||
cpu_vendor rd 3
|
|
||||||
cpu_sign rd 1
|
|
||||||
cpu_info rd 1
|
|
||||||
cpu_caps rd 4
|
|
||||||
|
|
||||||
|
|
||||||
pg_data PG_DATA
|
|
||||||
heap_test rd 1
|
|
||||||
|
|
||||||
buttontype rd 1
|
|
||||||
windowtypechanged rd 1
|
|
||||||
|
|
||||||
hd_entries rd 1 ;unused ? 0xfe10
|
|
||||||
|
|
||||||
mouse_active rd 1
|
|
||||||
mouse_pause rd 1
|
|
||||||
|
|
||||||
redrawmouse_unconditional rd 1
|
|
||||||
|
|
||||||
img_background rd 1
|
|
||||||
mem_BACKGROUND rd 1
|
|
||||||
static_background_data rd 1
|
|
||||||
|
|
||||||
BgrDrawMode rd 1
|
|
||||||
BgrDataWidth rd 1
|
|
||||||
BgrDataHeight rd 1
|
|
||||||
|
|
||||||
skin_data rd 1
|
|
||||||
|
|
||||||
debug_step_pointer rd 1
|
|
||||||
|
|
||||||
lba_read_enabled rd 1 ; 0 = disabled , 1 = enabled
|
|
||||||
pci_access_enabled rd 1 ; 0 = disabled , 1 = enabled
|
|
||||||
|
|
||||||
cpu_phys_addr_width rb 1 ; also known as MAXPHYADDR in Intel manuals
|
|
||||||
hdd_appl_data rb 1 ; 0 = system cache, 1 - application cache
|
|
||||||
cd_appl_data rb 1 ; 0 = system cache, 1 - application cache
|
|
||||||
|
|
||||||
timer_ticks_enable rb 1 ; for cd driver
|
|
||||||
|
|
||||||
align 4
|
|
||||||
NumBiosDisks rd 1
|
|
||||||
BiosDisksData rb 200h
|
|
||||||
BiosDiskCaches rb 80h*(cache_ide1-cache_ide0)
|
|
||||||
BiosDiskPartitions rd 80h
|
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
DRIVE_DATA: rb DRIVE_DATA_SIZE
|
DRIVE_DATA: rb DRIVE_DATA_SIZE
|
||||||
@ -520,7 +507,8 @@ org (OS_BASE+0x0100000)
|
|||||||
; This should be revisited when/if memory map would become more dynamic.
|
; This should be revisited when/if memory map would become more dynamic.
|
||||||
RAMDISK_CAPACITY = 2880 ; in sectors
|
RAMDISK_CAPACITY = 2880 ; in sectors
|
||||||
|
|
||||||
RAMDISK: rb RAMDISK_CAPACITY*512
|
RAMDISK:
|
||||||
|
rb RAMDISK_CAPACITY*512
|
||||||
|
|
||||||
_CLEAN_ZONE:
|
_CLEAN_ZONE:
|
||||||
|
|
||||||
@ -530,6 +518,7 @@ SB16Buffer rb 65536
|
|||||||
|
|
||||||
align 4096
|
align 4096
|
||||||
BUTTON_INFO rb 64*1024
|
BUTTON_INFO rb 64*1024
|
||||||
RESERVED_PORTS: rb 64*1024
|
RESERVED_PORTS:
|
||||||
|
rb 64*1024
|
||||||
sys_pgmap: rb 1024*1024/8
|
sys_pgmap:
|
||||||
|
rb 1024*1024/8
|
||||||
|
@ -59,11 +59,6 @@ mouse_check_events:
|
|||||||
; yes it is, activate window user is pointing at, if needed
|
; yes it is, activate window user is pointing at, if needed
|
||||||
call mouse._.activate_sys_window_under_cursor
|
call mouse._.activate_sys_window_under_cursor
|
||||||
|
|
||||||
; NOTE: this code wouldn't be necessary if we knew
|
|
||||||
; that window did already redraw itself after call above
|
|
||||||
or eax, eax
|
|
||||||
jnz .exit
|
|
||||||
|
|
||||||
; is there any system button under cursor?
|
; is there any system button under cursor?
|
||||||
call mouse._.find_sys_button_under_cursor
|
call mouse._.find_sys_button_under_cursor
|
||||||
or eax, eax
|
or eax, eax
|
||||||
|
@ -2975,7 +2975,7 @@ nosb8:
|
|||||||
mov [draw_data+32 + RECT.right], ecx
|
mov [draw_data+32 + RECT.right], ecx
|
||||||
mov [draw_data+32 + RECT.bottom], edx
|
mov [draw_data+32 + RECT.bottom], edx
|
||||||
|
|
||||||
inc byte[REDRAW_BACKGROUND]
|
inc [REDRAW_BACKGROUND]
|
||||||
call wakeup_osloop
|
call wakeup_osloop
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@ -3004,7 +3004,7 @@ force_redraw_background:
|
|||||||
mov [draw_data+32 + RECT.right], eax
|
mov [draw_data+32 + RECT.right], eax
|
||||||
mov [draw_data+32 + RECT.bottom], ebx
|
mov [draw_data+32 + RECT.bottom], ebx
|
||||||
pop ebx eax
|
pop ebx eax
|
||||||
inc byte[REDRAW_BACKGROUND]
|
inc [REDRAW_BACKGROUND]
|
||||||
call wakeup_osloop
|
call wakeup_osloop
|
||||||
ret
|
ret
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
@ -3573,7 +3573,7 @@ align 4
|
|||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
mouse_not_active:
|
mouse_not_active:
|
||||||
cmp byte[REDRAW_BACKGROUND], 0 ; background update ?
|
cmp [REDRAW_BACKGROUND], 0 ; background update ?
|
||||||
jz nobackgr
|
jz nobackgr
|
||||||
|
|
||||||
cmp [background_defined], 0
|
cmp [background_defined], 0
|
||||||
@ -3635,7 +3635,7 @@ set_bgr_event:
|
|||||||
loop set_bgr_event
|
loop set_bgr_event
|
||||||
pop edi ecx
|
pop edi ecx
|
||||||
;--------- set event 5 stop -----------
|
;--------- set event 5 stop -----------
|
||||||
dec byte[REDRAW_BACKGROUND] ; got new update request?
|
dec [REDRAW_BACKGROUND] ; got new update request?
|
||||||
jnz backgr
|
jnz backgr
|
||||||
|
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
@ -3794,7 +3794,7 @@ bgli:
|
|||||||
cmp dword[esp], 1
|
cmp dword[esp], 1
|
||||||
jnz .az
|
jnz .az
|
||||||
|
|
||||||
cmp byte[REDRAW_BACKGROUND], 0
|
cmp [REDRAW_BACKGROUND], 0
|
||||||
jz .az
|
jz .az
|
||||||
|
|
||||||
mov dl, 0
|
mov dl, 0
|
||||||
@ -3835,7 +3835,7 @@ align 4
|
|||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@@:
|
@@:
|
||||||
add byte[REDRAW_BACKGROUND], dl
|
add [REDRAW_BACKGROUND], dl
|
||||||
call wakeup_osloop
|
call wakeup_osloop
|
||||||
jmp newdw8
|
jmp newdw8
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
@ -3857,7 +3857,7 @@ align 4
|
|||||||
|
|
||||||
cmp dword [esp], 1
|
cmp dword [esp], 1
|
||||||
jne nobgrd
|
jne nobgrd
|
||||||
inc byte[REDRAW_BACKGROUND]
|
inc [REDRAW_BACKGROUND]
|
||||||
call wakeup_osloop
|
call wakeup_osloop
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@ -3943,8 +3943,8 @@ calculatebackground: ; background
|
|||||||
mov ecx, [_display.win_map_size]
|
mov ecx, [_display.win_map_size]
|
||||||
shr ecx, 2
|
shr ecx, 2
|
||||||
rep stosd
|
rep stosd
|
||||||
|
mov byte[window_data+32+WDATA.z_modif], ZPOS_DESKTOP
|
||||||
mov byte[REDRAW_BACKGROUND], 0 ; do not draw background!
|
mov [REDRAW_BACKGROUND], 0
|
||||||
ret
|
ret
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
uglobal
|
uglobal
|
||||||
|
Loading…
Reference in New Issue
Block a user