Ok, the problem happend only when the shelf is stacked on the background.
The attached patch fix it, I'm not sure this is the right way, but seems
that _e_drag_win_matches is not needed by xdnd.
Thanks
Dave
----- "Dave Andreoli" <[EMAIL PROTECTED]> ha scritto:
> This commit has stopped all the xdnd to work both in the shelf and in
> the gadcon :(
>
> DaveMDS
>
>
> ----- "Enlightenment CVS" <[EMAIL PROTECTED]> ha scritto:
>
> > Enlightenment CVS committal
> >
> > Author : englebass
> > Project : e17
> > Module : apps/e
> >
> > Dir : e17/apps/e/src/bin
> >
> >
> > Modified Files:
> > e_dnd.c
> >
> >
> > Log Message:
> > We don't need to search for window at pointer with xdnd, xdnd
> handles
> > this
> > already.
> >
> > ===================================================================
> > RCS file: /cvs/e/e17/apps/e/src/bin/e_dnd.c,v
> > retrieving revision 1.75
> > retrieving revision 1.76
> > diff -u -3 -r1.75 -r1.76
> > --- e_dnd.c 15 Jun 2008 12:19:40 -0000 1.75
> > +++ e_dnd.c 15 Jun 2008 12:28:16 -0000 1.76
> > @@ -680,12 +680,8 @@
> > // win = ecore_x_window_at_xy_with_skip_get(x, y, ignore_win, 2);
> > }
> > else
> > - /* FIXME: this is nasty. every x mouse event we go back to x
> and
> > do
> > - * a whole bunch of round-trips narrowing down the toplevel
> > window
> > - * which contains the mouse */
> > - win = ecore_x_window_shadow_tree_at_xy_with_skip_get(root, x,
> y,
> > NULL, 0);
> > -// win = ecore_x_window_at_xy_with_skip_get(x, y, NULL, 0);
> > -
> > + win = root;
> > +
> > if (_drag_current)
> > {
> > _e_drag_show(_drag_current);
> > @@ -890,24 +886,13 @@
> > }
> >
> > static void
> > -_e_drag_xdnd_end(Ecore_X_Window root, int x, int y)
> > +_e_drag_xdnd_end(Ecore_X_Window win, int x, int y)
> > {
> > Evas_List *l;
> > E_Event_Dnd_Drop ev;
> > int dx, dy, dw, dh;
> > - Ecore_X_Window win, ignore_win[2];
> >
> > if (!_xdnd) return;
> > - if (_drag_current)
> > - {
> > - ignore_win[0] = _drag_current->evas_win;
> > - ignore_win[1] = _drag_win;
> > - win = ecore_x_window_shadow_tree_at_xy_with_skip_get(root, x, y,
> > ignore_win, 2);
> > -// win = ecore_x_window_at_xy_with_skip_get(x, y, ignore_win, 2);
> > - }
> > - else
> > - win = ecore_x_window_shadow_tree_at_xy_with_skip_get(root, x,
> y,
> > NULL, 0);
> > -// win = ecore_x_window_at_xy_with_skip_get(x, y, NULL, 0);
> >
> > ev.data = _xdnd->data;
> >
> >
> >
> >
> >
> -------------------------------------------------------------------------
> > Check out the new SourceForge.net Marketplace.
> > It's the best place to buy or sell services for
> > just about anything Open Source.
> > http://sourceforge.net/services/buy/index.php
> > _______________________________________________
> > enlightenment-cvs mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Index: e_dnd.c
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_dnd.c,v
retrieving revision 1.77
diff -u -u -r1.77 e_dnd.c
--- e_dnd.c 15 Jun 2008 12:30:26 -0000 1.77
+++ e_dnd.c 23 Jun 2008 13:39:51 -0000
@@ -752,7 +752,7 @@
move_ev.y = y - dy;
leave_ev.x = x - dx;
leave_ev.y = y - dy;
- if (E_INSIDE(x, y, dx, dy, dw, dh) && _e_drag_win_matches(h, win))
+ if (E_INSIDE(x, y, dx, dy, dw, dh) /*&& _e_drag_win_matches(h, win)*/)
{
if (!h->entered)
{
@@ -910,8 +910,8 @@
_e_drag_coords_update(h, &dx, &dy, &dw, &dh);
ev.x = x - dx;
ev.y = y - dy;
- if (_e_drag_win_matches(h, win) && h->cb.drop
- && E_INSIDE(x, y, dx, dy, dw, dh))
+ if (/*_e_drag_win_matches(h, win) && h->cb.drop
+ && */E_INSIDE(x, y, dx, dy, dw, dh))
{
h->cb.drop(h->cb.data, h->active_type, &ev);
dropped = 1;
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel