third touchscreen support attempt #2
This commit is contained in:
parent
2d315dd65c
commit
826249a0b3
38
draw.js
38
draw.js
|
|
@ -66,6 +66,7 @@ var DrawingArea = new Lang.Class({
|
||||||
this.undoneElements = [];
|
this.undoneElements = [];
|
||||||
this.currentElement = null;
|
this.currentElement = null;
|
||||||
this.touchSequence = null;
|
this.touchSequence = null;
|
||||||
|
this.device = null;
|
||||||
this.buttonPressed = false;
|
this.buttonPressed = false;
|
||||||
this.currentShape = Shapes.NONE;
|
this.currentShape = Shapes.NONE;
|
||||||
this.isSquareArea = false;
|
this.isSquareArea = false;
|
||||||
|
|
@ -145,7 +146,9 @@ var DrawingArea = new Lang.Class({
|
||||||
if (this.touchSequence || this.buttonPressed)
|
if (this.touchSequence || this.buttonPressed)
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
|
|
||||||
|
this.device = event.get_device();
|
||||||
this.touchSequence = event.get_event_sequence();
|
this.touchSequence = event.get_event_sequence();
|
||||||
|
this.device.sequence_grab(this.touchSequence, this);
|
||||||
return this._onBeginEvent(actor, event, 1);
|
return this._onBeginEvent(actor, event, 1);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -159,6 +162,7 @@ var DrawingArea = new Lang.Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
_onBeginEvent: function(actor, event, button) {
|
_onBeginEvent: function(actor, event, button) {
|
||||||
|
imports.ui.main.notify("begin");
|
||||||
let [x, y] = event.get_coords();
|
let [x, y] = event.get_coords();
|
||||||
let shiftPressed = event.has_shift_modifier();
|
let shiftPressed = event.has_shift_modifier();
|
||||||
|
|
||||||
|
|
@ -266,8 +270,6 @@ var DrawingArea = new Lang.Class({
|
||||||
this.motionHandler = this.connect('touch-event', (actor, event) => {
|
this.motionHandler = this.connect('touch-event', (actor, event) => {
|
||||||
if (event.type() != Clutter.EventType.TOUCH_UPDATE)
|
if (event.type() != Clutter.EventType.TOUCH_UPDATE)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
if (event.get_event_sequence() != this.touchSequence)
|
|
||||||
return Clutter.EVENT_STOP;
|
|
||||||
|
|
||||||
return this._onMotionEvent(actor, event);
|
return this._onMotionEvent(actor, event);
|
||||||
});
|
});
|
||||||
|
|
@ -275,8 +277,6 @@ var DrawingArea = new Lang.Class({
|
||||||
this.releaseHandler = this.connect('touch-event', (actor, event) => {
|
this.releaseHandler = this.connect('touch-event', (actor, event) => {
|
||||||
if (event.type() != Clutter.EventType.TOUCH_END && event.type() != Clutter.EventType.TOUCH_CANCEL)
|
if (event.type() != Clutter.EventType.TOUCH_END && event.type() != Clutter.EventType.TOUCH_CANCEL)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
if (event.get_event_sequence() != this.touchSequence)
|
|
||||||
return Clutter.EVENT_STOP;
|
|
||||||
|
|
||||||
this._stopDrawing();
|
this._stopDrawing();
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
|
|
@ -294,7 +294,7 @@ var DrawingArea = new Lang.Class({
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
},
|
},
|
||||||
|
|
||||||
_stopDrawing: function() {
|
_disconnectMotionAndReleaseHandlers: function() {
|
||||||
if (this.motionHandler) {
|
if (this.motionHandler) {
|
||||||
this.disconnect(this.motionHandler);
|
this.disconnect(this.motionHandler);
|
||||||
this.motionHandler = null;
|
this.motionHandler = null;
|
||||||
|
|
@ -303,8 +303,16 @@ var DrawingArea = new Lang.Class({
|
||||||
this.disconnect(this.releaseHandler);
|
this.disconnect(this.releaseHandler);
|
||||||
this.releaseHandler = null;
|
this.releaseHandler = null;
|
||||||
}
|
}
|
||||||
|
if (this.device && this.touchSequence) {
|
||||||
|
this.device.sequence_ungrab(this.touchSequence, this);
|
||||||
|
}
|
||||||
this.touchSequence = null;
|
this.touchSequence = null;
|
||||||
|
this.device = null;
|
||||||
this.buttonPressed = false;
|
this.buttonPressed = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
_stopDrawing: function() {
|
||||||
|
this._disconnectMotionAndReleaseHandlers();
|
||||||
|
|
||||||
// skip when the size is too small to be visible (3px) (except for free drawing)
|
// skip when the size is too small to be visible (3px) (except for free drawing)
|
||||||
if (this.currentElement && this.currentElement.points.length >= 2 &&
|
if (this.currentElement && this.currentElement.points.length >= 2 &&
|
||||||
|
|
@ -378,14 +386,7 @@ var DrawingArea = new Lang.Class({
|
||||||
|
|
||||||
deleteLastElement: function() {
|
deleteLastElement: function() {
|
||||||
if (this.currentElement) {
|
if (this.currentElement) {
|
||||||
if (this.motionHandler) {
|
this._disconnectMotionAndReleaseHandlers();
|
||||||
this.disconnect(this.motionHandler);
|
|
||||||
this.motionHandler = null;
|
|
||||||
}
|
|
||||||
if (this.releaseHandler) {
|
|
||||||
this.disconnect(this.releaseHandler);
|
|
||||||
this.releaseHandler = null;
|
|
||||||
}
|
|
||||||
this.currentElement = null;
|
this.currentElement = null;
|
||||||
this._stopCursorTimeout();
|
this._stopCursorTimeout();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -520,6 +521,7 @@ var DrawingArea = new Lang.Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
leaveDrawingMode: function(save) {
|
leaveDrawingMode: function(save) {
|
||||||
|
this._disconnectMotionAndReleaseHandlers();
|
||||||
if (this.keyPressedHandler) {
|
if (this.keyPressedHandler) {
|
||||||
this.disconnect(this.keyPressedHandler);
|
this.disconnect(this.keyPressedHandler);
|
||||||
this.keyPressedHandler = null;
|
this.keyPressedHandler = null;
|
||||||
|
|
@ -532,14 +534,6 @@ var DrawingArea = new Lang.Class({
|
||||||
this.disconnect(this.touchEventHandler);
|
this.disconnect(this.touchEventHandler);
|
||||||
this.touchEventHandler = null;
|
this.touchEventHandler = null;
|
||||||
}
|
}
|
||||||
if (this.motionHandler) {
|
|
||||||
this.disconnect(this.motionHandler);
|
|
||||||
this.motionHandler = null;
|
|
||||||
}
|
|
||||||
if (this.releaseHandler) {
|
|
||||||
this.disconnect(this.releaseHandler);
|
|
||||||
this.releaseHandler = null;
|
|
||||||
}
|
|
||||||
if (this.scrollHandler) {
|
if (this.scrollHandler) {
|
||||||
this.disconnect(this.scrollHandler);
|
this.disconnect(this.scrollHandler);
|
||||||
this.scrollHandler = null;
|
this.scrollHandler = null;
|
||||||
|
|
@ -548,8 +542,6 @@ var DrawingArea = new Lang.Class({
|
||||||
if (this.helper.visible)
|
if (this.helper.visible)
|
||||||
this.helper.hideHelp();
|
this.helper.hideHelp();
|
||||||
|
|
||||||
this.touchSequence = null;
|
|
||||||
this.buttonPressed = false;
|
|
||||||
this.currentElement = null;
|
this.currentElement = null;
|
||||||
this._stopCursorTimeout();
|
this._stopCursorTimeout();
|
||||||
this.dashedLine = false;
|
this.dashedLine = false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue