/** * 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 }
/** * 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; } }