e_mod_move_quickpanel_e_border_move(qp_mb, mx, my);
e_mod_move_quickpanel_objs_animation_start_position_set(qp_mb,
- angles[0]);
+ angles[0],
+ EINA_FALSE);
e_mod_move_quickpanel_objs_animation_move(qp_mb, ax, ay);
L(LT_EVENT_X,
"[MOVE] ev:%15.15s Quickpanel Show %s():%d\n",
e_mod_move_quickpanel_anim_state_send(qp_mb, EINA_TRUE);
e_mod_move_quickpanel_e_border_move(qp_mb, mx, my);
+ e_mod_move_quickpanel_objs_animation_start_position_set(qp_mb,
+ angles[0],
+ EINA_TRUE);
e_mod_move_quickpanel_objs_animation_move(qp_mb, ax, ay);
L(LT_EVENT_X,
"[MOVE] ev:%15.15s Quickpanel Hide %s():%d\n",
e_mod_move_quickpanel_e_border_move(qp_mb, mx, my);
e_mod_move_quickpanel_objs_animation_start_position_set(qp_mb,
- angles[0]);
+ angles[0],
+ EINA_FALSE);
e_mod_move_quickpanel_objs_animation_move(qp_mb, ax, ay);
}
else if ((!open) && (state))// Quickpanel Close
e_mod_move_quickpanel_anim_state_send(qp_mb, EINA_TRUE);
e_mod_move_quickpanel_e_border_move(qp_mb, mx, my);
+ e_mod_move_quickpanel_objs_animation_start_position_set(qp_mb,
+ angles[0],
+ EINA_TRUE);
e_mod_move_quickpanel_objs_animation_move(qp_mb, ax, ay);
}
else
}
_e_mod_move_indicator_quickpanel_move_set(mb, EINA_TRUE);
e_mod_move_quickpanel_objs_animation_start_position_set(qp_mb,
- angle);
+ angle,
+ EINA_FALSE);
// send quickpanel to "move start message".
e_mod_move_quickpanel_anim_state_send(qp_mb, EINA_TRUE);
}
{
_e_mod_move_indicator_widget_quickpanel_move_set(indi_widget, EINA_TRUE);
e_mod_move_quickpanel_objs_animation_start_position_set(qp_mb,
- mb->angle);
+ mb->angle,
+ EINA_FALSE);
// send quickpanel to "move start message".
e_mod_move_quickpanel_anim_state_send(qp_mb, EINA_TRUE);
}
return EINA_TRUE;
}
+// on_screen is true: quickpanel exists inside. false: quickpanel exists outside.
EINTERN Eina_Bool
e_mod_move_quickpanel_objs_animation_start_position_set(E_Move_Border *mb,
- int angle)
+ int angle,
+ Eina_Bool on_screen)
{
int x = 0; int y = 0;
int cx = 0; int cy = 0; int cw = 0; int ch = 0;
angle = ((angle % 360) / 90) * 90;
contents = e_mod_move_border_contents_rect_get(mb, &cx, &cy ,&cw, &ch);
- if (m->qp_scroll_with_clipping)
+ if (on_screen)
{
- switch (angle)
- {
- case 0:
- case 90:
- default:
- x = mb->x; y = mb->y;
- break;
- case 180:
- case 270:
- x = mb->x + mb->w; y = mb->y + mb->h;
- break;
+ if (m->qp_scroll_with_clipping)
+ {
+ switch (angle)
+ {
+ case 90:
+ x = mb->x + mb->w;
+ break;
+ case 180:
+ y = mb->y;
+ break;
+ case 270:
+ x = mb->x;
+ break;
+ case 0:
+ default:
+ y = mb->y + mb->h;
+ break;
+ }
}
}
else
{
- switch (angle)
+ if (m->qp_scroll_with_clipping)
{
- case 90:
- if (contents)
- x = cw * -1;
- else
- x = mb->w * -1;
- break;
- case 180:
- if (contents)
- y = zone->y + zone->h - cy;
- else
- y = zone->y + zone->h;
- break;
- case 270:
- if (contents)
- x = zone->x + zone->w - cx;
- else
- x = zone->x + zone->w;
- break;
- case 0:
- default :
- if (contents)
- y = ch * -1;
- else
- y = mb->h * -1;
- break;
+ switch (angle)
+ {
+ case 90:
+ x = zone->x;
+ break;
+ case 180:
+ y = zone->y + zone->h;
+ break;
+ case 270:
+ x = zone->x + zone->w;
+ break;
+ case 0:
+ default:
+ y = zone->y;
+ break;
+ }
+ }
+ else
+ {
+ switch (angle)
+ {
+ case 90:
+ if (contents)
+ x = cw * -1;
+ else
+ x = mb->w * -1;
+ break;
+ case 180:
+ if (contents)
+ y = zone->y + zone->h - cy;
+ else
+ y = zone->y + zone->h;
+ break;
+ case 270:
+ if (contents)
+ x = zone->x + zone->w - cx;
+ else
+ x = zone->x + zone->w;
+ break;
+ case 0:
+ default :
+ if (contents)
+ y = ch * -1;
+ else
+ y = mb->h * -1;
+ break;
+ }
}
}
EINTERN Eina_Bool e_mod_move_quickpanel_e_border_move(E_Move_Border *mb, int x, int y);
EINTERN Eina_List* e_mod_move_quickpanel_dim_show(E_Move_Border *mb);
EINTERN Eina_Bool e_mod_move_quickpanel_dim_hide(E_Move_Border *mb);
-EINTERN Eina_Bool e_mod_move_quickpanel_objs_animation_start_position_set(E_Move_Border *mb, int angle);
+EINTERN Eina_Bool e_mod_move_quickpanel_objs_animation_start_position_set(E_Move_Border *mb, int angle, Eina_Bool on_screen); // on_screen is true: quickpanel exists inside screen. false: quickpanel exists outside screen.
EINTERN E_Move_Event_Cb e_mod_move_quickpanel_event_cb_get(E_Move_Event_Type type);
EINTERN Eina_Bool e_mod_move_quickpanel_visible_check(void);
EINTERN Eina_Bool e_mod_move_quickpanel_below_window_reset(void);