{
if (e_config->key_input_ttrace_enable)
{
- TRACE_INPUT_DEVICE_BEGIN(e_comp_wl_focused_client_flush);
- ELOGF("INPUT", "e_comp_wl_focused_client_flush|B|", NULL);
+ TRACE_INPUT_DEVICE_BEGIN(e_comp_wl_focused_clients_flush);
+ ELOGF("INPUT", "e_comp_wl_focused_clients_flush|B|", NULL);
}
/* flush only focused client events */
- e_comp_wl_focused_client_flush();
+ e_comp_wl_focused_clients_flush();
if (_key_event_list)
_e_input_delayed_key_events_print();
if (e_config->key_input_ttrace_enable)
{
TRACE_INPUT_DEVICE_END();
- ELOGF("INPUT", "e_comp_wl_focused_client_flush|E|", NULL);
+ ELOGF("INPUT", "e_comp_wl_focused_clients_flush|E|", NULL);
}
if (time)
#include "e_comp_wl_input_thread_intern.h"
#include "e_seat_intern.h"
#include "e_surface_view_intern.h"
-#include "e_zone_intern.h"
+#include "e_focus_intern.h"
#include <tizen-extension-server-protocol.h>
#include <relative-pointer-unstable-v1-server-protocol.h>
}
void
-e_comp_wl_focused_client_flush()
+e_comp_wl_focused_clients_flush()
{
E_Client *focused_ec;
+ E_Zone *zone;
if (!e_comp_wl_display_get()) return;
- e_input_thread_boost_lock(&connection_mutex);
- focused_ec = e_client_focused_get();
-
- if (focused_ec)
+ E_COMP_ZONE_FOREACH(zone)
{
+ if (!zone->focus) continue;
+
+ focused_ec = e_focus_focused_ec_get(zone->focus);
+ if (!focused_ec) continue;
+
struct wl_client *wc;
struct wl_resource *surface = e_comp_wl_client_surface_get(focused_ec);
- if (!surface)
- {
- e_input_thread_boost_unlock(&connection_mutex);
- return;
- }
+ if (!surface) continue;
+ e_input_thread_boost_lock(&connection_mutex);
wc = wl_resource_get_client(surface);
wl_client_flush(wc);
+ e_input_thread_boost_unlock(&connection_mutex);
}
-
- e_input_thread_boost_unlock(&connection_mutex);
}
-
static void
_e_comp_wl_cb_prepare(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED)
{