Changeset View
Changeset View
Standalone View
Standalone View
source/blender/windowmanager/intern/wm_window.c
| Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | |||||
| if (win->eventstate) { | if (win->eventstate) { | ||||
| MEM_freeN(win->eventstate); | MEM_freeN(win->eventstate); | ||||
| } | } | ||||
| if (win->cursor_keymap_status) { | if (win->cursor_keymap_status) { | ||||
| MEM_freeN(win->cursor_keymap_status); | MEM_freeN(win->cursor_keymap_status); | ||||
| } | } | ||||
| #ifdef WITH_INPUT_IME | |||||
| if (win->ime_data) { | |||||
| MEM_freeN(win->ime_data); | |||||
| } | |||||
| #endif | |||||
| WM_gestures_free_all(win); | WM_gestures_free_all(win); | ||||
| wm_event_free_all(win); | wm_event_free_all(win); | ||||
| wm_ghostwindow_destroy(wm, win); | wm_ghostwindow_destroy(wm, win); | ||||
| BKE_workspace_instance_hook_free(G_MAIN, win->workspace_hook); | BKE_workspace_instance_hook_free(G_MAIN, win->workspace_hook); | ||||
| MEM_freeN(win->stereo3d_format); | MEM_freeN(win->stereo3d_format); | ||||
| ▲ Show 20 Lines • Show All 184 Lines • ▼ Show 20 Lines | |||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /** \name Window IME API | /** \name Window IME API | ||||
| * \{ */ | * \{ */ | ||||
| #ifdef WITH_INPUT_IME | #ifdef WITH_INPUT_IME | ||||
| /** | void WM_window_IME_begin(wmWindow *win) | ||||
| * \note Keep in mind #wm_window_IME_begin is also used to reposition the IME window. | { | ||||
| */ | BLI_assert(win); | ||||
| void wm_window_IME_begin(wmWindow *win, int x, int y, int w, int h, bool complete) | |||||
| if (win->ime_data == NULL) { | |||||
| win->ime_data = MEM_callocN(sizeof(wmIMEData), __func__); | |||||
| } | |||||
| GHOST_BeginIME(win->ghostwin); | |||||
| } | |||||
| void WM_window_IME_position(wmWindow *win, int x, int y, int h) | |||||
| { | { | ||||
| BLI_assert(win); | BLI_assert(win); | ||||
| GHOST_PositionIME(win->ghostwin, x, win->sizey - y, h); | |||||
| } | |||||
| void WM_window_IME_cancel(wmWindow *win) | |||||
| { | |||||
| if (!win) { | |||||
| GHOST_BeginIME(win->ghostwin, x, win->sizey - y, w, h, complete); | printf("\n"); | ||||
| } | |||||
| BLI_assert(win); | |||||
| if (win->ime_data) { | |||||
| GHOST_CancelIME(win->ghostwin); | |||||
| if (win->ime_data->len > 0) { | |||||
| memset(win->ime_data, 0, sizeof(wmIMEData)); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| void wm_window_IME_end(wmWindow *win) | void WM_window_IME_end(wmWindow *win) | ||||
| { | { | ||||
| BLI_assert(win && win->ime_data); | BLI_assert(win); | ||||
| GHOST_EndIME(win->ghostwin); | if (win->ime_data) { | ||||
| win->ime_data = NULL; | GHOST_EndIME(win->ghostwin); | ||||
| MEM_freeN(win->ime_data); | |||||
| win->ime_data = NULL; | |||||
| } | |||||
| } | } | ||||
| #endif /* WITH_INPUT_IME */ | #endif /* WITH_INPUT_IME */ | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /** \name Direct OpenGL Context Management | /** \name Direct OpenGL Context Management | ||||
| * \{ */ | * \{ */ | ||||
| ▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines | |||||