[xmonad] Issue 407 in xmonad: Resizing a size-hinted window very small yields bad dimensions

codesite-noreply at google.com codesite-noreply at google.com
Thu Sep 2 20:01:15 EDT 2010

Status: New
Owner: ----

New issue 407 by djpohly: Resizing a size-hinted window very small yields  
bad dimensions

What steps will reproduce the problem?
1. Set XSizeHints on a window for PResizeInc and PBaseSize.
2. Resize (Mod-right-drag) this window to a size which is smaller than the  
base size.

What is the expected output? What do you see instead?
For certain combinations of base size and resize increment--bs=(4,4) and  
inc=(7,15) is known to work--the window receives an XConfigureEvent with an  
obviously overflown dimension (in the 65535 region) when resized down.

What version of the product are you using? On what operating system?
XMonad-darcs-20100902 on Linux, GHC 6.12.3

Are you using an xmonad.hs?  Please attach it and the output of "xmonad
Don't think this is relevant (see below) but if you want it, ask for it.

Please provide any additional information below.
The problem appears to be line 549 of Operations.hs:
  . maybe id (\(bw,bh) (w,h)   -> (w-bw, h-bh)) (sh_base_size  sh)

In the subtraction in this line, all four operands are ::Dimension, an  
unsigned type.  The problem occurs when XMonad subtracts the base size,  
resulting in large integers, then rounds them down according to the resize  

If the subtraction were performed on Integrals instead of Dimensions, the  
problem would be fixed.

The attached patch appears to fix the bug.  I'm neither an XMonad nor a  
Haskell expert, so this is likely not the best way to do it, but it can at  
least illuminate where the problem lies. :)

	xmonad-resize.patch  1.4 KB

More information about the xmonad mailing list