devilhorns pushed a commit to branch master.

commit 8a72199d450c8e8e1b3dc99eec69fb68141acc5f
Author: Chris Michael <[email protected]>
Date:   Tue May 21 11:30:39 2013 +0100

    Add elm_drag_action_set support for wayland and start on
    elm_drag_start support.
    
    Signed-off-by: Chris Michael <[email protected]>
---
 src/lib/elm_cnp.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c
index 53dd281..4b9eabf 100644
--- a/src/lib/elm_cnp.c
+++ b/src/lib/elm_cnp.c
@@ -2106,6 +2106,9 @@ static Eina_Bool _wl_selection_receive(void *udata, int 
type __UNUSED__, void *e
 static Eina_Bool _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format 
format, Elm_Drag_State entercb, void *enterdata, Elm_Drag_State leavecb, void 
*leavedata, Elm_Drag_Pos poscb, void *posdata, Elm_Drop_Cb dropcb, void 
*cbdata);
 static Eina_Bool _wl_elm_drop_target_del(Evas_Object *obj);
 
+static Eina_Bool _wl_elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action 
action);
+static Eina_Bool _wl_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, 
const char *data, Elm_Xdnd_Action action, Elm_Drag_Icon_Create_Cb createicon, 
void *createdata, Elm_Drag_Pos dragpos, void *dragdata, Elm_Drag_Accept 
acceptcb, void *acceptdata, Elm_Drag_State dragdone, void *donecbdata);
+
 static void
 _wl_sel_obj_del2(void *data, Evas *e __UNUSED__, Evas_Object *obj, void 
*event_info __UNUSED__)
 {
@@ -2288,6 +2291,26 @@ _wl_elm_drop_target_del(Evas_Object *obj)
    return EINA_TRUE;
 }
 
+static Eina_Bool 
+_wl_elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action action)
+{
+   if (!dragwin) return EINA_FALSE;
+   if (dragwidget != obj) return EINA_FALSE;
+   if (dragaction == action) return EINA_TRUE;
+   dragaction = action;
+   return EINA_TRUE;
+}
+
+static Eina_Bool
+_wl_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data,
+                   Elm_Xdnd_Action action,
+                   Elm_Drag_Icon_Create_Cb createicon, void *createdata,
+                   Elm_Drag_Pos dragpos, void *dragdata,
+                   Elm_Drag_Accept acceptcb, void *acceptdata,
+                   Elm_Drag_State dragdone, void *donecbdata)
+{
+   return EINA_TRUE;
+}
 #endif
 
 
@@ -2744,6 +2767,13 @@ elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, 
const char *data,
                                 acceptcb, acceptdata,
                                 dragdone, donecbdata);
 #endif
+#ifdef HAVE_ELEMENTARY_WAYLAND
+   return _wl_elm_drag_start(obj, format, data, action, 
+                             createicon, createdata, 
+                             dragpos, dragdata,
+                             acceptcb, acceptdata,
+                             dragdone, donecbdata);
+#endif
    return _local_elm_drag_start(obj, format, data, action,
                                 createicon, createdata,
                                 dragpos, dragdata,
@@ -2759,6 +2789,9 @@ elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action 
action)
    if (_x11_elm_widget_xwin_get(obj))
      return _x11_elm_drag_action_set(obj, action);
 #endif
+#ifdef HAVE_ELEMENTARY_WAYLAND
+   return _wl_elm_drag_action_set(obj, action);
+#endif
    return _local_elm_drag_action_set(obj, action);
 }
 

-- 

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may

Reply via email to