FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Lasso-ing in WxAgg causes flickering of the entire figure · Issue #4968 · matplotlib/matplotlib · GitHub

Repository navigation

Lasso-ing in WxAgg causes flickering of the entire figure #4968

Closed

Description

I am using the older Wx, not the new Wx-Phoenix. I'll see if one of our packaged examples demonstrates this.

Activity

  1. tacaswell commented on Aug 20, 2015

    Member

    This is probably related to the auto-redraw 😞

    Are you using it with or with out blitting?

  2. WeatherGod commented on Aug 20, 2015

    MemberAuthor

    Looks like useblit=True for this one.

  3. tacaswell commented on Aug 20, 2015

    Member

    That is better that what the qt4 backend is doing for me, no flicker, but also no line!

  4. WeatherGod commented on Aug 20, 2015

    MemberAuthor

    really? I must have forgotten to try lassoing on that backend. I tested gtkagg and tkagg as well.

  5. tacaswell commented on Aug 20, 2015

    Member

    Things are way broken on master with the lasso example we ship, draw is getting spammed like mad.

  6. WeatherGod commented on Aug 20, 2015

    MemberAuthor

    Lasso is just one example. I just noticed that using a timer to "page" through multiple frames of data (not an animation, so no blitting), is also causing flickering, although not nearly to the same amount as the lasso. I think I might have a few draw()'s in the code because draw_idle()'s weren't working. Maybe the Wx rework changed some of the old behaviors?

  7. WeatherGod commented on Aug 20, 2015

    MemberAuthor

    Removal of a polygon takes a few seconds before it finally disappears.

  8. tacaswell commented on Aug 20, 2015

    Member

    At least on Qt the issue I am seeing is fixed by the two Qt patches from @jrevans (#4943 & #4944).

    attn @pwuertz

  9. tacaswell commented on Aug 20, 2015

    Member

    as a side note, for testing I just threw a print statement in Axes.draw to see how often it was getting hit.

  10. pwuertz commented on Aug 20, 2015

    Contributor

    I think I just figured out how the rubberband/lasso tool is implemented. It's extremely fragile:

    • It is not drawn in the blit-path in paintEvent at all
    • It is never cleared by event handling, currently it is cleared directly after the first paintEvent

    This causes the lasso to disappear if there is any additional paintEvent between paintEvents that originated from lasso mouse move events. Also, the lasso stays on screen if the first paintEvent call from Qt happens after the zoomed draw request when the mouse is released. I'll propose a fix to that in #4962.

  11. pwuertz commented on Aug 20, 2015

    Contributor

    I'm seeing no lasso flicker for the normal qt gui by the way, are you talking about the ion() mode? For this there is a pretty good explanation. Those draw_idle() callbacks we talked about are causing additional paintEvents the current lasso implementation cannot cope with. The PR from @jrevans with the old draw_idle() implementation hides this problem because it discards the callbacks.

  12. modified the milestones: , on Aug 30, 2015
  13. tacaswell commented on Aug 30, 2015

    Member

    @WeatherGod Can you still reproduce this? Do we need to call in Robin?

  14. modified the milestones: , on Oct 29, 2015
  15. added a commit that references this issue on Oct 29, 2015
    a8d8877
  16. modified the milestones: , on Oct 29, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL