Change keyboard focus setting on visible/invisible events
[staging/xdg-launcher.git] / src / runxdg.cpp
index 33d5324..e4ec1c9 100644 (file)
@@ -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 =
@@ -333,7 +333,7 @@ int RunXDG::init_hs (void)
     AGL_DEBUG("Activesurface %s ", this->m_role.c_str());
     this->m_wm->activateWindow(this->m_role.c_str(), AREA_NORMAL_FULL);
   };
-  m_hs->set_event_handler(LibHomeScreen::Event_TapShortcut, handler);
+  m_hs->set_event_handler(LibHomeScreen::Event_ShowWindow, handler);
 
   std::function< void(json_object*) > h_default= [](json_object* object) {
     const char *j_str = json_object_to_json_string(object);