6 """ |
6 """ |
7 Module implementing a grabber object for non-Wayland desktops. |
7 Module implementing a grabber object for non-Wayland desktops. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt5.QtCore import pyqtSignal, Qt, QObject, QTimer, QEvent |
10 from PyQt5.QtCore import pyqtSignal, Qt, QObject, QTimer, QEvent |
11 from PyQt5.QtGui import QPixmap, QCursor |
11 from PyQt5.QtGui import QPixmap, QCursor, QGuiApplication |
12 from PyQt5.QtWidgets import QWidget, QApplication |
12 from PyQt5.QtWidgets import QWidget |
13 |
13 |
14 from .SnapshotModes import SnapshotModes |
14 from .SnapshotModes import SnapshotModes |
15 |
15 |
16 import Globals |
16 import Globals |
17 |
17 |
145 self.__grabberWidget.releaseMouse() |
145 self.__grabberWidget.releaseMouse() |
146 self.__grabberWidget.hide() |
146 self.__grabberWidget.hide() |
147 self.__grabTimer.stop() |
147 self.__grabTimer.stop() |
148 |
148 |
149 if mode == SnapshotModes.Fullscreen: |
149 if mode == SnapshotModes.Fullscreen: |
150 snapshot = QApplication.screens()[0].grabWindow(0) |
150 screen = QGuiApplication.screens()[0] |
|
151 vgeom = screen.availableVirtualGeometry() |
|
152 snapshot = screen.grabWindow( |
|
153 0, vgeom.x(), vgeom.y(), vgeom.width(), vgeom.height()) |
151 elif mode == SnapshotModes.SelectedScreen: |
154 elif mode == SnapshotModes.SelectedScreen: |
152 screen = QApplication.screenAt(QCursor.pos()) |
155 screen = QGuiApplication.screenAt(QCursor.pos()) |
153 snapshot = screen.grabWindow(0) |
156 sgeom = screen.geometry() |
|
157 snapshot = screen.grabWindow( |
|
158 0, sgeom.x(), sgeom.y(), sgeom.width(), sgeom.height()) |
154 else: |
159 else: |
155 snapshot = QPixmap() |
160 snapshot = QPixmap() |
156 |
161 |
157 self.grabbed.emit(snapshot) |
162 self.grabbed.emit(snapshot) |
158 |
163 |