コード例 #1
0
    def __init__(
        self,
        core: Core,
        qtile: Qtile,
        surface: SurfaceType,
        wid: int,
    ):
        base.Static.__init__(self)
        self.core = core
        self.qtile = qtile
        self.surface = surface
        self.subsurfaces: List[SubSurface] = []
        self._wid = wid
        self._mapped: bool = False
        self.x = 0
        self.y = 0
        self._width = 0
        self._height = 0
        self.borderwidth: int = 0
        self.bordercolor: List[ffi.CData] = [_rgb((0, 0, 0, 1))]
        self.opacity: float = 1.0
        self._outputs: Set[Output] = set()
        self._float_state = FloatStates.FLOATING
        self.is_layer = False
        self._app_id: Optional[str] = None  # Not used by layer-shell surfaces

        self.add_listener(surface.map_event, self._on_map)
        self.add_listener(surface.unmap_event, self._on_unmap)
        self.add_listener(surface.destroy_event, self._on_destroy)
        self.add_listener(surface.surface.commit_event, self._on_commit)

        if isinstance(surface, LayerSurfaceV1):
            self.is_layer = True
            if surface.output is None:
                surface.output = core.output_layout.output_at(
                    core.cursor.x, core.cursor.y)
            self.output = core.output_from_wlr_output(surface.output)
            self.screen = self.output.screen
            self.mapped = True
            self._outputs.add(self.output)
        else:
            if surface.toplevel.title:
                self.name = surface.toplevel.title
            self._app_id = surface.toplevel.app_id
            self.add_listener(surface.toplevel.set_title_event,
                              self._on_set_title)
            self.add_listener(surface.toplevel.set_app_id_event,
                              self._on_set_app_id)
            self.ftm_handle = surface.data
            assert self.ftm_handle
            self.add_listener(self.ftm_handle.request_close_event,
                              self._on_foreign_request_close)
            self._find_outputs()
            self.screen = qtile.current_screen
コード例 #2
0
ファイル: window.py プロジェクト: yobleck/qtile
    def __init__(
        self,
        core: Core,
        qtile: Qtile,
        surface: SurfaceType,
        wid: int,
    ):
        base.Static.__init__(self)
        self.core = core
        self.qtile = qtile
        self._group: Optional[_Group] = None
        self.surface = surface
        self.subsurfaces: List[SubSurface] = []
        self._wid = wid
        self._mapped: bool = False
        self.x = 0
        self.y = 0
        self.borderwidth: int = 0
        self.bordercolor: ffi.CData = _rgb((0, 0, 0, 1))
        self.opacity: float = 1.0
        self._outputs: List[Output] = []
        self._float_state = FloatStates.FLOATING
        self.defunct = True
        self.is_layer = False
        self.screen = qtile.current_screen

        self.add_listener(surface.map_event, self._on_map)
        self.add_listener(surface.unmap_event, self._on_unmap)
        self.add_listener(surface.destroy_event, self._on_destroy)
        self.add_listener(surface.surface.commit_event, self._on_commit)

        if isinstance(surface, LayerSurfaceV1):
            self.is_layer = True
            if surface.output is None:
                surface.output = core.output_layout.output_at(
                    core.cursor.x, core.cursor.y)
            self.output = core.output_from_wlr_output(surface.output)
            self.screen = self.output.screen
            self.mapped = True
            self._outputs.append(self.output)
        else:
            self._find_outputs()
コード例 #3
0
ファイル: window.py プロジェクト: eloraju/qtile
    def __init__(
        self,
        core: Core,
        qtile: Qtile,
        surface: SurfaceType,
        wid: int,
    ):
        base.Static.__init__(self)
        self.core = core
        self.qtile = qtile
        self._group = 0
        self.surface = surface
        self._wid = wid
        self.screen = None
        self.mapped = False
        self.x = 0
        self.y = 0
        self.borderwidth: int = 0
        self.bordercolor: ffi.CData = _rgb((0, 0, 0, 1))
        self.opacity: float = 1.0
        self._float_state = FloatStates.FLOATING
        self.defunct = True
        self.is_layer = False

        self.add_listener(surface.map_event, self._on_map)
        self.add_listener(surface.unmap_event, self._on_unmap)
        self.add_listener(surface.destroy_event, self._on_destroy)
        self.add_listener(surface.surface.commit_event, self._on_commit)

        if isinstance(surface, LayerSurfaceV1):
            self.is_layer = True
            if surface.output is None:
                surface.output = core.output_layout.output_at(core.cursor.x, core.cursor.y)
            self.output = core.output_from_wlr_output(surface.output)
            self.output.layers[surface.client_pending.layer].append(self)
            self.output.organise_layers()
コード例 #4
0
    def __init__(
        self,
        core: Core,
        qtile: Qtile,
        surface: SurfaceType,
        wid: int,
        idle_inhibitor_count: int = 0,
    ):
        base.Static.__init__(self)
        self.core = core
        self.qtile = qtile
        self.surface = surface
        self.screen = qtile.current_screen
        self._idle_inhibitors_count = idle_inhibitor_count
        self.subsurfaces: list[SubSurface] = []
        self._wid = wid
        self._mapped: bool = False
        self.x = 0
        self.y = 0
        self._width = 0
        self._height = 0
        self.borderwidth: int = 0
        self.bordercolor: list[ffi.CData] = [_rgb((0, 0, 0, 1))]
        self.opacity: float = 1.0
        self._outputs: set[Output] = set()
        self._float_state = FloatStates.FLOATING
        self.is_layer = False
        self._app_id: str | None = None

        self.add_listener(surface.map_event, self._on_map)
        self.add_listener(surface.unmap_event, self._on_unmap)
        self.add_listener(surface.destroy_event, self._on_destroy)
        self.add_listener(surface.surface.commit_event, self._on_commit)

        if isinstance(surface, LayerSurfaceV1):
            self.is_layer = True
            self._layer = LayerShellV1Layer.BACKGROUND
            self.desired_width = 0
            self.desired_height = 0
            if surface.output is None:
                surface.output = core.output_layout.output_at(core.cursor.x, core.cursor.y)
            self.output = core.output_from_wlr_output(surface.output)
            self.screen = self.output.screen
            self.mapped = True
            self._outputs.add(self.output)

        elif isinstance(surface, XdgSurface):
            if surface.toplevel.title:
                self.name = surface.toplevel.title
            self._app_id = surface.toplevel.app_id
            self.add_listener(surface.toplevel.set_title_event, self._on_set_title)
            self.add_listener(surface.toplevel.set_app_id_event, self._on_set_app_id)
            self._find_outputs()

        else:  # xwayland.Surface
            self._app_id = surface.wm_class
            self._find_outputs()

        if surface.data:
            self.ftm_handle = surface.data
            self.add_listener(self.ftm_handle.request_close_event, self._on_foreign_request_close)