Skip to content

Commit

Permalink
independent Option/Command as a shortcut... FAILED!
Browse files Browse the repository at this point in the history
  • Loading branch information
youknowone committed Jun 5, 2014
1 parent 0dfcbe2 commit aa19d2a
Show file tree
Hide file tree
Showing 78 changed files with 596 additions and 223 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
@@ -1,3 +1,6 @@
[submodule "libhangul-objc"]
path = libhangul-objc
url = git://github.com/gureum/libhangul-objc.git
[submodule "ShortcutRecorder"]
path = OSX/ShortcutRecorder
url = git://github.com/gureum/shortcutrecorder.git
6 changes: 3 additions & 3 deletions CommonInputMethod/CIMComposer.m
Expand Up @@ -64,7 +64,7 @@ - (CIMInputTextProcessResult)inputController:(CIMInputController *)controller co
return [_delegate inputController:controller commandString:string key:keyCode modifiers:flags client:sender];
}

- (BOOL)inputController:(CIMInputController *)controller inputText:(NSString *)string key:(NSInteger)keyCode modifiers:(NSUInteger)flags client:(id)sender {
- (CIMInputTextProcessResult)inputController:(CIMInputController *)controller inputText:(NSString *)string key:(NSInteger)keyCode modifiers:(NSUInteger)flags client:(id)sender {
return [_delegate inputController:controller inputText:string key:keyCode modifiers:flags client:sender];
}

Expand Down Expand Up @@ -98,8 +98,8 @@ - (NSArray *)candidates { return nil; }

#pragma -

- (BOOL)inputController:(CIMInputController *)controller inputText:(NSString *)string key:(NSInteger)keyCode modifiers:(NSUInteger)flags client:(id)sender {
return NO;
- (CIMInputTextProcessResult)inputController:(CIMInputController *)controller inputText:(NSString *)string key:(NSInteger)keyCode modifiers:(NSUInteger)flags client:(id)sender {
return CIMInputTextProcessResultNotProcessed;
}

@end
23 changes: 21 additions & 2 deletions CommonInputMethod/CIMConfiguration.h
Expand Up @@ -12,12 +12,23 @@
/* Gureum */
FOUNDATION_EXTERN NSString *CIMLastHangulInputMode;

#define CIMConfigurationIntegerItemCount 7
/* Gureum */
#define CIMConfigurationIntegerItemCount 17
/* Shortcut */
FOUNDATION_EXTERN NSString *CIMLeftCommandKeyShortcutBehavior;
FOUNDATION_EXTERN NSString *CIMLeftOptionKeyShortcutBehavior;
FOUNDATION_EXTERN NSString *CIMLeftControlKeyShortcutBehavior;
FOUNDATION_EXTERN NSString *CIMRightCommandKeyShortcutBehavior;
FOUNDATION_EXTERN NSString *CIMRightOptionKeyShortcutBehavior;
FOUNDATION_EXTERN NSString *CIMRightControlKeyShortcutBehavior;
FOUNDATION_EXTERN NSString *CIMInputModeExchangeKeyModifier;
FOUNDATION_EXTERN NSString *CIMInputModeExchangeKeyCode;
FOUNDATION_EXTERN NSString *CIMInputModeHanjaKeyModifier;
FOUNDATION_EXTERN NSString *CIMInputModeHanjaKeyCode;
FOUNDATION_EXTERN NSString *CIMInputModeEnglishKeyModifier;
FOUNDATION_EXTERN NSString *CIMInputModeEnglishKeyCode;
FOUNDATION_EXTERN NSString *CIMInputModeKoreanKeyModifier;
FOUNDATION_EXTERN NSString *CIMInputModeKoreanKeyCode;
/* Gureum */
FOUNDATION_EXTERN NSString *CIMOptionKeyBehavior;
/* Hangul */
FOUNDATION_EXTERN NSString *CIMHangulCombinationModeComposing;
Expand Down Expand Up @@ -69,8 +80,16 @@ extern CIMConfiguration *CIMDefaultUserConfiguration;
NSUserDefaults *userDefaults;
@public
NSString *lastHangulInputMode;
NSInteger leftCommandKeyShortcutBehavior;
NSInteger leftOptionKeyShortcutBehavior;
NSInteger leftControlKeyShortcutBehavior;
NSInteger rightCommandKeyShortcutBehavior;
NSInteger rightOptionKeyShortcutBehavior;
NSInteger rightControlKeyShortcutBehavior;
NSInteger inputModeExchangeKeyModifier, inputModeExchangeKeyCode;
NSInteger inputModeHanjaKeyModifier, inputModeHanjaKeyCode;
NSInteger inputModeEnglishKeyModifier, inputModeEnglishKeyCode;
NSInteger inputModeKoreanKeyModifier, inputModeKoreanKeyCode;
NSInteger optionKeyBehavior;
NSInteger hangulCombinationModeComposing, hangulCombinationModeCommiting;
BOOL sharedInputManager;
Expand Down
20 changes: 20 additions & 0 deletions CommonInputMethod/CIMConfiguration.m
Expand Up @@ -13,10 +13,20 @@

define_preference_key(CIMLastHangulInputMode);

define_preference_key(CIMLeftCommandKeyShortcutBehavior);
define_preference_key(CIMLeftOptionKeyShortcutBehavior);
define_preference_key(CIMLeftControlKeyShortcutBehavior);
define_preference_key(CIMRightCommandKeyShortcutBehavior);
define_preference_key(CIMRightOptionKeyShortcutBehavior);
define_preference_key(CIMRightControlKeyShortcutBehavior);
define_preference_key(CIMInputModeExchangeKeyModifier);
define_preference_key(CIMInputModeExchangeKeyCode);
define_preference_key(CIMInputModeHanjaKeyModifier);
define_preference_key(CIMInputModeHanjaKeyCode);
define_preference_key(CIMInputModeEnglishKeyModifier);
define_preference_key(CIMInputModeEnglishKeyCode);
define_preference_key(CIMInputModeKoreanKeyModifier);
define_preference_key(CIMInputModeKoreanKeyCode);
define_preference_key(CIMOptionKeyBehavior);
define_preference_key(CIMHangulCombinationModeComposing);
define_preference_key(CIMHangulCombinationModeCommiting);
Expand Down Expand Up @@ -57,10 +67,20 @@ - (id)initWithUserDefaults:(NSUserDefaults *)aUserDefaults {
}

struct CIMConfigurationIntegerItem tempIntegerItems[CIMConfigurationIntegerItemCount] = {
{ CIMLeftCommandKeyShortcutBehavior, &self->leftCommandKeyShortcutBehavior, 0 },
{ CIMLeftOptionKeyShortcutBehavior, &self->leftOptionKeyShortcutBehavior, 0 },
{ CIMLeftControlKeyShortcutBehavior, &self->leftControlKeyShortcutBehavior, 0 },
{ CIMRightCommandKeyShortcutBehavior, &self->rightCommandKeyShortcutBehavior, 1 },
{ CIMRightOptionKeyShortcutBehavior, &self->rightOptionKeyShortcutBehavior, 2 },
{ CIMRightControlKeyShortcutBehavior, &self->rightControlKeyShortcutBehavior, 0 },
{ CIMInputModeExchangeKeyModifier, &self->inputModeExchangeKeyModifier, NSShiftKeyMask },
{ CIMInputModeExchangeKeyCode, &self->inputModeExchangeKeyCode, 0x31 },
{ CIMInputModeHanjaKeyModifier, &self->inputModeHanjaKeyModifier, NSAlternateKeyMask },
{ CIMInputModeHanjaKeyCode, &self->inputModeHanjaKeyCode, 0x24 },
{ CIMInputModeEnglishKeyModifier, &self->inputModeEnglishKeyModifier, 0 },
{ CIMInputModeEnglishKeyCode, &self->inputModeEnglishKeyCode, -1 },
{ CIMInputModeKoreanKeyModifier, &self->inputModeKoreanKeyModifier, 0 },
{ CIMInputModeKoreanKeyCode, &self->inputModeKoreanKeyCode, -1 },
{ CIMOptionKeyBehavior, &self->optionKeyBehavior, 0 },
{ CIMHangulCombinationModeComposing, &self->hangulCombinationModeComposing,
(NSInteger)HangulCharacterCombinationWithoutFiller },
Expand Down
23 changes: 15 additions & 8 deletions CommonInputMethod/CIMInputController.m
Expand Up @@ -278,15 +278,22 @@ @implementation CIMInputController (IMKServerInputHandleEvent)

// Receiving Events Directly from the Text Services Manager
- (BOOL)handleEvent:(NSEvent *)event client:(id)sender {
if ([event type] != NSKeyDown) {
dlog(DEBUG_LOGGING, @"LOGGING::NONKEYDOWN::%@/%@", event, sender);
dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController -handleEvent:client: with event: %@ / sender: %@", event, sender);
return NO;
if (event.type == NSKeyDown) {
dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController KEYDOWN -handleEvent:client: with event: %@ / key: %d / modifier: %lu / chars: %@ / chars ignoreMod: %@ / client: %@", event, [event keyCode], [event modifierFlags], [event characters], [event charactersIgnoringModifiers], [[self client] bundleIdentifier]);
BOOL processed = [self->_receiver inputController:self inputText:[event characters] key:[event keyCode] modifiers:[event modifierFlags] client:sender] > CIMInputTextProcessResultNotProcessed;
dlog(DEBUG_LOGGING, @"LOGGING::PROCESSED::%d", processed);
return processed;
}
dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController -handleEvent:client: with event: %@ / key: %d / modifier: %lu / chars: %@ / chars ignoreMod: %@ / client: %@", event, [event keyCode], [event modifierFlags], [event characters], [event charactersIgnoringModifiers], [[self client] bundleIdentifier]);
BOOL processed = [self->_receiver inputController:self inputText:[event characters] key:[event keyCode] modifiers:[event modifierFlags] client:sender] > CIMInputTextProcessResultNotProcessed;
dlog(DEBUG_LOGGING, @"LOGGING::PROCESSED::%d", processed);
return processed;
else if (event.type == NSFlagsChanged) {
// dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController FLAGCHANGED -handleEvent:client: with event: %@ / key: %d / modifier: %lu / chars: %@ / chars ignoreMod: %@ / client: %@", event, -1, [NSEvent modifierFlags], nil, nil, [[self client] bundleIdentifier]);
// BOOL processed = [self->_receiver inputController:self inputText:nil key:-1 modifiers:[NSEvent modifierFlags] client:sender] > CIMInputTextProcessResultNotProcessed;
// dlog(DEBUG_LOGGING, @"LOGGING::PROCESSED::%d", processed);
// return processed;
}

dlog(DEBUG_LOGGING, @"LOGGING::UNHANDLED::%@/%@", event, sender);
dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController -handleEvent:client: with event: %@ / sender: %@", event, sender);
return NO;
}

@end
Expand Down
6 changes: 5 additions & 1 deletion CommonInputMethod/CIMInputHandler.m
Expand Up @@ -67,7 +67,11 @@ - (CIMInputTextProcessResult)inputController:(CIMInputController *)controller in
dlog(TRUE, @"-- CIMInputHandler -inputText: Command/Option key input / returned NO");
return CIMInputTextProcessResultNotProcessedAndNeedsCommit;
}


if (string == nil) {
return CIMInputTextProcessResultNotProcessed;
}

result = [controller.composer inputController:controller inputText:string key:keyCode modifiers:flags client:sender];

finalize:
Expand Down

0 comments on commit aa19d2a

Please sign in to comment.