apply wayland data device focus after focus has been set
authorMike Blumenkrantz <zmike@osg.samsung.com>
Tue, 4 Aug 2015 22:50:16 +0000 (18:50 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Tue, 4 Aug 2015 23:39:09 +0000 (19:39 -0400)
the focus_set client hook is for setting focus, not for doing things which
must occur after focus has been set

src/bin/e_comp_wl.c

index 160ac199cdd8afdb32ce5fc8d73fc52a8225dc55..0d4d7b4ab9292107fd5226f1445a7d19f59aaa56 100644 (file)
@@ -531,6 +531,7 @@ _e_comp_wl_evas_cb_focus_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
        e_comp->wl_comp_data->kbd.focused = eina_list_append(e_comp->wl_comp_data->kbd.focused, res);
    if (!e_comp->wl_comp_data->kbd.focused) return;
    e_comp_wl_input_keyboard_enter_send(ec);
+   e_comp_wl_data_device_keyboard_focus_set();
    ec->comp_data->on_focus_timer = ecore_timer_add(0.8, (Ecore_Task_Cb)_e_comp_wl_evas_cb_focus_in_timer, ec);
 }
 
@@ -2284,11 +2285,7 @@ _e_comp_wl_client_cb_focus_set(void *data EINA_UNUSED, E_Client *ec)
    //else if (!ec->icccm.take_focus)
      //e_grabinput_focus(e_client_util_win_get(ec), E_FOCUS_METHOD_PASSIVE);
 
-   if (e_comp->wl_comp_data->kbd.focus != ec->comp_data->surface)
-     {
-        e_comp->wl_comp_data->kbd.focus = ec->comp_data->surface;
-        e_comp_wl_data_device_keyboard_focus_set();
-     }
+   e_comp->wl_comp_data->kbd.focus = ec->comp_data->surface;
 }
 
 static void