Fix en/disabling of maximization animation.

SVN revision: 80903
This commit is contained in:
Kim Woelders 2012-12-13 21:32:19 +00:00
parent 0af135d24e
commit c1ee9b7b04
2 changed files with 18 additions and 6 deletions

View File

@ -811,7 +811,7 @@ MaxSizeHV(EWin * ewin, const char *resize_type, int hor, int ver)
{
int x, y, w, h, x1, x2, y1, y2, type, bl, br, bt, bb;
EWin *const *lst;
int num;
int num, speed;
int old_hor = ewin->state.maximized_horz != 0;
int old_ver = ewin->state.maximized_vert != 0;
@ -996,7 +996,8 @@ MaxSizeHV(EWin * ewin, const char *resize_type, int hor, int ver)
h = 10;
do_resize:
EwinSlideSizeTo(ewin, x, y, w, h, Conf.movres.maximize_speed, 0, 0);
speed = Conf.movres.maximize_animate ? Conf.movres.maximize_speed : 0;
EwinSlideSizeTo(ewin, x, y, w, h, speed, 0, SLIDE_WARP);
HintsSetWindowState(ewin);
}

View File

@ -129,10 +129,23 @@ EwinSlideSizeTo(EWin * ewin, int tx, int ty, int tw, int th,
{
Animator *an;
ewin_slide_params params;
int duration;
int duration, warp;
esound_e start_sound = SOUND_NONE;
esound_e end_sound = SOUND_NONE;
warp = (flags & SLIDE_WARP) && (ewin == GetEwinPointerInClient());
if (speed == 0)
{
EwinMoveResize(ewin, tx, ty, tw, th, MRF_KEEP_MAXIMIZED);
if (warp && ewin != GetEwinPointerInClient())
{
EwinWarpTo(ewin, 1);
FocusToEWin(ewin, FOCUS_SET);
}
return NULL;
}
ewin->state.sliding = 1;
params.fx = EoGetX(ewin);
@ -145,9 +158,7 @@ EwinSlideSizeTo(EWin * ewin, int tx, int ty, int tw, int th,
params.th = th;
params.mode = mode;
params.give_focus = (flags & SLIDE_FOCUS) != 0;
params.mouse_warp = ((flags & SLIDE_WARP) != 0) &&
((params.fx != params.tx) || (params.fy != params.ty)) &&
(ewin == GetEwinPointerInClient());
params.mouse_warp = warp;
EQueryPointer(EoGetWin(ewin), &params.mouse_x, &params.mouse_y, NULL, NULL);
if (params.mouse_x > tw)