1 | // *****************************************************************************
|
2 | // Copyright (C) 2019 TypeFox and others.
|
3 | //
|
4 | // This program and the accompanying materials are made available under the
|
5 | // terms of the Eclipse Public License v. 2.0 which is available at
|
6 | // http://www.eclipse.org/legal/epl-2.0.
|
7 | //
|
8 | // This Source Code may also be made available under the following Secondary
|
9 | // Licenses when the conditions for such availability set forth in the Eclipse
|
10 | // Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
11 | // with the GNU Classpath Exception which is available at
|
12 | // https://www.gnu.org/software/classpath/license.html.
|
13 | //
|
14 | // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
15 | // *****************************************************************************
|
16 |
|
17 | import { injectable } from 'inversify';
|
18 | import { OS } from '../../common/os';
|
19 |
|
20 | ()
|
21 | export class ContextMenuContext {
|
22 |
|
23 | protected _altPressed = false;
|
24 | get altPressed(): boolean {
|
25 | return this._altPressed;
|
26 | }
|
27 |
|
28 | protected setAltPressed(altPressed: boolean): void {
|
29 | this._altPressed = altPressed;
|
30 | }
|
31 |
|
32 | resetAltPressed(): void {
|
33 | this.setAltPressed(false);
|
34 | }
|
35 |
|
36 | constructor() {
|
37 | document.addEventListener('keydown', e => this.setAltPressed(e.altKey || (OS.type() !== OS.Type.OSX && e.shiftKey)), true);
|
38 | document.addEventListener('keyup', () => this.resetAltPressed(), true);
|
39 | }
|
40 |
|
41 | }
|