Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.

Due to spam on this forum, all posts now need moderator approval.

 Entire forum ➜ MUSHclient ➜ Bug reports ➜ Occasional drawing bug.

Occasional drawing bug.

It is now over 60 days since the last post. This thread is closed.     Refresh page


Posted by Worstje   Netherlands  (899 posts)  Bio
Date Sun 19 Oct 2008 02:45 PM (UTC)
Message
I have only noticed this bug since TextRectangle() being added, after the 'drawing a line too much' bug was fixed. It seems like a strange off-by-one-pixel kind of error which only happens when using PageUp and PageDown.

I press PageUp once, and the bottom (last received) line disappears. Upon close inspection, it looks as if the second-to-last line dropped exactly one pixel. I press PageUp again, it drops one pixel more. Etc etc.

I can see the effect very well by keeping PageUp pressed, since the last line will fall away, and everything will slowly converge to the bottom-most position again. Once the second-to-last line would start to clip beneath the bottom (like the previous last line had) that too will fall away, and the line will fall away again.

Basically, the drawing code somewhere fails to properly calculate what line properly falls into view, which manages to manifest due to the pageup/pagedown keys not scrolling a precise page/using a different method to actually scroll than using a mousewheel or the scrollbarARROWS. Dragging the thumbnail or clicking in the empty space above or below the thumb will also show it, including the saw-effect described above if you keep it clicked down.

I can provide a few screenshots if needed, but they don't really saw much on themselves.
Top

Posted by Nick Gammon   Australia  (23,169 posts)  Bio   Forum Administrator
Date Reply #1 on Sun 19 Oct 2008 08:58 PM (UTC)
Message
Whilst I can believe that the drawing routine might miscalculate the number of lines on some edge condition based on the exact size of the drawing rectangle, the font size, and the pixel offset, so far I haven't reproduced it drawing a partial line.

Basically the calculation in question works out how many lines to draw, not pixels. Once it is committed to drawing a line, it should appear in full. I no longer use clipping rectangles (or don't think I do), so the text should not be clipped.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Worstje   Netherlands  (899 posts)  Bio
Date Reply #2 on Mon 20 Oct 2008 04:30 AM (UTC)
Message
It isn't being clipped at all, Nick. The problem is that all lines shift up or down a pixel per pageup/pagedown. Once shifted compared to a 'default' position, the last visible lime disappears completely, leaving a strange gap at the bottom. I'll see if I can get my hands on some screenrecording software later today so the problem becomes more clear.
Top

Posted by Nick Gammon   Australia  (23,169 posts)  Bio   Forum Administrator
Date Reply #3 on Mon 20 Oct 2008 05:53 AM (UTC)
Message
Ah I see, I misunderstood slightly. To help me reproduce it, can you give me the dimensions of the rectangle you are using, the number of pixels offset as defined in the output configuration, and the font and size you are using?

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


10,576 views.

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.