discomfitor pushed a commit to branch master.
commit 1d324abd7af19c5bddc24748fc6164b555d571c3
Author: Mike Blumenkrantz <[email protected]>
Date: Tue Aug 13 11:20:39 2013 +0100
changing gadman gadget orientations using menu now guesses new orientation
sizes much more accurately
---
src/modules/gadman/e_mod_gadman.c | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
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);
}
--
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk