Re: [E-devel] Ecore_X: action in XDndPosition

2008-08-16 Thread Fedor Gusev
On Fri, Aug 15, 2008 at 11:17:35PM +0400, Fedor Gusev wrote:
 Hello everyone!
 
 Attached patched brings two new functions to Ecore_X:
 
 EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action);
 EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void);
 
 The first one sets the action that would be sent in all subsequent
 XdndPosition messages. This action is reset to XdndActionMove in
 ecore_x_dnd_begin().
 The second function, obviously, gets the current action.
 
 Apply from e17/libs/ecore/src/lib/ecore_x.
 -- 
 King regards,
 Fedor Gusev.

Updated version.

-- 
King regards,
Fedor Gusev.
Index: Ecore_X.h
===
RCS file: /var/cvs/e/e17/libs/ecore/src/lib/ecore_x/Ecore_X.h,v
retrieving revision 1.204
diff -u -u -r1.204 Ecore_X.h
--- Ecore_X.h	25 Jul 2008 02:21:03 -	1.204
+++ Ecore_X.h	15 Aug 2008 21:38:56 -
@@ -1078,6 +1078,8 @@
 EAPI int  ecore_x_dnd_drop(void);
 EAPI void ecore_x_dnd_send_status(int will_accept, int suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action);
 EAPI void ecore_x_dnd_send_finished(void);
+EAPI void ecore_x_dnd_source_action_set(Ecore_X_Atom action);
+EAPI Ecore_X_Atom ecore_x_dnd_source_action_get(void);
 
 EAPI Ecore_X_Window   ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h);
 EAPI Ecore_X_Window   ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h);
Index: xcb/ecore_xcb_dnd.c
===
RCS file: /var/cvs/e/e17/libs/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c,v
retrieving revision 1.1
diff -u -u -r1.1 ecore_xcb_dnd.c
--- xcb/ecore_xcb_dnd.c	23 Jul 2008 10:00:01 -	1.1
+++ xcb/ecore_xcb_dnd.c	15 Aug 2008 21:38:58 -
@@ -30,6 +30,7 @@
 	_source-win = XCB_NONE;
 	_source-dest = XCB_NONE;
 	_source-state = ECORE_X_DND_SOURCE_IDLE;
+	_source-prev.window = 0;
 
 	_target = calloc(1, sizeof(Ecore_X_DND_Target));
 	_target-win = XCB_NONE;
@@ -485,6 +486,7 @@
ecore_x_window_ignore_set(_source-win, 1);
_source-state = ECORE_X_DND_SOURCE_DRAGGING;
_source-time = _ecore_xcb_event_last_time;
+   _source-prev.window = 0;
 
/* Default Accepted Action: ask */
_source-action = ECORE_X_ATOM_XDND_ACTION_COPY;
@@ -532,6 +534,7 @@
  }
ecore_x_window_ignore_set(_source-win, 0);
 
+   _source-prev.window = 0;
_source-dest = XCB_NONE;
 
return status;
@@ -611,6 +614,20 @@
 }
 
 void
+ecore_x_dnd_source_action_set(Ecore_X_Atom action)
+{
+   _source-action = action;
+   if (_source-prev.window)
+ _ecore_x_dnd_drag(_source-prev.window, _source-prev.x, _source-prev.y);
+}
+
+Ecore_X_Atom
+ecore_x_dnd_source_action_get(void)
+{
+   return _source-action;
+}
+
+void
 _ecore_x_dnd_drag(Ecore_X_Window root,
 		  int x,
   int y)
@@ -744,6 +761,10 @@
 	 xcb_send_event(_ecore_xcb_conn, 0, win, 0, (const char *)ev);
 
 	 _source-await_status = 1;
+
+	 _source-prev.x = x;
+	 _source-prev.y = y;
+	 _source-prev.window = root;
 	  }
  }
 
Index: xcb/ecore_xcb_private.h
===
RCS file: /var/cvs/e/e17/libs/ecore/src/lib/ecore_x/xcb/ecore_xcb_private.h,v
retrieving revision 1.1
diff -u -u -r1.1 ecore_xcb_private.h
--- xcb/ecore_xcb_private.h	23 Jul 2008 10:00:01 -	1.1
+++ xcb/ecore_xcb_private.h	15 Aug 2008 21:38:59 -
@@ -107,6 +107,11 @@
   unsigned short width, height;
} rectangle;
 
+   struct {
+  Ecore_X_Window window;
+  int x, y;
+   } prev;
+   
Ecore_X_Time time;
 
Ecore_X_Atom action, accepted_action;
Index: xlib/ecore_x_dnd.c
===
RCS file: /var/cvs/e/e17/libs/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c,v
retrieving revision 1.1
diff -u -u -r1.1 ecore_x_dnd.c
--- xlib/ecore_x_dnd.c	23 Jul 2008 10:00:01 -	1.1
+++ xlib/ecore_x_dnd.c	15 Aug 2008 21:38:59 -
@@ -35,6 +35,7 @@
 	_source-win = None;
 	_source-dest = None;
 	_source-state = ECORE_X_DND_SOURCE_IDLE;
+	_source-prev.window = 0;
 
 	_target = calloc(1, sizeof(Ecore_X_DND_Target));
 	_target-win = None;
@@ -335,6 +336,7 @@
ecore_x_window_ignore_set(_source-win, 1);
_source-state = ECORE_X_DND_SOURCE_DRAGGING;
_source-time = _ecore_x_event_last_time;
+   _source-prev.window = 0;
 
/* Default Accepted Action: move */
_source-action = ECORE_X_ATOM_XDND_ACTION_MOVE;
@@ -384,6 +386,8 @@
  }
ecore_x_window_ignore_set(_source-win, 0);
 
+   _source-prev.window = 0;
+
return status;
 }
 
@@ -462,6 +466,20 @@
 }
 
 void
+ecore_x_dnd_source_action_set(Ecore_X_Atom action)
+{
+   _source-action = action;
+   if (_source-prev.window)
+ _ecore_x_dnd_drag(_source-prev.window, _source-prev.x, _source-prev.y);
+}
+
+Ecore_X_Atom
+ecore_x_dnd_source_action_get(void)
+{
+   return _source-action;
+}
+
+void
 _ecore_x_dnd_drag(Ecore_X_Window 

[E-devel] EFM: DND action modifiers

2008-08-16 Thread Fedor Gusev
Hello.

First of two attached patches brings an API that allows one to handle
key pressing while DND using two functions:

EAPI void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, 
Ecore_X_Event_Key_Down *e));
EAPI void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, 
Ecore_X_Event_Key_Up *e));

Both callbacks are called when a key is down/up while drag.

Second patch uses this API to use modifiers in EFM drag. If you hold
Control while drag the action is Copy, Alt -- action is Ask, Shift --
action is Move. The icons get signals 'e,state,move', 'e,state,copy',
'e,state,ask' with source 'e', so one can modify a theme to show which
action would be performed. Note that you need a modified Ecore_X for
this to work, see my previous mail.

-- 
King regards,
Fedor Gusev.
diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index c5d002b..4038426 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -30,6 +30,8 @@ static void _e_drag_free(E_Drag *drag);
 
 static int  _e_dnd_cb_window_shape(void *data, int type, void *event);
 
+static int  _e_dnd_cb_key_down(void *data, int type, void *event);
+static int  _e_dnd_cb_key_up(void *data, int type, void *event);
 static int  _e_dnd_cb_mouse_up(void *data, int type, void *event);
 static int  _e_dnd_cb_mouse_move(void *data, int type, void *event);
 static int  _e_dnd_cb_event_dnd_enter(void *data, int type, void *event);
@@ -102,6 +104,12 @@ e_dnd_init(void)
_event_handlers = evas_list_append(_event_handlers,
   ecore_event_handler_add(ECORE_X_EVENT_SELECTION_NOTIFY,
 			  _e_dnd_cb_event_dnd_selection, NULL));
+   _event_handlers = evas_list_append(_event_handlers,
+  ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN,
+  _e_dnd_cb_key_down, NULL));
+   _event_handlers = evas_list_append(_event_handlers,
+  ecore_event_handler_add(ECORE_X_EVENT_KEY_UP,
+  _e_dnd_cb_key_up, NULL));
 
_action = ECORE_X_ATOM_XDND_ACTION_PRIVATE;
return 1;
@@ -205,6 +213,9 @@ e_drag_new(E_Container *container, int x, int y,
ecore_x_window_shadow_tree_flush();

_drag_win_root = drag-container-manager-root;
+
+   drag-cb.key_down = NULL;
+   drag-cb.key_up = NULL;

return drag;
 }
@@ -529,6 +540,18 @@ e_drop_handler_action_get()
return _action;
 }
 
+EAPI void
+e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_X_Event_Key_Down *e))
+{
+   drag-cb.key_down = func;
+}
+
+EAPI void
+e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_X_Event_Key_Up *e))
+{
+   drag-cb.key_up = func;
+}
+
 /* local subsystem functions */
 
 static void
@@ -717,6 +740,10 @@ _e_drag_update(Ecore_X_Window root, int x, int y, Ecore_X_Atom action)
int dx, dy, dw, dh;
Ecore_X_Window win, ignore_win[2];
int responsive = 0;
+   static struct 
+ {
+	Ecore_X_Window root, win;
+ } cache = {0, 0};
 
 //   double t1 = ecore_time_get(); 
if (_drag_current)
@@ -726,7 +753,13 @@ _e_drag_update(Ecore_X_Window root, int x, int y, Ecore_X_Atom action)
 	/* 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, ignore_win, 2);
+	if (cache.win != root)
+	  {
+	 /* A little bit of caching to void trips to X. */
+	 cache.win = root;
+	 cache.root = ecore_x_window_root_get(root);
+	  }
+	win = ecore_x_window_shadow_tree_at_xy_with_skip_get(cache.root, x, y, ignore_win, 2);
 //	win = ecore_x_window_at_xy_with_skip_get(x, y, ignore_win, 2);
  }
else
@@ -1049,6 +1082,38 @@ _e_dnd_cb_window_shape(void *data, int ev_type, void *ev)
 }
 
 static int
+_e_dnd_cb_key_down(void *data, int type, void *event)
+{
+   Ecore_X_Event_Key_Down *ev;
+
+   ev = event;
+   if (ev-win != _drag_win) return 1;
+
+   if (!_drag_current) return 1;
+
+   if (_drag_current-cb.key_down)
+ _drag_current-cb.key_down(_drag_current, ev);
+   
+   return 1;
+}
+
+static int
+_e_dnd_cb_key_up(void *data, int type, void *event)
+{
+   Ecore_X_Event_Key_Up *ev;
+
+   ev = event;
+   if (ev-win != _drag_win) return 1;
+
+   if (!_drag_current) return 1;
+
+   if (_drag_current-cb.key_up)
+ _drag_current-cb.key_up(_drag_current, ev);
+   
+   return 1;
+}
+
+static int
 _e_dnd_cb_mouse_up(void *data, int type, void *event)
 {
Ecore_X_Event_Mouse_Button_Up *ev;
diff --git a/src/bin/e_dnd.h b/src/bin/e_dnd.h
index 069d0da..84734cd 100644
--- a/src/bin/e_dnd.h
+++ b/src/bin/e_dnd.h
@@ -38,6 +38,8 @@ struct _E_Drag
struct {
 	void *(*convert)(E_Drag *drag, const char *type);
 	void  (*finished)(E_Drag *drag, int dropped);
+	void  (*key_down)(E_Drag *drag, Ecore_X_Event_Key_Down *e);
+	void  (*key_up)(E_Drag *drag, Ecore_X_Event_Key_Up *e);

Re: [E-devel] EFM: DND action modifiers

2008-08-16 Thread Gustavo Sverzut Barbieri
On Sat, Aug 16, 2008 at 9:55 AM, Fedor Gusev [EMAIL PROTECTED] wrote:
 Hello.

 First of two attached patches brings an API that allows one to handle
 key pressing while DND using two functions:

 EAPI void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, 
 Ecore_X_Event_Key_Down *e));
 EAPI void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, 
 Ecore_X_Event_Key_Up *e));

 Both callbacks are called when a key is down/up while drag.

 Second patch uses this API to use modifiers in EFM drag. If you hold
 Control while drag the action is Copy, Alt -- action is Ask, Shift --
 action is Move. The icons get signals 'e,state,move', 'e,state,copy',
 'e,state,ask' with source 'e', so one can modify a theme to show which
 action would be performed. Note that you need a modified Ecore_X for
 this to work, see my previous mail.

Hi Fedor, I haven't tried or read the code, sorry, but from your
description Ask is only from alt? What is the action when no
modifier is used? Defaulting to ask would be the best option. Also,
maybe the ask dialog could point Move/Copy could be automatically
selected with Control/Shift.

Thanks for your work!

-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--
MSN: [EMAIL PROTECTED]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFM: DND action modifiers

2008-08-16 Thread Fedor Gusev
On Sat, Aug 16, 2008 at 04:55:18PM +0400, Fedor Gusev wrote:
 Note that you need a modified Ecore_X for this to work, 
 see my previous mail.
Nevermind, that patch is already in CVS.
-- 
King regards,
Fedor Gusev.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFM: DND action modifiers

2008-08-16 Thread Nick Hughart
Gustavo Sverzut Barbieri wrote:
 On Sat, Aug 16, 2008 at 9:55 AM, Fedor Gusev [EMAIL PROTECTED] wrote:
   
 Hello.

 First of two attached patches brings an API that allows one to handle
 key pressing while DND using two functions:

 EAPI void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, 
 Ecore_X_Event_Key_Down *e));
 EAPI void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, 
 Ecore_X_Event_Key_Up *e));

 Both callbacks are called when a key is down/up while drag.

 Second patch uses this API to use modifiers in EFM drag. If you hold
 Control while drag the action is Copy, Alt -- action is Ask, Shift --
 action is Move. The icons get signals 'e,state,move', 'e,state,copy',
 'e,state,ask' with source 'e', so one can modify a theme to show which
 action would be performed. Note that you need a modified Ecore_X for
 this to work, see my previous mail.
 

 Hi Fedor, I haven't tried or read the code, sorry, but from your
 description Ask is only from alt? What is the action when no
 modifier is used? Defaulting to ask would be the best option. Also,
 maybe the ask dialog could point Move/Copy could be automatically
 selected with Control/Shift.
   

Well the default action is move right now as it is in most file managers 
afaik.  Ask should actually be implemented on a right click drag 
eventually, but since the deadline was approaching I just had him do it 
with a modifier.  Right click drags will require some extra 
modifications.  I don't understand your last sentence, but the ask pops 
up a menu to click on .  Are you saying we should provide hotkeys for 
this menu?
 Thanks for your work!

   


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Nightly build log for E17 on 2008-08-16 07:43:25 -0700

2008-08-16 Thread Nightly build system
Build log for Enlightenment DR 0.17 on 2008-08-16 07:43:25 -0700
Build logs are available at http://download.enlightenment.org/tests/logs

Packages that failed to build:
enna  http://download.enlightenment.org/tests/logs/enna.log
epdf  http://download.enlightenment.org/tests/logs/epdf.log

Packages with no supported build system:
entice, esmart_rsvg, exorcist, python-efl, 

Packages skipped:
camE, ecore_dbus, engage, enotes, enscribe, epbb, eplay, erss, etk_server, 
etox, e_utils, Evas_Perl, evoak, gfx_routines, lvs-gui, med, nexus, notgame, 
ruby-efl, webcam, 

Packages that build OK:
alarm, bling, calendar, cpu, deskshow, echo, eclair, ecore_li, ecore, edata, 
edb, e_dbus, edje_editor, edje, edje_viewer, edvi, eet, eflame, eflpp, efm_nav, 
efm_path, efreet, elapse, elation, elicit, elitaire, e, embrace, embryo, 
emotion, emphasis, empower, emprint, emu, enesim, engrave, engycad, enhance, 
enity, enterminus, enthrall, entrance_edit_gui, entrance, entropy, envision, 
epeg, ephoto, e_phys, epsilon, epx, equate, esmart, estickies, etk_extra, 
etk, etk-perl, evas, evfs, evolve, ewl, examine, execwatch, exhibit, exml, 
expedite, express, exquisite, extrackt, feh, flame, forecasts, gevas2, iconbar, 
iiirk, imlib2_loaders, imlib2, Imlib2_Perl, imlib2_tools, language, mail, 
mem, mixer, moon, mpdule, net, news, notification, penguins, pesh, photo, 
rage, rain, screenshot, scrot, skel, slideshow, snow, taskbar, tclock, uptime, 
weather, winselector, wlan, 

Debian GNU/Linux 4.0 \n \l

Linux enlightenment2 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 
GNU/Linux


See http://download.enlightenment.org/tests/ for details.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] cvs-svn...

2008-08-16 Thread The Rasterman
is underway. it may take a few hours... i'll mail when done and confirmed.
unfortunately it has ended up being a little tricky to import... but it's on
its way.

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)[EMAIL PROTECTED]


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFM: DND action modifiers

2008-08-16 Thread Gustavo Sverzut Barbieri
On Sat, Aug 16, 2008 at 12:09 PM, Nick Hughart [EMAIL PROTECTED] wrote:
 Gustavo Sverzut Barbieri wrote:

 On Sat, Aug 16, 2008 at 9:55 AM, Fedor Gusev [EMAIL PROTECTED] wrote:


 Hello.

 First of two attached patches brings an API that allows one to handle
 key pressing while DND using two functions:

 EAPI void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag,
 Ecore_X_Event_Key_Down *e));
 EAPI void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag,
 Ecore_X_Event_Key_Up *e));

 Both callbacks are called when a key is down/up while drag.

 Second patch uses this API to use modifiers in EFM drag. If you hold
 Control while drag the action is Copy, Alt -- action is Ask, Shift --
 action is Move. The icons get signals 'e,state,move', 'e,state,copy',
 'e,state,ask' with source 'e', so one can modify a theme to show which
 action would be performed. Note that you need a modified Ecore_X for
 this to work, see my previous mail.


 Hi Fedor, I haven't tried or read the code, sorry, but from your
 description Ask is only from alt? What is the action when no
 modifier is used? Defaulting to ask would be the best option. Also,
 maybe the ask dialog could point Move/Copy could be automatically
 selected with Control/Shift.


 Well the default action is move right now as it is in most file managers
 afaik.  Ask should actually be implemented on a right click drag eventually,
 but since the deadline was approaching I just had him do it with a modifier.
  Right click drags will require some extra modifications.

Yes, and I know about deadlines and I actually like modifier keys more
than right-middle clicks. I was just pointing an possible usability
issue, easily to fix (I guess).


  I don't
 understand your last sentence, but the ask pops up a menu to click on .  Are
 you saying we should provide hotkeys for this menu?

Something like KDE's:

Move   [Shift]
Copy[Control]
--
Cancel

AFAIK it does not act on the popup (clicking shift while in the menu),
but when you do the drag.

Anyway, better 1) give it a try and 2) try to provide a patch, I'll do
it later today.

-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--
MSN: [EMAIL PROTECTED]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EFM: DND action modifiers

2008-08-16 Thread Nick Hughart
Gustavo Sverzut Barbieri wrote:
 On Sat, Aug 16, 2008 at 12:09 PM, Nick Hughart [EMAIL PROTECTED] wrote:
   
 Gustavo Sverzut Barbieri wrote:
 
 On Sat, Aug 16, 2008 at 9:55 AM, Fedor Gusev [EMAIL PROTECTED] wrote:

   
 Hello.

 First of two attached patches brings an API that allows one to handle
 key pressing while DND using two functions:

 EAPI void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag,
 Ecore_X_Event_Key_Down *e));
 EAPI void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag,
 Ecore_X_Event_Key_Up *e));

 Both callbacks are called when a key is down/up while drag.

 Second patch uses this API to use modifiers in EFM drag. If you hold
 Control while drag the action is Copy, Alt -- action is Ask, Shift --
 action is Move. The icons get signals 'e,state,move', 'e,state,copy',
 'e,state,ask' with source 'e', so one can modify a theme to show which
 action would be performed. Note that you need a modified Ecore_X for
 this to work, see my previous mail.

 
 Hi Fedor, I haven't tried or read the code, sorry, but from your
 description Ask is only from alt? What is the action when no
 modifier is used? Defaulting to ask would be the best option. Also,
 maybe the ask dialog could point Move/Copy could be automatically
 selected with Control/Shift.

   
 Well the default action is move right now as it is in most file managers
 afaik.  Ask should actually be implemented on a right click drag eventually,
 but since the deadline was approaching I just had him do it with a modifier.
  Right click drags will require some extra modifications.
 

 Yes, and I know about deadlines and I actually like modifier keys more
 than right-middle clicks. I was just pointing an possible usability
 issue, easily to fix (I guess).


   
  I don't
 understand your last sentence, but the ask pops up a menu to click on .  Are
 you saying we should provide hotkeys for this menu?
 

 Something like KDE's:

 Move   [Shift]
 Copy[Control]
 --
 Cancel

 AFAIK it does not act on the popup (clicking shift while in the menu),
 but when you do the drag.

 Anyway, better 1) give it a try and 2) try to provide a patch, I'll do
 it later today.

   
Well I'd wait until the SVN move is over since I'm waiting to commit 
this patch until that is done.  Should hopefully be done some time today.


-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel