--- xfwm4-4.2.2/src/events.c.resist 2005-05-15 04:43:13.000000000 -0400 +++ xfwm4-4.2.2/src/events.c 2005-09-11 20:03:01.000000000 -0400 @@ -37,6 +37,7 @@ #include #include #include +#include #include "misc.h" #include "workspaces.h" @@ -334,8 +335,10 @@ handleMotionNotify (DisplayInfo *display { int msx, msy, maxx, maxy; ScreenInfo *screen_info = NULL; + static Time lastresist = (Time) 0; TRACE ("entering handleMotionNotify"); + fprintf(stderr,"entering handleMotionNotify\n"); if (display_info->nb_screens > 1) { @@ -361,19 +364,45 @@ handleMotionNotify (DisplayInfo *display if ((msx == 0) || (msx == maxx)) { - edge_scroll_x++; - } - else - { - edge_scroll_x = 0; + if ((ev->time - lastresist) > 250) /* ms */ + { + fprintf(stderr,"Resetting edge_scroll_x\n"); + edge_scroll_x = 0; + } + else + { + edge_scroll_x++; + fprintf(stderr,"edge_scroll_x = %d (%d)\n", edge_scroll_x, screen_info->params->wrap_resistance); + } + if (msx == 0) { + XWarpPointer (display_info->dpy, None, screen_info->xroot, 0, 0, 0, 0, 1, msy); + } + else + { + XWarpPointer (display_info->dpy, None, screen_info->xroot, 0, 0, 0, 0, maxx - 1, msy); + } + lastresist = ev->time; } if ((msy == 0) || (msy == maxy)) { - edge_scroll_y++; - } - else - { - edge_scroll_y = 0; + if ((ev->time - lastresist) > 250) /* ms */ + { + fprintf(stderr,"Resetting edge_scroll_y\n"); + edge_scroll_y = 0; + } + else + { + edge_scroll_y++; + fprintf(stderr,"edge_scroll_y = %d (%d)\n", edge_scroll_y, screen_info->params->wrap_resistance); + } + if (msy == 0) { + XWarpPointer (display_info->dpy, None, screen_info->xroot, 0, 0, 0, 0, msx, 1); + } + else + { + XWarpPointer (display_info->dpy, None, screen_info->xroot, 0, 0, 0, 0, msx, maxy - 1); + } + lastresist = ev->time; } if (edge_scroll_x > screen_info->params->wrap_resistance) @@ -1891,7 +1920,7 @@ handleClientMessage (DisplayInfo *displa } else if (ev->message_type == display_info->atoms[NET_REQUEST_FRAME_EXTENTS]) { - TRACE ("window (0x%lx) has received a net_request_frame_extents event", c->name, ev->window); + TRACE ("client \"%s\" (window 0x%lx) has received a net_request_frame_extents event", c->name, ev->window); /* Size estimate from the decoration extents */ setNetFrameExtents (display_info, ev->window, frameDecorationTop (screen_info), --- xfwm4-4.2.2/src/misc.c.resist 2005-05-15 04:43:13.000000000 -0400 +++ xfwm4-4.2.2/src/misc.c 2005-09-11 19:59:44.000000000 -0400 @@ -156,17 +156,17 @@ placeSidewalks(ScreenInfo *screen_info, if (activate) { xfwmWindowShow (&screen_info->sidewalk[0], - 0, 0, - 1, gdk_screen_get_height (screen_info->gscr), FALSE); + /*left*/ 0, 0, + 2, gdk_screen_get_height (screen_info->gscr), FALSE); xfwmWindowShow (&screen_info->sidewalk[1], - gdk_screen_get_width (screen_info->gscr) - 1, 0, - 1, gdk_screen_get_height (screen_info->gscr), FALSE); + /*right*/ gdk_screen_get_width (screen_info->gscr) - 2, 0, + 2, gdk_screen_get_height (screen_info->gscr), FALSE); xfwmWindowShow (&screen_info->sidewalk[2], - 0, 0, - gdk_screen_get_width (screen_info->gscr), 1, FALSE); + /*top*/ 0, 0, + gdk_screen_get_width (screen_info->gscr), 2, FALSE); xfwmWindowShow (&screen_info->sidewalk[3], - 0, gdk_screen_get_height (screen_info->gscr) - 1, - gdk_screen_get_width (screen_info->gscr), 1, FALSE); + /*bottom*/ 0, gdk_screen_get_height (screen_info->gscr) - 2, + gdk_screen_get_width (screen_info->gscr), 2, FALSE); } else {