From: Mike Blumenkrantz Date: Tue, 13 Aug 2013 10:20:39 +0000 (+0100) Subject: changing gadman gadget orientations using menu now guesses new orientation sizes... X-Git-Tag: submit/efl/20131021.015651~183 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d324abd7af19c5bddc24748fc6164b555d571c3;p=platform%2Fupstream%2Fenlightenment.git changing gadman gadget orientations using menu now guesses new orientation sizes much more accurately --- diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c index dd1405e..bf1425f 100644 --- a/src/modules/gadman/e_mod_gadman.c +++ b/src/modules/gadman/e_mod_gadman.c @@ -1169,39 +1169,30 @@ on_menu_style_inset(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__ static void _menu_style_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient) { - int w, h; + int ow, oh, w, h; + Eina_Bool same; + + same = (((orient == E_GADCON_ORIENT_LEFT) && (gcc->cf->orient == E_GADCON_ORIENT_FLOAT)) || + ((orient == E_GADCON_ORIENT_FLOAT) && (gcc->cf->orient == E_GADCON_ORIENT_LEFT))); gcc->cf->orient = orient; + evas_object_geometry_get(gcc->o_frame, NULL, NULL, &ow, &oh); if (gcc->client_class->func.orient) gcc->client_class->func.orient(gcc, orient); - if (orient == E_GADCON_ORIENT_VERT) + if (same) { - w = DEFAULT_SIZE_W * Man->width; - if (w < gcc->min.w) w = gcc->min.w; - - if (gcc->aspect.w && gcc->aspect.h) - h = ((float)gcc->aspect.h / (float)gcc->aspect.w) * w; - else - { - h = DEFAULT_SIZE_H * Man->height; - if (h < gcc->min.h) h = gcc->min.h; - } + w = ow, h = oh; } - else + else { - h = DEFAULT_SIZE_H * Man->height; - if (h < gcc->min.h) h = gcc->min.h; - - if (gcc->aspect.w && gcc->aspect.h) - w = ((float)gcc->aspect.w / (float)gcc->aspect.h) * h; - else - { - w = DEFAULT_SIZE_W * Man->width; - if (w < gcc->min.w) w = gcc->min.w; - } + /* just flip aspect */ + w = oh; + h = ow; } + gcc->max.w = w; + gcc->max.h = h; evas_object_resize(gcc->o_frame, w, h); _save_widget_position(gcc); }