aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--calmwm.h6
-rw-r--r--group.c41
-rw-r--r--mousefunc.c28
3 files changed, 34 insertions, 41 deletions
diff --git a/calmwm.h b/calmwm.h
index f81c83e..ae73818 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -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.
*
- * $OpenBSD: calmwm.h,v 1.265 2014/08/25 14:31:22 okan Exp $
+ * $OpenBSD: calmwm.h,v 1.266 2014/09/01 18:04:58 okan Exp $
*/
#ifndef _CALMWM_H_
@@ -410,11 +410,13 @@ void client_wm_hints(struct client_ctx *);
void group_alltoggle(struct screen_ctx *);
void group_autogroup(struct client_ctx *);
void group_cycle(struct screen_ctx *, int);
+int group_hidden_state(struct group_ctx *);
+void group_hide(struct screen_ctx *, struct group_ctx *);
void group_hidetoggle(struct screen_ctx *, int);
void group_init(struct screen_ctx *);
-void group_menu(struct screen_ctx *);
void group_movetogroup(struct client_ctx *, int);
void group_only(struct screen_ctx *, int);
+void group_show(struct screen_ctx *, struct group_ctx *);
void group_sticky(struct client_ctx *);
void group_sticky_toggle_enter(struct client_ctx *);
void group_sticky_toggle_exit(struct client_ctx *);
diff --git a/group.c b/group.c
index d73a71b..5282f18 100644
--- a/group.c
+++ b/group.c
@@ -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.
*
- * $OpenBSD: group.c,v 1.96 2014/08/25 14:31:22 okan Exp $
+ * $OpenBSD: group.c,v 1.97 2014/09/01 18:04:58 okan Exp $
*/
#include <sys/param.h>
@@ -33,10 +33,7 @@
#include "calmwm.h"
static void group_assign(struct group_ctx *, struct client_ctx *);
-static void group_hide(struct screen_ctx *, struct group_ctx *);
-static void group_show(struct screen_ctx *, struct group_ctx *);
static void group_restack(struct screen_ctx *, struct group_ctx *);
-static int group_hidden_state(struct group_ctx *);
static void group_setactive(struct screen_ctx *, long);
const char *num_to_name[] = {
@@ -58,7 +55,7 @@ group_assign(struct group_ctx *gc, struct client_ctx *cc)
xu_ewmh_net_wm_desktop(cc);
}
-static void
+void
group_hide(struct screen_ctx *sc, struct group_ctx *gc)
{
struct client_ctx *cc;
@@ -69,7 +66,7 @@ group_hide(struct screen_ctx *sc, struct group_ctx *gc)
client_hide(cc);
}
-static void
+void
group_show(struct screen_ctx *sc, struct group_ctx *gc)
{
struct client_ctx *cc;
@@ -199,7 +196,7 @@ group_sticky_toggle_exit(struct client_ctx *cc)
/*
* If all clients in a group are hidden, then the group state is hidden.
*/
-static int
+int
group_hidden_state(struct group_ctx *gc)
{
struct client_ctx *cc;
@@ -292,36 +289,6 @@ group_cycle(struct screen_ctx *sc, int flags)
}
void
-group_menu(struct screen_ctx *sc)
-{
- struct group_ctx *gc;
- struct menu *mi;
- struct menu_q menuq;
-
- TAILQ_INIT(&menuq);
-
- TAILQ_FOREACH(gc, &sc->groupq, entry) {
- if (TAILQ_EMPTY(&gc->clients))
- continue;
- menuq_add(&menuq, gc,
- group_hidden_state(gc) ? "%d: [%s]" : "%d: %s",
- gc->num, sc->group_names[gc->num]);
- }
-
- if (TAILQ_EMPTY(&menuq))
- return;
-
- mi = menu_filter(sc, &menuq, NULL, NULL, 0, NULL, NULL);
- if (mi != NULL && mi->ctx != NULL) {
- gc = (struct group_ctx *)mi->ctx;
- (group_hidden_state(gc)) ?
- group_show(sc, gc) : group_hide(sc, gc);
- }
-
- menuq_clear(&menuq);
-}
-
-void
group_alltoggle(struct screen_ctx *sc)
{
struct group_ctx *gc;
diff --git a/mousefunc.c b/mousefunc.c
index 323ae29..7096e46 100644
--- a/mousefunc.c
+++ b/mousefunc.c
@@ -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.
*
- * $OpenBSD: mousefunc.c,v 1.73 2014/08/22 19:04:00 okan Exp $
+ * $OpenBSD: mousefunc.c,v 1.74 2014/09/01 18:04:58 okan Exp $
*/
#include <sys/param.h>
@@ -181,7 +181,31 @@ mousefunc_client_grouptoggle(struct client_ctx *cc, union arg *arg)
void
mousefunc_menu_group(struct client_ctx *cc, union arg *arg)
{
- group_menu(cc->sc);
+ struct screen_ctx *sc = cc->sc;
+ struct group_ctx *gc;
+ struct menu *mi;
+ struct menu_q menuq;
+
+ TAILQ_INIT(&menuq);
+ TAILQ_FOREACH(gc, &sc->groupq, entry) {
+ if (TAILQ_EMPTY(&gc->clients))
+ continue;
+ menuq_add(&menuq, gc,
+ group_hidden_state(gc) ? "%d: [%s]" : "%d: %s",
+ gc->num, sc->group_names[gc->num]);
+ }
+
+ if (TAILQ_EMPTY(&menuq))
+ return;
+
+ mi = menu_filter(sc, &menuq, NULL, NULL, 0, NULL, NULL);
+ if (mi != NULL && mi->ctx != NULL) {
+ gc = (struct group_ctx *)mi->ctx;
+ (group_hidden_state(gc)) ?
+ group_show(sc, gc) : group_hide(sc, gc);
+ }
+
+ menuq_clear(&menuq);
}
void