Minor zooming related fixes/cleanups.
SVN revision: 54065
This commit is contained in:
parent
8e4e5151b8
commit
09e59f25e8
|
@ -170,6 +170,9 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
|
|||
int i, num;
|
||||
Desk *pdesk;
|
||||
|
||||
if (ewin->state.zoomed)
|
||||
return;
|
||||
|
||||
if (call_depth > 256)
|
||||
return;
|
||||
call_depth++;
|
||||
|
|
15
src/ewins.c
15
src/ewins.c
|
@ -689,23 +689,26 @@ EwinPropagateShapes(EWin * ewin)
|
|||
void
|
||||
EwinStateUpdate(EWin * ewin)
|
||||
{
|
||||
int fs_zo;
|
||||
|
||||
fs_zo = ewin->state.fullscreen || ewin->state.zoomed;
|
||||
|
||||
ewin->state.inhibit_actions = ewin->props.no_actions;
|
||||
ewin->state.inhibit_focus = !ewin->icccm.need_input ||
|
||||
EwinInhGetWM(ewin, focus) || ewin->state.iconified;
|
||||
|
||||
ewin->state.inhibit_move =
|
||||
EwinInhGetUser(ewin, move) || ewin->state.fullscreen;
|
||||
ewin->state.inhibit_move = EwinInhGetUser(ewin, move) || fs_zo;
|
||||
ewin->state.inhibit_resize = ewin->state.iconified || ewin->state.shaded ||
|
||||
(ewin->props.no_resize_h && ewin->props.no_resize_v) ||
|
||||
EwinInhGetUser(ewin, size) || ewin->state.fullscreen;
|
||||
EwinInhGetUser(ewin, size) || fs_zo;
|
||||
ewin->state.inhibit_iconify = EwinInhGetWM(ewin, iconify);
|
||||
ewin->state.inhibit_shade = ewin->state.no_border ||
|
||||
ewin->state.iconified || ewin->state.fullscreen;
|
||||
ewin->state.iconified || fs_zo;
|
||||
ewin->state.inhibit_stick = 0;
|
||||
ewin->state.inhibit_max_hor = ewin->state.inhibit_resize ||
|
||||
ewin->props.no_resize_h || ewin->state.fullscreen;
|
||||
ewin->props.no_resize_h || fs_zo;
|
||||
ewin->state.inhibit_max_ver = ewin->state.inhibit_resize ||
|
||||
ewin->props.no_resize_v || ewin->state.fullscreen;
|
||||
ewin->props.no_resize_v || fs_zo;
|
||||
ewin->state.inhibit_fullscreeen =
|
||||
ewin->state.inhibit_move || ewin->state.inhibit_resize;
|
||||
ewin->state.inhibit_change_desk = ewin->state.iconified;
|
||||
|
|
30
src/zoom.c
30
src/zoom.c
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
#include "E.h"
|
||||
#include "ewins.h"
|
||||
#include "hints.h"
|
||||
|
||||
#ifdef WITH_ZOOM
|
||||
#include "borders.h"
|
||||
|
@ -215,6 +216,9 @@ Zoom(EWin * ewin, int on)
|
|||
{
|
||||
int dw, dh;
|
||||
|
||||
if (Mode.wm.window)
|
||||
return;
|
||||
|
||||
if (zoom_can == 0)
|
||||
ZoomInit();
|
||||
|
||||
|
@ -238,17 +242,18 @@ Zoom(EWin * ewin, int on)
|
|||
ewin->state.zoomed = 0;
|
||||
EwinMoveResize(ewin, ewin->save_fs.x, ewin->save_fs.y,
|
||||
ewin->client.w, ewin->client.h);
|
||||
EwinWarpTo(ewin, 1);
|
||||
ESync(0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ewin->state.fullscreen)
|
||||
return;
|
||||
|
||||
on = SwitchRes(1, 0, 0, ewin->client.w, ewin->client.h, &dw, &dh);
|
||||
if (on)
|
||||
else
|
||||
{
|
||||
/* Zoom */
|
||||
|
||||
if (ewin->state.fullscreen)
|
||||
return;
|
||||
|
||||
on = SwitchRes(1, 0, 0, ewin->client.w, ewin->client.h, &dw, &dh);
|
||||
if (!on)
|
||||
return;
|
||||
|
||||
zoom_last_ewin = ewin;
|
||||
ewin->save_fs.x = EoGetX(ewin);
|
||||
ewin->save_fs.y = EoGetY(ewin);
|
||||
|
@ -258,9 +263,12 @@ Zoom(EWin * ewin, int on)
|
|||
EwinMoveResize(ewin, 0, 0, ewin->client.w, ewin->client.h);
|
||||
ewin->state.zoomed = 1;
|
||||
FocusToEWin(ewin, FOCUS_SET);
|
||||
EwinWarpTo(ewin, 1);
|
||||
ESync(0);
|
||||
}
|
||||
|
||||
EwinWarpTo(ewin, 1);
|
||||
ESync(0);
|
||||
EwinStateUpdate(ewin);
|
||||
HintsSetWindowState(ewin);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue