Why is the text alignment property disappearing?

When I’m attempting to align a series of labels in Web2/IDE, I’ve found that the text alignment property must be adjusted for each field individually. When I select multiple fields, the text alignment property is occasionally available and sometimes not. Could this be user error on my part or might it be a bug?

Keep your eye on the text alignment property on the right

CleanShot 2023-06-27 at 11.59.29

I haven’t seen that before Jay. Are the three controls plain WebLabels or are some kind of SubClass / WebContainer?

subclassed web_label

It would be nice to see a sample project to see what’s going on.

It disappears because you are selecting multiple controls that have different values for that property. The top label’s value is Left so, when you add it to the current selection, you have three controls with two distinct values, and the IDE hides it so you don’t inadvertently change something you might not have meant to and the IDE doesn’t have a way of presenting these mixed values. Set its value to Right to match the others, then select all three, and the property will remain visible.

You can see the same thing with any group of controls in the IDE.


Anthony is correct and this is something that I don’t like about Xojo. I know it is to ‘protect’ us but for Text alignment, it doesn’t make sense (to me).

I haven’t seen any other program that behaves like this. I’m always able to select all the elements I want to change the alignment and change them to what I want.

1 Like

I’d rather it remain visible and say something like “Mixed”, and allow a value change as well. I pushed for this a very long time ago, but it never came to fruition.



1 Like

Any grouped compatible properties should be able to have some behavior like that, and as some of them could have some space like 1 char, instead of “mixed” it could be presented as the join symbol, in a dark grey color instead of black, so people will learn that it is “something special” and not a string. We should be able to set multiple properties to Enum.Right, “A String”, 3.33, etc. at once.

Anthony appears to be correct here.

So if I have 50 labels that I wish to right justify.

49 are set to default and one is set to left. In order to reduce the aggravation, I’m going to have to hunt down the one label that is “odd” first before setting them all to right. (which, with my luck would be the 49th one I looked at)

Seems like a bit of a pain. At the very least, I wish there was a way to reset all of them to default.

Having a a property completely disappear from you because it is that differently in multiple controls does seem strange. Some means of grading it out, or making it disabled would be more intuitive.

At any rate: everyone thank you for the help. Rather than it being a mystery to me now at least there’s some basis to understand what’s going on.

I offered a few different options way back when, I’d love to see anything improved in this area as I fight with it often enough myself.

1 Like

I feel your pain. There may be a case for changes to this. If not, there should be. It’s been so long that I can’t even tell you what iteration of feedback it might’ve been in. I’d open one, but I’m on mobile today and tomorrow.

What was the feature request number?

I’m still under the belief that my upvote matters.

I wish I knew. I looked through my cases and it’s not on my current account. I’ve had a couple over the decades, most no longer accessible, so I don’t know where it’d be. A quick search didn’t yield any results, so its best to just open a new one. I do remember talking to Aaron about this at some point, then later with Joe.

We already have some supported for mixed state controls in the Inspector. Properties that use the TextField for example support it. The Locking control supports it. Booleans do not because the switch control, as far as I know (even that native one), does not have a mixed state. We could either add one or switch back to a native Checkbox which does have a mixed state. The problem with the properties that use a popupmenu (like the one for text justification) is that, at least to my knowledge, native popupmenus also do not support a mixed state. If they did, we could likely support this feature for them.

What’s wrong with Anthony’s “Mixed” suggestion?

1 Like

Yeah, we’ve discussed before how little I like the current inspector implementation. I won’t rehash that here.

Mixed state checkbox would work using the indeterminate state with a value label that says “Mixed”. PopupMenus could have a “Mixed” item that only exists when that state exists, then does not exist when there are no mixed values for that property.

There are plenty of ways this could be done decently without rewriting the entire inspector.


A checkbox has a mixed state at least on the Mac. I’m not sure if it does on Windows or Linux. The native popup menu could have a mixed item as you suggest.

There’s a lot we could do to improve the Inspector.

Windows also has an indeterminate state for the Desktop.CheckBox, and it’s implemented in Xojo. I can’t check Linux at the moment.

Yes, they have too. In GTK it’s called Inconsistent State.


1 Like