Summer of Code II: Code Harder

Hey look, I’m on Planet AbiSource. If you’re the type of person or poorly programed bot who clicks every link they see, you now have a slightly higher chance of endless recursion. Huzzah.

It’s been slow going recently; there were thunderstorms all last week. In between frantically unplugging every electronic device in the house and being bored listening to thunder and watching the lights flicker, I spent a lot of time using GDB looking for the source of a mysterious drawing glitch which turned out to be the margin of the first column drawing over all the other pages. Whoops. My debug-fu is still somewhat weak.

Here is le current running changelog for the past week or so, which is accompanied by rather meager source edits. (I hate it when that happens.)

  • Smooth scrolling is disabled with multiple pages due to jerkiness.
    • It also fixes an auto-page-tiling bug, which I didn’t actually know existed until I was seconds away from tweaking the line of code which corrected it. Convenient!
  • Multiple horizontal pages should only show in VIEW_PRINT
  • Margins now draw correctly, not over other pages. (I’m an idiot; took way, way too long to figure that out)
  • Made FL_DocLayout::getHeight() slightly easier to read; the output is identical.
  • Page height fixed. Again. No, seriously, it works this time. I think.

Stuff I need to fix:

  • Scrolling is really messed up when in single page mode; it’s all jerky and slow. I suppose I brought this upon myself by running all the multipage algorithms with “1” as the number of horizontal pages, but I didn’t expect this huge of a slowdown. It popped up in my last SVN submission, so I should probably backtrack and see if there’s yet another obvious thing I missed.
  • Scrolling is funky. Stuff just isn’t being drawn consistanly when you scroll up or down. Figuring this out is a rather high priority right now.
  • The cursor jumps up a page when you use the up arrow key. IIRC what my mentor said, this is apparently being caused by a preexisting bug. The easy fix is to just duplicate the functionality of a particular function I’m calling. I don’t much like this solution, but it’ll work for now.
  • No text is drawn on the 3rd+ rows. It’s like this in all AbiWord builds, so while I’d like to fix it, I’m not going to sweat it too much if I don’t locate the cause before things end.
  • The pretty blue selection rectangle is not being shown on second+ row of pages, and on random letters on the first row.
  • Auto page tiling doesn’t update until _draw(…). This can be an issue as when the zoom is changed, the tiling doesn’t update.
  • Now that the page is approaching being drawn properly, the top ruler is starting to look tempting. I was overjoyed to discover that the left ruler requires no modification at all; I leave rulers turned off pretty much all the time. I wonder how much code is
  • Left to right tiling. I haven’t actually explicitly coded anything which sets this up (following the popular “get basic functionality first” philosophy), but it’s been in the back of my mind while I’ve been coding. I don’t anticipate having a really hard time with this
  • After that, interface stuff to actually use this feature. Then it’s over? Wow.

In conclusion, I have now drifted into Honolulu, lost all productivity, and should seriously consider sleeping. James out.

Advertisements

1 Response to “Summer of Code II: Code Harder”


  1. 1 Elijah Lofgren July 19, 2008 at 10:11 am

    Sounds like you’re continuing to make progress. Keep pressing on!

    I just found out yesterday that I wasn’t doing enough security checks in my image service web app. I hadn’t thought of limiting URL length as a guard against possible buffer overflows. Oops! Live and learn. I guess. I just need to learn to take these things in stride better. 😉


Comments are currently closed.



RSS Status

  • An error has occurred; the feed is probably down. Try again later.

Del.icio.us

Creative Commons License
This stuff is licensed under a Creative Commons License.

%d bloggers like this: