Unexpected ShowPopUpDialog Behavior



  • Hi,

    I have a bunch of image buttons where if you right click them a ShowPopUpDialog appears. The problem is it doesn't work on the third image. I'm not sure why since I didn't put any "limit" that it shouldn't work on the third image.

    You can check an illustration of the problem here:
    https://www.dropbox.com/s/13cobewho5uoqpt/c4d255_python_selective_contextual_menu_error.mp4?dl=0

    You can check the illustration file here:
    https://www.dropbox.com/s/2xhmn4ia75f0lit/c4d210_stray_pop_up_dialog02.zip?dl=0

    P.S. The problem may or may not be related to this Remove Stray ShowPopUpDialog. If it is, you can close this one.

    Thank you



  • Hi,

    judging from the video, your popup seems to have some kind of race condition with a native popup menu of Cinema. You can also see it opening on the second element, which is very odd for happening inside a custom dialog. I do not see an obvious reason for this in your code - Message would be the first place to look into. But I also find it a bit hard to read your code due to the lack of documentation and its disregard of PEP8.

    There is also a possible problem in your code, depending on how Cinema places the gadgets - if it places some kind of padding between them. You test in is_position_on_gadget for a hit condition with:

    if not buttonData["x"] < x < buttonData["x"] + buttonData["w"]:
        return False
    if not buttonData["y"] < y < buttonData["y"] + buttonData["h"]:
        return False
    

    When the gadgets are placed like [0, 100], [100, 200] ..., where each bracket group denotes the start and end of a gadget, then you cannot distinguish between two neighbouring elements with your code if I am not overlooking something.

    Probably not very helpful all together, but I am too tired for more right now ;)

    Cheers,
    zipit

    Finding out the



  • @zipit

    Thanks for the response.
    You are right. It should have worked if there is padding between buttons.
    For now, I just chose either buttonData["w"] or buttonData["h"].

    And it works as expected.

    RE: hard to read your code due to the lack of documentation and its disregard of PEP8

    Sorry about that.


Log in to reply