Index: events.c =================================================================== --- events.c (revision 29907) +++ events.c (working copy) @@ -645,8 +645,39 @@ } clientRaise (c, None); } - clientResize (c, part, (XEvent *) ev); + /* Check if the window is positioned at the top of the screen */ + if (c->y - c->title.height == 0) { + clientMove (c, (XEvent *) ev); + } + else + { + clientResize (c, part, (XEvent *) ev); + } } + else if (ev->button == Button4) + { + /* Mouse wheel scroll up */ + if (state == AltMask) + { + clientIncOpacity(c); + } + else if (!FLAG_TEST (c->flags, CLIENT_FLAG_SHADED)) + { + clientShade (c); + } + } + else if (ev->button == Button5) + { + /* Mouse wheel scroll down */ + if (state == AltMask) + { + clientDecOpacity(c); + } + else if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED)) + { + clientUnshade (c); + } + } } static int