diff options
-rw-r--r-- | calmwm.h | 3 | ||||
-rw-r--r-- | client.c | 45 | ||||
-rw-r--r-- | group.c | 19 | ||||
-rw-r--r-- | screen.c | 20 |
4 files changed, 44 insertions, 43 deletions
@@ -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: calmwm.h,v 1.72 2009/01/11 21:46:48 oga Exp $ + * $Id: calmwm.h,v 1.73 2009/01/15 00:32:35 okan Exp $ */ #ifndef _CALMWM_H_ @@ -413,6 +413,7 @@ struct screen_ctx *screen_fromroot(Window); struct screen_ctx *screen_current(void); void screen_updatestackingorder(void); void screen_init_xinerama(struct screen_ctx *); +XineramaScreenInfo *screen_find_xinerama(struct screen_ctx *, int, int); void conf_setup(struct conf *, const char *); void conf_client(struct client_ctx *); @@ -15,18 +15,15 @@ * 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.41 2008/09/29 23:16:46 oga Exp $ + * $Id: client.c,v 1.42 2009/01/15 00:32:35 okan Exp $ */ #include "headers.h" #include "calmwm.h" -int _inwindowbounds(struct client_ctx *, int, int); -XineramaScreenInfo *client_find_xinerama_screen(int , int , - struct screen_ctx *); +static int _client_inbound(struct client_ctx *, int, int); static char emptystring[] = ""; - struct client_ctx *_curcc = NULL; void @@ -339,9 +336,9 @@ client_maximize(struct client_ctx *cc) * that's probably more fair than if just the origin of * a window is poking over a boundary */ - xine = client_find_xinerama_screen(cc->geom.x + - cc->geom.width / 2, cc->geom.y + - cc->geom.height / 2, CCTOSC(cc)); + xine = screen_find_xinerama(CCTOSC(cc), + cc->geom.x + cc->geom.width / 2, + cc->geom.y + cc->geom.height / 2); if (xine == NULL) goto calc; x_org = xine->x_org; @@ -373,9 +370,9 @@ client_vertmaximize(struct client_ctx *cc) cc->savegeom = cc->geom; if (HasXinerama) { XineramaScreenInfo *xine; - xine = client_find_xinerama_screen(cc->geom.x + - cc->geom.width / 2, cc->geom.y + - cc->geom.height / 2, CCTOSC(cc)); + xine = screen_find_xinerama(CCTOSC(cc), + cc->geom.x + cc->geom.width / 2, + cc->geom.y + cc->geom.height / 2); if (xine == NULL) goto calc; y_org = xine->y_org; @@ -457,7 +454,7 @@ client_ptrsave(struct client_ctx *cc) int x, y; xu_ptr_getpos(cc->pwin, &x, &y); - if (_inwindowbounds(cc, x, y)) { + if (_client_inbound(cc, x, y)) { cc->ptr.x = x; cc->ptr.y = y; } @@ -728,7 +725,7 @@ client_placecalc(struct client_ctx *cc) xu_ptr_getpos(sc->rootwin, &xmouse, &ymouse); if (HasXinerama) { - info = client_find_xinerama_screen(xmouse, ymouse, sc); + info = screen_find_xinerama(sc, xmouse, ymouse); if (info == NULL) goto noxine; xorig = info->x_org; @@ -846,27 +843,9 @@ client_freehints(struct client_ctx *cc) xfree(cc->app_cliarg); } -int -_inwindowbounds(struct client_ctx *cc, int x, int y) +static int +_client_inbound(struct client_ctx *cc, int x, int y) { return (x < cc->geom.width && x >= 0 && y < cc->geom.height && y >= 0); } - -/* - * Find which xinerama screen the coordinates (x,y) is on. - */ -XineramaScreenInfo * -client_find_xinerama_screen(int x, int y, struct screen_ctx *sc) -{ - XineramaScreenInfo *info; - int i; - - for (i = 0; i < sc->xinerama_no; i++) { - info = &sc->xinerama[i]; - if (x > info->x_org && x < info->x_org + info->width && - y > info->y_org && y < info->y_org + info->height) - return (info); - } - return (NULL); -} @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: group.c,v 1.20 2009/01/11 21:46:48 oga Exp $ + * $Id: group.c,v 1.21 2009/01/15 00:32:35 okan Exp $ */ #include "headers.h" @@ -24,14 +24,20 @@ #define CALMWM_NGROUPS 9 +static void _group_add(struct group_ctx *, struct client_ctx *); +static void _group_remove(struct client_ctx *); +static void _group_hide(struct group_ctx *); +static void _group_show(struct group_ctx *); +static void _group_fix_hidden_state(struct group_ctx *); + struct group_ctx *Group_active = NULL; struct group_ctx Groups[CALMWM_NGROUPS]; int Grouphideall = 0; struct group_ctx_q Groupq; const char *shortcut_to_name[] = { - "nogroup", "one", "two", "three", "four", "five", "six", - "seven", "eight", "nine" + "nogroup", "one", "two", "three", "four", "five", "six", + "seven", "eight", "nine" }; static void @@ -161,12 +167,9 @@ group_sticky_toggle_exit(struct client_ctx *cc) } /* - * selection list display - */ - -/* if group_hidetoggle would produce no effect, toggle the group's hidden state + * if group_hidetoggle would produce no effect, toggle the group's hidden state */ -void +static void _group_fix_hidden_state(struct group_ctx *gc) { struct client_ctx *cc; @@ -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: screen.c,v 1.13 2009/01/11 18:25:49 okan Exp $ + * $Id: screen.c,v 1.14 2009/01/15 00:32:35 okan Exp $ */ #include "headers.h" @@ -92,3 +92,21 @@ screen_init_xinerama(struct screen_ctx *sc) sc->xinerama = info; sc->xinerama_no = no; } + +/* + * Find which xinerama screen the coordinates (x,y) is on. + */ +XineramaScreenInfo * +screen_find_xinerama(struct screen_ctx *sc, int x, int y) +{ + XineramaScreenInfo *info; + int i; + + for (i = 0; i < sc->xinerama_no; i++) { + info = &sc->xinerama[i]; + if (x > info->x_org && x < info->x_org + info->width && + y > info->y_org && y < info->y_org + info->height) + return (info); + } + return (NULL); +} |