Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_menu.c Log Message: Move windows between desks =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.137 retrieving revision 1.138 diff -u -3 -r1.137 -r1.138 --- e_border.c 20 Apr 2005 19:35:14 -0000 1.137 +++ e_border.c 21 Apr 2005 08:06:23 -0000 1.138 @@ -72,6 +72,8 @@ static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi); +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_event_border_add_free(void *data, void *ev); static void _e_border_event_border_remove_free(void *data, void *ev); @@ -594,6 +596,7 @@ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, 0, 0, 0, 0, 0, mwin, ECORE_X_WINDOW_STACK_BELOW); + { E_Event_Border_Raise *ev; @@ -604,6 +607,7 @@ ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL); } if (move_ee) ecore_evas_raise(move_ee); + if (resize_ee) ecore_evas_raise(resize_ee); } void @@ -3452,6 +3456,14 @@ mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Send To")); + e_menu_item_submenu_pre_callback_set(mi, _e_border_menu_sendto_pre_cb, bd); + e_menu_item_icon_edje_set(mi, e_path_find(path_themes, "default.edj"), "widgets/border/default/sendto"); + + mi = e_menu_item_new(m); + e_menu_item_separator_set(mi, 1); + a = e_app_window_name_class_find(bd->client.icccm.name, bd->client.icccm.class); @@ -3574,6 +3586,43 @@ } static void +_e_border_menu_sendto_pre_cb(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Menu *subm; + E_Menu_Item *submi; + E_Border *bd; + int i; + + bd = data; + + subm = e_menu_new(); + e_object_data_set(E_OBJECT(subm), bd); + e_menu_item_submenu_set(mi, subm); + + for (i = 0; i < bd->zone->desk_x_count * bd->zone->desk_y_count; i++) + { + E_Desk *desk; + + desk = bd->zone->desks[i]; + submi = e_menu_item_new(subm); + e_menu_item_label_set(submi, desk->name); + e_menu_item_callback_set(submi, _e_border_menu_sendto_cb, desk); + } +} + +static void +_e_border_menu_sendto_cb(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Desk *desk; + E_Border *bd; + + desk = data; + bd = e_object_data_get(E_OBJECT(m)); + if ((bd) && (desk)) + e_border_desk_set(bd, desk); +} + +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_menu.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- e_menu.c 21 Apr 2005 07:45:39 -0000 1.18 +++ e_menu.c 21 Apr 2005 08:06:24 -0000 1.19 @@ -824,7 +824,7 @@ evas_object_intercept_move_callback_add (o, _e_menu_cb_intercept_item_move, mi); evas_object_intercept_resize_callback_add(o, _e_menu_cb_intercept_item_resize, mi); - if (mi->submenu) + if ((mi->submenu) || (mi->submenu_pre_cb.func)) { if (!edje_object_file_set(mi->bg_object, /* FIXME: "default.edj" needs to come from conf */ @@ -983,7 +983,7 @@ evas_object_pass_events_set(o, 1); e_box_pack_end(mi->container_object, o); } - if (mi->submenu) + if ((mi->submenu) || (mi->submenu_pre_cb.func)) { o = edje_object_add(mi->menu->evas); mi->submenu_object = o; @@ -2229,5 +2229,6 @@ subm = mi->submenu; e_menu_item_submenu_set(mi, NULL); + printf("Delete submenu: %d\n", E_OBJECT(subm)->references); e_object_del(E_OBJECT(subm)); } ------------------------------------------------------- This SF.Net email is sponsored by: New Crystal Reports XI. Version 11 adds new functionality designed to reduce time involved in creating, integrating, and deploying reporting solutions. Free runtime info, new features, or free trial, at: http://www.businessobjects.com/devxi/728 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs