ref: 0ecd6cb739683043a4e01008b47bfa9d19f75afc
parent: ec17f84dde6ff0d18658b6c220fa188968003b09
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Fri Mar 23 11:51:15 EDT 2012
mothra: k - kill images in current page
--- a/sys/src/cmd/mothra/mothra.c
+++ b/sys/src/cmd/mothra/mothra.c
@@ -88,6 +88,7 @@
void dolink(Panel *, int, Rtext *);
void hit3(int, int);
void mothon(Www *, int);
+void killpix(Www *w);
char *buttons[]={"alt display",
"moth mode",
@@ -645,6 +646,9 @@
case 'm':
mothon(current, !mothmode);
break;
+ case 'k':
+ killpix(current);
+ break;
case 'w':
case 'W':
s = arg(s);
@@ -934,7 +938,6 @@
void geturl(char *urlname, int method, char *body, int plumb, int map){int i, fd, typ, pfd[2];
char cmd[NNAME];
- Rtext *t;
ulong n;
Www *w;
@@ -988,15 +991,8 @@
for(i=wwwtop-1; i>=0 && i!=(wwwtop-NWWW-1); i--){w = www(i);
n += countpix(w->pix);
- if(n < NPIXMB*1024*1024)
- continue;
- if(!w->finished && !w->alldone)
- continue;
- for(t=w->text; t; t=t->next)
- if(t->b && t->user)
- t->b=0;
- freepix(w->pix);
- w->pix=0;
+ if(n >= NPIXMB*1024*1024)
+ killpix(w);
}
w = www(i = wwwtop++);
if(i >= NWWW){@@ -1046,6 +1042,8 @@
a->field=0;
}
}
+ if(w != current)
+ return;
w->yoffs=plgetpostextview(text);
plinittextview(text, PACKE|EXPAND, Pt(0, 0), w->text, dolink);
plsetpostextview(text, w->yoffs);
@@ -1066,7 +1064,7 @@
Rtext *t, *x;
Action *a, *ap;
- if(current == nil || mothmode == on)
+ if(w==0 || mothmode==on)
return;
if(mothmode = on)
message("moth mode!");@@ -1095,6 +1093,19 @@
}
updtext(w);
donecurs();
+}
+
+void killpix(Www *w){+ Rtext *t;
+
+ if(w==0 || !w->finished && !w->alldone)
+ return;
+ for(t=w->text; t; t=t->next)
+ if(t->b && t->user)
+ t->b=0;
+ freepix(w->pix);
+ w->pix=0;
+ updtext(w);
}
void snarf(Panel *p){--
⑨