aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2019-08-01 09:08:22 +0200
committerJacobo Aragunde Pérez <jaragunde@igalia.com>2019-08-01 09:09:13 +0200
commite3ec600e13b239a4bb53c6b4f40228cb2e89453a (patch)
treeabad4d316b553b0f56b18305a3717475f9675009
parentda4fc1efac827ac209c4d7c83968e0433c681298 (diff)
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 <jaragunde@igalia.com> Change-Id: I65cc54c89db56bda1da4ea562151e3a30e10d068
-rw-r--r--src/runxdg.cpp12
1 files 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 =