mirror of
https://github.com/0intro/wmii
synced 2024-11-22 05:42:05 +03:00
[python] Reload program list in backgound thread at startup.
This commit is contained in:
parent
625246858d
commit
fc90189133
@ -293,7 +293,7 @@ addresize('', 'Grow', 'grow')
|
|||||||
addresize('Control-', 'Shrink', 'grow', '-1')
|
addresize('Control-', 'Shrink', 'grow', '-1')
|
||||||
addresize('Shift-', 'Nudge', 'nudge')
|
addresize('Shift-', 'Nudge', 'nudge')
|
||||||
|
|
||||||
Actions.rehash()
|
Thread(target=lambda: Actions.rehash()).start()
|
||||||
|
|
||||||
if not os.environ.get('WMII_NOPLUGINS', ''):
|
if not os.environ.get('WMII_NOPLUGINS', ''):
|
||||||
dirs = filter(curry(os.access, _, os.R_OK),
|
dirs = filter(curry(os.access, _, os.R_OK),
|
||||||
|
@ -23,14 +23,12 @@ bar_init(WMScreen *s) {
|
|||||||
s->brect.min.y = s->brect.max.y - labelh(def.font);
|
s->brect.min.y = s->brect.max.y - labelh(def.font);
|
||||||
|
|
||||||
wa.override_redirect = 1;
|
wa.override_redirect = 1;
|
||||||
wa.background_pixmap = ParentRelative;
|
|
||||||
wa.event_mask = ExposureMask
|
wa.event_mask = ExposureMask
|
||||||
| ButtonPressMask
|
| ButtonPressMask
|
||||||
| ButtonReleaseMask
|
| ButtonReleaseMask
|
||||||
| FocusChangeMask;
|
| FocusChangeMask;
|
||||||
s->barwin = createwindow(&scr.root, s->brect, scr.depth, InputOutput,
|
s->barwin = createwindow(&scr.root, s->brect, scr.depth, InputOutput,
|
||||||
&wa, CWOverrideRedirect
|
&wa, CWOverrideRedirect
|
||||||
| CWBackPixmap
|
|
||||||
| CWEventMask);
|
| CWEventMask);
|
||||||
s->barwin->aux = s;
|
s->barwin->aux = s;
|
||||||
xdnd_initwindow(s->barwin);
|
xdnd_initwindow(s->barwin);
|
||||||
|
@ -644,8 +644,10 @@ client_kill(Client *c, bool nice) {
|
|||||||
|
|
||||||
XKillClient(display, c->w.xid);
|
XKillClient(display, c->w.xid);
|
||||||
}
|
}
|
||||||
else if(c->proto & ProtoDelete)
|
else if(c->proto & ProtoDelete) {
|
||||||
client_message(c, "WM_DELETE_WINDOW", 0);
|
client_message(c, "WM_DELETE_WINDOW", 0);
|
||||||
|
ewmh_checkresponsive(c);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
XKillClient(display, c->w.xid);
|
XKillClient(display, c->w.xid);
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,15 @@ ewmh_init(void) {
|
|||||||
changeprop_long(&scr.root, Net("SUPPORTED"), "ATOM", supported, nelem(supported));
|
changeprop_long(&scr.root, Net("SUPPORTED"), "ATOM", supported, nelem(supported));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ewmh_checkresponsive(Client *c) {
|
||||||
|
|
||||||
|
if(nsec() / 1000000 - c->w.ewmh.ping > PingTime) {
|
||||||
|
event("Unresponsive %#C\n", c);
|
||||||
|
c->dead++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
tick(long id, void *v) {
|
tick(long id, void *v) {
|
||||||
static int count;
|
static int count;
|
||||||
@ -88,10 +97,8 @@ tick(long id, void *v) {
|
|||||||
mod = count % PingPartition;
|
mod = count % PingPartition;
|
||||||
for(i=0, c=client; c; c=c->next, i++)
|
for(i=0, c=client; c; c=c->next, i++)
|
||||||
if(c->proto & ProtoPing) {
|
if(c->proto & ProtoPing) {
|
||||||
if(c->dead == 1 && time - c->w.ewmh.ping > PingTime) {
|
if(c->dead == 1)
|
||||||
event("Unresponsive %#C\n", c);
|
ewmh_checkresponsive(c);
|
||||||
c->dead++;
|
|
||||||
}
|
|
||||||
if(i % PingPartition == mod)
|
if(i % PingPartition == mod)
|
||||||
sendmessage(&c->w, "WM_PROTOCOLS", NET("WM_PING"), time, c->w.xid, 0, 0);
|
sendmessage(&c->w, "WM_PROTOCOLS", NET("WM_PING"), time, c->w.xid, 0, 0);
|
||||||
if(i % PingPartition == mod)
|
if(i % PingPartition == mod)
|
||||||
|
@ -136,14 +136,13 @@ void debug_event(XEvent*);
|
|||||||
void print_focus(const char*, Client*, const char*);
|
void print_focus(const char*, Client*, const char*);
|
||||||
|
|
||||||
/* ewmh.c */
|
/* ewmh.c */
|
||||||
int ewmh_clientmessage(XClientMessageEvent*);
|
void ewmh_checkresponsive(Client*);
|
||||||
void ewmh_destroyclient(Client*);
|
void ewmh_destroyclient(Client*);
|
||||||
void ewmh_framesize(Client*);
|
void ewmh_framesize(Client*);
|
||||||
void ewmh_getstrut(Client*);
|
void ewmh_getstrut(Client*);
|
||||||
void ewmh_getwintype(Client*);
|
void ewmh_getwintype(Client*);
|
||||||
void ewmh_init(void);
|
void ewmh_init(void);
|
||||||
void ewmh_initclient(Client*);
|
void ewmh_initclient(Client*);
|
||||||
void ewmh_pingclient(Client*);
|
|
||||||
bool ewmh_prop(Client*, Atom);
|
bool ewmh_prop(Client*, Atom);
|
||||||
long ewmh_protocols(Window*);
|
long ewmh_protocols(Window*);
|
||||||
void ewmh_updateclient(Client*);
|
void ewmh_updateclient(Client*);
|
||||||
|
Loading…
Reference in New Issue
Block a user