forked from enlightenment/enlightenment
Add prototype and code for virtual_size_calc function.
Signed-off-by: Christopher Michael <cp.michael@samsung.com> SVN revision: 84139
This commit is contained in:
parent
28a1a7690f
commit
db406167dc
|
@ -50,6 +50,55 @@ e_smart_randr_add(Evas *evas)
|
||||||
return evas_object_smart_add(evas, smart);
|
return evas_object_smart_add(evas, smart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_smart_randr_virtual_size_calc(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Smart_Data *sd;
|
||||||
|
Ecore_X_Window root = 0;
|
||||||
|
Eina_List *l = NULL;
|
||||||
|
E_Randr_Crtc_Config *crtc;
|
||||||
|
Evas_Coord vw = 0, vh = 0;
|
||||||
|
|
||||||
|
/* try to get the objects smart data */
|
||||||
|
if (!(sd = evas_object_smart_data_get(obj))) return;
|
||||||
|
|
||||||
|
/* grab the root window */
|
||||||
|
root = ecore_x_window_root_first_get();
|
||||||
|
|
||||||
|
/* loop the list of crtcs in our config */
|
||||||
|
EINA_LIST_FOREACH(e_randr_cfg->crtcs, l, crtc)
|
||||||
|
{
|
||||||
|
Eina_List *o = NULL;
|
||||||
|
E_Randr_Output_Config *output;
|
||||||
|
|
||||||
|
/* loop the list of outputs in this crtc */
|
||||||
|
EINA_LIST_FOREACH(crtc->outputs, o, output)
|
||||||
|
{
|
||||||
|
Ecore_X_Randr_Mode *modes;
|
||||||
|
Evas_Coord mw = 0, mh = 0;
|
||||||
|
int num = 0;
|
||||||
|
|
||||||
|
/* get the modes for this output
|
||||||
|
*
|
||||||
|
* NB: Xrandr returns these modes in order of largest first */
|
||||||
|
modes = ecore_x_randr_output_modes_get(root, output->xid, &num, NULL);
|
||||||
|
if (!modes) continue;
|
||||||
|
|
||||||
|
/* get the size of the largest mode */
|
||||||
|
ecore_x_randr_mode_size_get(root, modes[0], &mw, &mh);
|
||||||
|
|
||||||
|
vw += MAX(mw, mh);
|
||||||
|
vh += MAX(mw, mh);
|
||||||
|
|
||||||
|
/* free any allocated memory from ecore_x_randr */
|
||||||
|
free(modes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set the layout virtual size */
|
||||||
|
e_layout_virtual_size_set(sd->o_layout, vw, vh);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_smart_randr_monitors_create(Evas_Object *obj)
|
e_smart_randr_monitors_create(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# define E_SMART_RANDR_H
|
# define E_SMART_RANDR_H
|
||||||
|
|
||||||
Evas_Object *e_smart_randr_add(Evas *evas);
|
Evas_Object *e_smart_randr_add(Evas *evas);
|
||||||
|
void e_smart_randr_virtual_size_calc(Evas_Object *obj);
|
||||||
void e_smart_randr_monitors_create(Evas_Object *obj);
|
void e_smart_randr_monitors_create(Evas_Object *obj);
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
Loading…
Reference in New Issue