• Andrew Hodgkinson's avatar
    Very long log entry alert - but hey, beats 'Bug fixed' (sorry, Richard) ;-) · 532155bd
    Andrew Hodgkinson authored
    Open URL implementation more or less complete, though may undergo UI
    revision at a later date to allow named frames to be targetted. Hope to use
    the ideas in this code as the foundation for other general dialogues.
    
    In token stream dump for TRACE builds, table head items were not indented
    as far as they should have been - this is fixed; and manual toolbar redraw
    routines have been removed. They never worked, were commented out, and
    would never be used in that form anyway.
    
    DragBox source added, but it isn't at all complete and won't work - this is
    an 'in spare time' thing. We need custom drag boxes constrained to windows
    for the hotlist, and unconstrained for frame border resizing... Hey ho.
    
    Ancestor window extents match visible areas if there are frames (no more
    scrolling framesets...!). Frame resizing works whilst new documents fetch
    without pulling the extent down now. However, frame horizontal extents
    never shrink until a reload which is nasty, and this is all due for a
    rewrite. Frames border redrawing routine moved out of Redraw.c and into
    Frames.c. Bug regarding the mouse rectangle and frame border widths
    (rectangle was too large, so you could squash the edges) for edge-drag
    frame resizes fixed.
    
    Window width change reformat tolerance fixed; you could creep the window
    width down or up forever without any reformat, and centred objects would
    move but not be redrawn (thereby giving rise to subsequent redraw errors).
    
    Filetype on objects saved through Shift+Click correct. Save Source dialogue
    recognises if that source is plain text, rather than assuming HTML. A
    browser that fetches a file remembers the old store size it had before the
    save, so even though the data is now ditched, it reports the same amount of
    data fetched afterwards (looked awful when this could, for example,
    suddenly say '0' after a file save). Progress indicator is now fully aware
    of one or many file saves inside a frameset and reports the number of
    saves, a colon, and the cumulative saved data count, instead of reporting
    the sum total of fetched data in all frames, including non-file save stuff
    (note that for just 1 save, '1:' is not shown as a special case for the
    most common condition). A bug related to this, where you could in fact only
    do one fetch per frame*set*, has been corrected (only one fetch allowed per
    frame still, this is unlikely to ever change).
    
    Hotlist support added (D.Brown's source), with various bits of integration
    and modification still in progress there. Note additions to the Messages
    files. On the subject of Messages, the whole mucky business about what
    goes in Messages or Choices (and a few bugs where lookup_choice was used
    instead of lookup_token or vice versa) has been sorted out. Messages
    contains, more or less, just that. Choices contains user configurable
    stuff which generally can't mess things up too badly. A new file, Controls,
    is a Messages file holding the non-user configurable choices, which can
    generally make things go badly wrong if misused. A lot of these are tied
    to the Res file. StrongED users can get these to automatically fold out
    the various sections (EMail me for details). Sorry, but at the time of
    writing, Zap doesn't do folding... =8*P
    
    Two bugs with images. Asking for images to be shown in browser B when
    browser A uses the same ones and was loaded first didn't work correctly,
    and now does (a bit weird - browser A does the fetch and browser B does the
    display...). Second one occurred when the background image was also used on
    the page as a foreground image. This has been fixed by flagging background
    images in the image_info structure, and checking this before cross
    referencing. This bit also allowed the image_restart_fetches API to be
    extended, so that just background or foreground images may be fetched if
    they weren't already and the user asked the browser to show them. Before,
    the whole lot had to be fetched together (so turning on 'display
    backgrounds' will now kick off an image fetch if required, you don't
    need to reload the page anymore).
    
    Makefile copy options tweaked to be 'newer' (so if you're testing with some
    temporary Choices file or something, it won't write over it at the end of
    every export), and REMOTE_HOTLIST flag added for Customer builds - means
    the Hotlist.c functions aren't needed; the old, hotlist-by-file method is
    used. Added support for Customer build (see later), though there were very
    few additions needed in practice.
    
    Table printing fixed - in many ways it wasn't broken, it was image printing
    causing the oddities ever since the global image pool was introduced (this
    is, again, fixed). The 'reformat to fit page' option didn't work as coded
    any more; tables store cell addresses in the HStreams, so you can't then do
    a background reformat in a different browser. Hence, it now has to reformat
    to the page width, print, then put the page back again, all in the actual
    displayed browser. This doesn't feel as slow in use as it perhaps should,
    considering what is going on... Note that a line of a defined fraction (see
    Print.h) of page height will now split over page boundaries, so tall images
    or tall tables don't cause problems now (aside from the obvious problem of
    having the line split over a page at all!). There was a bug in the routine
    to print from a given start point until 'n' pages had been filled, in that
    it always filled 'n + 1' - now fixed. Finally, as part of the printing
    tweaks, a new dialogue exists - PrintStyle - with a similarly named source
    file added to deal with it.
    
    Global history auto save / load done, but only to the Choices file path -
    the whole browser is still strictly single user at present, with all the
    extra work for a multiuser Customer environment yet to be done. This has
    shown up a global history corruption problem which I haven't fixed yet.
    
    Rationalising TBEvents.h - things are migrating out of it, and into more
    appropriate sources (e.g. definitions relating to the Open URL dialogue are
    going into OpenURL.h, etc.). Event codes were at one stage deliberately
    diverged in numberspace from the component IDs of typical gadgets raising
    the events, to avoid anyone getting confused and thinking the IDs and event
    codes must match. However, this is in fact unlikely and it is much easier
    to remember the fewer numbers that result from tying the two together where
    possible. This has resulted in changes to event codes raised in the
    following objects of all Res files: Authorise, Find, OpenURL, and
    PrintStyle.
    
    And finally - !Run[D] files for all variants updated to require the latest
    toolbox and fetcher modules. All Res files updated for hotlists etc. and
    sprites files updated appropriately. All Messages, Choices and Controls
    files brought in sync., and an Customer build has been added (based on the
    Desktop build binary with different resources).
    
    That's all for now...
    532155bd
!RunD,feb 3.8 KB