code: func (win *Window) Configure(flags, x, y, w, h int,
  	sibling xproto.Window, stackMode byte) {
  
  	if win == nil {
  		return
  	}
  
  	vals := []uint32{}
  
  	if xproto.ConfigWindowX&flags > 0 {
  		vals = append(vals, uint32(x))
  		win.Geom.XSet(x)
  	}
  	if xproto.ConfigWindowY&flags > 0 {
  		vals = append(vals, uint32(y))
  		win.Geom.YSet(y)
  	}
  	if xproto.ConfigWindowWidth&flags > 0 {
  		if int16(w) <= 0 {
  			w = 1
  		}
  		vals = append(vals, uint32(w))
  		win.Geom.WidthSet(w)
  	}
  	if xproto.ConfigWindowHeight&flags > 0 {
  		if int16(h) <= 0 {
  			h = 1
  		}
  		vals = append(vals, uint32(h))
  		win.Geom.HeightSet(h)
  	}
  	if xproto.ConfigWindowSibling&flags > 0 {
  		vals = append(vals, uint32(sibling))
  	}
  	if xproto.ConfigWindowStackMode&flags > 0 {
  		vals = append(vals, uint32(stackMode))
  	}
  
  	// Nobody should be setting border widths any more.
  	// We toss it out since `vals` must have length equal to the number
  	// of bits set in `flags`.
  	flags &= ^xproto.ConfigWindowBorderWidth
  	xproto.ConfigureWindow(win.X.Conn(), win.Id, uint16(flags), vals)
  }
docs: // Configure issues a raw Configure request with the parameters given and
  // updates the geometry of the window.
  // This should probably only be used when passing along ConfigureNotify events
  // (from the perspective of the window manager). In other cases, one should
  // opt for [WM][Move][Resize] or Stack[Sibling].