Is it just me or does showing a frame from within a texture's OnEnter cause anyone else's client to crash to desktop if you /reload?
The following XML creates a small dialog frame with a left and right arrow.
- The left arrow is a Button and if I put the mouse over it and /reload it reloads the client for me as expected.
- The right arrow is a Texture and if I put the mouse over it and /reload it reliably 100% crashes to desktop for me. Without the typical crash dialog to type what you're doing and send to Blizzard.
- If I move the mouse off the right arrow, /reload works just fine.
Code:
<Ui>
<Frame name="TestCrashBug" parent="UIParent" inherits="DefaultPanelTemplate">
<Size x="200" y="150"/>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Frames>
<Button parentKey="CloseButton" inherits="UIPanelCloseButtonDefaultAnchors"/>
<!-- if this frame is shown from the TestCrashBug.Texture's OnEnter, /reload will crash the client -->
<!-- but moving the mouse off the frame so this frame is hidden, /reload will not crash the client -->
<!-- (this behavior is the same if this frame has a different parent and no anchor/size/contents)-->
<Frame name="TestCrashBugChild" hidden="true">
<Size x="140" y="40"/>
<Anchors>
<Anchor point="TOP" x="0" y="-32"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString parentKey="Text" inherits="GameFontHighlight" setAllPoints="true"/>
</Layer>
</Layers>
</Frame>
<!-- if I /reload when the mouse is over this, reloads fine -->
<Button parentKey="Button">
<Size x="50" y="50"/>
<Anchors>
<Anchor point="BOTTOMLEFT" x="20" y="16"/>
</Anchors>
<NormalTexture file="Interface\Icons\Misc_ArrowLeft"/>
<Scripts>
<OnEnter>
TestCrashBugChild.Text:SetText("/reload now and it may be fine")
TestCrashBugChild:Show()
</OnEnter>
<OnLeave>
TestCrashBugChild:Hide()
</OnLeave>
</Scripts>
</Button>
</Frames>
<Layers>
<Layer level="ARTWORK">
<!-- if I /reload when mouse is over this, client crashes -->
<Texture parentKey="Texture" file="Interface\Icons\Misc_ArrowRight">
<Size x="50" y="50"/>
<Anchors>
<Anchor point="BOTTOMRIGHT" x="-16" y="16"/>
</Anchors>
<Scripts>
<OnEnter>
TestCrashBugChild.Text:SetText("/reload now and client may crash")
TestCrashBugChild:Show()
</OnEnter>
<OnLeave>
TestCrashBugChild:Hide()
</OnLeave>
</Scripts>
</Texture>
</Layer>
</Layers>
</Frame>
</Ui>
My other WoW machine is currently dedicated for other purposes and can't test on that one for now.