From f224f7056f02ebbada46865e8ff5b50e482bdfd5 Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Fri, 7 Oct 2011 00:08:58 +0200 Subject: [PATCH] Use motionnotify to focus client with mouse, check for tag frame too --- configure | 2 +- src/client.c | 1 - src/event.c | 16 +++++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/configure b/configure index 7d1f993..97d068b 100755 --- a/configure +++ b/configure @@ -32,7 +32,7 @@ done LIBS="$LIBS $USE_XINERAMA" -which pkg-config >/dev/null 2>&1 +which pkg-config > /dev/null 2>&1 if [ $? -eq 0 ]; then diff --git a/src/client.c b/src/client.c index 91d57f7..cc2cc24 100644 --- a/src/client.c +++ b/src/client.c @@ -435,7 +435,6 @@ client_geo_hints(struct geo *g, int *s) g->h = s[MAXH]; } - void client_moveresize(struct client *c, struct geo *g) { diff --git a/src/event.c b/src/event.c index e76ccde..d919aba 100644 --- a/src/event.c +++ b/src/event.c @@ -35,6 +35,7 @@ event_buttonpress(XEvent *e) } } +/* static void event_enternotify(XEvent *e) { @@ -50,6 +51,7 @@ event_enternotify(XEvent *e) if((c = client_gb_win(ev->window))) client_focus(c); } +*/ static void event_clientmessageevent(XEvent *e) @@ -184,17 +186,21 @@ event_unmapnotify(XEvent *e) client_remove(c); } -/* static void event_motionnotify(XEvent *e) { XMotionEvent *ev = &e->xmotion; struct client *c; - if((c = client_gb_win(ev->subwindow)) && c != c->tag->sel) + /* + * Check client window and tag frame to get focused + * window with mouse motion + */ + if(((c = client_gb_win(ev->subwindow)) && c != c->tag->sel) + || (ev->window == W->screen->seltag->frame + && ((c = client_gb_pos(W->screen->seltag, ev->x, ev->y))))) client_focus(c); } -*/ static void event_keypress(XEvent *e) @@ -244,14 +250,14 @@ event_init(void) event_handle[ClientMessage] = event_clientmessageevent; event_handle[ConfigureRequest] = event_configureevent; event_handle[DestroyNotify] = event_destroynotify; - event_handle[EnterNotify] = event_enternotify; + /*event_handle[EnterNotify] = event_enternotify;*/ event_handle[Expose] = event_expose; event_handle[FocusIn] = event_focusin; event_handle[KeyPress] = event_keypress; /*event_handle[MapNotify] = event_mapnotify;*/ event_handle[MapRequest] = event_maprequest; event_handle[MappingNotify] = event_mappingnotify; - /*event_handle[MotionNotify] = event_motionnotify;*/ + event_handle[MotionNotify] = event_motionnotify; event_handle[PropertyNotify] = event_propertynotify; /*event_handle[ReparentNotify] = event_reparentnotify;*/ /*event_handle[SelectionClear] = event_selectionclearevent;*/