forked from enlightenment/enlightenment
force accuracy in pager16 aspecting
this was inherited from the original pager module where it didn't matter as much. T771
This commit is contained in:
parent
cd4ed6f4e8
commit
1da25bc254
|
@ -266,6 +266,30 @@ _gc_id_new(const E_Gadcon_Client_Class *client_class)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_pager_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Pager *p = data;
|
||||||
|
Eina_List *l;
|
||||||
|
Pager_Desk *pd;
|
||||||
|
int w, h, zw, zh;
|
||||||
|
|
||||||
|
zw = p->zone->w, zh = p->zone->h;
|
||||||
|
pd = eina_list_data_get(p->desks);
|
||||||
|
if (!pd) return;
|
||||||
|
|
||||||
|
evas_object_geometry_get(pd->o_desk, NULL, NULL, &w, &h);
|
||||||
|
if (zw * h != zh * w) //aspecting
|
||||||
|
{
|
||||||
|
if (w > h)
|
||||||
|
h = zh * w / zw;
|
||||||
|
else
|
||||||
|
w = zw * h / zh;
|
||||||
|
}
|
||||||
|
EINA_LIST_FOREACH(p->desks, l, pd)
|
||||||
|
e_table_pack_options_set(pd->o_desk, 1, 1, 1, 1, 0.5, 0.5, w, h, -1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
static Pager *
|
static Pager *
|
||||||
_pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc)
|
_pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc)
|
||||||
{
|
{
|
||||||
|
@ -275,6 +299,7 @@ _pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc)
|
||||||
p->inst = NULL;
|
p->inst = NULL;
|
||||||
p->popup = NULL;
|
p->popup = NULL;
|
||||||
p->o_table = e_table_add(evas);
|
p->o_table = e_table_add(evas);
|
||||||
|
evas_object_event_callback_add(p->o_table, EVAS_CALLBACK_RESIZE, _pager_resize, p);
|
||||||
e_table_homogenous_set(p->o_table, 1);
|
e_table_homogenous_set(p->o_table, 1);
|
||||||
p->zone = zone;
|
p->zone = zone;
|
||||||
_pager_fill(p, gc);
|
_pager_fill(p, gc);
|
||||||
|
|
Loading…
Reference in New Issue