wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 947f9f6dc984f4bf2289c0427070941e2a4cf9e5
parent eb1317972362135d2de6b02dbfddb8e737187035
Author: Kris Maglione <jg@suckless.org>
Date:   Thu, 11 Jun 2009 19:46:01 -0400

Add 'make tags'. Fix ^[ binding in wimenu.

Diffstat:
alternative_wmiircs/python/pygmi/fs.py | 24++++++++++++++++++++----
cmd/menu/keys.txt | 4++--
cmd/wmii/client.c | 6+++---
cmd/wmii/key.c | 2--
mk/common.mk | 10+++++++++-
mk/hdr.mk | 2++
6 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/alternative_wmiircs/python/pygmi/fs.py b/alternative_wmiircs/python/pygmi/fs.py @@ -1,4 +1,5 @@ import collections +from datetime import datetime, timedelta from pyxp import * from pyxp.client import * @@ -7,6 +8,13 @@ from pygmi import * __all__ = ('wmii', 'Tags', 'Tag', 'Area', 'Frame', 'Client', 'Button', 'Colors', 'Color') +def constrain(min, max, val): + if val < min: + return min + if val > max: + return max + return val + class Ctl(object): sentinel = {} ctl_types = {} @@ -530,6 +538,7 @@ class Tags(object): self.sel = None self.normcol = normcol or wmii['normcolors'] self.focuscol = focuscol or wmii['focuscolors'] + self.lastselect = datetime.now() for t in wmii.tags: self.add(t.id) for b in wmii.lbuttons: @@ -577,12 +586,19 @@ class Tags(object): tag = tag.id wmii['view'] = tag - if tag != self.mru[-1] and tag not in self.ignore: - self.mru.append(tag) - self.mru = self.mru[-10:] + if tag not in self.ignore: + if self.idx < -1: + self.mru = self.mru[:self.idx + 1] + self.idx = -1 + if self.mru and datetime.now() - self.lastselect < timedelta(seconds=.5): + self.mru[self.idx] = tag + elif tag != self.mru[-1]: + self.mru.append(tag) + self.mru = self.mru[-10:] + self.lastselect = datetime.now() return - self.idx = min(-1, max(-len(self.mru), self.idx)) + self.idx = constrain(-len(self.mru), -1, self.idx) wmii['view'] = self.mru[self.idx] # vim:se sts=4 sw=4 et: diff --git a/cmd/menu/keys.txt b/cmd/menu/keys.txt @@ -5,8 +5,8 @@ Control-Shift-j Accept literal Control-Shift-m Accept literal Shift-Return Accept literal -Escape Reject -Control-[ Reject +Escape Reject +Control-Bracketleft Reject Left Backward char Control-b Backward char diff --git a/cmd/wmii/client.c b/cmd/wmii/client.c @@ -634,6 +634,7 @@ client_seturgent(Client *c, int urgent, int from) { char *cfrom, *cnot; Frame *f, *ff; Area *a; + int s; if(urgent == Toggle) urgent = c->urgent ^ On; @@ -651,9 +652,8 @@ client_seturgent(Client *c, int urgent, int from) { for(f=c->frame; f; f=f->cnext) { SET(ff); if(!urgent) - for(a=f->view->floating; a; a=a->next) - for(ff=a->frame; ff; ff=ff->anext) - if(ff->client->urgent) break; + foreach_frame(f->view, s, a, ff) + if(ff->client->urgent) break; if(urgent || ff == nil) event("%sUrgentTag %s %s\n", cnot, cfrom, f->view->name); diff --git a/cmd/wmii/key.c b/cmd/wmii/key.c @@ -211,7 +211,6 @@ kpress(XWindow w, ulong mod, KeyCode keycode) { flushevents(FocusChangeMask, true); kpress_seq(w, found); XUngrabKeyboard(display, CurrentTime); - sync(); } } @@ -241,6 +240,5 @@ update_keys(void) { if((k = getkey(l))) grabkey(k); } - sync(); } diff --git a/mk/common.mk b/mk/common.mk @@ -13,8 +13,16 @@ cleandep: echo CLEANDEP rm .depend 2>/dev/null || true +tags: + files=; \ + for f in $(OBJ); do \ + [ -f "$$f.c" ] && files="$$files $$f.c"; \ + done; \ + echo CTAGS $$files $(TAGFILES) || \ + ctags $$files $(TAGFILES) + DEP:=${shell if test -f .depend;then echo .depend;else echo /dev/null; fi} DEP!=echo /dev/null include $(DEP) -.PHONY: all options clean dist install uninstall depend cleandep +.PHONY: all options clean dist install uninstall depend cleandep tags diff --git a/mk/hdr.mk b/mk/hdr.mk @@ -6,6 +6,8 @@ LINK= LD="$(LD)" LDFLAGS="$(LDFLAGS) $$(pkg-config --libs $(PACKAGES))" $(ROOT)/ LINKSO= LD="$(LD)" LDFLAGS="$(SOLDFLAGS) $(SHARED) $$(pkg-config --libs $(PACKAGES))" $(ROOT)/util/link CLEANNAME=$(ROOT)/util/cleanname SOEXT=so +TAGFILES= +CTAGS=ctags PACKAGES = 2>/dev/null