Page 1 of 1

Неактивное окно обрабатывает события мыши

Posted: Sun Sep 29, 2013 1:38 am
by 0CodErr
0CodErr wrote:В некоторых приложениях, например, в fasm, kpack и CPU edit_box-ы и check_box-ы реагируют на мышь даже если окно не активно и находится под другими окнами
Имел в виду это:
Spoiler:
1.gif
1.gif (164.23 KiB)
Viewed 10150 times
06/10/2013 yogev_ezra: отделил тему от box_lib.obj - библиотека gui компонентов по просьбе Mario

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Sep 29, 2013 6:47 am
by Mario_r4
0CodErr
Если составишь список программ имеющих описанный баг, то будет намного проще исправить.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Sep 29, 2013 11:36 am
by 0CodErr
Mario_r4 wrote:0CodErr
Если составишь список программ имеющих описанный баг, то будет намного проще исправить.
Пока нашёл эти:
  • h2d2b (EditBox)
    run (EditBox, ещё окно может разворачиваться на весь экран)
    mgb (EditBox в окне ввода комментария)
    graph (EditBox)
    rtfread (Menu)
    cpu (CheckBox, EditBox)
    Fasm (CheckBox, EditBox)
    KPack (CheckBox, EditBox)
    tftpc (OptionBox, EditBox)
    downloader (EditBox)
    ircc (EditBox)
А эти не используют box_lib:
  • Gomoku
    Animage
    Checkers

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Sep 29, 2013 2:45 pm
by Mario_r4
0CodErr wrote:Пока нашёл эти:
Вот эти я исправлять не буду:
graph (EditBox)
Checkers
Потому что ЯВУ и я этим не занимаюсь.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Sep 29, 2013 3:15 pm
by Leency
Возможно, для EditBox необоходимо универсальное решение в библиотеке, т.к. я не представляю программу, где может потребоваться выделение в EditBox'e неактивного окна.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Sep 29, 2013 3:42 pm
by Mario_r4
Leency wrote:Возможно, для EditBox необоходимо универсальное решение в библиотеке, т.к. я не представляю программу, где может потребоваться выделение в EditBox'e неактивного окна.
Ты сейчас глупость сказал. Это не задача компонента выяснять - "Находится ли мое окно на вершине стека?", тем более Serge уже все сделал:
Spoiler:
Изменения в функции 40:
Бит 31 регистра ebx управляет фильтрацией событий мыши.
Бит 31 = 0 - окно всегда получает события от мыши.
Бит 31 = 1 - окно получает события мыши только в активном состоянии.

Планируется:
Бит 30 = 0 - окно получает события от мыши если курсор находится за пределами окна
Бит 30 = 1 - окно не получает события от мыши если курсор находится за пределами окна
Однако в обычной своей привычке не стал править документацию ядра.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Sep 29, 2013 9:28 pm
by Mario_r4
0CodErr wrote:
Mario_r4 wrote:0CodErr
Если составишь список программ имеющих описанный баг, то будет намного проще исправить.
Пока нашёл эти:
  • h2d2b (EditBox)
    run (EditBox, ещё окно может разворачиваться на весь экран)
    mgb (EditBox в окне ввода комментария)
    graph (EditBox)
    rtfread (Menu)
    cpu (CheckBox, EditBox)
    Fasm (CheckBox, EditBox)
    KPack (CheckBox, EditBox)
    tftpc (OptionBox, EditBox)
    downloader (EditBox)
    ircc (EditBox)
А эти не используют box_lib:
  • Gomoku
    Animage
    Checkers
Исправлено все, кроме graph и Checkers, в SVN r. 3941-3952.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sat Oct 05, 2013 12:07 am
by Leency
Проблема также наблюдается со скроллом SHELL (console.obj?)

Re: Неактивное окно обрабатывает события мыши

Posted: Sun Oct 06, 2013 3:08 pm
by Serge
Однако в обычной своей привычке не стал править документацию ядра
Английская версия была исправлена сразу. А для русской у меня нет редакторов с поддержкой cp866.

Re: Неактивное окно обрабатывает события мыши

Posted: Sun Oct 06, 2013 5:35 pm
by Mario_r4
Serge wrote:
Однако в обычной своей привычке не стал править документацию ядра
Английская версия была исправлена сразу. А для русской у меня нет редакторов с поддержкой cp866.
Вообще с некоторых пор файл sysfuncr.txt содержится на SVN в кодировке UTF8, а при сборке дистрибутива он перекодируется скриптом в CP866.

Re: Неактивное окно обрабатывает события мыши

Posted: Sun Oct 06, 2013 5:52 pm
by Serge
Но это с некоторых пор, а изменения были 27-28 февраля прошлого года.