View Issue Details

IDProjectCategoryView StatusLast Update
0000188Kolibri OS (trunk)Kernelpublic2024-04-10 19:23
ReporterVaicheslav97 Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformAny x86 / Любой x86OSKolibriOSOS VersionSVN autobuilds
Product VersionSVN build / автосборка SVN 
Target Version0.9.0.0 
Summary0000188: СФ 18.16.4 Некоректное поведение.
Description1)Неуместный авто возврат на старые координаты при взаимодействии с устройством мыши.
2)Не изменяет состояние нажатия кнопки после смещения курсора через неё.
Steps To ReproduceИспользовать СФ 18.16.4 и создать любое реальное событие мыши.
Additional InformationСама функция работает в локальных(окно) и глобальных координатах(Екран).
Моя программа не производит сама по себе возврат при отжатии.
В драйвер передаётся смещение курсора.
Оно умножается на ускорение и перезаписывается.
Также есть координаты тени мыши(место где мышь была в прошлый раз чтобы восстановить картинку) но они вроде только перезаписываются поверх.
TagsNo tags attached.
SVN revision / ревизия SVN
Type of distribution / Тип дистрибутиваany / любой

Activities

Vaicheslav97

2024-04-10 19:23

developer  

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, �� �� �� �ࠢ��쭮.
; ����� ��⮪ ����� ���� � ��묨 �������ﬨ, ������� ᮡ���
;   �ࠢ���� ���冷� �� �ᯮ�������.
NEW_mouse_EXAMPLE.ASM (5,819 bytes)   

Issue History

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