crypt of decay - worse is better [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

worse is better [Apr. 28th, 2020|09:54 am]
Previous Entry Add to Memories Tell A Friend Next Entry
всегда писал уи (а я вообще не люблю готовые библиотеки для этого, предпочитаю под задачу быстро сляпать с нуля) с фичей «диспетчер событий управляет передачей фокуса по нажатию мышекнопки». из-за чего наблюдались стрёмные хаки, потому что удобней всего, когда в уи есть «автозахват», как в иксах: пока кнопки на мыши нажаты, все события приходят элементу с фокусом. ну, и пилил автограбы и прочий ужас.

а тут внизапна! в вавумчике янис вообще не стал мудрить: тебе нужен фокус? сам в обработчике события и забери. и оказалось, что так намного проще. комбинируем это с моделью событий sink/bubble — и никакие автограбы в хуй не упёрлись. мышиные события тонут до текущего фокуса, а уже после него отпрвляются элементу, над которым мышь (если по дороге событие никто не съел). диспетчер событий сразу стал простым как полено, а вся система ещё гибче, чем с автозахватом.

это всё к тому, что иногда излишняя автоматизация всё только усложняет.
Linkmeow!

Comments:
[User Picture]
From:[info]perfect_kiss
Date:April 28th, 2020 - 09:18 am
(Link)
> тебе нужен фокус? сам в обработчике события и забери. и оказалось, что так намного проще. комбинируем это с моделью событий sink/bubble — и никакие автограбы в хуй не упёрлись. мышиные события тонут до текущего фокуса, а уже после него отпрвляются элементу, над которым мышь (если по дороге событие никто не съел). диспетчер событий сразу стал простым как полено, а вся система ещё гибче, чем с автозахватом.

Это ж, по-моему, навеяно подходом из веба и DOM ? Одна из немногих вещей, имхо, которая хорошо работает там
[User Picture]
From:[info]ketmar
Date:April 28th, 2020 - 09:22 am
(Link)
модель sink/bubble — да, оттуда украдена. очень хорошая идея. а из мозиллы украдена идея раскладывателя на flexbox'ах. с двумя этими штуками уй пишется почти в режиме «за пивком» — поэтому я и пишу под каждый проект с нуля. почти всегда получается как минимум не медленней, чем адаптировать прошлый вариант или бодаться с каким-нибудь тулкитом.