From 609964ff1a984b857a7f7966b35d9e7314c592b2 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Wed, 13 May 2009 11:38:12 +0000 Subject: [PATCH] unbreak pager and mouse wheel. pagers should not rely on events on the edje object as it might get lots of event replicas if there is a chain of swallows/groups/smarts and they repeat events. the new theme exports an e.eventarea part that will get the events and pager will try to use it, if not fallback to the old behavior. I cannot test this now, please say if it does not work. SVN revision: 40616 --- data/themes/default.edc | 6 +++--- src/modules/pager/e_mod_main.c | 15 ++++++++++----- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 81e9f2f95..6572dbd27 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -7522,7 +7522,7 @@ collections { /* begin the collection of edje groups that are in this file */ color: 255 255 255 255; } } - part { name: "over3"; + part { name: "e.eventarea"; type: RECT; mouse_events: 1; repeat_events: 1; @@ -7586,14 +7586,14 @@ collections { /* begin the collection of edje groups that are in this file */ program { name: "name_show"; signal: "mouse,in"; - source: "over3"; + source: "e.eventarea"; action: STATE_SET "active" 0.0; transition: SINUSOIDAL 0.1; target: "e.text.label"; } program { name: "name_hide"; signal: "mouse,out"; - source: "over3"; + source: "e.eventarea"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.2; target: "e.text.label"; diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index 5f0c63c07..3f6d8efe4 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -343,7 +343,7 @@ static Pager_Desk * _pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos) { Pager_Desk *pd; - Evas_Object *o; + Evas_Object *o, *evo; E_Border_List *bl; E_Border *bd; @@ -368,13 +368,18 @@ _pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos) e_table_pack(p->o_table, o, xpos, ypos, 1, 1); e_table_pack_options_set(o, 1, 1, 1, 1, 0.5, 0.5, 0, 0, -1, -1); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, + + evo = (Evas_Object *)edje_object_part_object_get(o, "e.eventarea"); + if (!evo) + evo = o; + + evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_DOWN, _pager_desk_cb_mouse_down, pd); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, + evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_UP, _pager_desk_cb_mouse_up, pd); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, + evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_MOVE, _pager_desk_cb_mouse_move, pd); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, + evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_WHEEL, _pager_desk_cb_mouse_wheel, pd); evas_object_show(o);