From aab3606ea2265f01371140ee6d315679188062c4 Mon Sep 17 00:00:00 2001 From: okan Date: Sat, 7 May 2011 17:15:37 +0000 Subject: introduce a new 'freeze' flag (CMS-f by default) which may be applied to any window, after which all move/resize requests will be ignored, essentially freezing the window in place. there's a possibility to merge this with the 'ignore' concept, pending on how ignore+freeze should behave (really more ewmh stuff), but punting for now since ponies are on the line. requested and tested by thib at k2k11 with ponies, unicorns and rainbows. 'save the unicorns' todd@, ok oga@ --- client.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'client.c') diff --git a/client.c b/client.c index ff2df5c..d52eab9 100644 --- a/client.c +++ b/client.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: client.c,v 1.80 2011/03/22 10:56:08 okan Exp $ + * $Id: client.c,v 1.81 2011/05/07 17:15:37 okan Exp $ */ #include @@ -264,6 +264,15 @@ client_current(void) return (_curcc); } +void +client_freeze(struct client_ctx *cc) +{ + if (cc->flags & CLIENT_FREEZE) + cc->flags &= ~CLIENT_FREEZE; + else + cc->flags |= CLIENT_FREEZE; +} + void client_maximize(struct client_ctx *cc) { @@ -271,6 +280,9 @@ client_maximize(struct client_ctx *cc) int xmax = sc->xmax, ymax = sc->ymax; int x_org = 0, y_org = 0; + if (cc->flags & CLIENT_FREEZE) + return; + if (cc->flags & CLIENT_MAXIMIZED) { cc->geom = cc->savegeom; } else { @@ -310,6 +322,9 @@ client_vertmaximize(struct client_ctx *cc) struct screen_ctx *sc = cc->sc; int y_org = 0, ymax = sc->ymax; + if (cc->flags & CLIENT_FREEZE) + return; + if (cc->flags & CLIENT_VMAXIMIZED) { cc->geom = cc->savegeom; } else { @@ -341,6 +356,9 @@ client_horizmaximize(struct client_ctx *cc) struct screen_ctx *sc = cc->sc; int x_org = 0, xmax = sc->xmax; + if (cc->flags & CLIENT_FREEZE) + return; + if (cc->flags & CLIENT_HMAXIMIZED) { cc->geom = cc->savegeom; } else { -- cgit v1.2.3-2-gb3c3