Commit Graph
100 Commits
Author SHA1 Message Date
Michael Jumper 05c7031d8e Update version number, update changelog 2012-08-11 14:12:47 -07:00
Michael Jumper 21fb1e92bb Fix jsdoc, add missing documentation. 2012-08-11 12:52:30 -07:00
Michael Jumper d5e1b88cdc Use addEventListener(), only ignore key event if truly unknown (might have keyIdentifiier, but no keycode). 2012-08-02 00:53:22 -07:00
Michael Jumper ce0bade000 Only take parent into account if actually relevant to positioning. 2012-08-01 11:33:39 -07:00
Michael Jumper e90eec79e4 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). 2012-07-30 15:00:45 -07:00
Michael Jumper 3e8d14e699 Clean up handling of viewport-relative coordinates. Modify absolute touch support to properly handle scrolled viewport. 2012-07-29 20:57:45 -07:00
Michael Jumper 182f8e891a Ignore absolute touch events if more than one touch. 2012-07-29 17:27:47 -07:00
Michael Jumper 2f6dbde5da Use event-queue heuristics to detect and ignore mouse events caused by touch events. 2012-07-29 17:13:33 -07:00
Michael Jumper 50567d401b Fix setting of state within touchscreen events. 2012-07-27 23:00:00 -07:00
Michael Jumper 0da51499fe First basic absolute pointer implementation. 2012-07-27 23:00:00 -07:00
Michael Jumper 1c363ec37b Stubbed out Guacamole.Mouse.Touchscreen. 2012-07-27 23:00:00 -07:00
Michael Jumper 6800bd7329 Cleaned up Guacamole.Mouse.Touchpad and docs. 2012-07-27 22:59:59 -07:00
Michael Jumper afdc4ed536 Split Guacamole.Mouse into Guacamole.Mouse (mouse event handling) and Guacamole.Mouse.Touchpad (touch event translation handling). 2012-07-27 22:59:59 -07:00
Michael Jumper 078322f808 Do not handle keypress if we already handled the event in keydown. 2012-07-27 13:21:45 -07:00
Michael Jumper 8f8b41fe8b Use timeout only as failsafe. Send key events immediately when we know we will handle via keypress or keydown. 2012-06-20 22:46:53 -07:00
Michael Jumper 03486264d1 Implement size for buffers. 2012-05-17 00:23:52 -07:00
Michael Jumper 88e2a7d500 Renamed deferred handler. 2012-05-16 15:32:46 -07:00
Michael Jumper 6cc12e88f9 preventDefault() in keypress, too. 2012-05-16 13:38:28 -07:00
Michael Jumper a650a4a6ec 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). 2012-05-16 13:36:28 -07:00
Michael Jumper aa7c38be32 Should be using clearTimeout(), not clearInterval() for timeout. 2012-05-16 10:40:06 -07:00
Michael Jumper 685f07ed75 Don't wait for keypress if keycode well defined. Define space via keycode (some browsers interpret "space" as scroll down). 2012-05-16 10:36:37 -07:00
Michael Jumper 0399689177 Ignore unknown key events. 2012-05-16 00:52:16 -07:00
Michael Jumper 49fa2723a9 Only send release for ctrl+alt when both are pressed (we assume Ctrl+Alt == AltGr in the context of keypress). 2012-05-14 13:54:44 -07:00
Michael Jumper b8ad66ab6e 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. 2012-05-14 13:44:17 -07:00
Michael Jumper d3f5d003ea 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. 2012-05-14 13:21:43 -07:00
Michael Jumper 0abc6b3562 Add keyidentifier map. 2012-05-14 10:15:43 -07:00
Michael Jumper d6b1985396 Defer handling of keypress via JS event queue. 2012-05-14 09:17:15 -07:00
Michael Jumper f5515d6752 Updated ChangeLog 2012-05-04 18:46:20 -07:00
Michael Jumper 76fd31bd53 Properly offset mouse by document scroll amount (Firefox/Chrome, etc. inconsistency) - fixes ticket #124. 2012-05-01 14:33:31 -07:00
Michael Jumper 63685aa048 Position mouse cursor only at integer coordinates. 2012-04-10 22:53:30 -07:00
Michael Jumper b2bcaef681 Fix non-left mouse button clicks (there may not be one touchstart event per touch). Fix setting/resetting of gesture_in_progress flag. 2012-04-09 13:57:58 -07:00
Michael Jumper 5e0c6d8c51 Only send integer coordinates in mouse events. 2012-04-08 21:51:35 -07:00
Michael Jumper 47b9e43559 Mouse acceleration. 2012-04-08 21:51:00 -07:00
Michael Jumper df595d46ec Avoid crazy accelerating autoscroll by using clientX/clientY instead of screenX/screenY. 2012-04-08 21:22:09 -07:00
Michael Jumper eaa233520c Calculate mouse position including scroll of overflow elements (cannot rely on pageX/Y). 2012-04-06 12:38:24 -07:00
Michael Jumper 041f22563c Revert fixes for iPad #90 due to performance regression - can avoid bug in libguac-client-rdp and friends until it is fixed upstream. 2012-04-05 15:29:55 -07:00
Michael Jumper 6e835dacdc More efficient blocking, leveraging the now-necessary image data copy. 2012-04-03 02:35:32 -07:00
Michael Jumper 9e1d2b2442 Fix iPad synchronization issue (ticket #90). 2012-04-03 02:18:47 -07:00
Michael Jumper f6868b8661 "device" not "display" (typo). Switch back to two-finger scroll. 2012-04-01 18:52:49 -07:00
Michael Jumper ff20799b29 Provide means of retrieving scale. 2012-04-01 18:52:06 -07:00
Michael Jumper 818f081bb5 Set scroll and click thresholds relative to screen pixel density (if readable) and size of gesture. 2012-04-01 18:20:18 -07:00
Michael Jumper dcf55cbd75 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. 2012-04-01 01:07:14 -07:00
Michael Jumper 5e2858a413 Move all thresholds into properties, implement scrollwheel via touch. 2012-03-30 23:12:19 -07:00
Michael Jumper e22296bbff Check for last touch by verifying touch length 0, not 1. Fix wrong use of max() (should be min). 2012-03-30 22:59:46 -07:00
Michael Jumper ed3d12fbce Implement right and middle-click. 2012-03-30 22:48:22 -07:00
Michael Jumper fa96143884 Move layers using translation via matrices - do not use CSS top/left. 2012-03-29 23:48:45 -07:00
Michael Jumper b0196b89f1 Partial cleanup, track and expose key and modifier states. 2012-03-29 23:11:13 -07:00
Michael Jumper 8c7b883d55 Fixed regression with key repeat. 2012-03-29 17:42:34 -07:00
Michael Jumper eca34b24fb Allow user of API to decide whether keyboard events are canceled. 2012-03-29 10:05:38 -07:00
Michael Jumper e8ee79a5b0 Fixed project URL. 2012-03-26 18:51:16 -07:00
Michael Jumper 631ec6120e Change "Connection does not exist" to more user-friendly error. 2012-03-25 23:03:54 -07:00
Michael Jumper 3b7b8382a3 Add error for status code of 0. 2012-03-25 17:56:33 -07:00
Michael Jumper d4aabf013b Assume space cap if blank (blank caps would otherwise not render, and IE trims the contents of XML tags, which breaks the OSK spacebar). 2012-03-25 13:37:16 -07:00
Michael Jumper b80ede52a4 Generic error messages from status codes. 2012-03-24 19:13:32 -07:00
Michael Jumper e6249fbf5b Do not use X-Guacamole-Error-Message - use status code only. 2012-03-24 16:57:58 -07:00
Michael Jumper 8ad557cf31 Use screenX/screenY for touch. 2012-03-22 17:28:24 -07:00
Michael Jumper 7522c3a853 Fix ticket #114 - mouse position calculated incorrectly. 2012-03-20 10:14:49 -07:00
Michael Jumper fccfe52a19 In chained tunnel, clear handlers in old tunnel when new tunnel is taking over. 2012-03-19 15:11:05 -07:00
Michael Jumper 431d38d21f Properly handle errors on write as well as read. 2012-03-14 16:18:11 -07:00
Michael Jumper cc6c2671ac Refactor arc to include drawing direction. 2012-03-13 18:59:57 -07:00
Michael Jumper 6df9fe2871 Implement set instruction. 2012-03-13 12:12:59 -07:00
Michael Jumper 02500bf96b Layers should clip contents. 2012-03-13 00:29:21 -07:00
Michael Jumper c91efb51ec Implemented push and pop. 2012-03-12 23:58:07 -07:00
Michael Jumper fc716d7d9a Implement distort, shade. 2012-03-12 23:25:23 -07:00
Michael Jumper b540cc0427 Implement identity, transform. 2012-03-12 17:42:44 -07:00
Michael Jumper 4b3b2966f5 Implemented lfill, lstroke. 2012-03-12 17:39:18 -07:00
Michael Jumper 3435edf4d6 Implemented close, curve, arc. 2012-03-12 17:37:04 -07:00
Michael Jumper c25a4edab7 Implement start, line, and curve instructions. 2012-03-12 17:27:42 -07:00
Michael Jumper 88e897dcd2 Refactored to more reasonable path operations. 2012-03-12 17:04:29 -07:00
Michael Jumper 5b902e669c Buffers should be resizable, too. 2012-03-11 22:21:54 -07:00
Michael Jumper 6cffafad6a Reset internal stack state when stack automatically reset from resize. 2012-03-11 22:13:10 -07:00
Michael Jumper b363f958b0 Alphabetized instruction set for future instruction-adding convenience. 2012-03-11 21:59:19 -07:00
Michael Jumper e63b7108f3 Implement reset instruction. 2012-03-11 21:48:06 -07:00
Michael Jumper 6cb68f86cf Fix cursor - copyRect() has been renamed to copy(). 2012-03-11 21:33:39 -07:00
Michael Jumper 66d3973cdc Fix reset() to properly reset EVERYTHING. 2012-03-11 21:30:00 -07:00
Michael Jumper ead3811df6 Accidentally used getLayer() in RGBA component ints. 2012-03-11 21:17:16 -07:00
Michael Jumper 87cf3940c6 Implement cfill. 2012-03-11 21:10:07 -07:00
Michael Jumper 56facdb6b2 Implemented remaining operations as possible. 2012-03-11 21:00:08 -07:00
Michael Jumper aa1e467791 Refactor rect, rename copyRect -> copy, add several necessary operations, remove unused functions. 2012-03-11 20:16:36 -07:00
Michael Jumper 4c4b2de654 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. 2012-03-09 16:38:17 -08:00
Michael Jumper b11445e8dd Errors thrown by connect() of a chained tunnel should be resent to onerror() if caught within ChainedTunnel.attach(). 2012-03-09 16:27:22 -08:00
Michael Jumper 10b192b677 Fixed comment on self reference. 2012-03-09 16:12:12 -08:00
Michael Jumper 0d95a5b5b8 JSDoc, remove useless onerror initialization. 2012-03-09 16:11:16 -08:00
Michael Jumper 2cff92ff1f Only chain to next tunnel if no instructions received. Pass through errors otherwise. 2012-03-09 16:00:23 -08:00
Michael Jumper 90876a47d6 Implement ChainedTunnel, which wraps an arbitrary list of tunnels, using each in order if a tunnel fails. 2012-03-09 15:53:54 -08:00
Michael Jumper 862ad8760a Implement tunnel onerror() for WebSocket. 2012-03-09 14:56:41 -08:00
Michael Jumper 52d3fa8748 Implemented WebSocketTunnel. 2012-03-09 12:27:16 -08:00
Michael Jumper fded6d2873 Revert "Removing WebSocket tunnel for stable release. It will be back."
This reverts commit 31a7ce3912ebed5d6fee8b5d400b982b2e87cbfd.
2012-03-07 21:38:47 -08:00
Michael Jumper 9f8fedcf47 Adding Matt Hortman to list of contributors. 2012-03-05 12:18:15 -08:00
Michael Jumper 8724c22d55 Merge remote branch 'matthortman/MBH' into merge-matt 2012-03-05 11:52:14 -08:00
Michael Jumper 108ca03420 Fix OSK to work in IE9+ 2012-03-01 16:00:07 -08:00
Michael Jumper e866dbcd1d Only use classList.add() and classList.remove() if classList is supported. 2012-02-29 13:34:11 -08:00
Michael Jumper 5eb316a3ba Transfer functions on abstract pixels. 2012-02-27 13:23:07 -08:00
Michael Jumper ceb94ba4c3 Actually DRAW image data. 2012-02-27 12:36:25 -08:00
Michael Jumper 02e1333e58 Initial refactor of raster operations to real transfer functions. 2012-02-27 12:23:38 -08:00
Michael Jumper 9d3ce8c474 Use composite operation instead of channel mask. 2012-02-27 11:41:28 -08:00
Michael Jumper 6bfa0d7ea1 Use transfer function within copy, if set. 2012-02-27 11:35:02 -08:00
Michael Jumper 7011f650c5 Implement raster operations as transfer functions, rename setChannelMask to setCompositeOperation, supporting both channel masks and binary raster operations. 2012-02-27 11:20:25 -08:00
Michael Jumper aedc40691e Bumped version to 0.6.0 2012-02-23 13:27:08 -08:00
Michael Jumper d1496d7375 Update cursor position when cursor image/hotspot is updated. 2012-02-23 11:22:15 -08:00