dnd: fixed not sending wl_data_device_enter event and not dropping data 56/60456/2 accepted/tizen/common/20160229.160719 accepted/tizen/ivi/20160226.100950 accepted/tizen/mobile/20160226.100858 accepted/tizen/tv/20160226.100917 accepted/tizen/wearable/20160226.100931 submit/tizen/20160226.085725
authorMinJeong Kim <minjjj.kim@samsung.com>
Fri, 26 Feb 2016 08:42:18 +0000 (17:42 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Fri, 26 Feb 2016 08:53:13 +0000 (00:53 -0800)
Change-Id: Ib8737e046ab32ad113af7dc60c1dcf1226b49673
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_comp_wl.c
src/bin/e_main.c

index a2a269d..81e00f7 100644 (file)
@@ -912,6 +912,13 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
    if (!ec->comp_data->surface) return;
    if (ec->comp_data->transform.start) return;
 
+   e_comp_wl->ptr.ec = ec;
+   if (e_comp_wl->drag)
+     {
+        e_comp_wl_data_device_send_enter(ec);
+        return;
+     }
+
    if (e_config->use_cursor_timer)
      {
         if (e_pointer_is_hidden(e_comp->pointer))
@@ -922,12 +929,6 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
         e_comp_wl->ptr.hide_tmr = ecore_timer_add(e_config->cursor_timer_interval, _e_comp_wl_cursor_timer, ec);
      }
 
-   e_comp_wl->ptr.ec = ec;
-   if (e_comp_wl->drag)
-     {
-        e_comp_wl_data_device_send_enter(ec);
-        return;
-     }
    if (!eina_list_count(e_comp_wl->ptr.resources)) return;
    wc = wl_resource_get_client(ec->comp_data->surface);
    serial = wl_display_next_serial(e_comp_wl->wl.disp);
@@ -1907,9 +1908,14 @@ _e_comp_wl_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mou
         struct wl_resource *res;
         int x, y;
 
+
         res = e_comp_wl_data_find_for_client(wl_resource_get_client(e_comp_wl->selection.target->comp_data->surface));
         x = ev->x - e_comp_wl->selection.target->client.x;
         y = ev->y - e_comp_wl->selection.target->client.y;
+
+        if (e_comp_wl->drag_client)
+          evas_object_move(e_comp_wl->drag_client->frame, x, y);
+
         wl_data_device_send_motion(res, ev->timestamp, wl_fixed_from_int(x), wl_fixed_from_int(y));
      }
    if (e_comp_wl->drag &&
index e6ae73e..38b7f1b 100644 (file)
@@ -266,6 +266,15 @@ _e_main_subsystem_defer(void *data EINA_UNUSED)
      }
    TS("[DEFERRED] Screens Init: win Done");
 
+   TS("[DEFERRED] E_Dnd Init");
+   if (!e_dnd_init())
+     {
+        e_error_message_show(_("Enlightenment cannot set up its dnd system.\n"));
+        _e_main_shutdown(-1);
+     }
+   TS("[DEFERRED] E_Dnd Init Done");
+   _e_main_shutdown_push(e_dnd_shutdown);
+
    TS("[DEFERRED] E_Pointer Init");
    if (!e_pointer_init())
      {
@@ -2023,7 +2032,7 @@ _e_main_screens_init(void)
 
    _e_main_desk_restore();
 
-#ifndef HAVE_WAYLAND_ONLY
+#ifndef ENABLE_QUICK_INIT
    if (e_config->show_splash)
      e_init_status_set(_("Setup DND"));
    TS("E_Dnd Init");