box_lib: correct filter for win keys in editbox

git-svn-id: svn://kolibrios.org@7502 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
b00bl1k
2018-10-24 19:41:08 +00:00
parent dc82ad6812
commit 9bdda6b839

View File

@@ -1,4 +1,4 @@
macro use_key_no_process up,down,super,esc,enter,tab,numl,capsl,scrolll macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll
{ {
if up eq if up eq
else else
@@ -10,11 +10,6 @@ else
cmp ah,177 cmp ah,177
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if super eq
else
cmp ah,148 ;Super (Win logo)
jz edit_box.editbox_exit
end if
if esc eq if esc eq
else else
cmp ah,27 ;ESC - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )) cmp ah,27 ;ESC - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ))
@@ -47,6 +42,8 @@ else
end if end if
} }
SCAN_LWIN_RELEASE = 0xDB
SCAN_RWIN_RELEASE = 0xDC
align 16 align 16
edit_box: edit_box:
@@ -138,23 +135,29 @@ edit_box_key:
jz edit_box_key.end jz edit_box_key.end
cmp ah,185 ;insert cmp ah,185 ;insert
jz edit_box_key.insert jz edit_box_key.insert
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 Ctrl + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; get scancode in ah
ror eax,8
; check for ctrl+ combinations
test word ed_flags,ed_ctrl_on test word ed_flags,ed_ctrl_on
jz @f jz @f
; <20><EFBFBD>ઠ ᪠<><E1AAA0><EFBFBD><EFBFBD><EFBFBD>
ror eax,8
cmp ah,45 ; Ctrl + X cmp ah,45 ; Ctrl + X
je edit_box_key.ctrl_x je edit_box_key.ctrl_x
cmp ah,46 ; Ctrl + C cmp ah,46 ; Ctrl + C
je edit_box_key.ctrl_c je edit_box_key.ctrl_c
cmp ah,47 ; Ctrl + V cmp ah,47 ; Ctrl + V
je edit_box_key.ctrl_v je edit_box_key.ctrl_v
rol eax,8
@@: @@:
cmp ah,SCAN_LWIN_RELEASE
jz edit_box.editbox_exit
cmp ah,SCAN_RWIN_RELEASE
jz edit_box.editbox_exit
; restore ascii code
rol eax,8
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;<3B><><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD><E0A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A6A5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E5AEA4> <20><><20><> <20><><EFBFBD><E0A0A1><EFBFBD> ;<3B><><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD><E0A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A6A5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E5AEA4> <20><><20><> <20><><EFBFBD><E0A0A1><EFBFBD>
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_no_process up,down,super,esc,enter,tab,numl,capsl,scrolll use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --- ;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;<3B><EFBFBD><20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><EFBFBD> <20><EFBFBD><EBA2AE><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E3A6AD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>᫨ ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;<3B><EFBFBD><20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><EFBFBD> <20><EFBFBD><EBA2AE><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD><E3A6AD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>᫨ ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>