Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def manage(self, w):
try:
attrs = w.get_attributes()
internal = w.get_property("QTILE_INTERNAL")
except (xcffib.xproto.WindowError, xcffib.xproto.AccessError):
return
if attrs and attrs.override_redirect:
return
if w.wid not in self.windows_map:
if internal:
try:
c = window.Internal(w, self)
except (xcffib.xproto.WindowError, xcffib.xproto.AccessError):
return
self.windows_map[w.wid] = c
else:
try:
c = window.Window(w, self)
except (xcffib.xproto.WindowError, xcffib.xproto.AccessError):
return
if w.get_wm_type() == "dock" or c.strut:
c.static(self.current_screen.index)
else:
hook.fire("client_new", c)
# Window may be defunct because
# it's been declared static in hook.
if c.defunct:
def add(self, win, focus=True, force=False):
hook.fire("group_window_add")
self.windows.add(win)
win.group = self
try:
if 'fullscreen' in win.window.get_net_wm_state() and \
self.qtile.config.auto_fullscreen:
win._float_state = window.FULLSCREEN
elif self.floating_layout.match(win):
# !!! tell it to float, can't set floating
# because it's too early
# so just set the flag underneath
win._float_state = window.FLOATING
except (xcffib.xproto.WindowError, xcffib.xproto.AccessError):
pass # doesn't matter
if win.floating:
self.floating_layout.add(win)
else:
for i in self.layouts:
i.add(win)
if focus:
self.focus(win, warp=True, force=force)
def scan(self) -> None:
"""Scan for existing windows"""
assert self.qtile is not None
_, _, children = self._root.query_tree()
for item in children:
try:
attrs = item.get_attributes()
state = item.get_wm_state()
except (xcffib.xproto.WindowError, xcffib.xproto.AccessError):
continue
if attrs and attrs.map_state == xcffib.xproto.MapState.Unmapped:
continue
if state and state[0] == window.WithdrawnState:
continue
self.qtile.manage(item)
def group(self, group):
if group:
try:
self.window.set_property(
"_NET_WM_DESKTOP",
self.qtile.groups.index(group)
)
except xcffib.xproto.WindowError:
logger.exception("whoops, got error setting _NET_WM_DESKTOP, too early?")
self._group = group
except TypeError:
# the value wasn't an iterable and wasn't a string, so let's
# wrap it.
value = [value]
try:
self.conn.conn.core.ChangePropertyChecked(
xcffib.xproto.PropMode.Replace,
self.wid,
self.conn.atoms[name],
self.conn.atoms[type],
format, # Format - 8, 16, 32
len(value),
value
).check()
except xcffib.xproto.WindowError:
logger.warning(
'X error in SetProperty (wid=%r, prop=%r), ignoring',
self.wid, name)