Commit Graph

880 Commits

Author SHA1 Message Date
Chris Young
098fbb628b Move some init functions together for the sake of clarity 2014-11-10 19:01:30 +00:00
Chris Young
225161b05e Move MIME cleanup before NetSurf's internal exit. 2014-11-10 18:58:58 +00:00
Chris Young
16e80452c2 Remove gui_init and merge the contents into main() 2014-11-10 18:57:38 +00:00
Chris Young
7bf92f6a04 Remove die()
Terminating execution abruptly on AmigaOS is dangerous.
2014-11-10 18:56:09 +00:00
Chris Young
e0833a7f2e Fix warnings 2014-11-09 01:10:52 +00:00
Chris Young
4329c7a328 Terminate execution if an essential library fails to open 2014-11-09 00:06:56 +00:00
Chris Young
c2eb205685 Open libraries *before* we need them... 2014-11-09 00:06:56 +00:00
Chris Young
3c1aeebb1e Fix headers 2014-11-09 00:06:55 +00:00
Chris Young
9601ddacad Add new libs file to centrally open/close required libraries, and move a couple of the existing manual opens to it. 2014-11-09 00:06:55 +00:00
Vincent Sanders
c14ddad660 change url setting api to take an nsurl instead of a text string 2014-11-02 22:30:45 +00:00
Vincent Sanders
c31c4babe1 Change contextual content retrieval to browser features.
Update the API which allows frontends to acquire the page features
(images, link urls or form elements) present at the given coordinates
within a browser window.

By making this an explicit browser_window API and using the browser.h
header for the associated data structure with a more appropriate API
naming the usage is much more obvious and contained.

Additionally the link url is now passed around as a nsurl stopping it
being converted from nsurl to text and back again several times.
2014-11-02 15:46:42 +00:00
Chris Young
c3522ea747 Change min stack (again) to 128K
It has come to my attention that some websites (eg amigakit.com) are using marginally more than the 96K stack space set previously.  This should give plenty of breathing space.
2014-10-30 21:51:52 +00:00
Vincent Sanders
7ace528729 Update url setting API to return nserror code instead of calling warn_user 2014-10-29 00:18:12 +00:00
Chris Young
29dfdd459d Move scroller check into update_extent, where it makes more sense 2014-10-26 22:22:15 +00:00
Chris Young
bad7780378 Check scroller requirements as part of the reformat. 2014-10-26 21:30:19 +00:00
Chris Young
784d893eb7 Avoid a crash on exit in kiosk mode 2014-10-26 17:08:23 +00:00
Chris Young
36a3e58c06 Expand status bar to entire window width 2014-10-26 17:00:18 +00:00
Chris Young
340d74ae4f Make the new hscroller work properly 2014-10-26 16:42:00 +00:00
Chris Young
80b195cdd5 Move the hscrollbar inside the window 2014-10-26 16:35:05 +00:00
Chris Young
17b87a60cf Offset new windows as per style guide 2014-10-26 16:12:34 +00:00
Chris Young
0c77d85f89 Make window counting a generic function 2014-10-26 15:41:44 +00:00
Chris Young
b751513d6f Schedule redraws for 1cs to ensure they take place after reformats (which are scheduled by the core for 0cs) 2014-10-26 13:22:02 +00:00
Chris Young
a01cb0f635 Don't need redraw_scheduld as the scheduler stops it being scheduled twice anyway 2014-10-26 13:18:19 +00:00
Chris Young
69c7b6b1f5 Fix button update, avoid forward decl 2014-10-26 13:11:05 +00:00
Chris Young
49873c8bf3 Cache size gadget width 2014-10-25 20:17:33 +01:00
Chris Young
d89f654fbe Correct comment 2014-10-25 20:08:56 +01:00
Chris Young
a2e999584c Use the correct size gadget width (thx tboeckel) 2014-10-25 20:07:58 +01:00
Chris Young
41b08da31a Check scroller requirement after a resize 2014-10-25 20:03:14 +01:00
Chris Young
b2ff4877e4 Remove the vertical scroll bar if there's nothing to scroll 2014-10-25 19:59:11 +01:00
Chris Young
7e95b7ffb1 Remove some old VertProp tags 2014-10-25 19:29:51 +01:00
Chris Young
b7b4db8520 Merge branch 'chris/shorter-vscrollbar'
Move the vertical scroller into the window area and allow it to be removed when eg. framesets are being displayed.
2014-10-25 19:27:40 +01:00
Chris Young
d31aa9a959 Use more sensible default value for size gadget width 2014-10-25 19:24:58 +01:00
Chris Young
fa7d44702a Fix warnings 2014-10-25 16:22:28 +01:00
Chris Young
2ad41a78c4 Returns bool, not void 2014-10-25 15:52:10 +01:00
Chris Young
8d930afb3d Reduce code duplication 2014-10-25 15:49:42 +01:00
Chris Young
088c03a9b7 Reformat page after scrollbar add/remove 2014-10-25 15:47:05 +01:00
Chris Young
e22273c0ff Remove scrollbar for framesets too 2014-10-25 15:38:57 +01:00
Chris Young
8590780ff5 Avoid forward decl, add comments 2014-10-25 15:29:12 +01:00
Chris Young
90e6cf85b6 Toggle vscroll on/off as needed 2014-10-25 15:23:31 +01:00
Chris Young
f5d866ab70 Rename OID_VSCROLL to GID_VSCROLL and ensure it exists before referencing 2014-10-25 15:08:04 +01:00
Chris Young
6034e69ad1 Creat ehte kiosk window similar to the normal one 2014-10-25 14:41:10 +01:00
Chris Young
78a8f1d967 Remove TODO: LM_REMOVECHILD disposes the objects already. 2014-10-25 14:30:17 +01:00
Chris Young
f787b22594 Add a TODO, don't break kiosk window 2014-10-25 13:29:10 +01:00
Chris Young
f9ed0af8d8 Remove built-in window scrollbar and replace with a scroller.gadget.
The style does not match the window border so looks a bit odd.
2014-10-25 13:17:49 +01:00
Michael Drake
94f32b8369 Move create_form_select_menu to window gui table. 2014-10-24 20:45:21 +01:00
Chris Young
7cfec69700 Ensure the throbber is stopped when destroying a gui_window. Fixes 2205. 2014-10-23 18:48:31 +01:00
Vincent Sanders
56a5ad11f3 remove unecessary include of browser.h in amiga frontend 2014-10-17 23:18:58 +01:00
Vincent Sanders
0b64df140c Update amiga frontend for split operation table header changes 2014-10-16 22:33:44 +01:00
Vincent Sanders
30f118a86d remove unecessary css includes from fronetends 2014-10-13 15:45:51 +01:00
Vincent Sanders
02bbaa3e88 split version info into its own header and remove unnecessary nesurf.h includes
The netsurf.h header should *only* contain the registration, core
initialisation and finalisation methods. Version information is best
placed in its own header.

Also remove any unneeded inclusion of this header limiting it to
solely the places the relevant API is required.
2014-10-13 15:08:16 +01:00
Vincent Sanders
265f63e679 remove use of deprecated netsurf_quit variable
The core no longer needs to run the event polling loop as fetches are now
scheduler driven. This is part of a series which will ultimately remove
netsurf_poll callback altogether.

The Amiga maintainer probably wants to look at moving the ami_quit
signalling inside ami_handle_msg() to further reduce overhead.
2014-10-12 10:05:01 +01:00
Chris Young
e994704d5c void function 2014-09-20 13:44:28 +01:00
Chris Young
1b2225ea07 Move log init so it starts earlier 2014-09-20 13:38:38 +01:00
Chris Young
9e6b0fb8b0 Adjust min stack to 96K following evaluation. 2014-09-07 14:09:11 +01:00
Chris Young
93d7cf59ff Reduce stack back down to 64K 2014-09-02 18:58:28 +01:00
Chris Young
5b815861f3 Ensure the favicon updates correctly when we close a tab 2014-08-25 20:20:16 +01:00
Chris Young
2353790a45 Reduce minimum stack to 128K.
This should make it easier to see if bug#2177 is fully resolved.
2014-08-03 12:24:08 +01:00
Chris Young
989e82544e Increase minimum stack to 1MB 2014-07-26 13:11:44 +01:00
Chris Young
db28f295a8 Raise minimum stack to 512K 2014-07-26 00:24:19 +01:00
Chris Young
36411a2ba5 Fix tab title when "always show tabs" is enabled and only one tab is present 2014-07-12 16:09:08 +01:00
Chris Young
d61713d107 Don't update if there is no browser attached (fixes potential crash on startup) 2014-07-12 16:01:43 +01:00
Chris Young
c3514c2c50 Ensure tab titles are updated if the tab bar is newly added 2014-07-12 15:44:14 +01:00
Vincent Sanders
0f151e37cb Merge branch 'vince/reformatpending'
Conflicts:
	amiga/gui.c
2014-07-06 10:45:31 +01:00
Chris Young
ab5b2d9afe Move favicon redraw to scheduled callback 2014-07-05 19:00:21 +01:00
Chris Young
21a21e8143 Move the throbber to proper scheduled operation 2014-07-05 18:44:44 +01:00
Chris Young
bdcb123f0a Replace a flag for search ico refresh with a scheduled callback 2014-07-05 17:47:40 +01:00
Chris Young
f3508427f8 Ensure Ctrl-C does not terminate NetSurf abruptly. 2014-07-05 09:36:43 +01:00
Chris Young
eccfdec27a Wait for network activity instead of polling. 2014-07-03 20:53:28 +01:00
Vincent Sanders
18aefabd20 change reformat to be driven from the scheduler like redraw 2014-07-01 09:27:20 +01:00
Vincent Sanders
2330503533 Merge branch 'vince/fetchschedule' 2014-07-01 09:03:47 +01:00
Chris Young
01088bb63b Re-disable the favicon render hook 2014-07-01 08:28:07 +01:00
Chris Young
846b534854 Recreate the entire menu when the hotlist window is closed.
This ensures the hotlist entries in the menu are in sync with reality, and mirrors the existing hotlist toolbar update.
2014-06-30 22:37:05 +01:00
Chris Young
01271f4061 Re-enable favicon render hook. Not sure why or when this was disabled. 2014-06-30 22:21:10 +01:00
Chris Young
0c5bb37bea Implement a very basic favicon cache for the hotlist menu to use 2014-06-29 22:35:52 +01:00
Vincent Sanders
8944edd649 convert all frontends to scheduled fetch operation 2014-06-26 19:05:59 +01:00
Chris Young
904cefd388 Enable temporary change of search provider from the main browser window 2014-06-15 15:48:55 +01:00
Chris Young
3de529d815 Change the search ico to be a chooser gadget with the icon as the display 2014-06-15 15:39:49 +01:00
Chris Young
ea01d6b3fc Double the stack as it still runs out on occasion 2014-06-01 08:46:22 +01:00
Michael Drake
ee32aa43fe Remove an unused variable. 2014-05-31 08:47:32 +01:00
Vincent Sanders
1966649c83 fix amiga build to use correct nsurl acessor function 2014-05-27 00:15:34 +01:00
Vincent Sanders
688f60d963 fix errors with path_to_url conversion 2014-05-27 00:08:04 +01:00
Vincent Sanders
00b6cfc57e rework path to url mapping functions to convert from and to nsurl 2014-05-26 23:52:36 +01:00
Chris Young
4a9e1edbde Redraw the favicon if the window is resized. 2014-05-25 15:07:40 +01:00
Chris Young
bd9acf594f Try to ensure we get the correct search icon when the window opens. 2014-05-25 10:37:20 +01:00
Chris Young
ab5fb83037 Move search_web_init somewhere sane 2014-05-25 10:26:34 +01:00
Vincent Sanders
5d8d4d84b7 use new search web interface to refresh icon. 2014-05-25 01:16:32 +01:00
Vincent Sanders
b34a6bbe31 fix warnings in amiga build introduced in websearch changes 2014-05-25 01:14:01 +01:00
Vincent Sanders
649f4f8890 fix amiga build error 2014-05-25 01:11:24 +01:00
Vincent Sanders
a6d3ceae0e Completely re-write web search provider handling 2014-05-25 01:01:59 +01:00
Vincent Sanders
0a2082d777 ensure all vmkpath implementations check their parameters 2014-05-17 22:28:32 +01:00
Chris Young
11f03cae0c Create cache dir 2014-05-16 09:55:38 +01:00
Vincent Sanders
64f607760b add backing store storage path to browser initialisation 2014-05-13 15:53:06 +01:00
Vincent Sanders
06a3f84e50 remove amiga specific mkpath wrapper as registration has been fixed and the generic netsurf)mkpath is available 2014-05-11 16:54:36 +01:00
Chris Young
318edea47e Make mkpath allocate the string buffer for map_filename. Fixes 2119. 2014-05-10 15:22:38 +01:00
Vincent Sanders
16b11e7238 ensure operations tables are registered as early as possible. 2014-05-10 10:22:10 +01:00
Vincent Sanders
2326d3c503 remove unecessary utils/url.h includes 2014-05-09 10:15:42 +01:00
Vincent Sanders
096bd47ab0 refactor url utility functions to use standard nserror codes and have appropriate documentation. 2014-05-08 00:16:50 +01:00
Vincent Sanders
b9bade808f missing comma 2014-05-07 16:47:44 +01:00
Vincent Sanders
6349704b5e fix silly errors in atari and amiga file operation table change 2014-05-07 16:38:58 +01:00
Vincent Sanders
c56642819e add file operations table and make all frontends use it.
This rationalises the path construction and basename file
operations. The default implementation is POSIX which works for all
frontends except windows, riscos and amiga which have differeing path
separators and rules.

These implementations are significantly more robust than the previous
nine implementations and also do not use unsafe strncpy or buffers
with arbitrary length limits.

These implementations also carry full documentation comments.
2014-05-07 16:24:51 +01:00
Chris Young
b1f67dab31 Remove Cairo from AmigaOS frontend. 2014-05-03 16:38:58 +01:00
Chris Young
9ba0d66c6d Ensure we don't get extraneous signals allocated 2014-04-06 15:24:24 +01:00
Chris Young
1ecd56bd71 Fix a case where the screen wouldn't close if NetSurf had been launched from Workbench 2014-04-06 15:22:18 +01:00
Chris Young
4ec70fd3a2 Fix some more cppcheck unread/unusedVariable warnings 2014-04-05 23:40:03 +01:00
Chris Young
3ea6ca89a0 Fix cppcheck constStatement warning 2014-04-05 23:12:07 +01:00
Chris Young
c2f9a39966 Fix some cppcheck variableScope warnings 2014-04-05 20:26:39 +01:00
Chris Young
f991abc53c Fix a bunch of cppcheck unusedVariable/unreadVariable warnings 2014-04-05 20:26:39 +01:00
Chris Young
268cda0f56 Fix cppcheck variableHidingTypedef 2014-04-05 20:26:39 +01:00
Chris Young
412df34298 Fix some cppcheck variableScope warnings 2014-04-05 20:26:39 +01:00
Chris Young
4575698f0f Fix cppcheck syntaxError 2014-04-03 19:06:09 +01:00
Vincent Sanders
4d4d74c8cd move page search gui callbacks to their own operations table 2014-03-18 22:32:52 +00:00
Chris Young
c44bbcdc08 Ensure any user-input URLs are passed to the core in UTF-8.
Everything else, including any content of the URL bar which hasn't just been entered by the user, is assumed to be in ASCII.
NB: The exception is the ARexx OPEN command.  This is because NetSurf uses the ARexx port and this command internally when multiple instances are opened.
file: addresses typed into the address bar containing non-ASCII characters will probably no loger work, but it is expected that under normal circumstances, users will either drag'n'drop files or use Project=>Open.  If it becomes an issue I will work around it at a later date.
2014-03-13 19:37:01 +00:00
Vincent Sanders
87f6314dab move scheduleing into browser operation table 2014-03-09 15:37:40 +00:00
Michael Drake
a38a63a37e Make history internal to browser_window module. 2014-02-15 18:44:50 +00:00
Michael Drake
2f66b6f6e2 Fix builds. 2014-02-10 22:53:22 +00:00
Michael Drake
49bed056dd Make browser_window_navigate (un)verifiable flag match browser_window_create. 2014-02-10 22:40:04 +00:00
Chris Young
76b5378996 Add some explanation for the future. 2014-02-10 21:12:02 +00:00
Chris Young
5087fde086 Force downloads to abort on quit 2014-02-10 21:08:36 +00:00
Chris Young
80fcfa7bce Tidy-up; ami_try_quit is checking the window list now 2014-02-10 20:46:24 +00:00
Chris Young
cbf423d4c6 Try quitting after downloading if there are no windows open 2014-02-10 20:40:08 +00:00
Chris Young
55a96a7eee screen_signal should be reset to -1 2014-02-10 20:31:06 +00:00
Chris Young
c384c5dd3e Force the GUI opts window closed on quit 2014-02-10 20:30:08 +00:00
Chris Young
7fa641616b Free help before attempting to close the screen, as it doesn't consider itself a visitor window. 2014-02-10 20:23:09 +00:00
Chris Young
e975b355f5 Don't wait for the screen to close unless we're actually quitting. 2014-02-10 20:18:18 +00:00
Chris Young
709665e5c0 Ensure we always free the screen notification signal 2014-02-10 19:21:47 +00:00
Chris Young
36e0715dfb Get and process AmigaGuide help messages 2014-02-10 18:42:50 +00:00
Chris Young
4aa59f5382 SA_PubSig needs setting at screen open time.
Potentially this fixes a screen closure problem.
2014-02-10 18:13:28 +00:00
Michael Drake
af014bce99 Allow tab creation without history clone. Changes browser_window_create and browser_window_navigate flags. 2014-02-10 14:08:45 +00:00
Michael Drake
7f2c977788 Unset tab flag in kiosk mode. 2014-02-09 13:31:48 +00:00
Michael Drake
ce41b8d431 Fix errors. 2014-02-09 13:19:46 +00:00
Michael Drake
ea79e85fcd Clean up gui_window creation API. 2014-02-09 13:07:39 +00:00
Michael Drake
987218e144 Fix amiga build. 2014-02-08 23:06:24 +00:00
Michael Drake
3d7cd77982 Simplify local history interface. 2014-02-08 22:43:54 +00:00
Michael Drake
cf84e557fa Simplify browser_window_refresh_url_bar.
Reduces front end need to access bw internals.
2014-02-08 12:07:13 +00:00
Chris Young
41d7084356 Initialise AmigaGuide help system only at the point of first use. 2014-02-07 17:51:12 +00:00
Chris Young
f5f7dc9931 Only allocate printing resources for the period of time we need them. 2014-02-07 17:45:00 +00:00
Chris Young
665f724a36 Brackets 2014-02-06 21:26:39 +00:00
Chris Young
cd9268761c Only allocate a signal for screen closure at the point we need it. This ensures there are enough free signals for popupmenu.library (at the moment, at least) 2014-02-06 21:23:24 +00:00
Chris Young
b937ed1d8d Avoid a potential crash when two tabs are opened and one of them is closed. 2014-02-06 19:35:52 +00:00
Vincent Sanders
7798dae86a fix missing includes 2014-02-01 22:44:43 +00:00
Vincent Sanders
886a3106db move utf8 local conversion operations to table 2014-02-01 22:17:36 +00:00
Vincent Sanders
8ce0a10670 move path_to_url and url_to_path to fetch operation table 2014-01-25 23:01:32 +00:00
Chris Young
d64754aca4 Ensure the screen actually gets closed before NetSurf quits. 2014-01-24 20:35:31 +00:00
Vincent Sanders
0475693394 create table for fetcher operations and move all operations into it 2014-01-23 00:00:18 +00:00
Chris Young
e43fbb3914 Fix ReadArgs() argument parsing. Collect any parameters we're not interested in and pass those to nsoption_commandline directly. 2014-01-18 22:10:18 +00:00
Chris Young
96546838d1 Debug logging 2014-01-18 21:35:02 +00:00
Vincent Sanders
ba4788108b fixup amiga build errors 2014-01-16 14:43:48 +00:00
Vincent Sanders
d47fed4524 move 401 login into operation table 2014-01-16 00:52:17 +00:00
Vincent Sanders
38cb39339a move filename_from_path and path_add_part into gui operation tables 2014-01-16 00:01:25 +00:00
Vincent Sanders
bd065d4a43 split browser gui operations up 2014-01-15 19:37:05 +00:00