forked from KolibriOS/kolibrios
fix some GUI problems highlighted by r3534
git-svn-id: svn://kolibrios.org@3536 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
bd6a09fefc
commit
f427028551
@ -66,13 +66,9 @@ mouse_check_events: ;//////////////////////////////////////////////////////////
|
|||||||
; NOTE: this code wouldn't be necessary if we knew window did
|
; NOTE: this code wouldn't be necessary if we knew window did
|
||||||
; already redraw itself after call above
|
; already redraw itself after call above
|
||||||
or eax, eax
|
or eax, eax
|
||||||
jz @f
|
jnz .exit
|
||||||
|
|
||||||
and [mouse.state.buttons], 0
|
|
||||||
jmp .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
|
||||||
jz .check_buttons_released
|
jz .check_buttons_released
|
||||||
|
@ -1027,6 +1027,7 @@ align 4
|
|||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov byte[MOUSE_BACKGROUND], al
|
mov byte[MOUSE_BACKGROUND], al
|
||||||
mov byte[DONT_DRAW_MOUSE], al
|
mov byte[DONT_DRAW_MOUSE], al
|
||||||
|
dec eax
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
.exit:
|
.exit:
|
||||||
|
@ -2839,9 +2839,12 @@ nosb7:
|
|||||||
cmp ebx, 8
|
cmp ebx, 8
|
||||||
jnz nosb8
|
jnz nosb8
|
||||||
|
|
||||||
mov eax, [BG_Rect_X_left_right]
|
mov ecx, [current_slot]
|
||||||
|
xor eax, eax
|
||||||
|
xchg eax, [ecx+APPDATA.draw_bgr_x]
|
||||||
mov [esp + 32], eax ; eax = [left]*65536 + [right]
|
mov [esp + 32], eax ; eax = [left]*65536 + [right]
|
||||||
mov eax, [BG_Rect_Y_top_bottom]
|
xor eax, eax
|
||||||
|
xchg eax, [ecx+APPDATA.draw_bgr_y]
|
||||||
mov [esp + 20], eax ; ebx = [top]*65536 + [bottom]
|
mov [esp + 20], eax ; ebx = [top]*65536 + [bottom]
|
||||||
ret
|
ret
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
@ -3493,8 +3496,7 @@ mouse_not_active:
|
|||||||
jz nobackgr
|
jz nobackgr
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@@:
|
backgr:
|
||||||
push eax
|
|
||||||
mov eax, [draw_data+32 + RECT.left]
|
mov eax, [draw_data+32 + RECT.left]
|
||||||
shl eax, 16
|
shl eax, 16
|
||||||
add eax, [draw_data+32 + RECT.right]
|
add eax, [draw_data+32 + RECT.right]
|
||||||
@ -3504,7 +3506,6 @@ align 4
|
|||||||
shl eax, 16
|
shl eax, 16
|
||||||
add eax, [draw_data+32 + RECT.bottom]
|
add eax, [draw_data+32 + RECT.bottom]
|
||||||
mov [BG_Rect_Y_top_bottom], eax ; [top]*65536 + [bottom]
|
mov [BG_Rect_Y_top_bottom], eax ; [top]*65536 + [bottom]
|
||||||
pop eax
|
|
||||||
|
|
||||||
call drawbackground
|
call drawbackground
|
||||||
; DEBUGF 1, "K : drawbackground\n"
|
; DEBUGF 1, "K : drawbackground\n"
|
||||||
@ -3518,15 +3519,42 @@ align 4
|
|||||||
align 4
|
align 4
|
||||||
set_bgr_event:
|
set_bgr_event:
|
||||||
add edi, 256
|
add edi, 256
|
||||||
|
mov eax, [BG_Rect_X_left_right]
|
||||||
|
mov edx, [BG_Rect_Y_top_bottom]
|
||||||
|
cmp [edi+SLOT_BASE+APPDATA.draw_bgr_x], 0
|
||||||
|
jz .set
|
||||||
|
.join:
|
||||||
|
cmp word [edi+SLOT_BASE+APPDATA.draw_bgr_x+2], ax
|
||||||
|
jbe @f
|
||||||
|
mov word [edi+SLOT_BASE+APPDATA.draw_bgr_x+2], ax
|
||||||
|
@@:
|
||||||
|
shr eax, 16
|
||||||
|
cmp word [edi+SLOT_BASE+APPDATA.draw_bgr_x], ax
|
||||||
|
jae @f
|
||||||
|
mov word [edi+SLOT_BASE+APPDATA.draw_bgr_x], ax
|
||||||
|
@@:
|
||||||
|
cmp word [edi+SLOT_BASE+APPDATA.draw_bgr_y+2], dx
|
||||||
|
jbe @f
|
||||||
|
mov word [edi+SLOT_BASE+APPDATA.draw_bgr_y+2], dx
|
||||||
|
@@:
|
||||||
|
shr edx, 16
|
||||||
|
cmp word [edi+SLOT_BASE+APPDATA.draw_bgr_y], dx
|
||||||
|
jae @f
|
||||||
|
mov word [edi+SLOT_BASE+APPDATA.draw_bgr_y], dx
|
||||||
|
@@:
|
||||||
|
jmp .common
|
||||||
|
.set:
|
||||||
|
mov [edi+SLOT_BASE+APPDATA.draw_bgr_x], eax
|
||||||
|
mov [edi+SLOT_BASE+APPDATA.draw_bgr_y], edx
|
||||||
|
.common:
|
||||||
or [edi+SLOT_BASE+APPDATA.event_mask], 10000b ; set event 5
|
or [edi+SLOT_BASE+APPDATA.event_mask], 10000b ; set event 5
|
||||||
loop set_bgr_event
|
loop set_bgr_event
|
||||||
pop edi ecx
|
pop edi ecx
|
||||||
; call change_task - because the application must have time to call f.15.8
|
|
||||||
call change_task
|
|
||||||
;--------- set event 5 stop -----------
|
;--------- set event 5 stop -----------
|
||||||
dec byte[REDRAW_BACKGROUND] ; got new update request?
|
dec byte[REDRAW_BACKGROUND] ; got new update request?
|
||||||
jnz @b
|
jnz backgr
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
mov [draw_data+32 + RECT.left], eax
|
mov [draw_data+32 + RECT.left], eax
|
||||||
mov [draw_data+32 + RECT.top], eax
|
mov [draw_data+32 + RECT.top], eax
|
||||||
mov [draw_data+32 + RECT.right], eax
|
mov [draw_data+32 + RECT.right], eax
|
||||||
|
@ -126,7 +126,9 @@ struct APPDATA
|
|||||||
tls_base dd ? ;+104
|
tls_base dd ? ;+104
|
||||||
dlls_list_ptr dd ? ;+108
|
dlls_list_ptr dd ? ;+108
|
||||||
event_filter dd ? ;+112
|
event_filter dd ? ;+112
|
||||||
rb 12 ;+116
|
draw_bgr_x dd ? ;+116
|
||||||
|
draw_bgr_y dd ? ;+120
|
||||||
|
dd ? ;+124
|
||||||
|
|
||||||
wnd_shape dd ? ;+128
|
wnd_shape dd ? ;+128
|
||||||
wnd_shape_scale dd ? ;+132
|
wnd_shape_scale dd ? ;+132
|
||||||
|
Loading…
Reference in New Issue
Block a user