Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c Log Message: Change pointer on begin/end move/resize. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.445 retrieving revision 1.446 diff -u -3 -r1.445 -r1.446 --- e_border.c 7 Oct 2005 18:36:53 -0000 1.445 +++ e_border.c 10 Oct 2005 22:08:51 -0000 1.446 @@ -111,6 +111,11 @@ static char *_e_border_winid_str_get(Ecore_X_Window win); static void _e_border_app_change(void *data, E_App *app, E_App_Change change); + +static void _e_border_pointer_resize_begin(E_Border *bd); +static void _e_border_pointer_resize_end(E_Border *bd); +static void _e_border_pointer_move_begin(E_Border *bd); +static void _e_border_pointer_move_end(E_Border *bd); /* local subsystem globals */ static Evas_List *handlers = NULL; @@ -566,6 +571,7 @@ e_border_unfullscreen(bd); if (bd->resize_mode != RESIZE_NONE) { + _e_border_pointer_resize_end(bd); bd->resize_mode = RESIZE_NONE; _e_border_resize_end(bd); } @@ -1936,6 +1942,7 @@ e_zone_flip_win_disable(); bd->moving = 1; + _e_border_pointer_move_begin(bd); if (ev) { char source[256]; @@ -1951,6 +1958,7 @@ { if (!bd->moving) return; bd->moving = 0; + _e_border_pointer_move_end(bd); e_zone_flip_win_restore(); _e_border_move_end(bd); e_zone_flip_coords_handle(bd->zone, -1, -1); @@ -1990,6 +1998,7 @@ GRAV_SET(bd, ECORE_X_GRAVITY_NW); } } + _e_border_pointer_resize_begin(bd); if (ev) { char source[256]; @@ -2005,6 +2014,7 @@ { if (bd->resize_mode != RESIZE_NONE) { + _e_border_pointer_resize_end(bd); bd->resize_mode = RESIZE_NONE; _e_border_resize_end(bd); bd->changes.reset_gravity = 1; @@ -2317,6 +2327,7 @@ { if (!_e_border_move_begin(bd)) return; bd->moving = 1; + _e_border_pointer_move_begin(bd); e_zone_flip_win_disable(); _e_border_moveinfo_gather(bd, sig); } @@ -2326,6 +2337,7 @@ { if (!bd->moving) return; bd->moving = 0; + _e_border_pointer_move_end(bd); e_zone_flip_win_restore(); _e_border_move_end(bd); e_zone_flip_coords_handle(bd->zone, -1, -1); @@ -2387,6 +2399,7 @@ grav = ECORE_X_GRAVITY_E; } bd->resize_mode = resize_mode; + _e_border_pointer_resize_begin(bd); _e_border_moveinfo_gather(bd, sig); GRAV_SET(bd, grav); } @@ -2396,6 +2409,7 @@ { if (bd->resize_mode == RESIZE_NONE) return; _e_border_resize_handle(bd); + _e_border_pointer_resize_end(bd); bd->resize_mode = RESIZE_NONE; _e_border_resize_end(bd); bd->changes.reset_gravity = 1; @@ -2653,6 +2667,8 @@ ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL); } + /* remove all pointers for this win. */ + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, NULL); e_container_border_remove(bd); if (bd->parent) { @@ -7180,3 +7196,79 @@ } } } + +static void +_e_border_pointer_resize_begin(E_Border *bd) +{ + switch (bd->resize_mode) + { + case RESIZE_TL: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_tl"); + break; + case RESIZE_T: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_t"); + break; + case RESIZE_TR: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_tr"); + break; + case RESIZE_R: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_r"); + break; + case RESIZE_BR: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_br"); + break; + case RESIZE_B: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_b"); + break; + case RESIZE_BL: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_bl"); + break; + case RESIZE_L: + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "resize_l"); + break; + } +} + +static void +_e_border_pointer_resize_end(E_Border *bd) +{ + switch (bd->resize_mode) + { + case RESIZE_TL: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_tl"); + break; + case RESIZE_T: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_t"); + break; + case RESIZE_TR: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_tr"); + break; + case RESIZE_R: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_r"); + break; + case RESIZE_BR: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_br"); + break; + case RESIZE_B: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_b"); + break; + case RESIZE_BL: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_bl"); + break; + case RESIZE_L: + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "resize_l"); + break; + } +} + +static void +_e_border_pointer_move_begin(E_Border *bd) +{ + e_pointer_type_push(bd->zone->container->manager->pointer, bd, "move"); +} + +static void +_e_border_pointer_move_end(E_Border *bd) +{ + e_pointer_type_pop(bd->zone->container->manager->pointer, bd, "move"); +} ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs