JMB has requested that the Google Summer of Code students post a summarization of the work we have done. So, here (for your reading pleasure) is a simplified list of everything that I have accomplished thus far:
- Remade preferences dialog to conform to the GNOME Human Interface Guidelines - Improved the dialog to better integrate aesthetically - Made it an instant-apply dialog (all of the changes are saved instantly so an apply button is not needed) - Added a button to set the homepage as the current page and another to set it to the default NetSurf welcome page (I wanted this to be a blank page button but unfortunately its not possible (or easy) to implement this - Fixed several widgets/options that were not sensitive/implemented/working-correctly - Added a right-click contextual menu - If the menu bar is hidden it will display the entire menu, otherwise only whatever applies - Cut, Copy, and Paste appear if they are currently possible - Back, Forward and Reload (the common actions) are shown at the top of the menu - Mouse Dragging and Clicking - Redid most of the mouse handling to better integrate with modern gtk apps. - When a mouse button is pressed the state is considered PRESS which basically means that it is waiting to either become a "Click" or a "Drag". - Clicks are considered a press and release with no movement. - If the mouse is moved while its state is PRESS it is considered a Drag. - Modifier keys are only accepted if held when the mouse is pressed, after the state is set as PRESS they can only be removed. - Text selection and Replacement - Implemented text selection for nsgtk - Implemented selected text replacement for the core - Typing a character now deletes the selected text and places the character in the correct position - Correct input box behavior when a selection is defined (right arrow moves caret to end of selection) - Correct cut functionaliy in both versions - Fixed descrepancy between where the caret was placed and where the selection began when starting a drag-select (nsgtk) - Clipboard functions for both the url entry bar and the browser itself - Implemented Cut and Paste in nsgtk - Fixed Cut in core for both versions and implemented it in nsgtk - Sensitivies are handled correctly in both the main and right-click menus - Downloads - Completely implemented downloads for nsgtk - Binary and UTF8 data both download correctly - Added several options to the preferences dialog (which may need to be restructured now) - Default save directory - Automatically clear downloads on completion - Ask for file overwrite confirmation - Downloads with no total size will pulse<http://library.gnome.org/devel/gtk/stable/GtkProgressBar.html#gtk-progress-bar-pulse>and the total the total progress bar will pulse as well - Added a confirmation dialog when closing NetSurf when downloads are running - The clear button will clear all inactive downloads if none are selected ~ Mike :D