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-19 20:01:23 +0000
commitf7ac2f42c22b8324cc30b50dc255f85df406765a (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 (cherry picked from commit e3ec600e13b239a4bb53c6b4f40228cb2e89453a)
-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 =