Changeset View
Changeset View
Standalone View
Standalone View
intern/ghost/intern/GHOST_SystemWin32.cpp
| Show First 20 Lines • Show All 829 Lines • ▼ Show 20 Lines | GHOST_Event *GHOST_SystemWin32::processWindowEvent(GHOST_TEventType type, GHOST_WindowWin32 *window) | ||||
| if (type == GHOST_kEventWindowActivate) { | if (type == GHOST_kEventWindowActivate) { | ||||
| system->getWindowManager()->setActiveWindow(window); | system->getWindowManager()->setActiveWindow(window); | ||||
| window->bringTabletContextToFront(); | window->bringTabletContextToFront(); | ||||
| } | } | ||||
| return new GHOST_Event(system->getMilliSeconds(), type, window); | return new GHOST_Event(system->getMilliSeconds(), type, window); | ||||
| } | } | ||||
| #ifdef WITH_INPUT_IME | #ifdef WITH_IM_ONTHESPOT | ||||
| GHOST_Event *GHOST_SystemWin32::processImeEvent(GHOST_TEventType type, GHOST_WindowWin32 *window, GHOST_TEventImeData *data) | GHOST_Event *GHOST_SystemWin32::processImeEvent(GHOST_TEventType type, GHOST_WindowWin32 *window, GHOST_TEventIMData *data) | ||||
| { | { | ||||
| GHOST_SystemWin32 *system = (GHOST_SystemWin32 *)getSystem(); | GHOST_SystemWin32 *system = (GHOST_SystemWin32 *)getSystem(); | ||||
| return new GHOST_EventIME(system->getMilliSeconds(), type, window, data); | return new GHOST_EventIME(system->getMilliSeconds(), type, window, data); | ||||
| } | } | ||||
| #endif | #endif | ||||
| GHOST_TSuccess GHOST_SystemWin32::pushDragDropEvent( | GHOST_TSuccess GHOST_SystemWin32::pushDragDropEvent( | ||||
| ▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | if (hwnd) { | ||||
| GHOST_WindowWin32 *window = (GHOST_WindowWin32 *)::GetWindowLongPtr(hwnd, GWLP_USERDATA); | GHOST_WindowWin32 *window = (GHOST_WindowWin32 *)::GetWindowLongPtr(hwnd, GWLP_USERDATA); | ||||
| if (window) { | if (window) { | ||||
| switch (msg) { | switch (msg) { | ||||
| // we need to check if new key layout has AltGr | // we need to check if new key layout has AltGr | ||||
| case WM_INPUTLANGCHANGE: | case WM_INPUTLANGCHANGE: | ||||
| { | { | ||||
| system->handleKeyboardChange(); | system->handleKeyboardChange(); | ||||
| #ifdef WITH_INPUT_IME | #ifdef WITH_IM_ONTHESPOT | ||||
| window->getImeInput()->SetInputLanguage(); | window->getImeInput()->SetInputLanguage(); | ||||
| #endif | #endif | ||||
| break; | break; | ||||
| } | } | ||||
| //////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||||
| // Keyboard events, processed | // Keyboard events, processed | ||||
| //////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||||
| case WM_INPUT: | case WM_INPUT: | ||||
| Show All 23 Lines | #ifdef WITH_INPUT_NDOF | ||||
| case RIM_TYPEHID: | case RIM_TYPEHID: | ||||
| if (system->processNDOF(raw)) | if (system->processNDOF(raw)) | ||||
| eventHandled = true; | eventHandled = true; | ||||
| break; | break; | ||||
| #endif | #endif | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| #ifdef WITH_INPUT_IME | #ifdef WITH_IM_ONTHESPOT | ||||
| //////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||||
| // IME events, processed, read more in GHOST_IME.h | // IME events, processed, read more in GHOST_IME.h | ||||
| //////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||||
| case WM_IME_SETCONTEXT: | case WM_IME_SETCONTEXT: | ||||
| { | { | ||||
| GHOST_ImeWin32 *ime = window->getImeInput(); | GHOST_ImeWin32 *ime = window->getImeInput(); | ||||
| ime->SetInputLanguage(); | ime->SetInputLanguage(); | ||||
| ime->CreateImeWindow(hwnd); | ime->CreateImeWindow(hwnd); | ||||
| ime->CleanupComposition(hwnd); | ime->CleanupComposition(hwnd); | ||||
| ime->CheckFirst(hwnd); | ime->CheckFirst(hwnd); | ||||
| break; | break; | ||||
| } | } | ||||
| case WM_IME_STARTCOMPOSITION: | case WM_IME_STARTCOMPOSITION: | ||||
| { | { | ||||
| GHOST_ImeWin32 *ime = window->getImeInput(); | GHOST_ImeWin32 *ime = window->getImeInput(); | ||||
| eventHandled = true; | eventHandled = true; | ||||
| /* remove input event before start comp event, avoid redundant input */ | /* remove input event before start comp event, avoid redundant input */ | ||||
| eventManager->removeTypeEvents(GHOST_kEventKeyDown, window); | eventManager->removeTypeEvents(GHOST_kEventKeyDown, window); | ||||
| ime->CreateImeWindow(hwnd); | ime->CreateImeWindow(hwnd); | ||||
| ime->ResetComposition(hwnd); | ime->ResetComposition(hwnd); | ||||
| event = processImeEvent( | event = processImeEvent( | ||||
| GHOST_kEventImeCompositionStart, | GHOST_kEventIMCompositionStart, | ||||
| window, | window, | ||||
| &ime->eventImeData); | &ime->eventImeData); | ||||
| break; | break; | ||||
| } | } | ||||
| case WM_IME_COMPOSITION: | case WM_IME_COMPOSITION: | ||||
| { | { | ||||
| GHOST_ImeWin32 *ime = window->getImeInput(); | GHOST_ImeWin32 *ime = window->getImeInput(); | ||||
| eventHandled = true; | eventHandled = true; | ||||
| ime->UpdateImeWindow(hwnd); | ime->UpdateImeWindow(hwnd); | ||||
| ime->UpdateInfo(hwnd); | ime->UpdateInfo(hwnd); | ||||
| if (ime->eventImeData.result_len) { | if (ime->eventImeData.result_len) { | ||||
| /* remove redundant IME event */ | /* remove redundant IME event */ | ||||
| eventManager->removeTypeEvents(GHOST_kEventImeComposition, window); | eventManager->removeTypeEvents(GHOST_kEventIMComposition, window); | ||||
| } | } | ||||
| event = processImeEvent( | event = processImeEvent( | ||||
| GHOST_kEventImeComposition, | GHOST_kEventIMComposition, | ||||
| window, | window, | ||||
| &ime->eventImeData); | &ime->eventImeData); | ||||
| break; | break; | ||||
| } | } | ||||
| case WM_IME_ENDCOMPOSITION: | case WM_IME_ENDCOMPOSITION: | ||||
| { | { | ||||
| GHOST_ImeWin32 *ime = window->getImeInput(); | GHOST_ImeWin32 *ime = window->getImeInput(); | ||||
| eventHandled = true; | eventHandled = true; | ||||
| /* remove input event after end comp event, avoid redundant input */ | /* remove input event after end comp event, avoid redundant input */ | ||||
| eventManager->removeTypeEvents(GHOST_kEventKeyDown, window); | eventManager->removeTypeEvents(GHOST_kEventKeyDown, window); | ||||
| ime->ResetComposition(hwnd); | ime->ResetComposition(hwnd); | ||||
| ime->DestroyImeWindow(hwnd); | ime->DestroyImeWindow(hwnd); | ||||
| event = processImeEvent( | event = processImeEvent( | ||||
| GHOST_kEventImeCompositionEnd, | GHOST_kEventIMCompositionEnd, | ||||
| window, | window, | ||||
| &ime->eventImeData); | &ime->eventImeData); | ||||
| break; | break; | ||||
| } | } | ||||
| #endif /* WITH_INPUT_IME */ | #endif /* WITH_IM_ONTHESPOT */ | ||||
| //////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||||
| // Keyboard events, ignored | // Keyboard events, ignored | ||||
| //////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||||
| case WM_KEYDOWN: | case WM_KEYDOWN: | ||||
| case WM_SYSKEYDOWN: | case WM_SYSKEYDOWN: | ||||
| case WM_KEYUP: | case WM_KEYUP: | ||||
| case WM_SYSKEYUP: | case WM_SYSKEYUP: | ||||
| /* These functions were replaced by WM_INPUT*/ | /* These functions were replaced by WM_INPUT*/ | ||||
| ▲ Show 20 Lines • Show All 572 Lines • Show Last 20 Lines | |||||