(w xproto.Window, unmapped bool)
| 2026 | } |
| 2027 | |
| 2028 | func (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 | |
| 2071 | func (wm *WindowManager) setWindowDesktop(win xproto.Window, desktop uint32) { |
| 2072 | atomWmDesktop, _ := xproto.InternAtom(wm.conn, true, uint16(len("_NET_WM_DESKTOP")), "_NET_WM_DESKTOP").Reply() |
no test coverage detected