MCPcopy Create free account
hub / github.com/BobdaProgrammer/doWM / UnFrame

Method UnFrame

wm/window_manager.go:2028–2069  ·  view source on GitHub ↗
(w xproto.Window, unmapped bool)

Source from the content-addressed store, hash-verified

2026}
2027
2028func (wm *WindowManager) UnFrame(w xproto.Window, unmapped bool) {
2029
2030 // if it is already unmapped then no need to do it again
2031 err := xproto.UnmapWindowChecked(
2032 wm.conn,
2033 w,
2034 ).Check()
2035
2036 if err != nil {
2037 slog.Error("couldn't unmap frame", "error:", err.Error())
2038 return
2039 }
2040 // remove window and frame from current workspace record
2041 remove(&wm.currWorkspace.windowList, w)
2042 delete(wm.windows, w)
2043 wm.setNetClientList()
2044
2045 // delete window from x11 set
2046 err = xproto.ChangeSaveSetChecked(
2047 wm.conn,
2048 xproto.SetModeDelete,
2049 w,
2050 ).Check()
2051
2052 if err != nil {
2053 slog.Error("couldn't remove window from save", "error:", err.Error())
2054 return
2055 }
2056
2057 // destroy frame
2058 err = xproto.DestroyWindowChecked(
2059 wm.conn,
2060 w,
2061 ).Check()
2062
2063 if err != nil {
2064 slog.Error("couldn't destroy frame", "error:", err.Error())
2065 return
2066 }
2067
2068 slog.Info("Unmapped", "window", w)
2069}
2070
2071func (wm *WindowManager) setWindowDesktop(win xproto.Window, desktop uint32) {
2072 atomWmDesktop, _ := xproto.InternAtom(wm.conn, true, uint16(len("_NET_WM_DESKTOP")), "_NET_WM_DESKTOP").Reply()

Callers 2

RunMethod · 0.95
OnUnmapNotifyMethod · 0.95

Calls 2

setNetClientListMethod · 0.95
removeFunction · 0.85

Tested by

no test coverage detected