diff --git a/javascript/plugins/sd-ppp_PS.ccx b/javascript/plugins/sd-ppp_PS.ccx index 04267c4..7ea32e3 100644 Binary files a/javascript/plugins/sd-ppp_PS.ccx and b/javascript/plugins/sd-ppp_PS.ccx differ diff --git a/photoshop/dist/index.js b/photoshop/dist/index.js index 7b141a5..ba9260a 100644 --- a/photoshop/dist/index.js +++ b/photoshop/dist/index.js @@ -416,21 +416,28 @@ __webpack_require__.r(__webpack_exports__); -function isLayerFolder(layer) { +function isFolder(layer) { return layer.kind == "group"; } async function findLayer(layerID) { let layer; - let isFolder = false; - if (layerID <= 0) return [layer, isFolder]; + let layerIsFolder = false; + if (layerID <= 0) return [layer, layerIsFolder]; layer = (0,_util_js__WEBPACK_IMPORTED_MODULE_1__.findInAllSubLayer)(photoshop__WEBPACK_IMPORTED_MODULE_0__.app.activeDocument, layerID); if (!layer) throw new Error(`Layer(id: ${layerID}) not found`); - if (!isLayerFolder(layer)) return [layer, isFolder]; + if (!isFolder(layer)) return [layer, layerIsFolder]; + // layer is folder + let visibleOriginal = true; + if (!layer.visible) { + layer.visible = true; + visibleOriginal = false; + } const dupLayer = await layer.duplicate(); const mergedLayer = await dupLayer.merge(); - isFolder = true; - return [mergedLayer, isFolder]; + layerIsFolder = true; + if (!visibleOriginal) layer.visible = false; + return [mergedLayer, layerIsFolder]; } // ps returns trimmed data so need padding diff --git a/photoshop/src/system/events/get_image.js b/photoshop/src/system/events/get_image.js index 879eae7..1545bd2 100644 --- a/photoshop/src/system/events/get_image.js +++ b/photoshop/src/system/events/get_image.js @@ -2,22 +2,29 @@ import { app, imaging } from "photoshop"; import { executeAsModalUntilSuccess, findInAllSubLayer, unTrimImageData } from '../util.js'; import Jimp from "../library/jimp.min"; -function isLayerFolder(layer){ +function isFolder(layer){ return layer.kind == "group" } async function findLayer(layerID) { let layer; - let isFolder = false; - if (layerID <= 0) return [layer, isFolder]; + let layerIsFolder = false; + if (layerID <= 0) return [layer, layerIsFolder]; layer = findInAllSubLayer(app.activeDocument, layerID) if (!layer) throw new Error(`Layer(id: ${layerID}) not found`); - if (!isLayerFolder(layer)) return [layer, isFolder]; + if (!isFolder(layer)) return [layer, layerIsFolder]; + // layer is folder + let visibleOriginal = true; + if (!layer.visible) { + layer.visible = true; + visibleOriginal = false; + } const dupLayer = await layer.duplicate(); const mergedLayer = await dupLayer.merge() - isFolder = true; - return [mergedLayer, isFolder]; + layerIsFolder = true; + if (!visibleOriginal) layer.visible = false + return [mergedLayer, layerIsFolder]; } // ps returns trimmed data so need padding diff --git a/sdppp_python/sdppp.py b/sdppp_python/sdppp.py index d1591a5..c5c9ddf 100644 --- a/sdppp_python/sdppp.py +++ b/sdppp_python/sdppp.py @@ -68,6 +68,7 @@ class SDPPP: "server_type": self.server_type }) + @sio.event async def disconnect(sid): if sid in self.photoshop_instances: self.photoshop_instances.pop(sid, None)