diff --git a/data/themes/default_shelf.edc b/data/themes/default_shelf.edc index b72b72d54..ed8284e2c 100644 --- a/data/themes/default_shelf.edc +++ b/data/themes/default_shelf.edc @@ -40,6 +40,7 @@ group { part { name: "base"; clip_to: "base_clip"; + mouse_events: 0; description { state: "default" 0.0; rel1 { diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index 5e86cef0c..e8f1c9946 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -699,7 +699,7 @@ _e_gadcon_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_in ev = event_info; if (ev->button == 3) { - printf("THREE!\n"); + printf("THREE! %p\n", gcc); } } diff --git a/src/bin/e_main.c b/src/bin/e_main.c index da894edf1..57d0b1da5 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -272,7 +272,7 @@ main(int argc, char **argv) _e_main_shutdown_push(ecore_shutdown); _e_cacheburst++; -// eet_cacheburst(_e_cacheburst); +/* eet_cacheburst(_e_cacheburst); */ ecore_timer_add(5.0, _e_main_cb_eet_cacheburst_end, NULL); /* init the file system */ @@ -327,7 +327,7 @@ main(int argc, char **argv) } _e_main_shutdown_push(e_xinerama_shutdown); -// ecore_x_grab(); +/* ecore_x_grab(); */ ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL); @@ -635,7 +635,7 @@ main(int argc, char **argv) e_error_message_show(_("Enlightenment cannot set up its desk locking system.")); _e_main_shutdown(-1); } - //_e_main_shutdown_push(e_desklock_shutdown); +/* _e_main_shutdown_push(e_desklock_shutdown); */ if (ipc_failed) e_error_dialog_show(_("Enlightenment IPC setup error!"), @@ -653,7 +653,7 @@ main(int argc, char **argv) e_managers_keys_grab(); -// ecore_x_ungrab(); +/* ecore_x_ungrab(); */ e_init_title_set(_("Enlightenment")); e_init_version_set(VERSION); @@ -777,7 +777,7 @@ _e_main_shutdown(int errorcode) static int _e_main_x_shutdown(void) { -// ecore_x_ungrab(); +/* ecore_x_ungrab(); */ ecore_x_focus_reset(); ecore_x_events_allow_all(); @@ -1210,19 +1210,17 @@ _e_main_cb_idler_before(void *data __UNUSED__) } } _e_cacheburst--; -// eet_cacheburst(_e_cacheburst); +/* eet_cacheburst(_e_cacheburst); */ edje_thaw(); -// printf("IN to idle... %3.3f\n", ecore_time_get()); return 1; } static int _e_main_cb_idler_after(void *data __UNUSED__) { -// printf("OUT of idle... %3.3f\n", ecore_time_get()); edje_freeze(); _e_cacheburst++; -// eet_cacheburst(_e_cacheburst); +/* eet_cacheburst(_e_cacheburst); */ return 1; } @@ -1230,7 +1228,7 @@ static int _e_main_cb_eet_cacheburst_end(void *data __UNUSED__) { _e_cacheburst--; -// eet_cacheburst(_e_cacheburst); +/* eet_cacheburst(_e_cacheburst); */ return 0; } diff --git a/src/bin/e_popup.c b/src/bin/e_popup.c index 1552bec8b..5fa773d22 100644 --- a/src/bin/e_popup.c +++ b/src/bin/e_popup.c @@ -308,6 +308,7 @@ _e_popup_cb_mouse_down(void *data, int type, void *event) if (ev->double_click) flags |= EVAS_BUTTON_DOUBLE_CLICK; if (ev->triple_click) flags |= EVAS_BUTTON_TRIPLE_CLICK; evas_event_feed_mouse_down(pop->evas, ev->button, flags, ev->time, NULL); + return 0; } return 1; } @@ -325,6 +326,7 @@ _e_popup_cb_mouse_up(void *data, int type, void *event) evas_event_feed_mouse_up(pop->evas, ev->button, EVAS_BUTTON_NONE, ev->time, NULL); e_bindings_mouse_up_event_handle(E_BINDING_CONTEXT_POPUP, E_OBJECT(pop), ev); + return 0; } return 1; } @@ -342,6 +344,7 @@ _e_popup_cb_mouse_wheel(void *data, int type, void *event) e_bindings_wheel_event_handle(E_BINDING_CONTEXT_POPUP, E_OBJECT(pop), ev); evas_event_feed_mouse_wheel(pop->evas, ev->direction, ev->z, ev->time, NULL); + return 0; } return 1; } diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index 373e7750f..f6b1aae46 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -85,6 +85,10 @@ e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, i es->layer = layer; es->zone = zone; es->style = evas_stringshare_add(style); + + es->o_event = evas_object_rectangle_add(es->evas); + evas_object_color_set(es->o_event, 0, 0, 0, 0); + evas_object_resize(es->o_event, es->w, es->h); es->o_base = edje_object_add(es->evas); es->name = evas_stringshare_add(name); @@ -95,12 +99,15 @@ e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, i "shelf/default/base"); if (es->popup) { + evas_object_show(es->o_event); evas_object_show(es->o_base); e_popup_edje_bg_object_set(es->popup, es->o_base); } else { + evas_object_move(es->o_event, es->zone->x + es->x, es->zone->y + es->y); evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); + evas_object_layer_set(es->o_event, layer); evas_object_layer_set(es->o_base, layer); } @@ -139,7 +146,10 @@ e_shelf_show(E_Shelf *es) if (es->popup) e_popup_show(es->popup); else - evas_object_show(es->o_base); + { + evas_object_show(es->o_event); + evas_object_show(es->o_base); + } } EAPI void @@ -150,7 +160,10 @@ e_shelf_hide(E_Shelf *es) if (es->popup) e_popup_hide(es->popup); else - evas_object_hide(es->o_base); + { + evas_object_hide(es->o_event); + evas_object_hide(es->o_base); + } } EAPI void @@ -163,7 +176,10 @@ e_shelf_move(E_Shelf *es, int x, int y) if (es->popup) e_popup_move(es->popup, es->x, es->y); else - evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); + { + evas_object_move(es->o_event, es->zone->x + es->x, es->zone->y + es->y); + evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); + } } EAPI void @@ -174,12 +190,9 @@ e_shelf_resize(E_Shelf *es, int w, int h) es->w = w; es->h = h; if (es->popup) - { - e_popup_resize(es->popup, es->w, es->h); - evas_object_resize(es->o_base, es->w, es->h); - } - else - evas_object_resize(es->o_base, es->w, es->h); + e_popup_resize(es->popup, es->w, es->h); + evas_object_resize(es->o_event, es->w, es->h); + evas_object_resize(es->o_base, es->w, es->h); } EAPI void @@ -192,15 +205,14 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h) es->w = w; es->h = h; if (es->popup) - { - e_popup_move_resize(es->popup, es->x, es->y, es->w, es->h); - evas_object_resize(es->o_base, es->w, es->h); - } + e_popup_move_resize(es->popup, es->x, es->y, es->w, es->h); else { + evas_object_move(es->o_event, es->zone->x + es->x, es->zone->y + es->y); evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y); - evas_object_resize(es->o_base, es->w, es->h); } + evas_object_resize(es->o_event, es->w, es->h); + evas_object_resize(es->o_base, es->w, es->h); } EAPI void @@ -212,7 +224,10 @@ e_shelf_layer_set(E_Shelf *es, int layer) if (es->popup) e_popup_layer_set(es->popup, es->layer); else - evas_object_layer_set(es->o_base, es->layer); + { + evas_object_layer_set(es->o_event, es->layer); + evas_object_layer_set(es->o_base, es->layer); + } } EAPI void @@ -279,6 +294,7 @@ _e_shelf_free(E_Shelf *es) e_object_del(E_OBJECT(es->gadcon)); evas_stringshare_del(es->name); evas_stringshare_del(es->style); + evas_object_del(es->o_event); evas_object_del(es->o_base); if (es->popup) e_object_del(E_OBJECT(es->popup)); free(es); diff --git a/src/bin/e_shelf.h b/src/bin/e_shelf.h index 3fd7c913a..e6fb0cf91 100644 --- a/src/bin/e_shelf.h +++ b/src/bin/e_shelf.h @@ -19,6 +19,7 @@ struct _E_Shelf E_Popup *popup; /* NULL if its within an existing canvas */ E_Zone *zone; Evas_Object *o_base; + Evas_Object *o_event; Ecore_Evas *ee; Evas *evas; E_Gadcon *gadcon;