Copy link to clipboard
Copied
When clicking on a type layer in the layers palette, the layer mask is selected by default. Nine times out of 10, if I click on a type layer I want to do something to the type. If I wanted to edit the mask, I can click on it to highlight. For example, I waste so much time accidentally filling the mask with a solid colour because it was given priority over the type content. This has bugged me for ages!
Clicking on a normal image layer that has a mask selects the layer first, as is logical and expected.
If it's intentinal, I'd love to know the reasoning for type layers with masks behaving the opposite way. If it's a weird bug/oversight, can it be changed?
Copy link to clipboard
Copied
Your comment may be more directed toward staff as a feature request, but in the meantime, maybe the following will help:
Copy link to clipboard
Copied
Double-clicking does not open Layer Styles where I expect he would click, neither on the name; only in the right part. I guess our expectations are different... š Double-clicking on the icon might actually be usable to him.
Copy link to clipboard
Copied
Thankyou Myra, appreciated.
Option 1 is what I do, but it's annoying to have to click twice, avoiding the double-click.
Option 2 still selects the layer mask, not the Type. On my machine anyway.
Option 3 works if editing the text, but the edit I do most to my Type layers is to change the colour by alt-shift-backspace (shortcut for fill with foreground colour, preserving transparency). Doing this with the mask selected (by default) is the main cause of my issue with this behaviour as I keep filling my textured masks with solid colours. š
Copy link to clipboard
Copied
Modification of this behavior is possible using a script:
#target photoshop
var s2t = stringIDToTypeID,
t2s = typeIDToStringID;
try {
var target = t2s(arguments[0].getReference(s2t('null')).getDesiredClass());
if (target == 'layer') {
var id = arguments[0].getInteger(s2t('layerID'));
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('layerKind'));
r.putIdentifier(s2t("layer"), id);
if (executeActionGet(r).getInteger(p) == 3) {
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('hasUserMask'));
r.putIdentifier(s2t("layer"), id);
if (executeActionGet(r).getBoolean(p)) {
(r = new ActionReference()).putEnumerated(s2t("channel"), s2t("channel"), s2t('RGB'));
(d = new ActionDescriptor).putReference(s2t("null"), r);
executeAction(s2t("select"), d, DialogModes.NO);
}
}
}
} catch (e) { }
if (!target) {
var f = File($.fileName),
del;
for (var i = 0; i < app.notifiers.length; i++) {
var ntf = app.notifiers[i]
if (ntf.eventFile.name == f.name) { ntf.remove(); i--; del = true }
}
if (del) {
alert('event listening disabled!')
} else {
app.notifiers.add('slct', f, 'Lyr ')
alert('event listening enabled!')
}
}
Script uses notifications, so it needs to be saved to disk before the first run.
1. Save the code to a text (.txt) file, after saving change its extension to .jsx
2. Save the code to your Photoshop presets folder (\Presets\Scripts\). After restarting the program, it will appear in the script menu, from where you can run it.
The first time the script is run, it enables tracking of layer selection events. On each selection it checks if the layer is a text layer and if it has a mask. If so, it switches focus to the layer itself. Selecting a mask manually still works. The next time you run the script, it disables event tracking and everything works as before.
Copy link to clipboard
Copied
Wow, that's a very in-depth solution! Thanks!
Would still like to know if the behaviour is intentional on Adobe's part and if so, what's the thinking?
Copy link to clipboard
Copied
I think this behavior is intentional. The point is that the text layer is not pixel layer, i.e. not available for drawing tools. It is assumed that since the text layer has a mask, it is more convenient to activate it immediately upon selection in order to cover more interaction scenarios at the same time.
To be honest, I have been working with text layers for many years, but until you wrote this post, I did not even notice that when the layer is activated, the focus switches to the mask (despite the active mask, the layer is still editable and moveable without switching focus to the RGB channel , that is, it practically does not affect the usual interaction with the layer).
Copy link to clipboard
Copied
Perhaps it's just my particular workflow that makes it irritating to me. š
Copy link to clipboard
Copied
Nice observation. Seems that has never bothered me. I set the layers to not automatically add masks, as I don't like the clutter. That could relieve some of the problem, but will need some small scripts and adjustments to actions you are using/buying, as many expect a mask to be there w/o checking for it.
Copy link to clipboard
Copied
My layers don't automatically have masks either, but I use them a lot in my work and this odd behaviour on Type layers is driving me round the bend now. š