Баг с кнопками

Kernel-side graphics support
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

Re: Баг с кнопками

Post by Leency »

Залил #7354
Sapiens dominabitur astris
theonlymirage
Posts: 229
Joined: Sat Apr 22, 2017 6:11 pm

Re: Баг с кнопками

Post by theonlymirage »

Сижу я тут с документацией, читаю, а там:

Code: Select all

Функция 12 - начать/закончить перерисовку окна. 
Подфункция 1 - начать перерисовку окна. 
Подфункция 2 - закончить перерисовку окна. 
Замечания:
  * Функция начала перерисовки удаляет все определённые
    функцией 8 кнопки, их следует определить повторно.
Обновляем документацию? Вероятно, в данном случае "удаляет" используется в смысле затирает изображение этих кнопок (очищает содержимое окна). Или когда-то раньше она правда удаляла все кнопки автоматически?
Пожалуйста, посмотрите кому не лень.
0CodErr
Posts: 1498
Joined: Sun Oct 30, 2011 6:43 pm

Re: Баг с кнопками

Post by 0CodErr »

Она и удаляет, то есть, после начала перерисовки ты уже не сможешь нажимать на удалённые кнопки, их нужно снова определить\нарисовать.
И делать это при каждой перерисовке, иначе кнопки работать не будут: если их удалили — их уже не существует, реакции на них не будет.
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

Re: Баг с кнопками

Post by Leency »

Все работает верно.
mcall 12,1 - удаляет все кнопки, в том числе как новосозданную, так и кнопку закрытия окна.
Attachments
btn.png
btn.png (3.67 KiB) Viewed 6086 times
Sapiens dominabitur astris
theonlymirage
Posts: 229
Joined: Sat Apr 22, 2017 6:11 pm

Re: Баг с кнопками

Post by theonlymirage »

Извиняюсь, но тогда у меня новый вопрос (просто я запутался и потерял нить происходящего): почему мы исправляли баг кнопок, принудительно удаляя кнопки через 8 функцию?
Этот код вызывается в цикле отрисовки, между 12.1 и 12.2

Code: Select all

add     edx,0x80000000 ; delete a button
mcall   8              ; before create
sub     edx,0x80000000 ; a new one below
mcall   8,<10,99>
Функция 8 - определить/удалить кнопку.
И после этого, я в своих программах тоже стал добавлять в начале draw:

Code: Select all

;удаляем кнопку, если есть
   mov edx, 0x80000002
   mcall 8
Даже в HACONFIG перед 12.1 зачем-то запихал....
То есть я ошибся, не правильно понял, и можно убрать этот код (код удаления кнопки)? Утечки кнопок не будет?
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

Re: Баг с кнопками

Post by Leency »

Если нужно удалить все кнопки: mcall 12,1
Если нужно удалить только часть кнопок, а другие оставить: "delete a button".

Не думаю что в HA есть место, где нужно удалять кнопки, потому как они нигде вне mcall12,x не должны создаваться.
Sapiens dominabitur astris
b00bl1k
Posts: 69
Joined: Tue Jun 24, 2008 11:12 pm

Re: Баг с кнопками

Post by b00bl1k »

Заметил, что если нажать кнопку на неактивном окне, то она не перерисовывается и остаётся нажатой.
0CodErr
Posts: 1498
Joined: Sun Oct 30, 2011 6:43 pm

Re: Баг с кнопками

Post by 0CodErr »

b00bl1k , да есть такое.
Могу лишь сказать, что в одной очень старой сборке #2306 этот баг не проявляется(у меня не получилось повторить).
Возможно, раньше работало правильно, а потом сломалось.
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

Re: Баг с кнопками

Post by Leency »

0CodErr
Ты перерывал http://builds.kolibrios.org/rus/history/ чтобы найти в какой именно сборке появился баг?
Sapiens dominabitur astris
b00bl1k
Posts: 69
Joined: Tue Jun 24, 2008 11:12 pm

Re: Баг с кнопками

Post by b00bl1k »

До rev6585 нельзя было кликнуть на кнопку неактивного окна. И уже начиная с этой ревизии кнопки ведут себя так же как и сейчас.

Предполагаю, что при нажатии на кнопку неактивного окна сначала рисуется инвертирующая рамка (sys_button_activate_handler), потом окно становится активным и кнопки перерисовываются с нормальной рамкой и потом еще раз рамка инвертируется (sys_button_deactivate_handler). У активного окна между нажатием и отпусканием кнопка не перерисовывается.
kw33
Posts: 21
Joined: Sat Feb 13, 2021 2:00 pm

Re: Баг с кнопками

Post by kw33 »

Всё ещё этот баг с нажатием на кнопку неактивного окна (4-мя постами выше b00bl1k писал).
Возможно ли исправить?
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest