def makeRootWindowModels(self): log("makeRootWindowModels() root=%s", self.root) self.capture = self.setup_capture() if not MULTI_WINDOW: return (RootWindowModel(self.root, self.capture), ) models = [] screen = self.root.get_screen() n = screen.get_n_monitors() for i in range(n): geom = screen.get_monitor_geometry(i) x, y, width, height = geom.x, geom.y, geom.width, geom.height try: scale_factor = screen.get_monitor_scale_factor(i) except Exception as e: screenlog("no scale factor: %s", e) else: screenlog("scale factor for monitor %i: %i", i, scale_factor) model = RootWindowModel(self.root, self.capture) if hasattr(screen, "get_monitor_plug_name"): plug_name = screen.get_monitor_plug_name(i) if plug_name or n > 1: model.title = plug_name or str(i) model.geometry = (x, y, width, height) screenlog("monitor %i: %10s geometry=%s", i, model.get_property("title"), model.get_property("geometry")) models.append(model) log("makeRootWindowModels()=%s", models) return models
def makeRootWindowModels(self): log("makeRootWindowModels() root=%s", self.root) self.capture = self.setup_capture() if not MULTI_WINDOW: return (RootWindowModel(self.root, self.capture),) models = [] monitors = get_monitors() for i, monitor in enumerate(monitors): geom = monitor["Monitor"] x1, y1, x2, y2 = geom assert x1<x2 and y1<y2 model = RootWindowModel(self.root, self.capture) model.title = monitor["Device"].lstrip("\\\\.\\") model.geometry = x1, y1, x2-x1, y2-y1 screenlog("monitor %i: %10s geometry=%s (from %s)", i, model.title, model.geometry, geom) models.append(model) screenlog("makeRootWindowModels: model(%s)=%s", monitor, model) log("makeRootWindowModels()=%s", models) return models