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