Mercurial > dwindows
comparison mac/dw.m @ 724:41080d22edc8
Couple more fixes to keyhandling... committed before I finished what I was doing...
Problem of views not having focus and ignoring the keystrokes remains...
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 14 Mar 2011 02:08:36 +0000 |
parents | 37c8d2b4cec5 |
children | 4e09c92363df |
comparison
equal
deleted
inserted
replaced
723:37c8d2b4cec5 | 724:41080d22edc8 |
---|---|
181 case 2: | 181 case 2: |
182 { | 182 { |
183 int (*keypressfunc)(HWND, char, int, int, void *) = handler->signalfunction; | 183 int (*keypressfunc)(HWND, char, int, int, void *) = handler->signalfunction; |
184 NSString *nchar = [event charactersIgnoringModifiers]; | 184 NSString *nchar = [event charactersIgnoringModifiers]; |
185 int special = (int)[event modifierFlags]; | 185 int special = (int)[event modifierFlags]; |
186 unichar vk = [nchar characterAtIndex:0]; | |
186 char ch; | 187 char ch; |
187 | 188 |
188 /* Reject dead keys */ | |
189 if([nchar length] == 0) | |
190 { | |
191 return 0; | |
192 } | |
193 /* Handle a valid key */ | 189 /* Handle a valid key */ |
194 else if([nchar length] == 1) | 190 if([nchar length] == 1) |
195 { | 191 { |
196 const char *tmp = [nchar UTF8String]; | 192 const char *tmp = [nchar UTF8String]; |
197 if(tmp) | 193 if(tmp) |
198 { | 194 { |
199 ch = tmp[0]; | 195 ch = tmp[0]; |
200 } | 196 } |
201 } | 197 } |
202 | 198 |
203 return keypressfunc(handler->window, ch, 0, special, handler->data); | 199 return keypressfunc(handler->window, ch, (int)vk, special, handler->data); |
204 } | 200 } |
205 /* Button press and release event */ | 201 /* Button press and release event */ |
206 case 3: | 202 case 3: |
207 case 4: | 203 case 4: |
208 { | 204 { |