Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс ноя 19, 2017 9:31 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 455 сообщений ]  На страницу Пред. 126 27 28 29 30 31 След.
Автор Сообщение
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Пн фев 27, 2012 8:35 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Изменения в функции 40:
Бит 31 регистра ebx управляет фильтрацией событий мыши.
Бит 31 = 0 - окно всегда получает события от мыши.
Бит 31 = 1 - окно получает события мыши только в активном состоянии.

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


Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 2:34 am 
Я восстановил код закомментированный в r. 2414. Этот код вводился еще в ревизиях 1466 и 1513. Без него приложения активно обрабатывающие мышь при перетаскивании окна или изменении размеров окна могут менять положение собственного курсора многократно. Как пример можно посмотреть на реакцию KFM и OpenDialog с этим кодом и без него. Если координаты курсора мыши попадают в "активную зону" приложения, то начинаются чудесатые чудеса. Это именно обработка предотвращающая некорректное поведение активного окна. Не нужно убирать этот код!


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:01 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
А теперь запусти плеер попробуй закрыть окно.
Если KFM неправильно мышь обрабатывает, чем другие программы виноваты ?


Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:10 am 
А может это плеер не совсем правильно обрабатывает кнопки? Все остальные программы ведь закрываются. Ни у кого больше проблемы с закрытием нет. по крайне мере никто за прошедшее время не написал жалоб.


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:16 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
Плеер как раз правильно обрабатывает кнопки. Только это не системные кнопки. И поскольку ты закомментировал код он теперь не получает сообщений при клике в области заголовка.
Запускаю KFM, кликаю на пиктограме в меню и не отпуская кнопки веду курсор вниз. Кликаю на зелёной кнопке "Help" и не отпуская кнопки ведут курсор вверх. И причем здесь заголовок ?


Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:42 am 
Вообще то он не получает события мыши если удерживать кнопку. А когда отпускается кнопка то события продолжают поступать. Ситуация неоднозначная. Если бы проблема была только в KFM, то я бы не парился. Однако код компонента FileBrowser унаследовал код KFM.


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:51 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
Надо проверять область, где нажата кнопка и ставить флаг, если это список. И снимать флаг когда кнопка отпущена.


Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:54 am 
У меня есть мысль. Если новый флаг маски событий, который ты ввел недавно, используется для плеера, то можно учитывать его наличие и игнорировать мою коррекцию.


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 8:59 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
Я сделаю окно со стилем 5. Специально для окон, которые всю работу по перемещению и изменению размеров делают сами.


Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 9:03 am 
get_event_for_app работает для всех окон. Я не понимаю как ты собираешься это обходить? В моей идее все просто - проверяю установлен ли бит 31, если да то код:
Код:
        push    eax
; If the window is captured and moved by the user, then no mouse events!!!
        mov     al, [mouse.active_sys_window.action]
        and     al, WINDOW_MOVE_AND_RESIZE_FLAGS
        test    al, al
        pop     eax
        jnz     .loop

не будет выполнятся. Всего то делов! Зачем городить огород с новым типом?


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 9:18 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
Плеер сам изменят размер окна, без участия ядра. Но ядро обрабатывает все события в заголовке, причём положение заголовка определяется ядром. Я не могу разместить его сбоку. Если я в плеере кликаю на кнопке в заголовке и двигаю мышь, ядро перемещает окно. Хотя это не требуется. От ядра требуется только активация окна и правильная карта отсечения. Поэтому я хочу сделать новый тип. Чем меньше ядро обрабатывает оконные события тем больше у меня возможностей. Для ядра это стиль "не делать ничего с этим окном"


Последний раз редактировалось Serge Чт мар 01, 2012 9:21 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 9:20 am 
Ладно делай как знаешь, но для 31 бита я добавляю исключение в существующую схему. Код уже сделал и сейчас залью в SVN.


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 9:22 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
Потом эту заплатку надо будет убрать.


Вернуться к началу
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 9:24 am 
Не раньше чем исправлю box_lib и kfm.

З.Ы. Залил SVN r. 2426.


Вернуться к началу
   
 Заголовок сообщения: Re: Новая модель ядра
СообщениеДобавлено: Чт мар 01, 2012 9:31 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Я пр исключение для 31 бита.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 455 сообщений ]  На страницу Пред. 126 27 28 29 30 31 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB