More fixing everything

This commit is contained in:
2026-04-22 07:22:55 -04:00
parent 4420c52b74
commit d985a6bc55
3 changed files with 47 additions and 41 deletions

View File

@@ -59,6 +59,22 @@ public:
// events in the Event Graph are deactivated.
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Luprex|Input Mode")
bool EnableEnhancedInput = true;
// Knowing whether the slot is under construction helps us to work
// around some bugs in Unreal. See below.
bool SlotUnderConstruction = true;
// Reliable version of SetZOrder. There is a bug in the normal version of
// SetZOrder: it crashes if you use it during OnConstruct. We have a
// workaround, but it requires using a different getter and setter.
UFUNCTION(BlueprintCallable, Category = "Luprex|Input Mode")
void SetZOrderReliable(int32 Order);
// Reliable version of GetZOrder. There is a bug in the normal version of
// SetZOrder: it crashes if you use it during OnConstruct. We have a
// workaround, but it requires using a different getter and setter.
UFUNCTION(BlueprintCallable, Category = "Luprex|Input Mode")
int32 GetZOrderReliable();
};
////////////////////////////////////////////////////////////
@@ -91,13 +107,6 @@ public:
// Used as the basis for placing new widgets on top.
int32 GetMaxZOrder() const;
// SetZOrder is buggy: if you call it inside Event Construct,
// it crashes. So we've developed a hack to make it reliable.
// To set the zorder, you store the value in the slot property,
// without calling SetZorder. This routine, which is used later,
// propagates that value into the slate widgets.
void PropagateZOrderToSlate();
// This function updates several window-management-related properties
// which are stored in the UserWidget and the lxRootCanvasSlot. Note that
// it is perfectly legal to edit these properties by other means: this
@@ -122,10 +131,6 @@ protected:
// UPanelWidget
virtual UClass* GetSlotClass() const override;
public:
bool MustPropagateZOrderToSlate = false;
};