Change-Id: Ib425bf78107ba363b0286384a2031258d1111f99
EINA_LIST_FOREACH (list, l, info)
{
if (!info->bd) continue;
EINA_LIST_FOREACH (list, l, info)
{
if (!info->bd) continue;
+ if ((info->bd->client.e.state.rot.wait_for_done) &&
+ (info->bd->client.e.state.rot.wait_done_ang == info->ang)) continue;
_e_border_event_border_rotation_change_begin_send(info->bd);
_e_border_event_border_rotation_change_begin_send(info->bd);
ELBF(ELBT_ROT, 1, 0, "SEND ROT_CHANGE_REQUEST");
ecore_x_e_window_rotation_change_request_send(info->bd->client.win,
info->ang);
ELBF(ELBT_ROT, 1, 0, "SEND ROT_CHANGE_REQUEST");
ecore_x_e_window_rotation_change_request_send(info->bd->client.win,
info->ang);
- info->bd->client.e.state.rot.wait_for_done = EINA_TRUE;
+ info->bd->client.e.state.rot.wait_for_done = 1;
+ info->bd->client.e.state.rot.wait_done_ang = info->ang;
ELB(ELBT_BD, "GET CONFIGURE_NOTI (ROTATION)", bd->client.win);
bd->client.e.state.rot.pending_change_request = 0;
ELB(ELBT_BD, "GET CONFIGURE_NOTI (ROTATION)", bd->client.win);
bd->client.e.state.rot.pending_change_request = 0;
+ if ((bd->client.e.state.rot.wait_for_done) &&
+ (bd->client.e.state.rot.wait_done_ang == bd->client.e.state.rot.curr)) goto end;
+
// if this window is rotation dependent window and zone is blocked to rotate,
// then skip here, request will be sent after cancel block.
if ((bd->client.e.state.rot.type == E_BORDER_ROTATION_TYPE_DEPENDENT) &&
// if this window is rotation dependent window and zone is blocked to rotate,
// then skip here, request will be sent after cancel block.
if ((bd->client.e.state.rot.type == E_BORDER_ROTATION_TYPE_DEPENDENT) &&
bd->w, bd->h);
ecore_x_e_window_rotation_change_request_send(bd->client.win,
bd->client.e.state.rot.curr);
bd->w, bd->h);
ecore_x_e_window_rotation_change_request_send(bd->client.win,
bd->client.e.state.rot.curr);
- bd->client.e.state.rot.wait_for_done = EINA_TRUE;
+ bd->client.e.state.rot.wait_for_done = 1;
+ bd->client.e.state.rot.wait_done_ang = bd->client.e.state.rot.curr;
int preferred_rot; // v1: app specified rotation
int *available_rots; // v1: app specified available rotations
unsigned int count; // v1: number of elements of available rotations
int preferred_rot; // v1: app specified rotation
int *available_rots; // v1: app specified available rotations
unsigned int count; // v1: number of elements of available rotations
- int changes; // added for precessing rotation in main eval after fetch in eval0.
+ int changes; // added for precessing rotation in main eval after fetch in eval0.
+ int wait_done_ang; // the angle that wm wait for done.
+ // when wait_for_done is set to 1, it's meaningful.