equal
deleted
inserted
replaced
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)) |
682 |
|
683 if (SDL_EventState(SDL_TEXTINPUT, SDL_QUERY)) { |
683 SDL_StartTextInput(); |
684 SDL_StartTextInput(); |
|
685 } |
684 } |
686 } |
685 } |
687 } |
686 |
688 |
687 int |
689 int |
688 SDL_SendKeyboardKey(int index, Uint8 state, SDL_scancode scancode) |
690 SDL_SendKeyboardKey(int index, Uint8 state, SDL_scancode scancode) |
830 /* Post the event, if desired */ |
832 /* Post the event, if desired */ |
831 posted = 0; |
833 posted = 0; |
832 if (SDL_GetEventState(SDL_TEXTINPUT) == SDL_ENABLE) { |
834 if (SDL_GetEventState(SDL_TEXTINPUT) == SDL_ENABLE) { |
833 SDL_Event event; |
835 SDL_Event event; |
834 event.text.type = SDL_TEXTINPUT; |
836 event.text.type = SDL_TEXTINPUT; |
|
837 event.text.windowID = keyboard->focus ? keyboard->focus->id : 0; |
835 event.text.which = (Uint8) index; |
838 event.text.which = (Uint8) index; |
836 SDL_strlcpy(event.text.text, text, SDL_arraysize(event.text.text)); |
839 SDL_strlcpy(event.text.text, text, SDL_arraysize(event.text.text)); |
837 event.text.windowID = keyboard->focus->id; |
840 event.text.windowID = keyboard->focus->id; |
838 posted = (SDL_PushEvent(&event) > 0); |
841 posted = (SDL_PushEvent(&event) > 0); |
839 } |
842 } |
844 SDL_SendEditingText(int index, const char *text, int start, int length) |
847 SDL_SendEditingText(int index, const char *text, int start, int length) |
845 { |
848 { |
846 SDL_Keyboard *keyboard = SDL_GetKeyboard(index); |
849 SDL_Keyboard *keyboard = SDL_GetKeyboard(index); |
847 int posted; |
850 int posted; |
848 |
851 |
849 if (!keyboard) |
852 if (!keyboard) { |
850 return 0; |
853 return 0; |
|
854 } |
851 |
855 |
852 /* Post the event, if desired */ |
856 /* Post the event, if desired */ |
853 posted = 0; |
857 posted = 0; |
854 if (SDL_GetEventState(SDL_TEXTEDITING) == SDL_ENABLE) { |
858 if (SDL_GetEventState(SDL_TEXTEDITING) == SDL_ENABLE) { |
855 SDL_Event event; |
859 SDL_Event event; |
856 event.edit.type = SDL_TEXTEDITING; |
860 event.edit.type = SDL_TEXTEDITING; |
|
861 event.edit.windowID = keyboard->focus ? keyboard->focus->id : 0; |
|
862 event.text.which = (Uint8) index; |
857 event.edit.start = start; |
863 event.edit.start = start; |
858 event.edit.length = length; |
864 event.edit.length = length; |
859 SDL_strlcpy(event.edit.text, text, SDL_arraysize(event.text.text)); |
865 SDL_strlcpy(event.edit.text, text, SDL_arraysize(event.edit.text)); |
860 event.edit.windowID = keyboard->focus->id; |
|
861 posted = (SDL_PushEvent(&event) > 0); |
866 posted = (SDL_PushEvent(&event) > 0); |
862 } |
867 } |
863 return (posted); |
868 return (posted); |
864 } |
869 } |
865 |
870 |