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 <[email protected]
> <mailto:[email protected]>> wrote:
>
> Hi Clint,
>
> On 11/10/2016 08:42 PM, Jeffery, Clint ([email protected]
> <mailto:[email protected]>) 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 -- [email protected] <mailto:[email protected]>
> 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
> [email protected]
> <mailto:[email protected]>
> 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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/unicon-group