From 16a50cd4d4ad4e14b0431182e16fa2643dfc670a Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Sat, 26 Apr 2003 20:01:01 +0000 Subject: [PATCH] A few more fixes (Old svn revision: 11080) --- src/client.c | 24 +++++++++++++++--------- src/workspaces.c | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/client.c b/src/client.c index cad546761..d11a56cb0 100644 --- a/src/client.c +++ b/src/client.c @@ -3847,19 +3847,25 @@ static GtkToXEventFilterStatus clientMove_event_filter(XEvent * xevent, gpointer msx = xevent->xmotion.x_root; msy = xevent->xmotion.y_root; - if((msx == 0) && params.wrap_workspaces && !wrapped) + if((msx == 0) && params.workspace_count && !wrapped) { - XWarpPointer(dpy, None, root, 0, 0, 0, 0, XDisplayWidth(dpy, screen) - 11, msy); - msx = xevent->xmotion.x_root = XDisplayWidth(dpy, screen) - 11; - workspaceSwitch(workspace - 1, c); - wrapped = TRUE; + if (workspace > 0) + { + XWarpPointer(dpy, None, root, 0, 0, 0, 0, XDisplayWidth(dpy, screen) - 11, msy); + msx = xevent->xmotion.x_root = XDisplayWidth(dpy, screen) - 11; + workspaceSwitch(workspace - 1, c); + wrapped = TRUE; + } } else if((msx == XDisplayWidth(dpy, screen) - 1) && params.wrap_workspaces && !wrapped) { - XWarpPointer(dpy, None, root, 0, 0, 0, 0, 10, msy); - msx = xevent->xmotion.x_root = 10; - workspaceSwitch(workspace + 1, c); - wrapped = TRUE; + if (workspace < params.workspace_count - 1) + { + XWarpPointer(dpy, None, root, 0, 0, 0, 0, 10, msy); + msx = xevent->xmotion.x_root = 10; + workspaceSwitch(workspace + 1, c); + wrapped = TRUE; + } } else if (wrapped) { diff --git a/src/workspaces.c b/src/workspaces.c index af97ed19d..fd273f4e5 100644 --- a/src/workspaces.c +++ b/src/workspaces.c @@ -69,7 +69,7 @@ void workspaceSwitch(int new_ws, Client * c2) if(previous) { CLIENT_FLAG_SET(previous, CLIENT_FLAG_FOCUS); - if(CLIENT_FLAG_TEST(previous, CLIENT_FLAG_STICKY)) + if(CLIENT_FLAG_TEST(previous, CLIENT_FLAG_STICKY) || (previous == c2)) { f = previous; } -- GitLab