Backport: c2b2be5 :: Add current rotation to smart_data structure. Fill in current rotation on crtc set. Update current rotation when we get a rotation event.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84183
Signed-off-by: Deon Thomas <PrinceAMD.Elive@gmail.com>
This commit is contained in:
Christopher Michael 2013-02-19 10:58:22 +00:00 committed by Deon Thomas
parent ab05ef5335
commit 63163546d8
1 changed files with 11 additions and 1 deletions

View File

@ -80,6 +80,9 @@ struct _E_Smart_Data
/* rotating flag */
Eina_Bool rotating : 1;
/* current rotation */
int rotation;
};
/* smart function prototypes */
@ -223,6 +226,9 @@ e_smart_monitor_crtc_set(Evas_Object *obj, Ecore_X_Randr_Crtc crtc, Evas_Coord c
sd->crtc.mode = ecore_x_randr_crtc_mode_get(root, crtc);
#endif
/* get the degree of rotation */
sd->rotation = _e_smart_monitor_rotation_get(sd->crtc.orient);
/* check crtc current mode to determine if enabled */
if (sd->crtc.mode != 0)
{
@ -1059,6 +1065,9 @@ _e_smart_monitor_frame_cb_rotate_start(void *data, Evas_Object *obj EINA_UNUSED,
/* try to get the monitor smart data */
if (!(sd = evas_object_smart_data_get(mon))) return;
/* get the degree of rotation */
sd->rotation = _e_smart_monitor_rotation_get(sd->crtc.orient);
/* record current size of monitor */
/* evas_object_grid_pack_get(sd->grid.obj, mon, NULL, NULL, &sd->cw, &sd->ch); */
@ -1168,10 +1177,11 @@ _e_smart_monitor_rotate_event(E_Smart_Data *sd, Evas_Object *mon, void *event)
if (rotation == 0) return;
/* factor in any existing rotation */
/* rotation += ; */
rotation += sd->rotation;
rotation %= 360;
/* update current rotation value */
sd->rotation = rotation;
/* apply rotation map */
}