X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fresist.c;h=0c7ec87e23355d5f1917f77ecb8656ffd7ffdd81;hb=b5e597f1b3a810610fd63f50c55dc5a8b715744e;hp=c88f594849ff63be7078ba1409df42719c6dff20;hpb=174de91c343dfbdfe866e566393bf4790ae22596;p=chaz%2Fopenbox diff --git a/openbox/resist.c b/openbox/resist.c index c88f5948..0c7ec87e 100644 --- a/openbox/resist.c +++ b/openbox/resist.c @@ -1,7 +1,8 @@ /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- resist.c for the Openbox window manager - Copyright (c) 2003 Ben Jansens + Copyright (c) 2006 Mikael Magnusson + Copyright (c) 2003-2007 Dana Jansens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -54,8 +55,13 @@ void resist_move_windows(ObClient *c, gint *x, gint *y) if (!WINDOW_IS_CLIENT(it->data)) continue; target = it->data; + /* don't snap to self or non-visibles */ - if (!target->frame->visible || target == c) continue; + if (!frame_visible(target->frame) || target == c) continue; + + /* don't snap to windows in layers beneath */ + if(target->layer < c->layer && !config_resist_layers_below) + continue; tl = RECT_LEFT(target->frame->area) - 1; tt = RECT_TOP(target->frame->area) - 1; @@ -193,7 +199,11 @@ void resist_size_windows(ObClient *c, gint *w, gint *h, ObCorner corn) target = it->data; /* don't snap to invisibles or ourself */ - if (!target->frame->visible || target == c) continue; + if (!frame_visible(target->frame) || target == c) continue; + + /* don't snap to windows in layers beneath */ + if(target->layer < c->layer && !config_resist_layers_below) + continue; tl = RECT_LEFT(target->frame->area); tr = RECT_RIGHT(target->frame->area);