[gnome-shell] swipe-scroll: Don't eat button-release events on click
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] swipe-scroll: Don't eat button-release events on click
- Date: Tue, 25 Jan 2011 09:32:02 +0000 (UTC)
commit b9e1d917dacea99186788ac24077add7c4363ade
Author: Florian Müllner <fmuellner gnome org>
Date: Mon Jan 24 22:31:10 2011 +0100
swipe-scroll: Don't eat button-release events on click
The main overview group starts capturing events on button-press
events to implement swipe-scrolling. While reactive children of
the group which handle both button-press and button-release events
don't trigger swipe-scrolling, children that only rely on
button-release have stopped working - at least the primary/secondary
icons of the search entry are affected. While the capture handler
already checks the pointer movement between press and release to
determine whether the action should be considered a click rather
than a drag, it still blocks the release event from propagating.
Instead, only block release events for drag actions, but not for
clicks.
https://bugzilla.gnome.org/show_bug.cgi?id=640493
js/ui/overview.js | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/overview.js b/js/ui/overview.js
index 8f4e830..c4b0c4e 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -324,16 +324,17 @@ Overview.prototype = {
newValue += difference;
}
+ let result;
+
// See if the user has moved the mouse enough to trigger
// a drag
let threshold = Gtk.Settings.get_default().gtk_dnd_drag_threshold;
if (Math.abs(stageX - this._dragStartX) < threshold &&
Math.abs(stageY - this._dragStartY) < threshold) {
// no motion? It's a click!
- this.emit('swipe-scroll-end', SwipeScrollResult.CLICK);
+ result = SwipeScrollResult.CLICK;
+ this.emit('swipe-scroll-end', result);
} else {
- let result;
-
if (newValue == this._dragStartValue)
result = SwipeScrollResult.CANCEL;
else
@@ -362,7 +363,7 @@ Overview.prototype = {
global.stage.disconnect(this._capturedEventId);
this._capturedEventId = 0;
- return true;
+ return result != SwipeScrollResult.CLICK;
case Clutter.EventType.MOTION:
[stageX, stageY] = event.get_coords();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]