Mercurial > sdl-ios-xcode
comparison src/events/SDL_keyboard.c @ 4434:5c64052fb476
changeset: 4433:25667ea797fa
tag: tip
user: Jiang Jiang <gzjjgod@gmail.com>
date: Thu Apr 15 12:01:46 2010 +0800
summary: Add windowID to text editing event
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 15 Apr 2010 22:14:26 -0700 |
parents | faa9fc8e7f67 |
children | e953700da4ca |
comparison
equal
deleted
inserted
replaced
4433:9fa97c6b0014 | 4434:5c64052fb476 |
---|---|
677 keyboard->focus = window; | 677 keyboard->focus = window; |
678 | 678 |
679 if (keyboard->focus) { | 679 if (keyboard->focus) { |
680 SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_GAINED, | 680 SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_GAINED, |
681 0, 0); | 681 0, 0); |
682 if (SDL_EventState(SDL_TEXTINPUT, SDL_QUERY)) | |
683 SDL_StartTextInput(); | |
682 } | 684 } |
683 } | 685 } |
684 | 686 |
685 int | 687 int |
686 SDL_SendKeyboardKey(int index, Uint8 state, SDL_scancode scancode) | 688 SDL_SendKeyboardKey(int index, Uint8 state, SDL_scancode scancode) |
837 } | 839 } |
838 return (posted); | 840 return (posted); |
839 } | 841 } |
840 | 842 |
841 int | 843 int |
842 SDL_SendEditingText(const char *text, int start, int length) | 844 SDL_SendEditingText(int index, const char *text, int start, int length) |
843 { | 845 { |
846 SDL_Keyboard *keyboard = SDL_GetKeyboard(index); | |
844 int posted; | 847 int posted; |
848 | |
849 if (!keyboard) | |
850 return 0; | |
845 | 851 |
846 /* Post the event, if desired */ | 852 /* Post the event, if desired */ |
847 posted = 0; | 853 posted = 0; |
848 if (SDL_GetEventState(SDL_TEXTEDITING) == SDL_ENABLE) { | 854 if (SDL_GetEventState(SDL_TEXTEDITING) == SDL_ENABLE) { |
849 SDL_Event event; | 855 SDL_Event event; |
850 event.edit.type = SDL_TEXTEDITING; | 856 event.edit.type = SDL_TEXTEDITING; |
851 event.edit.start = start; | 857 event.edit.start = start; |
852 event.edit.length = length; | 858 event.edit.length = length; |
853 SDL_strlcpy(event.edit.text, text, SDL_arraysize(event.text.text)); | 859 SDL_strlcpy(event.edit.text, text, SDL_arraysize(event.text.text)); |
860 event.edit.windowID = keyboard->focus->id; | |
854 posted = (SDL_PushEvent(&event) > 0); | 861 posted = (SDL_PushEvent(&event) > 0); |
855 } | 862 } |
856 return (posted); | 863 return (posted); |
857 } | 864 } |
858 | 865 |