mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
Set WM_CLASS for created windows
Set the WM_CLASS property for long-living windows that need it. This helps users to properly match on these windows for certain tasks. Fixes: - https://github.com/xmonad/xmonad-contrib/issues/526 - https://github.com/xmonad/xmonad-contrib/issues/369
This commit is contained in:
parent
f4673d611b
commit
fd5d8267d2
@ -317,7 +317,9 @@ treeselectAt conf@TSConfig{..} zipper hist = withDisplay $ \display -> do
|
||||
set_colormap attributes colormap
|
||||
set_background_pixel attributes ts_background
|
||||
set_border_pixel attributes 0
|
||||
createWindow display rootw rect_x rect_y rect_width rect_height 0 (visualInfo_depth vinfo) inputOutput (visualInfo_visual vinfo) (cWColormap .|. cWBorderPixel .|. cWBackPixel) attributes
|
||||
w <- createWindow display rootw rect_x rect_y rect_width rect_height 0 (visualInfo_depth vinfo) inputOutput (visualInfo_visual vinfo) (cWColormap .|. cWBorderPixel .|. cWBackPixel) attributes
|
||||
setClassHint display w (ClassHint "xmonad-tree_select" "xmonad")
|
||||
pure w
|
||||
|
||||
liftIO $ do
|
||||
-- TODO: move below?
|
||||
|
@ -377,8 +377,12 @@ createDecos t ds sc s wrs ((w,r):xs) = do
|
||||
createDecos _ _ _ _ _ [] = return []
|
||||
|
||||
createDecoWindow :: Theme -> Rectangle -> X Window
|
||||
createDecoWindow t r = let mask = Just (exposureMask .|. buttonPressMask) in
|
||||
createNewWindow r mask (inactiveColor t) True
|
||||
createDecoWindow t r = do
|
||||
let mask = Just (exposureMask .|. buttonPressMask)
|
||||
w <- createNewWindow r mask (inactiveColor t) True
|
||||
d <- asks display
|
||||
io $ setClassHint d w (ClassHint "xmonad-decoration" "xmonad")
|
||||
pure w
|
||||
|
||||
showDecos :: [DecoWin] -> X ()
|
||||
showDecos = showWindows . catMaybes . map fst . filter (isJust . snd)
|
||||
|
@ -558,7 +558,7 @@ mkXPromptImplementation historyKey conf om = do
|
||||
fs <- initXMF (font conf)
|
||||
st' <- io $
|
||||
bracket
|
||||
(createWin d rw conf s)
|
||||
(createPromptWin d rw conf s)
|
||||
(destroyWindow d)
|
||||
(\w ->
|
||||
bracket
|
||||
@ -1395,8 +1395,8 @@ redrawWindows c = do
|
||||
l -> redrawComplWin l
|
||||
io $ sync d False
|
||||
|
||||
createWin :: Display -> Window -> XPConfig -> Rectangle -> IO Window
|
||||
createWin d rw c s = do
|
||||
createPromptWin :: Display -> Window -> XPConfig -> Rectangle -> IO Window
|
||||
createPromptWin d rw c s = do
|
||||
let (x,y) = case position c of
|
||||
Top -> (0,0)
|
||||
Bottom -> (0, rect_height s - height c)
|
||||
@ -1406,6 +1406,7 @@ createWin d rw c s = do
|
||||
_ -> rect_width s
|
||||
w <- mkUnmanagedWindow d (defaultScreenOfDisplay d) rw
|
||||
(rect_x s + x) (rect_y s + fi y) width (height c)
|
||||
setClassHint d w (ClassHint "xmonad-prompt" "xmonad")
|
||||
mapWindow d w
|
||||
return w
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user