feat(web): хоткей Ctrl+F для полноэкранного режима приложения
Кнопке «На весь экран» в верхней панели добавлен хоткей Ctrl+F. Хоткей `f` полноэкранного просмотра больше не срабатывает на Ctrl+F: модификаторы проверяются явно, поэтому сочетание свободно для кнопки каркаса.
This commit is contained in:
@@ -176,6 +176,17 @@
|
||||
}
|
||||
|
||||
function onKeydown(ev: KeyboardEvent) {
|
||||
// Ctrl+F — полноэкранный режим приложения (кнопка «На весь экран»).
|
||||
if (
|
||||
ev.ctrlKey &&
|
||||
!ev.shiftKey &&
|
||||
!ev.altKey &&
|
||||
(ev.key === 'f' || ev.key === 'F' || ev.key === 'а' || ev.key === 'А')
|
||||
) {
|
||||
ev.preventDefault();
|
||||
toggleFullscreen();
|
||||
return;
|
||||
}
|
||||
if (ev.ctrlKey || ev.metaKey || ev.altKey || ev.repeat) return;
|
||||
|
||||
// `+`/`-` меняют размер миниатюр — как кнопки под регулятором.
|
||||
@@ -275,8 +286,11 @@
|
||||
<button
|
||||
type="button"
|
||||
class="text-text-muted hover:bg-bg-muted hover:text-text inline-flex items-center justify-center rounded-md p-1"
|
||||
aria-label={isFullscreen ? 'Выйти из полноэкранного режима' : 'На весь экран'}
|
||||
title={isFullscreen ? 'Выйти из полноэкранного режима' : 'На весь экран'}
|
||||
aria-label={isFullscreen
|
||||
? 'Выйти из полноэкранного режима (Ctrl+F)'
|
||||
: 'На весь экран (Ctrl+F)'}
|
||||
title={isFullscreen ? 'Выйти из полноэкранного режима (Ctrl+F)' : 'На весь экран (Ctrl+F)'}
|
||||
aria-keyshortcuts="Control+f"
|
||||
aria-pressed={isFullscreen}
|
||||
onclick={toggleFullscreen}
|
||||
>
|
||||
|
||||
@@ -362,7 +362,13 @@
|
||||
else toggleActual();
|
||||
return;
|
||||
}
|
||||
if (ev.key === 'f' || ev.key === 'F' || ev.key === 'а' || ev.key === 'А') {
|
||||
// `f` — полноэкранный просмотр; `Ctrl+F` отдан кнопке «На весь экран» каркаса.
|
||||
if (
|
||||
!ev.ctrlKey &&
|
||||
!ev.metaKey &&
|
||||
!ev.altKey &&
|
||||
(ev.key === 'f' || ev.key === 'F' || ev.key === 'а' || ev.key === 'А')
|
||||
) {
|
||||
ev.preventDefault();
|
||||
toggleViewerFullscreen();
|
||||
return;
|
||||
|
||||
@@ -479,12 +479,19 @@ Ctrl/Cmd-клик — добавить или убрать, Shift-клик —
|
||||
Верхняя панель приложения и верхняя панель режима просмотра SHALL иметь минимальную высоту
|
||||
(узкие отступы, иконочные органы управления), сохраняя все действия доступными. Верхняя панель
|
||||
режима просмотра SHALL быть прозрачным оверлеем и SHALL не занимать место в раскладке,
|
||||
увеличивая область фото.
|
||||
увеличивая область фото. Кнопка «На весь экран» верхней панели приложения SHALL иметь хоткей
|
||||
`Ctrl+F`; хоткей `f` полноэкранного просмотра SHALL срабатывать только без модификаторов, чтобы
|
||||
`Ctrl+F` не перехватывался.
|
||||
|
||||
#### Scenario: Компактные верхние панели
|
||||
- **WHEN** открыт список альбомов или режим просмотра фото
|
||||
- **THEN** верхняя панель занимает минимум высоты, а её действия (навигация, полный экран, скачивание, удаление) доступны
|
||||
|
||||
#### Scenario: Полный экран по хоткею
|
||||
- **WHEN** пользователь нажимает `Ctrl+F`
|
||||
- **THEN** приложение переходит в полноэкранный режим или выходит из него, а в режиме просмотра
|
||||
фото полноэкранным остаётся сам просмотр
|
||||
|
||||
#### Scenario: Прозрачная панель просмотра
|
||||
- **WHEN** открыт режим просмотра фото
|
||||
- **THEN** верхняя панель нарисована поверх фото без фона и не уменьшает область изображения
|
||||
|
||||
Reference in New Issue
Block a user