diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index 3f1a4c296..5e86cef0c 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -45,6 +45,7 @@ static void e_gadcon_layout_pack_request_set(Evas_Object *obj, int pos, int size static void e_gadcon_layout_pack_options_set(Evas_Object *obj, int pos, int size, int res); static void e_gadcon_layout_pack_min_size_set(Evas_Object *obj, int w, int h); static void e_gadcon_layout_pack_aspect_set(Evas_Object *obj, int w, int h); +static void e_gadcon_layout_pack_aspect_pad_set(Evas_Object *obj, int w, int h); static void e_gadcon_layout_unpack(Evas_Object *obj); static Evas_Hash *providers = NULL; @@ -408,6 +409,8 @@ e_gadcon_client_new(E_Gadcon *gc, char *name, char *id, char *style, Evas_Object style); if (gcc->o_frame) { + edje_object_size_min_calc(gcc->o_frame, + &(gcc->pad.w), &(gcc->pad.h)); edje_object_part_swallow(gcc->o_frame, "items", gcc->o_base); evas_object_show(gcc->o_frame); } @@ -488,8 +491,16 @@ e_gadcon_client_edit_begin(E_Gadcon_Client *gcc) evas_object_event_callback_add(gcc->o_event, EVAS_CALLBACK_MOUSE_IN, _e_gadcon_cb_mouse_in, gcc); evas_object_event_callback_add(gcc->o_event, EVAS_CALLBACK_MOUSE_OUT, _e_gadcon_cb_mouse_out, gcc); - evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOVE, _e_gadcon_cb_move, gcc); - evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_RESIZE, _e_gadcon_cb_resize, gcc); + if (gcc->o_frame) + { + evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_MOVE, _e_gadcon_cb_move, gcc); + evas_object_event_callback_add(gcc->o_frame, EVAS_CALLBACK_RESIZE, _e_gadcon_cb_resize, gcc); + } + else + { + evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOVE, _e_gadcon_cb_move, gcc); + evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_RESIZE, _e_gadcon_cb_resize, gcc); + } evas_object_show(gcc->o_event); evas_object_show(gcc->o_control); @@ -501,8 +512,16 @@ e_gadcon_client_edit_end(E_Gadcon_Client *gcc) E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); - evas_object_event_callback_del(gcc->o_base, EVAS_CALLBACK_MOVE, _e_gadcon_cb_move); - evas_object_event_callback_del(gcc->o_base, EVAS_CALLBACK_RESIZE, _e_gadcon_cb_resize); + if (gcc->o_frame) + { + evas_object_event_callback_del(gcc->o_frame, EVAS_CALLBACK_MOVE, _e_gadcon_cb_move); + evas_object_event_callback_del(gcc->o_frame, EVAS_CALLBACK_RESIZE, _e_gadcon_cb_resize); + } + else + { + evas_object_event_callback_del(gcc->o_base, EVAS_CALLBACK_MOVE, _e_gadcon_cb_move); + evas_object_event_callback_del(gcc->o_base, EVAS_CALLBACK_RESIZE, _e_gadcon_cb_resize); + } if (gcc->moving) { @@ -526,7 +545,7 @@ e_gadcon_client_size_request(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h) case E_GADCON_ORIENT_TOP: case E_GADCON_ORIENT_BOTTOM: if (gcc->o_frame) - e_gadcon_layout_pack_size_set(gcc->o_frame, w); + e_gadcon_layout_pack_size_set(gcc->o_frame, w + gcc->pad.w); else e_gadcon_layout_pack_size_set(gcc->o_base, w); break; @@ -534,7 +553,7 @@ e_gadcon_client_size_request(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h) case E_GADCON_ORIENT_LEFT: case E_GADCON_ORIENT_RIGHT: if (gcc->o_frame) - e_gadcon_layout_pack_size_set(gcc->o_frame, h); + e_gadcon_layout_pack_size_set(gcc->o_frame, h + gcc->pad.h); else e_gadcon_layout_pack_size_set(gcc->o_base, h); break; @@ -543,6 +562,10 @@ e_gadcon_client_size_request(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h) case E_GADCON_ORIENT_CORNER_TR: case E_GADCON_ORIENT_CORNER_BL: case E_GADCON_ORIENT_CORNER_BR: + case E_GADCON_ORIENT_CORNER_LT: + case E_GADCON_ORIENT_CORNER_RT: + case E_GADCON_ORIENT_CORNER_LB: + case E_GADCON_ORIENT_CORNER_RB: default: break; } @@ -554,7 +577,7 @@ e_gadcon_client_min_size_set(E_Gadcon_Client *gcc, Evas_Coord w, Evas_Coord h) E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); if (gcc->o_frame) - e_gadcon_layout_pack_min_size_set(gcc->o_frame, w, h); + e_gadcon_layout_pack_min_size_set(gcc->o_frame, w + gcc->pad.w, h + gcc->pad.h); else e_gadcon_layout_pack_min_size_set(gcc->o_base, w, h); } @@ -565,7 +588,10 @@ e_gadcon_client_aspect_set(E_Gadcon_Client *gcc, int w, int h) E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); if (gcc->o_frame) - e_gadcon_layout_pack_aspect_set(gcc->o_frame, w, h); + { + e_gadcon_layout_pack_aspect_pad_set(gcc->o_frame, gcc->pad.w, gcc->pad.h); + e_gadcon_layout_pack_aspect_set(gcc->o_frame, w, h); + } else e_gadcon_layout_pack_aspect_set(gcc->o_base, w, h); } @@ -673,6 +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"); } } @@ -770,7 +797,10 @@ _e_gadcon_cb_signal_move_go(void *data, Evas_Object *obj, const char *emission, evas_pointer_canvas_xy_get(gcc->gadcon->evas, &x, &y); x = x - gcc->dx; y = y - gcc->dy; - evas_object_geometry_get(gcc->o_base, NULL, NULL, &w, &h); + if (gcc->o_frame) + evas_object_geometry_get(gcc->o_frame, NULL, NULL, &w, &h); + else + evas_object_geometry_get(gcc->o_base, NULL, NULL, &w, &h); if (e_gadcon_layout_orientation_get(gcc->gadcon->o_container)) { if (gcc->o_frame) @@ -922,7 +952,7 @@ struct _E_Gadcon_Layout_Item int hookp; struct { int w, h; - } min, aspect; + } min, aspect, aspect_pad; Evas_Coord x, y, w, h; Evas_Object *obj; unsigned char can_move : 1; @@ -1187,6 +1217,17 @@ e_gadcon_layout_pack_aspect_set(Evas_Object *obj, int w, int h) _e_gadcon_layout_smart_reconfigure(bi->sd); } +static void +e_gadcon_layout_pack_aspect_pad_set(Evas_Object *obj, int w, int h) +{ + E_Gadcon_Layout_Item *bi; + + bi = evas_object_data_get(obj, "e_gadcon_layout_data"); + if (!bi) return; + bi->aspect_pad.w = w; + bi->aspect_pad.h = h; +} + static void e_gadcon_layout_unpack(Evas_Object *obj) { @@ -1328,13 +1369,15 @@ _e_gadcon_layout_smart_reconfigure(E_Smart_Data *sd) { if (sd->horizontal) { - bi->ask.size2 = (h * bi->aspect.w) / bi->aspect.h; + bi->ask.size2 = (((h - bi->aspect_pad.h) * bi->aspect.w) / + bi->aspect.h) + bi->aspect_pad.w; if (bi->ask.size2 > bi->min.w) min += (bi->ask.size2 - bi->min.w); } else { - bi->ask.size2 = (w * bi->aspect.h) / bi->aspect.w; + bi->ask.size2 = (((w - bi->aspect_pad.w) * bi->aspect.h) / + bi->aspect.w) + bi->aspect_pad.h; if (bi->ask.size2 > bi->min.h) min += (bi->ask.size2 - bi->min.h); } diff --git a/src/bin/e_gadcon.h b/src/bin/e_gadcon.h index 1eba3d2cb..86c477785 100644 --- a/src/bin/e_gadcon.h +++ b/src/bin/e_gadcon.h @@ -22,7 +22,11 @@ typedef enum _E_Gadcon_Orient E_GADCON_ORIENT_CORNER_TL, E_GADCON_ORIENT_CORNER_TR, E_GADCON_ORIENT_CORNER_BL, - E_GADCON_ORIENT_CORNER_BR + E_GADCON_ORIENT_CORNER_BR, + E_GADCON_ORIENT_CORNER_LT, + E_GADCON_ORIENT_CORNER_RT, + E_GADCON_ORIENT_CORNER_LB, + E_GADCON_ORIENT_CORNER_RB } E_Gadcon_Orient; typedef struct _E_Gadcon E_Gadcon; @@ -95,6 +99,9 @@ struct _E_Gadcon_Client struct { int pos, size, res; } config; + struct { + Evas_Coord w, h; + } pad; unsigned char moving : 1; Evas_Coord dx, dy, sx, sy; diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index de23040eb..373e7750f 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -4,6 +4,7 @@ #include "e.h" static void _e_shelf_free(E_Shelf *es); +static const char *_e_shelf_orient_string_get(E_Shelf *es); static void _e_shelf_position_calc(E_Shelf *es); static void _e_shelf_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord h); static Evas_Object *_e_shelf_gadcon_frame_request(void *data, E_Gadcon_Client *gcc, const char *style); @@ -11,13 +12,6 @@ static Evas_Object *_e_shelf_gadcon_frame_request(void *data, E_Gadcon_Client *g static Evas_List *shelves = NULL; static int shelf_id = 0; -/* FIXME: shelves need to do this: - * 1. allow them to be moved, resized etc. etc. - * 2. have a configuration panel per shelf to select if its inline, layer etc. - * 3. catch all right clicks not on modules for right click context menu - * 4. a global config dialog that lists shelves u have to configure them - */ - /* externally accessible functions */ EAPI int e_shelf_init(void) @@ -121,6 +115,7 @@ e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, i es); e_gadcon_orient(es->gadcon, E_GADCON_ORIENT_TOP); edje_object_signal_emit(es->o_base, "set_orientation", "top"); + edje_object_message_signal_process(es->o_base); e_gadcon_zone_set(es->gadcon, zone); e_gadcon_ecore_evas_set(es->gadcon, es->ee); @@ -271,44 +266,9 @@ e_shelf_orient(E_Shelf *es, E_Gadcon_Orient orient) E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_GADMAN_SHELF_TYPE); e_gadcon_orient(es->gadcon, orient); - switch (es->gadcon->orient) - { - case E_GADCON_ORIENT_FLOAT: - edje_object_signal_emit(es->o_base, "set_orientation", "float"); - break; - case E_GADCON_ORIENT_HORIZ: - edje_object_signal_emit(es->o_base, "set_orientation", "horizontal"); - break; - case E_GADCON_ORIENT_VERT: - edje_object_signal_emit(es->o_base, "set_orientation", "vertical"); - break; - case E_GADCON_ORIENT_LEFT: - edje_object_signal_emit(es->o_base, "set_orientation", "left"); - break; - case E_GADCON_ORIENT_RIGHT: - edje_object_signal_emit(es->o_base, "set_orientation", "right"); - break; - case E_GADCON_ORIENT_TOP: - edje_object_signal_emit(es->o_base, "set_orientation", "top"); - break; - case E_GADCON_ORIENT_BOTTOM: - edje_object_signal_emit(es->o_base, "set_orientation", "bottom"); - break; - case E_GADCON_ORIENT_CORNER_TL: - edje_object_signal_emit(es->o_base, "set_orientation", "top_left"); - break; - case E_GADCON_ORIENT_CORNER_TR: - edje_object_signal_emit(es->o_base, "set_orientation", "top_right"); - break; - case E_GADCON_ORIENT_CORNER_BL: - edje_object_signal_emit(es->o_base, "set_orientation", "bottom_left"); - break; - case E_GADCON_ORIENT_CORNER_BR: - edje_object_signal_emit(es->o_base, "set_orientation", "bottom_right"); - break; - default: - break; - } + edje_object_signal_emit(es->o_base, "set_orientation", + _e_shelf_orient_string_get(es)); + edje_object_message_signal_process(es->o_base); } /* local subsystem functions */ @@ -324,6 +284,64 @@ _e_shelf_free(E_Shelf *es) free(es); } +static const char * +_e_shelf_orient_string_get(E_Shelf *es) +{ + const char *sig = ""; + + switch (es->gadcon->orient) + { + case E_GADCON_ORIENT_FLOAT: + sig = "float"; + break; + case E_GADCON_ORIENT_HORIZ: + sig = "horizontal"; + break; + case E_GADCON_ORIENT_VERT: + sig = "vertical"; + break; + case E_GADCON_ORIENT_LEFT: + sig = "left"; + break; + case E_GADCON_ORIENT_RIGHT: + sig = "right"; + break; + case E_GADCON_ORIENT_TOP: + sig = "top"; + break; + case E_GADCON_ORIENT_BOTTOM: + sig = "bottom"; + break; + case E_GADCON_ORIENT_CORNER_TL: + sig = "top_left"; + break; + case E_GADCON_ORIENT_CORNER_TR: + sig = "top_right"; + break; + case E_GADCON_ORIENT_CORNER_BL: + sig = "bottom_left"; + break; + case E_GADCON_ORIENT_CORNER_BR: + sig = "bottom_right"; + break; + case E_GADCON_ORIENT_CORNER_LT: + sig = "left_top"; + break; + case E_GADCON_ORIENT_CORNER_RT: + sig = "right_top"; + break; + case E_GADCON_ORIENT_CORNER_LB: + sig = "left_bottom"; + break; + case E_GADCON_ORIENT_CORNER_RB: + sig = "right_bottom"; + break; + default: + break; + } + return sig; +} + static void _e_shelf_position_calc(E_Shelf *es) { @@ -340,14 +358,30 @@ _e_shelf_position_calc(E_Shelf *es) switch (orient) { case E_GADCON_ORIENT_FLOAT: + if (!es->fit_along) es->w = es->zone->w; + if (!es->fit_size) es->h = size; break; case E_GADCON_ORIENT_HORIZ: + if (!es->fit_along) es->w = es->zone->w; + if (!es->fit_size) es->h = size; + es->x = (es->zone->w - es->w) / 2; break; case E_GADCON_ORIENT_VERT: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->y = (es->zone->h - es->h) / 2; break; case E_GADCON_ORIENT_LEFT: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->x = 0; + es->y = (es->zone->h - es->h) / 2; break; case E_GADCON_ORIENT_RIGHT: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->x = es->zone->w - es->w; + es->y = (es->zone->h - es->h) / 2; break; case E_GADCON_ORIENT_TOP: if (!es->fit_along) es->w = es->zone->w; @@ -362,12 +396,52 @@ _e_shelf_position_calc(E_Shelf *es) es->y = es->zone->h - es->h; break; case E_GADCON_ORIENT_CORNER_TL: + if (!es->fit_along) es->w = es->zone->w; + if (!es->fit_size) es->h = size; + es->x = 0; + es->y = 0; break; case E_GADCON_ORIENT_CORNER_TR: + if (!es->fit_along) es->w = es->zone->w; + if (!es->fit_size) es->h = size; + es->x = es->zone->w - es->w; + es->y = 0; break; case E_GADCON_ORIENT_CORNER_BL: + if (!es->fit_along) es->w = es->zone->w; + if (!es->fit_size) es->h = size; + es->x = 0; + es->y = es->zone->h - es->h; break; case E_GADCON_ORIENT_CORNER_BR: + if (!es->fit_along) es->w = es->zone->w; + if (!es->fit_size) es->h = size; + es->x = es->zone->w - es->w; + es->y = es->zone->h - es->h; + break; + case E_GADCON_ORIENT_CORNER_LT: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->x = 0; + es->y = 0; + break; + case E_GADCON_ORIENT_CORNER_RT: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->x = es->zone->w - es->w; + es->y = 0; + break; + case E_GADCON_ORIENT_CORNER_LB: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->x = 0; + es->y = es->zone->h - es->h; + break; + case E_GADCON_ORIENT_CORNER_RB: + if (!es->fit_along) es->h = es->zone->h; + if (!es->fit_size) es->w = size; + es->x = es->zone->w - es->w; + es->y = es->zone->h - es->h; break; default: break; @@ -392,30 +466,25 @@ _e_shelf_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord switch (gc->orient) { case E_GADCON_ORIENT_FLOAT: - break; case E_GADCON_ORIENT_HORIZ: + case E_GADCON_ORIENT_TOP: + case E_GADCON_ORIENT_BOTTOM: + case E_GADCON_ORIENT_CORNER_TL: + case E_GADCON_ORIENT_CORNER_TR: + case E_GADCON_ORIENT_CORNER_BL: + case E_GADCON_ORIENT_CORNER_BR: + if (!es->fit_along) w = ww; + if (!es->fit_size) h = hh; break; case E_GADCON_ORIENT_VERT: - break; case E_GADCON_ORIENT_LEFT: - break; case E_GADCON_ORIENT_RIGHT: - break; - case E_GADCON_ORIENT_TOP: - if (!es->fit_along) w = ww; - if (!es->fit_size) h = hh; - break; - case E_GADCON_ORIENT_BOTTOM: - if (!es->fit_along) w = ww; - if (!es->fit_size) h = hh; - break; - case E_GADCON_ORIENT_CORNER_TL: - break; - case E_GADCON_ORIENT_CORNER_TR: - break; - case E_GADCON_ORIENT_CORNER_BL: - break; - case E_GADCON_ORIENT_CORNER_BR: + case E_GADCON_ORIENT_CORNER_LT: + case E_GADCON_ORIENT_CORNER_RT: + case E_GADCON_ORIENT_CORNER_LB: + case E_GADCON_ORIENT_CORNER_RB: + if (!es->fit_along) h = hh; + if (!es->fit_size) w = ww; break; default: break; @@ -427,14 +496,41 @@ _e_shelf_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord switch (gc->orient) { case E_GADCON_ORIENT_FLOAT: + if (!es->fit_along) nw = es->w; + if (!es->fit_size) nh = es->h; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nw != es->w) nx = es->x + ((es->w - nw) / 2); break; case E_GADCON_ORIENT_HORIZ: + if (!es->fit_along) nw = es->w; + if (!es->fit_size) nh = es->h; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nw != es->w) nx = es->x + ((es->w - nw) / 2); break; case E_GADCON_ORIENT_VERT: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = es->y + ((es->h - nh) / 2); break; case E_GADCON_ORIENT_LEFT: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = es->y + ((es->h - nh) / 2); + nx = 0; break; case E_GADCON_ORIENT_RIGHT: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = es->y + ((es->h - nh) / 2); + nx = es->zone->w - nw; break; case E_GADCON_ORIENT_TOP: if (!es->fit_along) nw = es->w; @@ -453,12 +549,68 @@ _e_shelf_gadcon_size_request(void *data, E_Gadcon *gc, Evas_Coord w, Evas_Coord ny = es->zone->h - nh; break; case E_GADCON_ORIENT_CORNER_TL: + if (!es->fit_along) nw = es->w; + if (!es->fit_size) nh = es->h; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nw != es->w) nx = 0; + ny = 0; break; case E_GADCON_ORIENT_CORNER_TR: + if (!es->fit_along) nw = es->w; + if (!es->fit_size) nh = es->h; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nw != es->w) nx = es->zone->w - es->w; + ny = 0; break; case E_GADCON_ORIENT_CORNER_BL: + if (!es->fit_along) nw = es->w; + if (!es->fit_size) nh = es->h; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nw != es->w) nx = 0; + ny = es->zone->h - nh; break; case E_GADCON_ORIENT_CORNER_BR: + if (!es->fit_along) nw = es->w; + if (!es->fit_size) nh = es->h; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nw != es->w) nx = es->zone->w - es->w; + ny = es->zone->h - nh; + break; + case E_GADCON_ORIENT_CORNER_LT: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = 0; + nx = 0; + break; + case E_GADCON_ORIENT_CORNER_RT: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = 0; + nx = es->zone->w - nw; + break; + case E_GADCON_ORIENT_CORNER_LB: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = es->zone->h - nh; + nx = 0; + break; + case E_GADCON_ORIENT_CORNER_RB: + if (!es->fit_along) nh = es->h; + if (!es->fit_size) nw = es->w; + if (nw > es->zone->w) nw = es->zone->w; + if (nh > es->zone->h) nh = es->zone->h; + if (nh != es->h) ny = es->zone->h - nh; + nx = es->zone->w - nw; break; default: break; @@ -481,5 +633,8 @@ _e_shelf_gadcon_frame_request(void *data, E_Gadcon_Client *gcc, const char *styl evas_object_del(o); return NULL; } + edje_object_signal_emit(o, "set_orientation", + _e_shelf_orient_string_get(es)); + edje_object_message_signal_process(o); return o; }