зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1645887 - Fix text copied by 'Copy to clipboard' and 'Copy source text' context menu items r=davidwalsh
This patch addresses the issue reported by [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1645887 | Bug 1645887 ]] where the context menu items in the `Editor` were not copying the expected text to the clipboard. Regarding the context menu in the `Editor` this patch modifies the menu items so that: 1. 'Copy to clipboard' => Copies the text that has been selected by a user to the clipboard. 2. 'Copy source text' => Copies all of the text from a source to the clipboard. In addition to the above fix, this patch also modifies a related item in the `Tab` context menu so that: 1. The text for the ‘Copy to clipboard’ menu item is now replaced with ‘Copy source text’. As with the context menu in the `Editor`, the pre-existing ‘Copy to clipboard’ menu item in the `Tab` copied all of the text from a source to the clipboard. However, instead of modifying the functionality of this menu item, the decision was made to replace the ‘Copy to clipboard’ text with ‘Copy source text’. This was done as the `Tab` and its context menu typically provides the user with general information about the file being displayed instead of being concerned with details such as the state of the editor. {F2332380} Differential Revision: https://phabricator.services.mozilla.com/D81887
This commit is contained in:
Родитель
d8e1e4a499
Коммит
967178f81b
|
@ -137,7 +137,7 @@ class Tab extends PureComponent<Props> {
|
||||||
{ item: { type: "separator" } },
|
{ item: { type: "separator" } },
|
||||||
{
|
{
|
||||||
item: {
|
item: {
|
||||||
...tabMenuItems.copyToClipboard,
|
...tabMenuItems.copySource,
|
||||||
disabled: selectedSource.id !== tab,
|
disabled: selectedSource.id !== tab,
|
||||||
click: () => copyToClipboard(sourceTab),
|
click: () => copyToClipboard(sourceTab),
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,6 +28,7 @@ import type {
|
||||||
ThreadContext,
|
ThreadContext,
|
||||||
} from "../../../types";
|
} from "../../../types";
|
||||||
|
|
||||||
|
// Menu Items
|
||||||
export const continueToHereItem = (
|
export const continueToHereItem = (
|
||||||
cx: ThreadContext,
|
cx: ThreadContext,
|
||||||
location: SourceLocation,
|
location: SourceLocation,
|
||||||
|
@ -41,31 +42,28 @@ export const continueToHereItem = (
|
||||||
label: L10N.getStr("editor.continueToHere.label"),
|
label: L10N.getStr("editor.continueToHere.label"),
|
||||||
});
|
});
|
||||||
|
|
||||||
// menu items
|
|
||||||
|
|
||||||
const copyToClipboardItem = (
|
const copyToClipboardItem = (
|
||||||
selectedContent: SourceContent,
|
selectionText: string,
|
||||||
editorActions: EditorItemActions
|
editorActions: EditorItemActions
|
||||||
) => ({
|
) => ({
|
||||||
id: "node-menu-copy-to-clipboard",
|
id: "node-menu-copy-to-clipboard",
|
||||||
label: L10N.getStr("copyToClipboard.label"),
|
label: L10N.getStr("copyToClipboard.label"),
|
||||||
accesskey: L10N.getStr("copyToClipboard.accesskey"),
|
accesskey: L10N.getStr("copyToClipboard.accesskey"),
|
||||||
disabled: false,
|
disabled: selectionText.length === 0,
|
||||||
click: () =>
|
click: () => copyToTheClipboard(selectionText),
|
||||||
selectedContent.type === "text" &&
|
|
||||||
copyToTheClipboard(selectedContent.value),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const copySourceItem = (
|
const copySourceItem = (
|
||||||
selectedSource: Source,
|
selectedContent: SourceContent,
|
||||||
selectionText: string,
|
|
||||||
editorActions: EditorItemActions
|
editorActions: EditorItemActions
|
||||||
) => ({
|
) => ({
|
||||||
id: "node-menu-copy-source",
|
id: "node-menu-copy-source",
|
||||||
label: L10N.getStr("copySource.label"),
|
label: L10N.getStr("copySource.label"),
|
||||||
accesskey: L10N.getStr("copySource.accesskey"),
|
accesskey: L10N.getStr("copySource.accesskey"),
|
||||||
disabled: selectionText.length === 0,
|
disabled: false,
|
||||||
click: () => copyToTheClipboard(selectionText),
|
click: () =>
|
||||||
|
selectedContent.type === "text" &&
|
||||||
|
copyToTheClipboard(selectedContent.value),
|
||||||
});
|
});
|
||||||
|
|
||||||
const copySourceUri2Item = (
|
const copySourceUri2Item = (
|
||||||
|
@ -203,10 +201,10 @@ export function editorMenuItems({
|
||||||
),
|
),
|
||||||
continueToHereItem(cx, location, isPaused, editorActions),
|
continueToHereItem(cx, location, isPaused, editorActions),
|
||||||
{ type: "separator" },
|
{ type: "separator" },
|
||||||
...(content ? [copyToClipboardItem(content, editorActions)] : []),
|
copyToClipboardItem(selectionText, editorActions),
|
||||||
...(!selectedSource.isWasm
|
...(!selectedSource.isWasm
|
||||||
? [
|
? [
|
||||||
copySourceItem(selectedSource, selectionText, editorActions),
|
...(content ? [copySourceItem(content, editorActions)] : []),
|
||||||
copySourceUri2Item(selectedSource, editorActions),
|
copySourceUri2Item(selectedSource, editorActions),
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
|
|
|
@ -78,10 +78,10 @@ export function getTabMenuItems(): Object {
|
||||||
accesskey: L10N.getStr("sourceTabs.revealInTree.accesskey"),
|
accesskey: L10N.getStr("sourceTabs.revealInTree.accesskey"),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
},
|
},
|
||||||
copyToClipboard: {
|
copySource: {
|
||||||
id: "node-menu-copy-to-clipboard",
|
id: "node-menu-copy-source",
|
||||||
label: L10N.getStr("copyToClipboard.label"),
|
label: L10N.getStr("copySource.label"),
|
||||||
accesskey: L10N.getStr("copyToClipboard.accesskey"),
|
accesskey: L10N.getStr("copySource.accesskey"),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
},
|
},
|
||||||
copySourceUri2: {
|
copySourceUri2: {
|
||||||
|
|
|
@ -19,12 +19,12 @@ collapseSources=Collapse Sources and Outline panes
|
||||||
collapseBreakpoints=Collapse Breakpoints pane
|
collapseBreakpoints=Collapse Breakpoints pane
|
||||||
|
|
||||||
# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
|
# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
|
||||||
# context menu to copy the complete source of the open file.
|
# context menu to copy the text that the user selected.
|
||||||
copyToClipboard.label=Copy to clipboard
|
copyToClipboard.label=Copy to clipboard
|
||||||
copyToClipboard.accesskey=C
|
copyToClipboard.accesskey=C
|
||||||
|
|
||||||
# LOCALIZATION NOTE (copySource.label): This is the text that appears in the
|
# LOCALIZATION NOTE (copySource.label): This is the text that appears in the
|
||||||
# context menu to copy the selected source of file open.
|
# context menu to copy all of the text in the open file.
|
||||||
copySource.label=Copy source text
|
copySource.label=Copy source text
|
||||||
copySource.accesskey=y
|
copySource.accesskey=y
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче