Skip to content

Commit aa19d2a

Browse files
committed
independent Option/Command as a shortcut... FAILED!
1 parent 0dfcbe2 commit aa19d2a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+596
-223
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "libhangul-objc"]
22
path = libhangul-objc
33
url = git://github.com/gureum/libhangul-objc.git
4+
[submodule "ShortcutRecorder"]
5+
path = OSX/ShortcutRecorder
6+
url = git://github.com/gureum/shortcutrecorder.git

CommonInputMethod/CIMComposer.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ - (CIMInputTextProcessResult)inputController:(CIMInputController *)controller co
6464
return [_delegate inputController:controller commandString:string key:keyCode modifiers:flags client:sender];
6565
}
6666

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

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

9999
#pragma -
100100

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

105105
@end

CommonInputMethod/CIMConfiguration.h

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,23 @@
1212
/* Gureum */
1313
FOUNDATION_EXTERN NSString *CIMLastHangulInputMode;
1414

15-
#define CIMConfigurationIntegerItemCount 7
16-
/* Gureum */
15+
#define CIMConfigurationIntegerItemCount 17
16+
/* Shortcut */
17+
FOUNDATION_EXTERN NSString *CIMLeftCommandKeyShortcutBehavior;
18+
FOUNDATION_EXTERN NSString *CIMLeftOptionKeyShortcutBehavior;
19+
FOUNDATION_EXTERN NSString *CIMLeftControlKeyShortcutBehavior;
20+
FOUNDATION_EXTERN NSString *CIMRightCommandKeyShortcutBehavior;
21+
FOUNDATION_EXTERN NSString *CIMRightOptionKeyShortcutBehavior;
22+
FOUNDATION_EXTERN NSString *CIMRightControlKeyShortcutBehavior;
1723
FOUNDATION_EXTERN NSString *CIMInputModeExchangeKeyModifier;
1824
FOUNDATION_EXTERN NSString *CIMInputModeExchangeKeyCode;
1925
FOUNDATION_EXTERN NSString *CIMInputModeHanjaKeyModifier;
2026
FOUNDATION_EXTERN NSString *CIMInputModeHanjaKeyCode;
27+
FOUNDATION_EXTERN NSString *CIMInputModeEnglishKeyModifier;
28+
FOUNDATION_EXTERN NSString *CIMInputModeEnglishKeyCode;
29+
FOUNDATION_EXTERN NSString *CIMInputModeKoreanKeyModifier;
30+
FOUNDATION_EXTERN NSString *CIMInputModeKoreanKeyCode;
31+
/* Gureum */
2132
FOUNDATION_EXTERN NSString *CIMOptionKeyBehavior;
2233
/* Hangul */
2334
FOUNDATION_EXTERN NSString *CIMHangulCombinationModeComposing;
@@ -69,8 +80,16 @@ extern CIMConfiguration *CIMDefaultUserConfiguration;
6980
NSUserDefaults *userDefaults;
7081
@public
7182
NSString *lastHangulInputMode;
83+
NSInteger leftCommandKeyShortcutBehavior;
84+
NSInteger leftOptionKeyShortcutBehavior;
85+
NSInteger leftControlKeyShortcutBehavior;
86+
NSInteger rightCommandKeyShortcutBehavior;
87+
NSInteger rightOptionKeyShortcutBehavior;
88+
NSInteger rightControlKeyShortcutBehavior;
7289
NSInteger inputModeExchangeKeyModifier, inputModeExchangeKeyCode;
7390
NSInteger inputModeHanjaKeyModifier, inputModeHanjaKeyCode;
91+
NSInteger inputModeEnglishKeyModifier, inputModeEnglishKeyCode;
92+
NSInteger inputModeKoreanKeyModifier, inputModeKoreanKeyCode;
7493
NSInteger optionKeyBehavior;
7594
NSInteger hangulCombinationModeComposing, hangulCombinationModeCommiting;
7695
BOOL sharedInputManager;

CommonInputMethod/CIMConfiguration.m

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,20 @@
1313

1414
define_preference_key(CIMLastHangulInputMode);
1515

16+
define_preference_key(CIMLeftCommandKeyShortcutBehavior);
17+
define_preference_key(CIMLeftOptionKeyShortcutBehavior);
18+
define_preference_key(CIMLeftControlKeyShortcutBehavior);
19+
define_preference_key(CIMRightCommandKeyShortcutBehavior);
20+
define_preference_key(CIMRightOptionKeyShortcutBehavior);
21+
define_preference_key(CIMRightControlKeyShortcutBehavior);
1622
define_preference_key(CIMInputModeExchangeKeyModifier);
1723
define_preference_key(CIMInputModeExchangeKeyCode);
1824
define_preference_key(CIMInputModeHanjaKeyModifier);
1925
define_preference_key(CIMInputModeHanjaKeyCode);
26+
define_preference_key(CIMInputModeEnglishKeyModifier);
27+
define_preference_key(CIMInputModeEnglishKeyCode);
28+
define_preference_key(CIMInputModeKoreanKeyModifier);
29+
define_preference_key(CIMInputModeKoreanKeyCode);
2030
define_preference_key(CIMOptionKeyBehavior);
2131
define_preference_key(CIMHangulCombinationModeComposing);
2232
define_preference_key(CIMHangulCombinationModeCommiting);
@@ -57,10 +67,20 @@ - (id)initWithUserDefaults:(NSUserDefaults *)aUserDefaults {
5767
}
5868

5969
struct CIMConfigurationIntegerItem tempIntegerItems[CIMConfigurationIntegerItemCount] = {
70+
{ CIMLeftCommandKeyShortcutBehavior, &self->leftCommandKeyShortcutBehavior, 0 },
71+
{ CIMLeftOptionKeyShortcutBehavior, &self->leftOptionKeyShortcutBehavior, 0 },
72+
{ CIMLeftControlKeyShortcutBehavior, &self->leftControlKeyShortcutBehavior, 0 },
73+
{ CIMRightCommandKeyShortcutBehavior, &self->rightCommandKeyShortcutBehavior, 1 },
74+
{ CIMRightOptionKeyShortcutBehavior, &self->rightOptionKeyShortcutBehavior, 2 },
75+
{ CIMRightControlKeyShortcutBehavior, &self->rightControlKeyShortcutBehavior, 0 },
6076
{ CIMInputModeExchangeKeyModifier, &self->inputModeExchangeKeyModifier, NSShiftKeyMask },
6177
{ CIMInputModeExchangeKeyCode, &self->inputModeExchangeKeyCode, 0x31 },
6278
{ CIMInputModeHanjaKeyModifier, &self->inputModeHanjaKeyModifier, NSAlternateKeyMask },
6379
{ CIMInputModeHanjaKeyCode, &self->inputModeHanjaKeyCode, 0x24 },
80+
{ CIMInputModeEnglishKeyModifier, &self->inputModeEnglishKeyModifier, 0 },
81+
{ CIMInputModeEnglishKeyCode, &self->inputModeEnglishKeyCode, -1 },
82+
{ CIMInputModeKoreanKeyModifier, &self->inputModeKoreanKeyModifier, 0 },
83+
{ CIMInputModeKoreanKeyCode, &self->inputModeKoreanKeyCode, -1 },
6484
{ CIMOptionKeyBehavior, &self->optionKeyBehavior, 0 },
6585
{ CIMHangulCombinationModeComposing, &self->hangulCombinationModeComposing,
6686
(NSInteger)HangulCharacterCombinationWithoutFiller },

CommonInputMethod/CIMInputController.m

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,15 +278,22 @@ @implementation CIMInputController (IMKServerInputHandleEvent)
278278

279279
// Receiving Events Directly from the Text Services Manager
280280
- (BOOL)handleEvent:(NSEvent *)event client:(id)sender {
281-
if ([event type] != NSKeyDown) {
282-
dlog(DEBUG_LOGGING, @"LOGGING::NONKEYDOWN::%@/%@", event, sender);
283-
dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController -handleEvent:client: with event: %@ / sender: %@", event, sender);
284-
return NO;
281+
if (event.type == NSKeyDown) {
282+
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]);
283+
BOOL processed = [self->_receiver inputController:self inputText:[event characters] key:[event keyCode] modifiers:[event modifierFlags] client:sender] > CIMInputTextProcessResultNotProcessed;
284+
dlog(DEBUG_LOGGING, @"LOGGING::PROCESSED::%d", processed);
285+
return processed;
285286
}
286-
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]);
287-
BOOL processed = [self->_receiver inputController:self inputText:[event characters] key:[event keyCode] modifiers:[event modifierFlags] client:sender] > CIMInputTextProcessResultNotProcessed;
288-
dlog(DEBUG_LOGGING, @"LOGGING::PROCESSED::%d", processed);
289-
return processed;
287+
else if (event.type == NSFlagsChanged) {
288+
// 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]);
289+
// BOOL processed = [self->_receiver inputController:self inputText:nil key:-1 modifiers:[NSEvent modifierFlags] client:sender] > CIMInputTextProcessResultNotProcessed;
290+
// dlog(DEBUG_LOGGING, @"LOGGING::PROCESSED::%d", processed);
291+
// return processed;
292+
}
293+
294+
dlog(DEBUG_LOGGING, @"LOGGING::UNHANDLED::%@/%@", event, sender);
295+
dlog(DEBUG_INPUTCONTROLLER, @"** CIMInputController -handleEvent:client: with event: %@ / sender: %@", event, sender);
296+
return NO;
290297
}
291298

292299
@end

CommonInputMethod/CIMInputHandler.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,11 @@ - (CIMInputTextProcessResult)inputController:(CIMInputController *)controller in
6767
dlog(TRUE, @"-- CIMInputHandler -inputText: Command/Option key input / returned NO");
6868
return CIMInputTextProcessResultNotProcessedAndNeedsCommit;
6969
}
70-
70+
71+
if (string == nil) {
72+
return CIMInputTextProcessResultNotProcessed;
73+
}
74+
7175
result = [controller.composer inputController:controller inputText:string key:keyCode modifiers:flags client:sender];
7276

7377
finalize:

0 commit comments

Comments
 (0)