View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000188 | Kolibri OS (trunk) | Kernel | public | 2024-04-10 19:23 | 2024-04-10 19:23 |
| Reporter | Vaicheslav97 | Assigned To | |||
| Priority | normal | Severity | major | Reproducibility | always |
| Status | new | Resolution | open | ||
| Platform | Any x86 / Любой x86 | OS | KolibriOS | OS Version | SVN autobuilds |
| Product Version | SVN build / автосборка SVN | ||||
| Target Version | 0.9.0.0 | ||||
| Summary | 0000188: СФ 18.16.4 Некоректное поведение. | ||||
| Description | 1)Неуместный авто возврат на старые координаты при взаимодействии с устройством мыши. 2)Не изменяет состояние нажатия кнопки после смещения курсора через неё. | ||||
| Steps To Reproduce | Использовать СФ 18.16.4 и создать любое реальное событие мыши. | ||||
| Additional Information | Сама функция работает в локальных(окно) и глобальных координатах(Екран). Моя программа не производит сама по себе возврат при отжатии. В драйвер передаётся смещение курсора. Оно умножается на ускорение и перезаписывается. Также есть координаты тени мыши(место где мышь была в прошлый раз чтобы восстановить картинку) но они вроде только перезаписываются поверх. | ||||
| Tags | No tags attached. | ||||
| SVN revision / ревизия SVN | |||||
| Type of distribution / Тип дистрибутива | any / любой | ||||
|
|
NEW_mouse_EXAMPLE.ASM (5,819 bytes)
;---------------------------------------------------------------------
use32 ; ������� 32-���� ०�� ��ᥬ����
org 0 ; ������ � ���
db 'MENUET01' ; 8-����� �����䨪��� MenuetOS
dd 1 ; ����� ��������� (1 ���� 2, �. ���-�)
dd START ; ���� ��ࢮ� �������
dd I_END ; ࠧ��� �ணࠬ��
dd MEM ; ������⢮ �����
dd STACKTOP ; ���� ���設� ���
dd 0 ; ���� ���� ��� ��ࠬ��
dd 0 ; ��१�ࢨ���
include "macros.inc" ; ������ �������� ����� ��ᥬ����騪��!
;---------------------------------------------------------------------
;--- ������ ��������� ----------------------------------------------
;---------------------------------------------------------------------
START:
mov [mposX], 1
mov [mposY], 1
mov eax, 40
mov ebx, 100111b
int 0x40
red: ; ����ᮢ��� ����
call draw_window ; ��뢠�� ��楤��� ���ᮢ�� ����
;---------------------------------------------------------------------
;--- ���� ��������� ������� ----------------------------------------
;---------------------------------------------------------------------
still:
mcall 10 ; �㭪�� 10 - ����� ᮡ���
cmp eax,1 ; ����ᮢ��� ���� ?
je red ; � �� - �� ���� red
cmp eax,2
je key
cmp eax,3 ; ����� ������ ?
je button ; � �� - �� button
cmp eax,6 ; ����� ������ ?
je mouse ; � �� - �� key
jmp still ; � ��㣮� ᮡ�⨥ - � ��砫� 横��
;---------------------------------------------------------------------
key:; ����� ������ �� ���������
; �㭪�� 2 - ����� ��� ᨬ���� (� ah)
mcall 2
call draw_window ; ��뢠�� ��楤��� ���ᮢ�� ����
jmp still ; �������� � ��砫� 横��
mouse:; ����� ������ �� ���������
; �㭪�� 2 - ����� ��� ᨬ���� (� ah)
mcall 37,0
mov ecx, eax
mov [mposY],cx
shr ecx, 16
mov [mposX],cx
mcall 37,3
mov [mst], eax
;cmp eax,1 ; ����ᮢ��� ���� ?
;and eax, 00010b
and eax, 0x200
jz rds
;jne rds
mov edx, 16
shl edx, 16
mov dx, 16
;neg [mposX]
;neg [mposY]
;mov edx, eax
;add edx, ecx
mcall 18,19, 4
; ������� ��� ᨬ���� �� ॣ���� ah � ������
rds:
call draw_window ; ��뢠�� ��楤��� ���ᮢ�� ����
jmp still ; �������� � ��砫� 横��
;---------------------------------------------------------------------
button:
mcall 17 ; 17 - ������� �����䨪��� ����⮩ ������
cmp ah, 1 ; � �� ����� ������ � ���� 1,
jne still ; ��������
.exit:
mcall -1 ; ���� ����� �ணࠬ��
;---------------------------------------------------------------------
;--- ����������� � ��������� ���� ----------------------------------
;---------------------------------------------------------------------
draw_window:
mcall 12, 1 ; �㭪�� 12: ᮮ���� �� � ��砫� ���ᮢ��
mcall 48, 3, sc,sizeof.system_colors
mov edx, [sc.work] ; 梥� 䮭�
or edx, 0x33000000 ; � ⨯ ���� 3
mcall 0, <200,300>, <200,150>, , ,title
mov edx, 50*65536+40
mov eax, 47
mov ebx, 0x80080000
mov ecx, 0
mov cx,[mposY]
mov esi, [sc.work_text] ; 梥� 䮭�
or esi, 0x10000000
int 0x40
mov edx, 50*65536+20
mov eax, 47
mov ebx, 0x80080000
mov ecx, 0
mov cx,[mposX]
mov esi, [sc.work_text] ; 梥� 䮭�
or esi, 0x10000000
int 0x40
mov edx, 50*65536+60
mov eax, 47
mov ebx, 0x001F0200
mov ecx, dword[mst]
mov esi, [sc.work_text] ; 梥� 䮭�
or esi, 0x10000000
int 0x40
; �뢮� ⥪�⮢�� ��ப�
mov ecx, [sc.work_text] ; 梥� 䮭�
or ecx, 0x90000000 ; � ⨯ ��ப�
mcall 4, <10, 20>, , message
mov ecx, [sc.work_text] ; 梥� 䮭�
or ecx, 0x90000000 ; � ⨯ ��ப�
mcall 4, <10, 40>, , message2
mcall 12, 2 ; �㭪�� 12.2, �����稫� �ᮢ���
ret ; ��室�� �� ��楤���
;---------------------------------------------------------------------
;--- ������ ��������� ----------------------------------------------
;---------------------------------------------------------------------
; ��� ⠪�� ��� ���⪠� "�������".
; ��ன ���� ��������� ����⨥� �������
sc system_colors
message db 'X:',0
message2 db 'Y:',0
mposX rw 1
mposY rw 1
mst rd 1
title db '�ਬ�� �ணࠬ��',0
;---------------------------------------------------------------------
I_END: ; ��⪠ ���� �ணࠬ��
rb 4096 ; ������ ��� �⥪�
align 16
STACKTOP: ; ��⪠ ���設� �⥪� (�� ���������� �⥪
; ���� � ��� 㬥��襭�� ���ᮢ, ��⮬�
; ������ ��� ���� � ���� �ணࠬ�� ����砥���
; ࠭�� 祬 ��� ���設�)
MEM: ; ��⪠ 㪠�뢠��� �� ����� �ணࠬ�� ����
; ࠧ��� �ᯮ��㥬�� �� ����⨢��� �����
; ���� ��⪨ MEM �ᥣ�� ������ ���� ����� 祬 ���� ��⪨ I_END.
; ��⪠ STACKTOP ������ �ᯮ�������� �� ��⪨ I_END � ��। ��⪮�
; MEM. STACKTOP ����� ��室���� � ��। I_END, �� �� �� �ࠢ��쭮.
; ����� ��⮪ ����� ���� � ��묨 �������ﬨ, ������� ᮡ���
; �ࠢ���� ���冷� �� �ᯮ�������. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2024-04-10 19:23 | Vaicheslav97 | New Issue | |
| 2024-04-10 19:23 | Vaicheslav97 | File Added: NEW_mouse_EXAMPLE.ASM | |
| 2024-04-10 19:23 | Vaicheslav97 | File Added: bandicam 2024-04-10 20-46-55-243.mp4 |