> On Jan 12, 2017, at 3:49 PM, Alan W. Irwin <ir...@beluga.phys.uvic.ca> wrote:
> 
>> On 2017-01-12 16:17-0000 Phil Rosenberg wrote:
>> 
>> I think I've found the issue with clearing the page when using plreplot.
>> Basically the issue is that the driver bop function is not being
>> called, because at the point of replaying the buffer, the stream is
>> already at the beginning of page. This means that the driver does not
>> clear the page.
>> 
>> There is a line in plFlushBuffer() which calls plP_eop() to avoid
>> exactly this behaviour, however it is commented out. Using git blame I
>> found the commit that commented the line out
>> 
>> commit 5867959e87e64e08ed2ed57bc66a3cfa6e22450f
>> Author: Jim Dishaw <j...@dishaw.org>
>> Date:   Mon Jun 15 12:10:04 2015 -0400
>>   Fix to the multiple keypress bug on page advance
>>   - The "wait for user input" is not part of an EOP.
>>     -- A new function plP_wait() was created
>>     -- plP_wait() calls were added next to plP_eop() calls to generate
>>        a wait (if specified by nopause) after an EOP event
>>   - The plot buffer was modified to insert an EOP into the buffer
>>     -- No wait is inserted into the plot buffer because the plot buffer
>>        only regenerates plots
>>   - A new entry was added to the PLDispatchTable for the wait function
>>     -- The table initialization sets all function pointers to NULL via
>>        a memset
>>     -- If a driver does not specify a wait function, either it is not
>>        needed (e.g. the ps driver) or it is part of the EOP handler
>>        (legacy behavior)
>>   - The following drivers were modified to support the new
>> implementation: cairo, qt, tkwin, and xwin.  The wingcc update will be
>> in a seperate fix.
>> 
>> It's not entirely clear from the message, however it looks to me like
>> this line was commented out to avoid odd behaviour when nopause was
>> specified, but then Jim has fixed that issue in a different way and
>> then perhaps forgotten to uncomment this line???
>> 
>> Jim, I know it's a long time ago when we were fixing the buffer, I
>> don't suppose you have any memories of this? I have some vague ones
>> but nothing concrete.
>> 
>> Basically I'd like to put that line back for the upcoming release
>> because I have code that is using plreplot that is currently broken
>> because of this issue. I don't know what anyone thinks of that or what
>> anyone thinks is an appropriate set of tests to do to ensure there
>> isn't any odd side effects.
> 
> To Phil and Jim:
> 
> It would be great if Jim responded, but in addition this change was
> thoroughly discussed at the time.  To refresh your memories of that discussion
> both of you should look at the June 2015 plplot-devel mailing list threads
> entitled "The multiple keypress problem when using interactive
> drivers" and (especially) "Bug fix to plbuf.c".
> 
> I have just re-read those threads myself, and although I don't follow
> all the technical issues it looks like Phil agreed at that time this
> was a complex issue that Jim was facing.  Ultimately with Phil's and
> my encouragement Jim pushed his solution 2 (which he classified as the
> more elegant one).
> 
> That solution did require further device driver work for some of the
> the interactive devices.  Jim supplied those changes for wingcc,
> cairo, qt, xwin, and tkwin, but the implication was Phil would have to
> appropriately modify the wxwidgets driver (or wxPLViewer?) himself.
> 
> @Phil: Is the wxwidgets issue you have recently discovered simply because you
> never followed up with that required change?
> 

This is one of those whack-a-mole bugs and the correct fixed required some 
changes in the driver, as Alan pointed out.  At the time I didn't make changes 
to the wxwidgets driver because it was being reworked at the time.

The change for the driver entails implementing a wait for user input function, 
that is called by the plP_wait() function. 

> Alan
> __________________________
> Alan W. Irwin
> 
> Astronomical research affiliation with Department of Physics and Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
> 
> Programming affiliations with the FreeEOS equation-of-state
> implementation for stellar interiors (freeeos.sf.net); the Time
> Ephemerides project (timeephem.sf.net); PLplot scientific plotting
> software package (plplot.sf.net); the libLASi project
> (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
> and the Linux Brochure Project (lbproject.sf.net).
> __________________________
> 
> Linux-powered Science
> __________________________


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to