plugin.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:SafeEyes 作者: slgobinath 项目源码 文件源码
def is_active_window_skipped():
    """
    Check for full-screen applications.
    This method must be executed by the main thread. If not, it will cause to random failure.
    """
    logging.info('Searching for full-screen application')
    screen = Gdk.Screen.get_default()

    active_window = screen.get_active_window()
    if active_window:
        active_xid = str(active_window.get_xid())
        cmdlist = ['xprop', '-root', '-notype', '-id', active_xid, 'WM_CLASS', '_NET_WM_STATE']

        try:
            stdout = subprocess.check_output(cmdlist).decode('utf-8')
        except subprocess.CalledProcessError:
            logging.warning('Error in finding full-screen application')
        else:
            if stdout:
                is_fullscreen = 'FULLSCREEN' in stdout
                # Extract the process name
                process_names = re.findall('"(.+?)"', stdout)
                if process_names:
                    process = process_names[1].lower()
                    if process in skip_break_window_classes:
                        return True
                    elif process in take_break_window_classes:
                        if is_fullscreen and unfullscreen_allowed:
                            try:
                                active_window.unfullscreen()
                            except BaseException:
                                logging.error('Error in unfullscreen the window ' + process)
                        return False

                return is_fullscreen

    return False
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号