worse is better |
[Apr. 28th, 2020|09:54 am] |
всегда писал уи (а я вообще не люблю готовые библиотеки для этого, предпочитаю под задачу быстро сляпать с нуля) с фичей «диспетчер событий управляет передачей фокуса по нажатию мышекнопки». из-за чего наблюдались стрёмные хаки, потому что удобней всего, когда в уи есть «автозахват», как в иксах: пока кнопки на мыши нажаты, все события приходят элементу с фокусом. ну, и пилил автограбы и прочий ужас.
а тут внизапна! в вавумчике янис вообще не стал мудрить: тебе нужен фокус? сам в обработчике события и забери. и оказалось, что так намного проще. комбинируем это с моделью событий sink/bubble — и никакие автограбы в хуй не упёрлись. мышиные события тонут до текущего фокуса, а уже после него отпрвляются элементу, над которым мышь (если по дороге событие никто не съел). диспетчер событий сразу стал простым как полено, а вся система ещё гибче, чем с автозахватом.
это всё к тому, что иногда излишняя автоматизация всё только усложняет. |
|
|
Comments: |
> тебе нужен фокус? сам в обработчике события и забери. и оказалось, что так намного проще. комбинируем это с моделью событий sink/bubble — и никакие автограбы в хуй не упёрлись. мышиные события тонут до текущего фокуса, а уже после него отпрвляются элементу, над которым мышь (если по дороге событие никто не съел). диспетчер событий сразу стал простым как полено, а вся система ещё гибче, чем с автозахватом.
Это ж, по-моему, навеяно подходом из веба и DOM ? Одна из немногих вещей, имхо, которая хорошо работает там
| From: | ketmar |
Date: | April 28th, 2020 - 09:22 am |
---|
| | | (Link) |
|
модель sink/bubble — да, оттуда украдена. очень хорошая идея. а из мозиллы украдена идея раскладывателя на flexbox'ах. с двумя этими штуками уй пишется почти в режиме «за пивком» — поэтому я и пишу под каждый проект с нуля. почти всегда получается как минимум не медленней, чем адаптировать прошлый вариант или бодаться с каким-нибудь тулкитом. | |