From f7ac2f42c22b8324cc30b50dc255f85df406765a Mon Sep 17 00:00:00 2001 From: Jacobo Aragunde Pérez Date: Thu, 1 Aug 2019 09:08:22 +0200 Subject: Change keyboard focus setting on visible/invisible events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keyboard focus was set and unset on activation events. This had the side effect of keeping the keyboard attached to the window even if it was invisible. Using the visibility events to perform this task looks like a more natural way to deal with it. Besides, activate/deactivate callbacks are not being called in halibut or master, effectively stopping keyboard focus from working. Bug-AGL: SPEC-2657 Signed-off-by: Jacobo Aragunde Pérez Change-Id: I65cc54c89db56bda1da4ea562151e3a30e10d068 (cherry picked from commit e3ec600e13b239a4bb53c6b4f40228cb2e89453a) --- src/runxdg.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/runxdg.cpp b/src/runxdg.cpp index 8582023..e4ec1c9 100644 --- a/src/runxdg.cpp +++ b/src/runxdg.cpp @@ -283,22 +283,22 @@ int RunXDG::init_wm (void) std::function< void(json_object*) > h_active = [this](json_object* object) { AGL_DEBUG("Got Event_Active"); - t_ilm_surface s_ids[1] = { this->m_ivi_id }; - ilm_setInputFocus(s_ids, 1, ILM_INPUT_DEVICE_KEYBOARD, ILM_TRUE); }; std::function< void(json_object*) > h_inactive = [this](json_object* object) { AGL_DEBUG("Got Event_Inactive"); - t_ilm_surface s_ids[1] = { this->m_ivi_id }; - ilm_setInputFocus(s_ids, 1, ILM_INPUT_DEVICE_KEYBOARD, ILM_FALSE); }; - std::function< void(json_object*) > h_visible = [](json_object* object) { + std::function< void(json_object*) > h_visible = [this](json_object* object) { AGL_DEBUG("Got Event_Visible"); + t_ilm_surface s_ids[1] = { this->m_ivi_id }; + ilm_setInputFocus(s_ids, 1, ILM_INPUT_DEVICE_KEYBOARD, ILM_TRUE); }; - std::function< void(json_object*) > h_invisible = [](json_object* object) { + std::function< void(json_object*) > h_invisible = [this](json_object* object) { AGL_DEBUG("Got Event_Invisible"); + t_ilm_surface s_ids[1] = { this->m_ivi_id }; + ilm_setInputFocus(s_ids, 1, ILM_INPUT_DEVICE_KEYBOARD, ILM_FALSE); }; std::function< void(json_object*) > h_syncdraw = -- cgit 1.2.3-korg