/**
         * OS X + Unity has issues.
         * Commands won't be run if the command is not in the application menu.
         * Here we trap keystrokes and manually fire the relevant events in the browser.
         *
         * Also, ctrl+A stopped working with CEF at some point on Windows.
         */
        protected void FireCommands(Event ev)
        {
#if ZF_OSX
            if (ev.type != EventType.KeyDown || ev.character != 0 || !ev.command)
            {
                return;
            }

            switch (ev.keyCode)
            {
            case KeyCode.C:
                browser.SendFrameCommand(BrowserNative.FrameCommand.Copy);
                break;

            case KeyCode.X:
                browser.SendFrameCommand(BrowserNative.FrameCommand.Cut);
                break;

            case KeyCode.V:
                browser.SendFrameCommand(BrowserNative.FrameCommand.Paste);
                break;

            case KeyCode.A:
                browser.SendFrameCommand(BrowserNative.FrameCommand.SelectAll);
                break;

            case KeyCode.Z:
                if (ev.shift)
                {
                    browser.SendFrameCommand(BrowserNative.FrameCommand.Redo);
                }
                else
                {
                    browser.SendFrameCommand(BrowserNative.FrameCommand.Undo);
                }
                break;

            case KeyCode.Y:
                //I, for one, prefer Y for redo, but shift+Z is more idiomatic on OS X
                //Support both.
                browser.SendFrameCommand(BrowserNative.FrameCommand.Redo);
                break;
            }
#else
            //mmm, yeah. I guess Unity doesn't send us the keydown on a ctrl+a keystroke anymore.
            if (ev.type != EventType.KeyUp || !ev.control)
            {
                return;
            }

            switch (ev.keyCode)
            {
            case KeyCode.A:
                browser.SendFrameCommand(BrowserNative.FrameCommand.SelectAll);
                break;
            }
#endif
        }
Пример #2
0
	/**
	 * OS X + Unity has issues.
	 * Commands won't be run if the command is not in the application menu.
	 * Here we trap keystrokes and manually fire the relevant events in the browser.
	 */
	protected void FireCommands(Event ev) {
		if (ev.type != EventType.KeyDown || ev.character != 0 || !ev.command) return;

		switch (ev.keyCode) {
			case KeyCode.C:
				browser.SendFrameCommand(BrowserNative.FrameCommand.Copy);
				break;
			case KeyCode.X:
				browser.SendFrameCommand(BrowserNative.FrameCommand.Cut);
				break;
			case KeyCode.V:
				browser.SendFrameCommand(BrowserNative.FrameCommand.Paste);
				break;
			case KeyCode.A:
				browser.SendFrameCommand(BrowserNative.FrameCommand.SelectAll);
				break;
			case KeyCode.Z:
				if (ev.shift) browser.SendFrameCommand(BrowserNative.FrameCommand.Redo);
				else browser.SendFrameCommand(BrowserNative.FrameCommand.Undo);
				break;
			case KeyCode.Y:
				//I, for one, prefer Y for redo, but shift+Z is more idiomatic on OS X
				//Support both.
				browser.SendFrameCommand(BrowserNative.FrameCommand.Redo);
				break;
		}

	}