commit 6c1ce74e9af5814b2c0c754eb0572aec80e1788e
parent 30728dd3aa6c8b7db598c04b319ef6389ee607e2
Author: salva <salva@firulillo.hopto.org>
Date: Sat, 11 Feb 2006 21:36:25 +0000
Fixed a bug that crashed wmii when clicking the bar and added resize/move modes to float mode
Diffstat:
| cmd/wm/event.c | | | 15 | +++++++++++---- |
| rc/wmiirc | | | 165 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ |
2 files changed, 127 insertions(+), 53 deletions(-)
diff --git a/cmd/wm/event.c b/cmd/wm/event.c
@@ -84,6 +84,11 @@ handle_buttonpress(XEvent *e)
else
mouse_resize(c, align);
}
+
+ if(c && c->area) {
+ snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button);
+ do_pend_fcall(buf);
+ }
}
else if((c = win_to_client(ev->window))) {
ev->state &= valid_mask;
@@ -106,11 +111,13 @@ handle_buttonpress(XEvent *e)
}
else if(ev->button == Button1)
focus_client(c);
+
+ if(c && c->area) {
+ snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button);
+ do_pend_fcall(buf);
+ }
}
- if(c && c->area) {
- snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button);
- do_pend_fcall(buf);
- }
+
}
static void
diff --git a/rc/wmiirc b/rc/wmiirc
@@ -45,11 +45,18 @@ for(page in `{wmiir read / | grep '^d' | awk '{print $10}' | grep -v new}) {
# KEYS CONFIGURATION
for(i in \
+ Escape \
+ $MODKEY-h \
+ $MODKEY-j \
+ $MODKEY-k \
+ $MODKEY-l \
$MODKEY-Control-q,y \
$MODKEY-Control-w,y \
$MODKEY-Control-c \
$MODKEY-Control-p \
$MODKEY-Control-a \
+ $MODKEY-Control-r \
+ $MODKEY-Control-m \
$MODKEY-t \
$MODKEY-d \
$MODKEY-a \
@@ -65,11 +72,13 @@ for(i in \
$MODKEY-j \
$MODKEY-k \
$MODKEY-Shift-h \
+ $MODKEY-Shift-j \
+ $MODKEY-Shift-k \
$MODKEY-Shift-l \
$MODKEY-Shift-p)
xwrite /ctl 'grab '^$i
-for(i in 1 2 3 4 5 6 7 8 9)
+for(i in `{seq 1 9})
xwrite /ctl 'grab '^$MODKEY^'-Shift-'^$i
@@ -104,6 +113,8 @@ xsetroot -solid '#1a1c10'
status &
# EVENT LOOP
+kmode='normal'
+barh=16 #`{wmiir read /bar/geometry|awk '{print $4}'}
wmiir read /event | \
while(event=`{read}) {
if(~ $event(1) PN)
@@ -130,53 +141,109 @@ while(event=`{read}) {
}
}
if(~ $event(1) K) { # key press
- switch($event(2)) {
- case $MODKEY-Control-c
- xwrite /sel/sel/sel/ctl kill
- case $MODKEY-Control-w,y
- wmiirc &
- case $MODKEY-Control-q,y
- xwrite /ctl quit
- case $MODKEY-Control-p
- extern `{cat /tmp/ns.$USER.$DISPLAY/p.menu | wmiimenu} &
- case $MODKEY-Control-a
- `{items CONFPREFIX/wmii-3:$HOME/.wmii-3 | wmiimenu} &
- case $MODKEY-t
- extern xterm -rv &
- case $MODKEY-d
- xwrite /sel/sel/sel/ctl detach
- case $MODKEY-a
- xwrite /ctl attach
- case $MODKEY-Shift-a
- xwrite /ctl detached
- case $MODKEY-n
- wmiir read /sel/new >/dev/null >[2=1]
- case $MODKEY-m
- xwrite /sel/sel/sel/ctl max
- case $MODKEY-Return
- xwrite /sel/sel/ctl 'swap east'
- case $MODKEY-Shift-Return
- xwrite /sel/sel/ctl 'swap west'
- case $MODKEY-Control-y
- wmiir read /new >/dev/null >[2=1]
- case $MODKEY-h
- xwrite /sel/ctl 'select next'
- case $MODKEY-l
- xwrite /sel/ctl 'select prev'
- case $MODKEY-Tab
- xwrite /sel/sel/ctl 'select next'
- case $MODKEY-j
- xwrite /sel/sel/ctl 'select next'
- case $MODKEY-k
- xwrite /sel/sel/ctl 'select prev'
- case $MODKEY-Shift-h
- xwrite /ctl 'select prev'
- case $MODKEY-Shift-l
- xwrite /ctl 'select next'
- case $MODKEY-Shift-p
- xwrite /ctl pager
- case $MODKEY-Shift-[1-9]
- xwrite /ctl 'select '^`{echo $k|sed 's/.*-//g'}
- }
+ if (~ $kmode 'normal')
+ switch($event(2)) {
+ case $MODKEY-Control-c
+ xwrite /sel/sel/sel/ctl kill
+ case $MODKEY-Control-w,y
+ wmiirc &
+ case $MODKEY-Control-q,y
+ xwrite /ctl quit
+ case $MODKEY-Control-p
+ extern `{cat /tmp/ns.$USER.$DISPLAY/p.menu | wmiimenu} &
+ case $MODKEY-Control-a
+ `{items /usr/local/etc/wmii-3:$HOME/.wmii-3 | wmiimenu} &
+ case $MODKEY-Control-r
+ kmode='resize'
+ case $MODKEY-Control-m
+ kmode='move'
+ case $MODKEY-t
+ extern xterm -rv &
+ case $MODKEY-d
+ xwrite /sel/sel/sel/ctl detach
+ case $MODKEY-a
+ xwrite /ctl attach
+ case $MODKEY-Shift-a
+ xwrite /ctl detached
+ case $MODKEY-n
+ wmiir read /sel/new >/dev/null >[2=1]
+ case $MODKEY-m
+ xwrite /sel/sel/sel/ctl max
+ case $MODKEY-Return
+ xwrite /sel/sel/ctl 'swap east'
+ case $MODKEY-Shift-Return
+ xwrite /sel/sel/ctl 'swap west'
+ case $MODKEY-Control-y
+ wmiir read /new >/dev/null >[2=1]
+ case $MODKEY-h
+ xwrite /sel/ctl 'select next'
+ case $MODKEY-l
+ xwrite /sel/ctl 'select prev'
+ case $MODKEY-Tab
+ xwrite /sel/sel/ctl 'select next'
+ case $MODKEY-j
+ xwrite /sel/sel/ctl 'select next'
+ case $MODKEY-k
+ xwrite /sel/sel/ctl 'select prev'
+ case $MODKEY-Shift-h
+ xwrite /ctl 'select prev'
+ case $MODKEY-Shift-l
+ xwrite /ctl 'select next'
+ case $MODKEY-Shift-p
+ xwrite /ctl pager
+ case $MODKEY-Shift-[1-9]
+ xwrite /ctl 'select '^`{echo $event(2)|sed 's/.*-//g'}
+ }
+
+ if (~ $kmode 'move')
+ switch($event(2)) {
+ case Escape
+ kmode='normal'
+ case $MODKEY-Control-r
+ kmode='resize'
+ case $MODKEY-k
+ xwrite /sel/sel/sel/geometry '-0 -30 -0 -0'
+ case $MODKEY-j
+ xwrite /sel/sel/sel/geometry '+0 +30 +0 +0'
+ case $MODKEY-h
+ xwrite /sel/sel/sel/geometry '-40 -0 -0 -0'
+ case $MODKEY-l
+ xwrite /sel/sel/sel/geometry '+40 +0 +0 +0'
+ case $MODKEY-Shift-k
+ xwrite /sel/sel/sel/geometry '-0 north -0 -0'
+ case $MODKEY-Shift-j
+ xwrite /sel/sel/sel/geometry '+0 south-'^$barh^' +0 +0'
+ case $MODKEY-Shift-h
+ xwrite /sel/sel/sel/geometry 'west -0 -0 -0'
+ case $MODKEY-Shift-l
+ xwrite /sel/sel/sel/geometry 'east +0 +0 +0'
+ }
+
+ if (~ $kmode 'resize')
+ switch($event(2)) {
+ case Escape
+ kmode='normal'
+ case $MODKEY-Control-m
+ kmode='move'
+ case $MODKEY-k
+ xwrite /sel/sel/sel/geometry '+0 +0 +0 -30'
+ case $MODKEY-j
+ xwrite /sel/sel//sel/geometry '+0 +0 +0 +30'
+ case $MODKEY-h
+ xwrite /sel/sel/sel/geometry '+0 +0 -40 +0'
+ case $MODKEY-l $EASTKEY
+ xwrite /sel/sel/sel/geometry '+0 +0 +40 +0'
+ case $MODKEY-Shift-k
+ xwrite /sel/sel/sel/geometry '-0 north -0 +0'
+ case $MODKEY-Shift-j
+ xwrite /sel/sel/sel/geometry '-0 0 -0 south-'^$barh
+ case $MODKEY-Shift-h
+ xwrite /sel/sel/sel/geometry '0 -0 west -0'
+ case $MODKEY-Shift-l
+ xwrite /sel/sel/sel/geometry '0 -0 east -0'
+
+ }
+
}
}
+