Controls below other Frames accepting Input #391

  • New
  • Defect
Assigned to nevcairiel
  • tDandruff created this issue Jul 16, 2016

    What steps will reproduce the problem?

    When you create two config frames and one is over the other, you can "click through" the top frame and interact with the bottom frame.

    What is the expected output? What do you see instead?

    Each control should check to see if they are "Topmost" in the registered frame stack before accepting input. Not accepting input if they are below another frame that is above that specific control.

    Please provide any additional information below.

    I understand this may be difficult to implement with all frames, but as far as AceConfigDialog frames are concerned, it should be easy to know which frame is on top and therefore the only one that should accept click events.

  • tDandruff added the tags New Defect Jul 16, 2016
  • nevcairiel posted a comment Jul 17, 2016

    I just tested this and cannot reproduce any issues with default AceGUI frames. Created two with widgets on them, moved them to overlap, and the top frame properly blocks any input from reaching the bottom one.

  • tDandruff posted a comment Jul 17, 2016

    Here is a small example of how I am using it:

    I overlayed those two frames like this:

    This could very well just be how I am using it, but I thought I would report just incase this is really an issue.

  • nevcairiel posted a comment Jul 18, 2016

    I tried with your exact snippet and the slider from the bottom frame is not interactable through the top frame.

  • tDandruff posted a comment Jul 18, 2016

    @Nevcairiel: Go

    Sorry, a couple more specifics:

    • Testing on Live (6.2.4), don't know if 7.0.3 affects this issue.
    • Using the following libraries from "r1151" (loaded in this order):
      • LibStub
      • CallbackHandler-1.0
      • AceGUI-3.0
      • AceConfig-3.0
    • Using the same script from above (loaded after the libraries)
    • Made sure No other AddOns were enabled.

    Follow these steps:

    1. Offset the top frame over the bottom (move to top/left corner, until the bottom frame's range width is in a lot of open space)
    2. On first interaction, you can manipulate the bottom control through the top. (But just once)
    3. On second interaction, it doesn't accept input :O! It seems to be working now, but...
    4. In order to get the bug to happen again, click the bottom/right frame bringing it forward, then click on the top/left frame bringing it to the foreground again.
    5. Now you can interact with the back frame as many times as you want.

    Here is a video of the bug happening after following those steps:

    Let me know if there is anything else you need to reproduce the bug.

To post a comment, please login or register a new account.