- Added missing files from previous commit
- Fixed move cursor that would remain after using a Selection tool
- Switched to mousedown for Tool Selection to avoid missed clicks
+ Settings drawer could not be closed when clicking above or below its
container. This has been fixed by changin the logic used for determining
if the click was inside/outside of the Settings drawer.
+ Added DOM utility to compensate for the limitations of JQuery
contains...
+ BaseTool : added new method hideHighlightedPixel
+ DrawingController : mousemove event plugged on mousenter
and unplugged on mouseleave
+ DrawingController : tool.hideHighlightPixel called on mouseleave and
when switching the current tool to active (i.e. when user starts
clicking)
+ decentralized shortcut declaration
+ each service/controller is now responsible for declaring its shorcuts
- documentation (cheatsheet) is still to be maintained manually
- init order matters (shortcutService has to be instanciated before
everyone else) => should have a standalone KeyboardService singleton
which is ready as soon as it is loaded
+ cleanup of color management
+ colors are now stored in palette controller
+ drawing controller has a dependency on palette controller
+ UPDATE COLOR events have been removed (they were used only for
synchronizing palette and drawing controller)
+ added shortcuts for all tools in ToolController
+ modified structure of tools in Controller to Array of descriptors to
allow to declare shortcuts directly when setting up the tool controller
+ moved keycode translation to KeycodeTranslator
+ made KeycodeTranslator more generic to handle 0-9 and a-z keys
+ small refactor in KeyboardEventService
+ added explanatory comment for CanvasUtils.disableImageSmoothing
+ detect browser for chosing wheel/mousewheel event in DrawingController
+ create ABSTRACT_FUNCTION constant to be reused forabstract methods
+ moved Serializer and Deserializer to utils.serialization package
+ put all backward code in utils.serialization.backward
+ added static method on Deserializer to make its usage similar to other
utils in the package
- still not happy with the names used in Deserializer classes
(deserializer.deserialize ...)
+ ImportController is no longer relying on the deserializer to build a
piskel instance
+ Static builders have been added to Piskel and Layer to help easily
create new instances from existing elements