guacamole-common-js.git
9 years agoMake keyboard modifiers work by avoiding duplicate name master
Alex Bligh [Sat, 22 Sep 2012 17:20:09 +0000 (18:20 +0100)]
Make keyboard modifiers work by avoiding duplicate name

9 years agoUpdate version number, update changelog
Michael Jumper [Sat, 11 Aug 2012 21:12:47 +0000 (14:12 -0700)]
Update version number, update changelog

9 years agoFix jsdoc, add missing documentation.
Michael Jumper [Sat, 11 Aug 2012 19:52:30 +0000 (12:52 -0700)]
Fix jsdoc, add missing documentation.

9 years agoUse addEventListener(), only ignore key event if truly unknown (might have keyIdentif...
Michael Jumper [Thu, 2 Aug 2012 07:53:22 +0000 (00:53 -0700)]
Use addEventListener(), only ignore key event if truly unknown (might have keyIdentifiier, but no keycode).

9 years agoOnly take parent into account if actually relevant to positioning.
Michael Jumper [Wed, 1 Aug 2012 18:33:39 +0000 (11:33 -0700)]
Only take parent into account if actually relevant to positioning.

9 years agoSimpler heuristic for handling touch-generated mouse events (disable handling of...
Michael Jumper [Mon, 30 Jul 2012 22:00:45 +0000 (15:00 -0700)]
Simpler heuristic for handling touch-generated mouse events (disable handling of mouse events upon receipt of a touch event until a specified number of mousemove events have been received).

9 years agoClean up handling of viewport-relative coordinates. Modify absolute touch support...
Michael Jumper [Mon, 30 Jul 2012 03:57:45 +0000 (20:57 -0700)]
Clean up handling of viewport-relative coordinates. Modify absolute touch support to properly handle scrolled viewport.

9 years agoIgnore absolute touch events if more than one touch.
Michael Jumper [Mon, 30 Jul 2012 00:27:47 +0000 (17:27 -0700)]
Ignore absolute touch events if more than one touch.

9 years agoUse event-queue heuristics to detect and ignore mouse events caused by touch events.
Michael Jumper [Mon, 30 Jul 2012 00:13:33 +0000 (17:13 -0700)]
Use event-queue heuristics to detect and ignore mouse events caused by touch events.

9 years agoFix setting of state within touchscreen events.
Michael Jumper [Tue, 22 May 2012 18:26:40 +0000 (11:26 -0700)]
Fix setting of state within touchscreen events.

9 years agoFirst basic absolute pointer implementation.
Michael Jumper [Tue, 22 May 2012 18:12:44 +0000 (11:12 -0700)]
First basic absolute pointer implementation.

9 years agoStubbed out Guacamole.Mouse.Touchscreen.
Michael Jumper [Tue, 22 May 2012 08:39:53 +0000 (01:39 -0700)]
Stubbed out Guacamole.Mouse.Touchscreen.

9 years agoCleaned up Guacamole.Mouse.Touchpad and docs.
Michael Jumper [Tue, 22 May 2012 07:09:23 +0000 (00:09 -0700)]
Cleaned up Guacamole.Mouse.Touchpad and docs.

9 years agoSplit Guacamole.Mouse into Guacamole.Mouse (mouse event handling) and Guacamole.Mouse...
Michael Jumper [Tue, 22 May 2012 00:39:41 +0000 (17:39 -0700)]
Split Guacamole.Mouse into Guacamole.Mouse (mouse event handling) and Guacamole.Mouse.Touchpad (touch event translation handling).

9 years agoDo not handle keypress if we already handled the event in keydown.
Michael Jumper [Fri, 27 Jul 2012 20:21:45 +0000 (13:21 -0700)]
Do not handle keypress if we already handled the event in keydown.

9 years agoUse timeout only as failsafe. Send key events immediately when we know we will handle...
Michael Jumper [Thu, 21 Jun 2012 05:46:53 +0000 (22:46 -0700)]
Use timeout only as failsafe. Send key events immediately when we know we will handle via keypress or keydown.

9 years agoImplement size for buffers.
Michael Jumper [Thu, 17 May 2012 07:23:52 +0000 (00:23 -0700)]
Implement size for buffers.

9 years agoRenamed deferred handler.
Michael Jumper [Wed, 16 May 2012 22:32:46 +0000 (15:32 -0700)]
Renamed deferred handler.

9 years agopreventDefault() in keypress, too.
Michael Jumper [Wed, 16 May 2012 20:38:28 +0000 (13:38 -0700)]
preventDefault() in keypress, too.

9 years agoAs keydown/keypress are handled via deferred setTimeout(), so should keyup (otherwise...
Michael Jumper [Wed, 16 May 2012 20:36:28 +0000 (13:36 -0700)]
As keydown/keypress are handled via deferred setTimeout(), so should keyup (otherwise, there's a race condition that keyup might happen before the deferred handling of keydown/keypress, and the key might be effectively stuck down or in a repeating state).

9 years agoShould be using clearTimeout(), not clearInterval() for timeout.
Michael Jumper [Wed, 16 May 2012 17:40:06 +0000 (10:40 -0700)]
Should be using clearTimeout(), not clearInterval() for timeout.

9 years agoDon't wait for keypress if keycode well defined. Define space via keycode (some brows...
Michael Jumper [Wed, 16 May 2012 17:36:37 +0000 (10:36 -0700)]
Don't wait for keypress if keycode well defined. Define space via keycode (some browsers interpret "space" as scroll down).

9 years agoIgnore unknown key events.
Michael Jumper [Wed, 16 May 2012 07:52:16 +0000 (00:52 -0700)]
Ignore unknown key events.

9 years agoOnly send release for ctrl+alt when both are pressed (we assume Ctrl+Alt == AltGr...
Michael Jumper [Mon, 14 May 2012 20:54:44 +0000 (13:54 -0700)]
Only send release for ctrl+alt when both are pressed (we assume Ctrl+Alt == AltGr in the context of keypress).

9 years agoOnly release ctrl/alt in keypress handler if character is not a control character...
Michael Jumper [Mon, 14 May 2012 20:44:17 +0000 (13:44 -0700)]
Only release ctrl/alt in keypress handler if character is not a control character. Beware that this causes a regression in Firefox as it sends keypress for Alt+combinations and Ctrl+combinations even though they will not type anything.

9 years agoOnly cancel keydown if not typable. Release Ctrl and Alt if actually typing a charact...
Michael Jumper [Mon, 14 May 2012 20:21:43 +0000 (13:21 -0700)]
Only cancel keydown if not typable. Release Ctrl and Alt if actually typing a character via keypress (if they are not functioning as Ctrl or Alt). Cancel keydown if Ctrl or Alt (but not both) are held, even if we expect the character to be typable.

9 years agoAdd keyidentifier map.
Michael Jumper [Mon, 14 May 2012 17:15:43 +0000 (10:15 -0700)]
Add keyidentifier map.

9 years agoDefer handling of keypress via JS event queue.
Michael Jumper [Mon, 14 May 2012 16:17:15 +0000 (09:17 -0700)]
Defer handling of keypress via JS event queue.

9 years agoUpdated ChangeLog
Michael Jumper [Sat, 5 May 2012 01:46:20 +0000 (18:46 -0700)]
Updated ChangeLog

9 years agoProperly offset mouse by document scroll amount (Firefox/Chrome, etc. inconsistency...
Michael Jumper [Tue, 1 May 2012 21:33:31 +0000 (14:33 -0700)]
Properly offset mouse by document scroll amount (Firefox/Chrome, etc. inconsistency) - fixes ticket #124.

9 years agoPosition mouse cursor only at integer coordinates.
Michael Jumper [Wed, 11 Apr 2012 05:53:30 +0000 (22:53 -0700)]
Position mouse cursor only at integer coordinates.

9 years agoFix non-left mouse button clicks (there may not be one touchstart event per touch...
Michael Jumper [Mon, 9 Apr 2012 20:57:58 +0000 (13:57 -0700)]
Fix non-left mouse button clicks (there may not be one touchstart event per touch). Fix setting/resetting of `gesture_in_progress` flag.

9 years agoOnly send integer coordinates in mouse events.
Michael Jumper [Mon, 9 Apr 2012 04:51:35 +0000 (21:51 -0700)]
Only send integer coordinates in mouse events.

9 years agoMouse acceleration.
Michael Jumper [Mon, 9 Apr 2012 04:51:00 +0000 (21:51 -0700)]
Mouse acceleration.

9 years agoAvoid crazy accelerating autoscroll by using clientX/clientY instead of screenX/screenY.
Michael Jumper [Mon, 9 Apr 2012 04:22:09 +0000 (21:22 -0700)]
Avoid crazy accelerating autoscroll by using clientX/clientY instead of screenX/screenY.

9 years agoCalculate mouse position including scroll of overflow elements (cannot rely on pageX/Y).
Michael Jumper [Fri, 6 Apr 2012 19:38:24 +0000 (12:38 -0700)]
Calculate mouse position including scroll of overflow elements (cannot rely on pageX/Y).

9 years agoRevert fixes for iPad #90 due to performance regression - can avoid bug in libguac...
Michael Jumper [Thu, 5 Apr 2012 22:29:55 +0000 (15:29 -0700)]
Revert fixes for iPad #90 due to performance regression - can avoid bug in libguac-client-rdp and friends until it is fixed upstream.

9 years agoMore efficient blocking, leveraging the now-necessary image data copy.
Michael Jumper [Tue, 3 Apr 2012 09:35:32 +0000 (02:35 -0700)]
More efficient blocking, leveraging the now-necessary image data copy.

9 years agoFix iPad synchronization issue (ticket #90).
Michael Jumper [Tue, 3 Apr 2012 09:18:47 +0000 (02:18 -0700)]
Fix iPad synchronization issue (ticket #90).

9 years ago"device" not "display" (typo). Switch back to two-finger scroll.
Michael Jumper [Mon, 2 Apr 2012 01:52:49 +0000 (18:52 -0700)]
"device" not "display" (typo). Switch back to two-finger scroll.

9 years agoProvide means of retrieving scale.
Michael Jumper [Mon, 2 Apr 2012 01:52:06 +0000 (18:52 -0700)]
Provide means of retrieving scale.

9 years agoSet scroll and click thresholds relative to screen pixel density (if readable) and...
Michael Jumper [Mon, 2 Apr 2012 01:20:18 +0000 (18:20 -0700)]
Set scroll and click thresholds relative to screen pixel density (if readable) and size of gesture.

9 years agoAdd scale function, use bounding div for main display element, such that the display...
Michael Jumper [Sun, 1 Apr 2012 08:07:14 +0000 (01:07 -0700)]
Add scale function, use bounding div for main display element, such that the display can be scaled independently of the surrounding div, which provides the layout.

9 years agoMove all thresholds into properties, implement scrollwheel via touch.
Michael Jumper [Sat, 31 Mar 2012 06:12:19 +0000 (23:12 -0700)]
Move all thresholds into properties, implement scrollwheel via touch.

9 years agoCheck for last touch by verifying touch length 0, not 1. Fix wrong use of max() ...
Michael Jumper [Sat, 31 Mar 2012 05:59:46 +0000 (22:59 -0700)]
Check for last touch by verifying touch length 0, not 1. Fix wrong use of max() (should be min).

9 years agoImplement right and middle-click.
Michael Jumper [Sat, 31 Mar 2012 05:48:22 +0000 (22:48 -0700)]
Implement right and middle-click.

9 years agoMove layers using translation via matrices - do not use CSS top/left.
Michael Jumper [Fri, 30 Mar 2012 06:48:45 +0000 (23:48 -0700)]
Move layers using translation via matrices - do not use CSS top/left.

9 years agoPartial cleanup, track and expose key and modifier states.
Michael Jumper [Fri, 30 Mar 2012 06:11:13 +0000 (23:11 -0700)]
Partial cleanup, track and expose key and modifier states.

9 years agoFixed regression with key repeat.
Michael Jumper [Fri, 30 Mar 2012 00:42:34 +0000 (17:42 -0700)]
Fixed regression with key repeat.

9 years agoAllow user of API to decide whether keyboard events are canceled.
Michael Jumper [Thu, 29 Mar 2012 17:05:38 +0000 (10:05 -0700)]
Allow user of API to decide whether keyboard events are canceled.

9 years agoFixed project URL.
Michael Jumper [Tue, 27 Mar 2012 01:51:16 +0000 (18:51 -0700)]
Fixed project URL.

9 years agoChange "Connection does not exist" to more user-friendly error.
Michael Jumper [Mon, 26 Mar 2012 06:03:54 +0000 (23:03 -0700)]
Change "Connection does not exist" to more user-friendly error.

9 years agoAdd error for status code of 0.
Michael Jumper [Mon, 26 Mar 2012 00:56:33 +0000 (17:56 -0700)]
Add error for status code of 0.

9 years agoAssume space cap if blank (blank caps would otherwise not render, and IE trims the...
Michael Jumper [Sun, 25 Mar 2012 20:36:01 +0000 (13:36 -0700)]
Assume space cap if blank (blank caps would otherwise not render, and IE trims the contents of XML tags, which breaks the OSK spacebar).

9 years agoGeneric error messages from status codes.
Michael Jumper [Sun, 25 Mar 2012 02:13:32 +0000 (19:13 -0700)]
Generic error messages from status codes.

9 years agoDo not use X-Guacamole-Error-Message - use status code only.
Michael Jumper [Sat, 24 Mar 2012 23:57:58 +0000 (16:57 -0700)]
Do not use X-Guacamole-Error-Message - use status code only.

9 years agoUse screenX/screenY for touch.
Michael Jumper [Fri, 23 Mar 2012 00:28:24 +0000 (17:28 -0700)]
Use screenX/screenY for touch.

9 years agoFix ticket #114 - mouse position calculated incorrectly.
Michael Jumper [Tue, 20 Mar 2012 17:14:49 +0000 (10:14 -0700)]
Fix ticket #114 - mouse position calculated incorrectly.

9 years agoIn chained tunnel, clear handlers in old tunnel when new tunnel is taking over.
Michael Jumper [Mon, 19 Mar 2012 22:11:05 +0000 (15:11 -0700)]
In chained tunnel, clear handlers in old tunnel when new tunnel is taking over.

9 years agoProperly handle errors on write as well as read.
Michael Jumper [Wed, 14 Mar 2012 23:18:11 +0000 (16:18 -0700)]
Properly handle errors on write as well as read.

9 years agoRefactor arc to include drawing direction.
Michael Jumper [Wed, 14 Mar 2012 01:59:57 +0000 (18:59 -0700)]
Refactor arc to include drawing direction.

9 years agoImplement set instruction.
Michael Jumper [Tue, 13 Mar 2012 19:12:59 +0000 (12:12 -0700)]
Implement set instruction.

9 years agoLayers should clip contents.
Michael Jumper [Tue, 13 Mar 2012 07:29:21 +0000 (00:29 -0700)]
Layers should clip contents.

9 years agoImplemented push and pop.
Michael Jumper [Tue, 13 Mar 2012 06:58:07 +0000 (23:58 -0700)]
Implemented push and pop.

9 years agoImplement distort, shade.
Michael Jumper [Tue, 13 Mar 2012 06:25:23 +0000 (23:25 -0700)]
Implement distort, shade.

9 years agoImplement identity, transform.
Michael Jumper [Tue, 13 Mar 2012 00:42:44 +0000 (17:42 -0700)]
Implement identity, transform.

9 years agoImplemented lfill, lstroke.
Michael Jumper [Tue, 13 Mar 2012 00:39:18 +0000 (17:39 -0700)]
Implemented lfill, lstroke.

9 years agoImplemented close, curve, arc.
Michael Jumper [Tue, 13 Mar 2012 00:37:04 +0000 (17:37 -0700)]
Implemented close, curve, arc.

9 years agoImplement start, line, and curve instructions.
Michael Jumper [Tue, 13 Mar 2012 00:27:42 +0000 (17:27 -0700)]
Implement start, line, and curve instructions.

9 years agoRefactored to more reasonable path operations.
Michael Jumper [Tue, 13 Mar 2012 00:04:29 +0000 (17:04 -0700)]
Refactored to more reasonable path operations.

9 years agoBuffers should be resizable, too.
Michael Jumper [Mon, 12 Mar 2012 05:21:54 +0000 (22:21 -0700)]
Buffers should be resizable, too.

9 years agoReset internal stack state when stack automatically reset from resize.
Michael Jumper [Mon, 12 Mar 2012 05:13:10 +0000 (22:13 -0700)]
Reset internal stack state when stack automatically reset from resize.

9 years agoAlphabetized instruction set for future instruction-adding convenience.
Michael Jumper [Mon, 12 Mar 2012 04:59:19 +0000 (21:59 -0700)]
Alphabetized instruction set for future instruction-adding convenience.

9 years agoImplement reset instruction.
Michael Jumper [Mon, 12 Mar 2012 04:48:06 +0000 (21:48 -0700)]
Implement reset instruction.

9 years agoFix cursor - copyRect() has been renamed to copy().
Michael Jumper [Mon, 12 Mar 2012 04:33:39 +0000 (21:33 -0700)]
Fix cursor - copyRect() has been renamed to copy().

9 years agoFix reset() to properly reset EVERYTHING.
Michael Jumper [Mon, 12 Mar 2012 04:30:00 +0000 (21:30 -0700)]
Fix reset() to properly reset EVERYTHING.

9 years agoAccidentally used getLayer() in RGBA component ints.
Michael Jumper [Mon, 12 Mar 2012 04:17:16 +0000 (21:17 -0700)]
Accidentally used getLayer() in RGBA component ints.

9 years agoImplement cfill.
Michael Jumper [Mon, 12 Mar 2012 04:10:07 +0000 (21:10 -0700)]
Implement cfill.

9 years agoImplemented remaining operations as possible.
Michael Jumper [Mon, 12 Mar 2012 04:00:08 +0000 (21:00 -0700)]
Implemented remaining operations as possible.

9 years agoRefactor rect, rename copyRect -> copy, add several necessary operations, remove...
Michael Jumper [Mon, 12 Mar 2012 03:16:36 +0000 (20:16 -0700)]
Refactor rect, rename copyRect -> copy, add several necessary operations, remove unused functions.

9 years agoFor OSK modifiers, call keydown/keyup events only on press, calling keydown if modifi...
Michael Jumper [Sat, 10 Mar 2012 00:38:17 +0000 (16:38 -0800)]
For OSK modifiers, call keydown/keyup events only on press, calling keydown if modifier activated, and keyup if modifier deactivated. Do not call keyup on release if key is a modifier.

9 years agoErrors thrown by connect() of a chained tunnel should be resent to onerror() if caugh...
Michael Jumper [Sat, 10 Mar 2012 00:27:22 +0000 (16:27 -0800)]
Errors thrown by connect() of a chained tunnel should be resent to onerror() if caught within ChainedTunnel.attach().

9 years agoFixed comment on self reference.
Michael Jumper [Sat, 10 Mar 2012 00:12:12 +0000 (16:12 -0800)]
Fixed comment on self reference.

9 years agoJSDoc, remove useless onerror initialization.
Michael Jumper [Sat, 10 Mar 2012 00:11:16 +0000 (16:11 -0800)]
JSDoc, remove useless onerror initialization.

9 years agoOnly chain to next tunnel if no instructions received. Pass through errors otherwise.
Michael Jumper [Sat, 10 Mar 2012 00:00:23 +0000 (16:00 -0800)]
Only chain to next tunnel if no instructions received. Pass through errors otherwise.

9 years agoImplement ChainedTunnel, which wraps an arbitrary list of tunnels, using each in...
Michael Jumper [Fri, 9 Mar 2012 23:53:54 +0000 (15:53 -0800)]
Implement ChainedTunnel, which wraps an arbitrary list of tunnels, using each in order if a tunnel fails.

9 years agoImplement tunnel onerror() for WebSocket.
Michael Jumper [Fri, 9 Mar 2012 22:56:41 +0000 (14:56 -0800)]
Implement tunnel onerror() for WebSocket.

9 years agoImplemented WebSocketTunnel.
Michael Jumper [Fri, 9 Mar 2012 20:27:16 +0000 (12:27 -0800)]
Implemented WebSocketTunnel.

9 years agoRevert "Removing WebSocket tunnel for stable release. It will be back."
Michael Jumper [Thu, 8 Mar 2012 05:38:47 +0000 (21:38 -0800)]
Revert "Removing WebSocket tunnel for stable release. It will be back."

This reverts commit 31a7ce3912ebed5d6fee8b5d400b982b2e87cbfd.

9 years agoAdding Matt Hortman to list of contributors.
Michael Jumper [Mon, 5 Mar 2012 20:18:15 +0000 (12:18 -0800)]
Adding Matt Hortman to list of contributors.

9 years agoMerge remote branch 'matthortman/MBH' into merge-matt
Michael Jumper [Mon, 5 Mar 2012 19:52:14 +0000 (11:52 -0800)]
Merge remote branch 'matthortman/MBH' into merge-matt

9 years agoJS bitwise operators use all 32-bits, added mask to keep bitwise NOT to 8-bits
Matt Hortman [Mon, 5 Mar 2012 17:07:45 +0000 (12:07 -0500)]
JS bitwise operators use all 32-bits, added mask to keep bitwise NOT to 8-bits

9 years agoFix OSK to work in IE9+
Michael Jumper [Fri, 2 Mar 2012 00:00:07 +0000 (16:00 -0800)]
Fix OSK to work in IE9+

9 years agoOnly use classList.add() and classList.remove() if classList is supported.
Michael Jumper [Wed, 29 Feb 2012 21:34:11 +0000 (13:34 -0800)]
Only use classList.add() and classList.remove() if classList is supported.

9 years agoTransfer functions on abstract pixels.
Michael Jumper [Mon, 27 Feb 2012 21:23:07 +0000 (13:23 -0800)]
Transfer functions on abstract pixels.

9 years agoActually DRAW image data.
Michael Jumper [Mon, 27 Feb 2012 20:36:25 +0000 (12:36 -0800)]
Actually DRAW image data.

9 years agoInitial refactor of raster operations to real transfer functions.
Michael Jumper [Mon, 27 Feb 2012 20:23:38 +0000 (12:23 -0800)]
Initial refactor of raster operations to real transfer functions.

9 years agoUse composite operation instead of channel mask.
Michael Jumper [Mon, 27 Feb 2012 19:41:28 +0000 (11:41 -0800)]
Use composite operation instead of channel mask.

9 years agoUse transfer function within copy, if set.
Michael Jumper [Mon, 27 Feb 2012 19:35:02 +0000 (11:35 -0800)]
Use transfer function within copy, if set.

9 years agoImplement raster operations as transfer functions, rename setChannelMask to setCompos...
Michael Jumper [Mon, 27 Feb 2012 19:20:25 +0000 (11:20 -0800)]
Implement raster operations as transfer functions, rename setChannelMask to setCompositeOperation, supporting both channel masks and binary raster operations.