diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2024-07-30 14:45:53 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-30 14:45:53 +0900 |
| commit | 866abff54d8e3c377361a0d75ef7ee59ba2fcd84 (patch) | |
| tree | d0c259a75e9e11e9a62b2f61477bd106002c7863 /packages | |
| parent | enhance(frontend): ドライブのファイル・フォルダをドラッグ... (diff) | |
| download | sharkey-866abff54d8e3c377361a0d75ef7ee59ba2fcd84.tar.gz sharkey-866abff54d8e3c377361a0d75ef7ee59ba2fcd84.tar.bz2 sharkey-866abff54d8e3c377361a0d75ef7ee59ba2fcd84.zip | |
enhance(frontend): ブラウザのコンテキストメニューを使用できるように (#14076)
* enhance(frontend): ブラウザのコンテキストメニューを使用できるように
* Update Changelog
* shiftにした
* change keys
* fix
* fix
* fix
* update translation keys
---------
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/frontend/src/os.ts | 8 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/general.vue | 8 | ||||
| -rw-r--r-- | packages/frontend/src/store.ts | 4 |
3 files changed, 20 insertions, 0 deletions
diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts index a8dd99c854..f42e2ed3c5 100644 --- a/packages/frontend/src/os.ts +++ b/packages/frontend/src/os.ts @@ -11,6 +11,7 @@ import * as Misskey from 'misskey-js'; import type { ComponentProps as CP } from 'vue-component-type-helpers'; import type { Form, GetFormResultType } from '@/scripts/form.js'; import { misskeyApi } from '@/scripts/misskey-api.js'; +import { defaultStore } from '@/store.js'; import { i18n } from '@/i18n.js'; import MkPostFormDialog from '@/components/MkPostFormDialog.vue'; import MkWaitingDialog from '@/components/MkWaitingDialog.vue'; @@ -654,6 +655,13 @@ export function popupMenu(items: MenuItem[], src?: HTMLElement | EventTarget | n } export function contextMenu(items: MenuItem[], ev: MouseEvent): Promise<void> { + if ( + defaultStore.state.contextMenu === 'native' || + (defaultStore.state.contextMenu === 'appWithShift' && !ev.shiftKey) + ) { + return Promise.resolve(); + } + let returnFocusTo = getHTMLElementOrNull(ev.currentTarget ?? ev.target) ?? getHTMLElementOrNull(document.activeElement); ev.preventDefault(); return new Promise(resolve => nextTick(() => { diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue index 9e429f8dbd..94ef3b8485 100644 --- a/packages/frontend/src/pages/settings/general.vue +++ b/packages/frontend/src/pages/settings/general.vue @@ -177,6 +177,12 @@ SPDX-License-Identifier: AGPL-3.0-only <option value="dialog">{{ i18n.ts._serverDisconnectedBehavior.dialog }}</option> <option value="quiet">{{ i18n.ts._serverDisconnectedBehavior.quiet }}</option> </MkSelect> + <MkSelect v-model="contextMenu"> + <template #label>{{ i18n.ts._contextMenu.title }}</template> + <option value="app">{{ i18n.ts._contextMenu.app }}</option> + <option value="appWithShift">{{ i18n.ts._contextMenu.appWithShift }}</option> + <option value="native">{{ i18n.ts._contextMenu.native }}</option> + </MkSelect> <MkRange v-model="numberOfPageCache" :min="1" :max="10" :step="1" easing> <template #label>{{ i18n.ts.numberOfPageCache }}</template> <template #caption>{{ i18n.ts.numberOfPageCacheDescription }}</template> @@ -317,6 +323,7 @@ const enableHorizontalSwipe = computed(defaultStore.makeGetterSetter('enableHori const useNativeUIForVideoAudioPlayer = computed(defaultStore.makeGetterSetter('useNativeUIForVideoAudioPlayer')); const alwaysConfirmFollow = computed(defaultStore.makeGetterSetter('alwaysConfirmFollow')); const confirmWhenRevealingSensitiveMedia = computed(defaultStore.makeGetterSetter('confirmWhenRevealingSensitiveMedia')); +const contextMenu = computed(defaultStore.makeGetterSetter('contextMenu')); watch(lang, () => { miLocalStorage.setItem('lang', lang.value as string); @@ -360,6 +367,7 @@ watch([ enableSeasonalScreenEffect, alwaysConfirmFollow, confirmWhenRevealingSensitiveMedia, + contextMenu, ], async () => { await reloadAsk(); }); diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index dbf6b8716f..437314074a 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -458,6 +458,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'device', default: false, }, + contextMenu: { + where: 'device', + default: 'app' as 'app' | 'appWithShift' | 'native', + }, sound_masterVolume: { where: 'device', |