Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/ibar


Modified Files:
        e_mod_main.c 


Log Message:
Dragging icons on the ibar should work. If an icon is dropped outside the
ibar it is removed (but only from the .order file).

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/ibar/e_mod_main.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- e_mod_main.c        3 May 2005 19:51:54 -0000       1.41
+++ e_mod_main.c        4 May 2005 11:04:08 -0000       1.42
@@ -69,10 +69,12 @@
 static void    _ibar_bar_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, 
void *event_info);
 static int     _ibar_bar_cb_timer(void *data);
 static int     _ibar_bar_cb_animator(void *data);
+
 static void    _ibar_bar_cb_enter(void *data, const char *type, void *event);
 static void    _ibar_bar_cb_move(void *data, const char *type, void *event);
 static void    _ibar_bar_cb_leave(void *data, const char *type, void *event);
 static void    _ibar_bar_cb_drop(void *data, const char *type, void *event);
+static void    _ibar_bar_cb_finished(void *data, const char *type, int 
dropped);
 
 static void    _ibar_icon_cb_intercept_move(void *data, Evas_Object *o, 
Evas_Coord x, Evas_Coord y);
 static void    _ibar_icon_cb_intercept_resize(void *data, Evas_Object *o, 
Evas_Coord w, Evas_Coord h);
@@ -1235,7 +1237,6 @@
    ev = event_info;
    ic = data;
 
-#if 0
    if (drag_start)
      {
        double dist;
@@ -1245,12 +1246,13 @@
          {
             drag = 1;
             drag_start = 0;
-            e_drag_start(ic->ibb->con, "enlightenment/eapp", ic->app, 
ic->app->path, "icon");
+            e_drag_start(ic->ibb->con,
+                         "enlightenment/eapp", ic->app, _ibar_bar_cb_finished,
+                         ic->app->path, "icon");
             evas_event_feed_mouse_up(ic->ibb->evas, 1, EVAS_BUTTON_NONE, NULL);
             e_app_remove(ic->app);
          }
      }
-#endif
 }
 
 static void
@@ -1516,18 +1518,26 @@
    if (ic)
      {
        /* Add new eapp before this icon */
-       printf("add before: %s %s\n", app->path, ic->app->path);
        e_app_prepend_relative(app, ic->app);
      }
    else
      {
        /* Add at the end */
-       printf("add at end: %s %s\n", app->path, ibb->ibar->apps->path);
        e_app_append(app, ibb->ibar->apps);
      }
 }
 
 static void
+_ibar_bar_cb_finished(void *data, const char *type, int dropped)
+{
+   /* Someone took over the eapp. */
+   if (dropped) return;
+
+   /* Unref the object so it will be deleted. */
+   e_object_unref(E_OBJECT(data));
+}
+
+static void
 _ibar_bar_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change 
change)
 {
    IBar_Bar *ibb;




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to