Good morning all, I have just run another test in which I simply doubled up the Wattrib(). Even though, it still occasionally will exhibit the problem, it stabilises fairly quickly (less than 1 sec). On some occasions, the display will have the starting size and on other occasions it will have the finishing size (when the problem exhibits itself).
I still only get the problem if the movement is a quick flick and release, so I don't know why there would be a difference between Steve's system 64 Centos 7 and mine 32 Centos 6.7. Unless, it is related to the fact that my system is much slower overall. I will try a test later today with seeing what events are seen in the unicon program. There may be some obvious problem when this is analysed. If I find anything, I'll get back to the list. regards Bruce Rennie On 12/11/16 05:04, Jafar Al-Gharaibeh wrote: > Just like what Clint described, I get long pauses because competing > pending/resize calls. Sometimes I have to wait many seconds before I > get back the control. Here is what I did to overcome this issue: > > procedure main() > w := open("resize", "g", "size=400,400", "resize=on") > width := 400 > repeat { > count := 0 > while Pending(w) & Event(w) & ((count +:= 1) < 10) # do events > in chunks, and limit to 10 at a time > x := WAttrib(w, "width") > if (width ~= x) then{ > width := x > WAttrib(w, "size=" || x || "," || x) > WFlush(w) > } > } > close(w) > end > > This runs a lot smoother for me, but it it has the same flaw as > before, the size doesn't change in a predictable way. The resize works > sometimes, but other times I have to click the canvas or do a drag > event on the canvas to make it work afterward. It is like the window > attributes are out of sync with X windows, even though I tried > flush/sync/raise while I was debugging this. > > Cheers, > Jafar > > > On Fri, Nov 11, 2016 at 9:34 AM, Steve Wampler <swamp...@noao.edu > <mailto:swamp...@noao.edu>> wrote: > > Hi Clint, > > On 11/10/2016 08:42 PM, Jeffery, Clint (jeffe...@uidaho.edu > <mailto:jeffe...@uidaho.edu>) wrote: > > Your program issuing a resize request for every resize event > seems to be tickling a pathology of some sort. If you start > > dragging real slow, it seems to work (at least on my machine) > but then goes bonkers. Its an infinite loop, since > > Pending() never fails. But my sense is that after it falls > behind a certain amount, resize events and resize requests > > form their own feedback loop. It is either that or some kind of > competition between the window system and the > > application, as to who is processing input events, and which > window retains the focus. It is like: we are having to > > repaint the window so many times, the window system isn't able > to continue the drag/resize operation at speed any more. > > Interestingly enough, I can't reproduce the behavior you get > running on my machine. See my response to Bruce for the > behavior I see. I take it from what you describe that there's not > a single thread for executing window actions so they > are forced to execute sequentially > > > Feel free to contribute improvements to the C code for handling > window resizes. It tries pretty hard to do things like > > suppress adjacent resizes to avoid falling behind, but maybe > your explicitly resizing in the middle of that defeats the > > code that is there. > > I have a feeling that this is non-trivial, as I expect it does > mean rewriting the window code so low-level window > actions are performed sequentially. Given that I haven't written > any meaningful C code in over 25 years, I'm pretty > sure I'm the wrong person to tackle this! > > Incidentally, I've modified the original code (named by the author > as 'rosetta_clock.icn' as he wrote it for > the RosettaCode site) to get around the problem I was having. > After resizing, if the window isn't square, then > a simple mouse click in the window will square it up. > > -Steve > -- > Steve Wampler -- swamp...@noao.edu <mailto:swamp...@noao.edu> > The gods that smiled on your birth are now laughing out loud. > > > ------------------------------------------------------------------------------ > 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 > _______________________________________________ > Unicon-group mailing list > Unicon-group@lists.sourceforge.net > <mailto:Unicon-group@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/unicon-group > <https://lists.sourceforge.net/lists/listinfo/unicon-group> > > > > > ------------------------------------------------------------------------------ > 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 > > > _______________________________________________ > Unicon-group mailing list > Unicon-group@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/unicon-group ------------------------------------------------------------------------------ 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 _______________________________________________ Unicon-group mailing list Unicon-group@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/unicon-group