Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e
Dir : e17/apps/e/src/modules/pager Modified Files: e_mod_main.c Log Message: Patches from Jonathan 'giard' Turner to add scroll wheel desk switching to the pager, and fix a bug with pager win dragging and iconified windows. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.c,v retrieving revision 1.122 retrieving revision 1.123 diff -u -3 -r1.122 -r1.123 --- e_mod_main.c 11 Sep 2005 06:03:13 -0000 1.122 +++ e_mod_main.c 13 Sep 2005 00:27:53 -0000 1.123 @@ -60,6 +60,7 @@ static void _pager_desk_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _pager_desk_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _pager_desk_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _pager_desk_cb_mouse_wheel(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _pager_desk_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y); static void _pager_desk_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h); @@ -736,6 +737,7 @@ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _pager_desk_cb_mouse_down, pd); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _pager_desk_cb_mouse_up, pd); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _pager_desk_cb_mouse_move, pd); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, _pager_desk_cb_mouse_wheel, pd); evas_object_show(o); o = e_layout_add(face->evas); @@ -1129,7 +1131,10 @@ pd = l2->data; pw = _pager_desk_border_find(pd, ev->border); if (pw) - evas_object_hide(pw->window_object); + { + evas_object_hide(pw->window_object); + evas_object_hide(pw->event_object); + } } } return 1; @@ -1158,7 +1163,10 @@ pd = l2->data; pw = _pager_desk_border_find(pd, ev->border); if (pw) - evas_object_show(pw->window_object); + { + evas_object_show(pw->window_object); + evas_object_show(pw->event_object); + } } } return 1; @@ -1955,6 +1963,61 @@ } +static void +_pager_desk_cb_mouse_wheel(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Wheel *ev; + Evas_List *l; + Pager_Desk *desk; + Pager_Face *face; + + ev = event_info; + desk = data; + face = desk->face; + l = face->desks; + + for (l = face->desks; l; l = l->next) + { + Pager_Desk *pd; + pd = l->data; + if (pd->current) + { + /* Mouse wheel up, scroll back through desks */ + if (ev->z < 0) + { + if (l->prev) + { + pd = l->prev->data; + e_desk_show(pd->desk); + } + else + { + /* We've looped around, go to the last desk. Not sure if there's a better way. */ + Evas_List *l2; + for (l2 = face->desks; l2->next; l2 = l2->next); + pd = l2->data; + e_desk_show(pd->desk); + } + } + /* Mouse wheel down, scroll forward through desks */ + else if (ev->z > 0) + { + if (l->next) + { + pd = l->next->data; + e_desk_show(pd->desk); + } + else + { + /* We've looped around, start back at the first desk */ + pd = face->desks->data; + e_desk_show(pd->desk); + } + } + break; + } + } +} /*****/ static void ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs