Various key input fixes.

Reviewed by me.
This commit is contained in:
Francisco Ryan Tolmasky I
2009-06-13 18:27:31 -07:00
parent 1e3b79de17
commit bfcb94a844
3 changed files with 22 additions and 25 deletions
+5 -2
View File
@@ -106,9 +106,12 @@ else if (USER_AGENT.indexOf("AppleWebKit/") != -1)
var versionStart = USER_AGENT.indexOf("AppleWebKit/") + "AppleWebKit/".length,
versionEnd = USER_AGENT.indexOf(" ", versionStart),
version = parseFloat(USER_AGENT.substring(versionStart, versionEnd), 10);
versionString = USER_AGENT.substring(versionStart, versionEnd),
versionDivision = versionString.indexOf('.'),
majorVersion = parseInt(versionString.substring(0, versionDivision)),
minorVersion = parseInt(versionString.substr(versionDivision + 1));
if(USER_AGENT.indexOf("Plainview") == -1 && version >= 525.14 || USER_AGENT.indexOf("Chrome") != -1)
if((USER_AGENT.indexOf("Safari") !== CPNotFound && (majorVersion >= 525 && minorVersion > 14)) || USER_AGENT.indexOf("Chrome") !== CPNotFound)
PLATFORM_FEATURES |= CPJavascriptRemedialKeySupport;
}
+16 -22
View File
@@ -96,36 +96,38 @@ CPDownArrowKeyCode = 40;
*/
- (void)interpretKeyEvents:(CPArray)events
{
var event,
index = 0;
while(event = events[index++])
var index = 0,
count = [events count];
for (; index < count; ++index)
{
var event = events[index];
switch([event keyCode])
{
case CPLeftArrowKeyCode: [self moveBackward:self];
case CPLeftArrowKeyCode: [self doCommandBySelector:@selector(moveLeft:)];
break;
case CPRightArrowKeyCode: [self moveForward:self];
case CPRightArrowKeyCode: [self doCommandBySelector:@selector(moveRight:)];
break;
case CPUpArrowKeyCode: [self moveUp:self];
case CPUpArrowKeyCode: [self doCommandBySelector:@selector(moveUp:)];
break;
case CPDownArrowKeyCode: [self moveDown:self];
case CPDownArrowKeyCode: [self doCommandBySelector:@selector(moveDown:)];
break;
case CPDeleteKeyCode: [self deleteBackward:self];
case CPDeleteKeyCode: [self doCommandBySelector:@selector(deleteBackward:)];
break;
case CPReturnKeyCode:
case 3: [self insertLineBreak:self];
case 3: [self doCommandBySelector:@selector(insertLineBreak:)];
break;
case CPEscapeKeyCode: [self cancel:self];
case CPEscapeKeyCode: [self doCommandBySelector:@selector(cancel:)];
break;
case CPTabKeyCode: var shift = [event modifierFlags] & CPShiftKeyMask;
if (!shift)
[self insertTab:self];
[self doCommandBySelector:@selector(insertTab:)];
else
[self insertBackTab:self];
[self doCommandBySelector:@selector(insertBackTab:)];
break;
@@ -224,14 +226,6 @@ CPDownArrowKeyCode = 40;
}
// Action Methods
/*!
Deletes one character backward, or the selection if anything is selected.
@param aSender the object requesting this
*/
- (void)deleteBackward:(id)aSender
{
}
/*!
Insert a line break at the caret position or selection.
@param aSender the object requesting this
@@ -278,7 +272,7 @@ CPDownArrowKeyCode = 40;
*/
- (void)doCommandBySelector:(SEL)aSelector
{
if([self respondsToSelector:aSelector])
if ([self respondsToSelector:aSelector])
[self performSelector:aSelector];
else
[_nextResponder doCommandBySelector:aSelector];
+1 -1
View File
@@ -119,7 +119,7 @@ function objj_backtrace_set_enabled(enabled)
function objj_debug_print_backtrace()
{
print(objj_debug_backtrace_string());
alert(objj_debug_backtrace_string());
}
function objj_debug_backtrace_string()