Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: Makefile.am e_border.c e_includes.h e_main.c e_theme.c e_zone.c Added Files: e_dnd.c e_dnd.h Log Message: Some cleanup and beginning of internal dnd in E. You can drag the icon from a window to the pager and get a nice message :) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/Makefile.am,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- Makefile.am 21 Apr 2005 10:09:25 -0000 1.22 +++ Makefile.am 23 Apr 2005 13:13:45 -0000 1.23 @@ -46,7 +46,8 @@ e_test.h \ e_font.h \ e_intl.h \ -e_theme.h +e_theme.h \ +e_dnd.h enlightenment_SOURCES = \ e_main.c \ @@ -86,6 +87,7 @@ e_font.c \ e_intl.c \ e_theme.c \ +e_dnd.c \ $(ENLIGHTENMENTHEADERS) enlightenment_LDFLAGS = -export-dynamic @e_libs@ @dlopen_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.148 retrieving revision 1.149 diff -u -3 -r1.148 -r1.149 --- e_border.c 23 Apr 2005 05:16:24 -0000 1.148 +++ e_border.c 23 Apr 2005 13:13:45 -0000 1.149 @@ -49,6 +49,7 @@ static void _e_border_cb_signal_resize_l_start(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_border_cb_signal_resize_stop(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_border_cb_signal_action(void *data, Evas_Object *obj, const char *emission, const char *source); +static void _e_border_cb_signal_drag(void *data, Evas_Object *obj, const char *emission, const char *source); static int _e_border_cb_mouse_in(void *data, int type, void *event); static int _e_border_cb_mouse_out(void *data, int type, void *event); static int _e_border_cb_mouse_down(void *data, int type, void *event); @@ -75,10 +76,6 @@ static void _e_border_menu_sendto_pre_cb(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_sendto_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_border_icon_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_border_icon_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _e_border_icon_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); - static void _e_border_event_border_add_free(void *data, void *ev); static void _e_border_event_border_remove_free(void *data, void *ev); static void _e_border_event_border_zone_set_free(void *data, void *ev); @@ -1950,6 +1947,28 @@ } +static void +_e_border_cb_signal_drag(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + E_Border *bd; + + bd = data; + + printf("drag_start\n"); + if ((bd->client.icccm.name) && (bd->client.icccm.class)) + { + E_App *a; + + a = e_app_window_name_class_find(bd->client.icccm.name, + bd->client.icccm.class); + if (a) + { + e_drag_start(bd->zone, "enlightenment/border", bd, + a->path, "icon"); + } + } +} + static int _e_border_cb_mouse_in(void *data, int type, void *event) { @@ -2422,11 +2441,6 @@ { evas_object_show(bd->icon_object); edje_object_part_swallow(bd->bg_object, "icon_swallow", bd->icon_object); -#if 0 - evas_object_callback_add(bd->icon_object, EVAS_CALLBACK_MOUSE_DOWN, _e_border_icon_cb_mouse_down, bd); - evas_object_callback_add(bd->icon_object, EVAS_CALLBACK_MOUSE_UP, _e_border_icon_cb_mouse_up, bd); - evas_object_callback_add(bd->icon_object, EVAS_CALLBACK_MOUSE_MOVE, _e_border_icon_cb_mouse_move, bd); -#endif } else { @@ -2733,6 +2747,8 @@ _e_border_cb_signal_resize_stop, bd); edje_object_signal_callback_add(o, "action", "*", _e_border_cb_signal_action, bd); + edje_object_signal_callback_add(o, "drag", "*", + _e_border_cb_signal_drag, bd); if (bd->focused) edje_object_signal_emit(bd->bg_object, "active", ""); evas_object_move(o, 0, 0); @@ -3689,38 +3705,6 @@ } static void -_e_border_icon_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - E_Border *bd; - Evas_Event_Mouse_Down *ev; - - ev = event_info; - bd = data; - - if (ev->button != 2) - return; - if (ev->flags != EVAS_BUTTON_NONE) - return; - if (ev->modifiers) - return; - -#if 0 - ecore_x_dnd_type_set(win, "enlightenment/border", 1); - ecore_x_dnd_begin(win, bd->win, sizeof(bd->win)); -#endif -} - -static void -_e_border_icon_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ -} - -static void -_e_border_icon_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ -} - -static void _e_border_event_border_resize_free(void *data, void *ev) { E_Event_Border_Resize *e; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_includes.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_includes.h 21 Apr 2005 10:09:26 -0000 1.12 +++ e_includes.h 23 Apr 2005 13:13:56 -0000 1.13 @@ -36,3 +36,4 @@ #include "e_font.h" #include "e_intl.h" #include "e_theme.h" +#include "e_dnd.h" =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v retrieving revision 1.66 retrieving revision 1.67 diff -u -3 -r1.66 -r1.67 --- e_main.c 21 Apr 2005 10:09:26 -0000 1.66 +++ e_main.c 23 Apr 2005 13:13:57 -0000 1.67 @@ -271,7 +271,7 @@ _e_main_shutdown_push(e_font_shutdown); e_font_apply(); e_canvas_recache(); - + /* setup init status window/screen */ if (!e_init_init()) { @@ -326,6 +326,14 @@ _e_main_shutdown(-1); } _e_main_shutdown_push(e_module_shutdown); + + /* setup dnd */ + if (!e_dnd_init()) + { + e_error_message_show(_("Enlightenment cannot set up its dnd system.")); + _e_main_shutdown(-1); + } + _e_main_shutdown_push(e_dnd_shutdown); if (!nowelcome) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_theme.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_theme.c 23 Apr 2005 05:16:24 -0000 1.3 +++ e_theme.c 23 Apr 2005 13:13:57 -0000 1.4 @@ -34,6 +34,7 @@ e_theme_file_set("base/theme/menus", "default.edj"); e_theme_file_set("base/theme/error", "default.edj"); e_theme_file_set("base/theme/gadman", "default.edj"); + e_theme_file_set("base/theme/dnd", "default.edj"); e_theme_file_set("base/theme/modules", "default.edj"); e_theme_file_set("base/theme/modules/pager", "default.edj"); e_theme_file_set("base/theme/modules/ibar", "default.edj"); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -3 -r1.35 -r1.36 --- e_zone.c 23 Apr 2005 05:46:49 -0000 1.35 +++ e_zone.c 23 Apr 2005 13:13:57 -0000 1.36 @@ -291,10 +291,11 @@ { Ecore_Event_Handler *h; - h = l->next; + h = l->data; ecore_event_handler_del(h); } evas_list_free(zone->handlers); + zone->handlers = NULL; con = zone->container; if (zone->name) free(zone->name); ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs