diff -r cf6185def935 -r 8b16ca841c5f src/eric7/Snapshot/SnapWidget.py --- a/src/eric7/Snapshot/SnapWidget.py Mon Mar 04 11:56:17 2024 +0100 +++ b/src/eric7/Snapshot/SnapWidget.py Mon Mar 04 15:03:15 2024 +0100 @@ -59,11 +59,7 @@ self.setWindowIcon(EricPixmapCache.getIcon("ericSnap")) if DesktopUtilities.isWaylandSession(): - from .SnapshotWaylandGrabber import ( # __IGNORE_WARNING_I101__ - SnapshotWaylandGrabber, - ) - - self.__grabber = SnapshotWaylandGrabber(self) + self.__grabber = None else: from .SnapshotDefaultGrabber import ( # __IGNORE_WARNING_I101__ SnapshotDefaultGrabber, @@ -72,8 +68,10 @@ self.__grabber = SnapshotDefaultGrabber(self) self.decorationsCheckBox.hide() self.mouseCursorCheckBox.hide() - self.__grabber.grabbed.connect(self.__captured) - supportedModes = self.__grabber.supportedModes() + + if self.__grabber: + self.__grabber.grabbed.connect(self.__captured) + supportedModes = self.__grabber.supportedModes() if SnapshotModes.FULLSCREEN in supportedModes: self.modeCombo.addItem(self.tr("Fullscreen"), SnapshotModes.FULLSCREEN) @@ -322,15 +320,26 @@ """ Private slot to take a snapshot. """ - self.__savedPosition = self.pos() - self.hide() + if self.__grabber: + self.__savedPosition = self.pos() + self.hide() - self.__grabber.grab( - self.modeCombo.itemData(self.modeCombo.currentIndex()), - self.delaySpin.value(), - self.mouseCursorCheckBox.isChecked(), - self.decorationsCheckBox.isChecked(), - ) + self.__grabber.grab( + self.modeCombo.itemData(self.modeCombo.currentIndex()), + self.delaySpin.value(), + self.mouseCursorCheckBox.isChecked(), + self.decorationsCheckBox.isChecked(), + ) + + else: + EricMessageBox.critical( + self, + self.tr("Snapshot"), + self.tr( + "The snapshot functionality is not available for Wayland based" + " desktop environments." + ), + ) def __redisplay(self): """