[xmonad] Issue 568 in xmonad: Actions.DynamicWorkspaceGroups viewWSGroup changes which workspace has focus incorrectly

codesite-noreply at google.com codesite-noreply at google.com
Wed May 7 00:31:20 UTC 2014


Status: New
Owner: ----

New issue 568 by nwfila... at gmail.com: Actions.DynamicWorkspaceGroups  
viewWSGroup changes which workspace has focus incorrectly
http://code.google.com/p/xmonad/issues/detail?id=568

When running viewWSGroup, the focus is set to whichever display is last in  
the windowset's visible set.  It would be better, IMHO, if focus were  
considered part of the WSGroup.  Simply reversing the list of workspaces  
should mean that the last greedyView serves to restore focus to the  
workspace (and screen) focused-at-group-creation-time.

--- old-XMonadContrib/XMonad/Actions/DynamicWorkspaceGroups.hs	2014-05-06  
20:26:25.919864085 -0400
+++ new-XMonadContrib/XMonad/Actions/DynamicWorkspaceGroups.hs	2014-05-06  
20:26:26.163865644 -0400
@@ -93,7 +93,7 @@
  -- | Give a name to the current workspace group.
  addCurrentWSGroup :: WSGroupId -> X ()
  addCurrentWSGroup name = withWindowSet $ \w ->
-  addWSGroup name $ map (W.tag . W.workspace) (W.current w : W.visible w)
+  addWSGroup name $ map (W.tag . W.workspace) (reverse $ W.current w :  
W.visible w)

  -- | Delete the named workspace group from the list of workspace
  --   groups.  Note that this has no effect on the workspaces involved;

A different, equally-defensible behavior, would be to consider the focus to  
not be part of the WSGroup and to hold the current focus across the  
viewWSGroup operation.  A wrapper like this may be useful:

holdScreenFocus a = do
   s <- gets (S.screen . S.current . windowset)
   r <- a
   screenWorkspace s >>= maybe (return ()) (windows . S.view)
   return r

Thanks!
--nwf;

-- 
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings


More information about the xmonad mailing list