def focus(self, win, warp=True, force=False):
        if self.qtile._drag and not force:
            # don't change focus while dragging windows (unless forced)
            return
        if win:
            if win not in self.windows:
                return
            self.currentWindow = win
            if win.floating:
                for l in self.layouts:
                    l.blur()
                self.floating_layout.focus(win)
            else:
                self.floating_layout.blur()
                for l in self.layouts:
                    l.focus(win)
            hook.fire("focus_change")
            # !!! note that warp isn't hooked up now
            self.layoutAll(warp)
Called when my standard output stream is ready for reading.
dataset/ETHPy150Open qtile/qtile/libqtile/group.py/_Group.focus--crossover with--dataset/ETHPy150Open twisted/twisted/twisted/internet/process.py/PTYProcess.doRead