diff --git a/gnome-shell.doap b/gnome-shell.doap
index f16448cf7..9b2b5bf50 100644
--- a/gnome-shell.doap
+++ b/gnome-shell.doap
@@ -33,7 +33,7 @@
Colin Walters
- cwalters
+ walters
diff --git a/js/ui/altTab.js b/js/ui/altTab.js
index a8d3e79ea..85846cb66 100644
--- a/js/ui/altTab.js
+++ b/js/ui/altTab.js
@@ -946,6 +946,8 @@ AppSwitcher.prototype = {
this._mouseTimeOutId = Mainloop.timeout_add(APP_ICON_HOVER_TIMEOUT,
Lang.bind(this, function () {
this._enterItem(index);
+ this._mouseTimeOutId = 0;
+ return false;
}));
} else
this._itemEntered(index);
diff --git a/js/ui/overview.js b/js/ui/overview.js
index 8f4e830fa..513d93baf 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -276,6 +276,8 @@ Overview.prototype = {
_onCapturedEvent: function(actor, event) {
let stageX, stageY;
+ let threshold = Gtk.Settings.get_default().gtk_dnd_drag_threshold;
+
switch(event.type()) {
case Clutter.EventType.BUTTON_RELEASE:
[stageX, stageY] = event.get_coords();
@@ -324,16 +326,16 @@ 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 +364,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();
@@ -370,6 +372,16 @@ Overview.prototype = {
let dy = this._dragY - stageY;
let primary = global.get_primary_monitor();
+ this._dragX = stageX;
+ this._dragY = stageY;
+ this._lastMotionTime = event.get_time();
+
+ // See if the user has moved the mouse enough to trigger
+ // a drag
+ if (Math.abs(stageX - this._dragStartX) < threshold &&
+ Math.abs(stageY - this._dragStartY) < threshold)
+ return true;
+
if (this._scrollDirection == SwipeScrollDirection.HORIZONTAL) {
if (St.Widget.get_default_direction() == St.TextDirection.RTL)
this._scrollAdjustment.value -= (dx / primary.width) * this._scrollAdjustment.page_size;
@@ -379,10 +391,6 @@ Overview.prototype = {
this._scrollAdjustment.value += (dy / primary.height) * this._scrollAdjustment.page_size;
}
- this._dragX = stageX;
- this._dragY = stageY;
- this._lastMotionTime = event.get_time();
-
return true;
// Block enter/leave events to avoid prelights
diff --git a/src/shell-recorder.c b/src/shell-recorder.c
index a1c626b41..6f3a6ea37 100644
--- a/src/shell-recorder.c
+++ b/src/shell-recorder.c
@@ -412,6 +412,8 @@ recorder_fetch_cursor_image (ShellRecorder *recorder)
for (i = 0; i < cursor_image->height; i++)
for (j = 0; j < cursor_image->width; j++)
*(guint32 *)(data + i * stride + 4 * j) = cursor_image->pixels[i * cursor_image->width + j];
+
+ cairo_surface_mark_dirty (recorder->cursor_image);
}
/* Overlay the cursor image on the frame. We draw the cursor image