From c7c42582b7342f20c22b8a040eab72d3ce9f37b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Medra=C3=B1o=20Calvo?= Date: Wed, 6 May 2020 00:00:00 +0000 Subject: [PATCH] Prevent jumping back to previous workspace * exwm-workspace.el (exwm-workspace-switch): Focus out old frame before switching to the new one to prevent jumping back to previous workspace. --- exwm-workspace.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/exwm-workspace.el b/exwm-workspace.el index f63a0a3..cff17f3 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -587,6 +587,11 @@ for internal use only." (when (or force (not (eq frame exwm-workspace--current))) (unless (window-live-p window) (setq window (frame-selected-window frame))) + (when (and (not (eq frame old-frame)) + (frame-live-p old-frame)) + (with-selected-frame old-frame + (funcall exwm-workspace--original-handle-focus-out + (list 'focus-out frame)))) ;; Raise this frame. (xcb:+request exwm--connection (make-instance 'xcb:ConfigureWindow @@ -680,11 +685,6 @@ for internal use only." :dst-x (/ (frame-pixel-width frame) 2) :dst-y (/ (frame-pixel-height frame) 2))) (xcb:flush exwm--connection)))) - (when (and (not (eq frame old-frame)) - (frame-live-p old-frame)) - (with-selected-frame old-frame - (funcall exwm-workspace--original-handle-focus-out - (list 'focus-out frame)))) (funcall exwm-workspace--original-handle-focus-in (list 'focus-in frame)) (run-hooks 'exwm-workspace-switch-hook)))