wmii

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

commit 49c95a808ab778eda0d82fe883c82f48aff9271d
parent f9e2188ccb62e44638f43faa4e1942f2c6c92ea2
Author: garbeam <garbeam@mmv.wmii.de>
Date:   Thu, 15 Dec 2005 03:08:26 +0200

fixed wrong configurereq handling caused by missing SubstructureRedirectMask on frames


Diffstat:
cmd/wm/client.c | 1+
cmd/wm/event.c | 2+-
cmd/wm/frame.c | 2+-
cmd/wm/layout_float.c | 2+-
cmd/wm/wm.c | 3+++
cmd/wm/wm.h | 2+-
6 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -113,6 +113,7 @@ void configure_client(Client * c) XSelectInput(dpy, c->win, CLIENT_MASK & ~StructureNotifyMask); XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *) & e); XSelectInput(dpy, c->win, CLIENT_MASK); + XSync(dpy, False); } void close_client(Client * c) diff --git a/cmd/wm/event.c b/cmd/wm/event.c @@ -175,7 +175,7 @@ static void handle_configurerequest(XEvent * e) XConfigureWindow(dpy, e->xconfigurerequest.window, ev->value_mask, &wc); XSync(dpy, False); - /* fprintf(stderr, "%d,%d,%d,%d\n", wc.x, wc.y, wc.width, wc.height); */ + fprintf(stderr, "%d,%d,%d,%d\n", wc.x, wc.y, wc.width, wc.height); } static void handle_destroynotify(XEvent * e) diff --git a/cmd/wm/frame.c b/cmd/wm/frame.c @@ -80,7 +80,7 @@ Frame *alloc_frame(XRectangle * r) wa.override_redirect = 1; wa.background_pixmap = ParentRelative; - wa.event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask; + wa.event_mask = SubstructureRedirectMask | ExposureMask | ButtonPressMask | PointerMotionMask; bw = border_width(f); th = tab_height(f); diff --git a/cmd/wm/layout_float.c b/cmd/wm/layout_float.c @@ -116,7 +116,7 @@ static void select_float(Frame *f, Bool raise) XRaiseWindow(dpy, f->win); center_pointer(f); } - if (old != f) + if (old && old != f) draw_frame(old); draw_frame(f); } diff --git a/cmd/wm/wm.c b/cmd/wm/wm.c @@ -429,6 +429,9 @@ static void _destroy_page(void *obj, char *arg) Page *p = get_sel_page(); if (p) destroy_page(p); + p = get_sel_page(); + if (p) + sel_page(p); } static void new_page(void *obj, char *arg) diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h @@ -95,7 +95,7 @@ enum { #define LAYOUT "column" #define GAP 5 -#define ROOT_MASK (SubstructureRedirectMask | SubstructureNotifyMask | ButtonPressMask | ButtonReleaseMask) +#define ROOT_MASK SubstructureRedirectMask #define CLIENT_MASK (StructureNotifyMask | PropertyChangeMask | EnterWindowMask) typedef struct Page Page;