snprintf(source, sizeof(source) - 1, "mouse,down,%i", ev->button);
_e_client_moveinfo_gather(ec, source);
- if ((ec->floating) &&
- (resize_mode != E_POINTER_RESIZE_NONE))
+ /* Use canvas.x, canvas.y of event.
+ * Transformed coordinates has to be considered for accurate resize_mode
+ * rather than absolute coordinates. */
+ if ((ev->canvas.x > (ec->x + ec->w / 5)) &&
+ (ev->canvas.x < (ec->x + ec->w * 4 / 5)))
{
- /* set resizing direction only for floating mode window */
- ec->resize_mode = resize_mode;
+ if (ev->canvas.y < (ec->y + ec->h / 2)) ec->resize_mode = E_POINTER_RESIZE_T;
+ else ec->resize_mode = E_POINTER_RESIZE_B;
+ }
+ else if (ev->canvas.x < (ec->x + ec->w / 2))
+ {
+ if ((ev->canvas.y > (ec->y + ec->h / 5)) && (ev->canvas.y < (ec->y + ec->h * 4 / 5))) ec->resize_mode = E_POINTER_RESIZE_L;
+ else if (ev->canvas.y < (ec->y + ec->h / 2)) ec->resize_mode = E_POINTER_RESIZE_TL;
+ else ec->resize_mode = E_POINTER_RESIZE_BL;
}
else
{
- /* setting resize mothod of open-source style according to mouse position,
- * but we don't know how it exactly does. */
-
- /* Use canvas.x, canvas.y of event.
- * Transformed coordinates has to be considered for accurate resize_mode
- * rather than absolute coordinates. */
- if ((ev->canvas.x > (ec->x + ec->w / 5)) &&
- (ev->canvas.x < (ec->x + ec->w * 4 / 5)))
- {
- if (ev->canvas.y < (ec->y + ec->h / 2)) ec->resize_mode = E_POINTER_RESIZE_T;
- else ec->resize_mode = E_POINTER_RESIZE_B;
- }
- else if (ev->canvas.x < (ec->x + ec->w / 2))
- {
- if ((ev->canvas.y > (ec->y + ec->h / 5)) && (ev->canvas.y < (ec->y + ec->h * 4 / 5))) ec->resize_mode = E_POINTER_RESIZE_L;
- else if (ev->canvas.y < (ec->y + ec->h / 2)) ec->resize_mode = E_POINTER_RESIZE_TL;
- else ec->resize_mode = E_POINTER_RESIZE_BL;
- }
- else
- {
- if ((ev->canvas.y > (ec->y + ec->h / 5)) && (ev->canvas.y < (ec->y + ec->h * 4 / 5))) ec->resize_mode = E_POINTER_RESIZE_R;
- else if (ev->canvas.y < (ec->y + ec->h / 2)) ec->resize_mode = E_POINTER_RESIZE_TR;
- else ec->resize_mode = E_POINTER_RESIZE_BR;
- }
+ if ((ev->canvas.y > (ec->y + ec->h / 5)) && (ev->canvas.y < (ec->y + ec->h * 4 / 5))) ec->resize_mode = E_POINTER_RESIZE_R;
+ else if (ev->canvas.y < (ec->y + ec->h / 2)) ec->resize_mode = E_POINTER_RESIZE_TR;
+ else ec->resize_mode = E_POINTER_RESIZE_BR;
}
}
if (!e_client_resize_begin(ec))