- 16 Oct, 1997 1 commit
-
-
Andrew Hodgkinson authored
Now handles PARAM tags. Sorted out Plug-In bug that was related to Java setting a 0 by 0 graphics window before calling Wimp_Poll (fixed in Java). Implemented queue for Plug-Ins so multiple broadcasts aren't sent for several Objects in one data chunk. Added Docs directory with some documentation in it. More things to keep checking for stylistic consistency, horray ;-) Corrected !Run[D] for Ursula build to need AcornURI but not TaskModule (URI handler needed for !Mail to pick up mailto: links). Added display_height field to browser_data, analogous to display_width, to cope with % sized objects by width and height (see how HRs are handled in Redraw.c for an example of how it was always fairly easy with width, but not height until this addition). Though you do have to reload to get a new size; reformat isn't enough. Must see to this some time... Fixed bug where basic typefaces were claimed *before* the Choices file had been read. For unusual Choices settings, this could create some 'interesting' problems now and again. This was part of narrower scope work in the Choices code to allow font changing without leaking font handles (now done; fm_shutdown only ditches fonts, it keeps internal structures - must then call fm_lose_fonts for all browsers to get the bitfields up to date, then rewrite the typeface definitions and reclaim basic fonts). Noticed that fm_claim_basic_typefaces would claim multiple instances of the same font if there were several cases of the same font mapped to different typeface styles - fixed. Implemented PlugInControl settings, but not SupportObject (fully).
-
- 22 Sep, 1997 1 commit
-
-
Andrew Hodgkinson authored
Now working on source merged with Kevin Bracey's internationalisation support. UNIFONT is undefined in the Make File for now. All Res and Choices files updated appropriately. Having sorted out the old Choices and Messages to form Choices, Controls and Messages, this build has had the same cleaning up done internally. This includes greater consistency in naming schemes and the removal of the inconsitent choices items - e.g. Choices file entries saying 'delay images' and 'plain backgrounds' where internally all the flags say 'show images' and 'show backgrounds'. ChoiceDefs.h and CtrlDefs.h added to clarify the meaning of some fields, though usage of these is not 100% in the source (there are cases where parameters are passed through to functions as ints, and those functions still check these against hard coded values rather than the #define stuff). Fetcher status return bits (connected, sent request, etc.) now reflected in status bar. Progress during fetchs to files are reported by %, where the size of the object is known. Exceeding 100% drops back to a byte counter, in case the estimated size was wrong. The progress counter may be updated after specific delays, rather than 'as often as possible', to reduce flicker (as requested by D.Brown some time ago). I've done a small rewrite of the fetch prioritisation scheme in FetchPage.c; how well this performs in general use across different processor speeds remains to be tested, but certainly it has some advantages. For each small fetch window before the rewrite, a 4cs tight loop was entered - this gave a noticable and substantial drain to the Desktop performance if more than one was opened. Now, several can be up at once with little hit. The actual file fetch is on half the priority it was before, with all others taken back just a bit - e.g. from 20cs per poll to 15cs per poll for flat out reformatting. You don't seem to lose much time on the format in practice, and the Desktop feels quite a bit lighter at the same time. There's the potential for smoother frameset loading in this scheme, too. When Shift+Clicking on a link meant you still fetched inside the main browser window, several fetches could occur in a frameset - one per frame. However, now that you can only do this by clicking on a link that leads to non-displayable data - or by turning off the small fetch windows by setting UseSmall to 'no' in Choices - a bug where fetchpage_preprocessed would stop such fetches as new ones were started was revealed. The API to frames_abort_fetching has now been extended to include a 'stop file spooling too' flag, allowing a fix to be made by having fetchpage_preprocess's calls not set this (and it doesn't check the savelink flag is unset before proceeding, since frames_abort_fetching does that implicitly now). Had left the RAM transfer buffer at 16 bytes (from testing) accidentally... Oops. Upped it to 4K. In addition, when loading data by RAM transfer, the browser didn't notice if a RAMFetch bounced during the transfer. It would be treated as a 'first' RAMFetch bounce, basically, and try to go to file transfer - oops. Fixed.
-
- 28 Aug, 1997 1 commit
-
-
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...
-
- 18 Aug, 1997 1 commit
-
-
Andrew Hodgkinson authored
-
- 12 Aug, 1997 1 commit
-
-
Andrew Hodgkinson authored
Quite a few general source changes throughout many files to sort out swapped toolbars. There will be more work on this shortly. svcprint.c has been modified to allow it to output to a file in PipeFS, so TML-less machines can still use the standard browser debug routines (albeit in a less than elegant fashion). Comments in that source file give more details. Plus a few more bug fixes.
-
- 08 Aug, 1997 1 commit
-
-
Andrew Hodgkinson authored
(adding up to a greater whole), which include removal of the dastardly 'invalid image number' errors that trace builds would raise from time to time. Frame highlights are now better controlled (releaseably so). Generally, this build represents the first genuinely promising version of the browser for quite some time, despite the known library problems with comment handling etc.
-
- 05 Aug, 1997 1 commit
-
-
Andrew Hodgkinson authored
Fixed problems with unsourced images in tables and a couple of other bugs here and there - nothing earth shattering... Just wanted to keep the CVS source up to date.
-
- 18 Jul, 1997 1 commit
-
-
Ben Laughton authored
-