本文整理匯總了Golang中github.com/BurntSushi/wingo/workspace.Workspacer.HeadGeom方法的典型用法代碼示例。如果您正苦於以下問題:Golang Workspacer.HeadGeom方法的具體用法?Golang Workspacer.HeadGeom怎麽用?Golang Workspacer.HeadGeom使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/BurntSushi/wingo/workspace.Workspacer
的用法示例。
在下文中一共展示了Workspacer.HeadGeom方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: moveToProperHead
// moveToProperHead is used to make sure a newly managed client is placed on
// the correct monitor.
//
// Before adding the client into our data structures, we should first
// make sure it's located on the right head. We do this by finding where
// it *is* placed and convert it into the coordinate space of where it
// *should* be placed.
//
// Note that presumedWorkspace MUST be visible.
func (c *Client) moveToProperHead(presumedWorkspace workspace.Workspacer) {
if c.PrimaryType() != TypeNormal {
return
}
if _, ok := presumedWorkspace.(*workspace.Sticky); ok {
return
}
if !presumedWorkspace.IsVisible() {
return
}
oughtHeadGeom := presumedWorkspace.HeadGeom()
cgeom := c.frame.Geom()
if wrk := wm.Heads.FindMostOverlap(cgeom); wrk != nil {
if wrk != presumedWorkspace {
isHeadGeom := wrk.HeadGeom()
ngeom := heads.Convert(cgeom, isHeadGeom, oughtHeadGeom)
c.MoveResizeValid(
ngeom.X(), ngeom.Y(), ngeom.Width(), ngeom.Height())
}
} else {
// If we're here, that means the client *ought* to belong to a visible
// workspace but it could not be found to overlap with *any* visible
// workspace. Therefore, just use a hammer and move it to the root
// coordinates of the presumed workspace.
geom := presumedWorkspace.Geom()
c.Move(geom.X(), geom.Y())
}
}