diff options
Diffstat (limited to 'src/modules/ecore_imf/wayland/wayland_imcontext.c')
-rw-r--r-- | src/modules/ecore_imf/wayland/wayland_imcontext.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c b/src/modules/ecore_imf/wayland/wayland_imcontext.c index 07072e4760..00a2dde9fa 100644 --- a/src/modules/ecore_imf/wayland/wayland_imcontext.c +++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c | |||
@@ -619,13 +619,18 @@ wayland_im_context_focus_in(Ecore_IMF_Context *ctx) | |||
619 | { | 619 | { |
620 | WaylandIMContext *imcontext = (WaylandIMContext *)ecore_imf_context_data_get(ctx); | 620 | WaylandIMContext *imcontext = (WaylandIMContext *)ecore_imf_context_data_get(ctx); |
621 | Ecore_Wl_Input *input; | 621 | Ecore_Wl_Input *input; |
622 | struct wl_seat *seat; | ||
622 | 623 | ||
623 | EINA_LOG_DOM_INFO(_ecore_imf_wayland_log_dom, "focus-in"); | 624 | EINA_LOG_DOM_INFO(_ecore_imf_wayland_log_dom, "focus-in"); |
624 | 625 | ||
625 | if (!imcontext->window) return; | 626 | if (!imcontext->window) return; |
626 | 627 | ||
627 | input = imcontext->window->keyboard_device; | 628 | input = imcontext->window->keyboard_device; |
628 | if (!input || !input->seat) | 629 | if (!input) |
630 | return; | ||
631 | |||
632 | seat = ecore_wl_input_seat_get(input); | ||
633 | if (!seat) | ||
629 | return; | 634 | return; |
630 | 635 | ||
631 | imcontext->input = input; | 636 | imcontext->input = input; |
@@ -633,8 +638,7 @@ wayland_im_context_focus_in(Ecore_IMF_Context *ctx) | |||
633 | if (imcontext->text_input) | 638 | if (imcontext->text_input) |
634 | { | 639 | { |
635 | wl_text_input_show_input_panel(imcontext->text_input); | 640 | wl_text_input_show_input_panel(imcontext->text_input); |
636 | wl_text_input_activate(imcontext->text_input, | 641 | wl_text_input_activate(imcontext->text_input, seat, |
637 | input->seat, | ||
638 | ecore_wl_window_surface_get(imcontext->window)); | 642 | ecore_wl_window_surface_get(imcontext->window)); |
639 | } | 643 | } |
640 | } | 644 | } |
@@ -650,7 +654,7 @@ wayland_im_context_focus_out(Ecore_IMF_Context *ctx) | |||
650 | 654 | ||
651 | if (imcontext->text_input) | 655 | if (imcontext->text_input) |
652 | wl_text_input_deactivate(imcontext->text_input, | 656 | wl_text_input_deactivate(imcontext->text_input, |
653 | imcontext->input->seat); | 657 | ecore_wl_input_seat_get(imcontext->input)); |
654 | 658 | ||
655 | imcontext->input = NULL; | 659 | imcontext->input = NULL; |
656 | } | 660 | } |