overview: Use monotonic time to check for consecutive activations
We don't toggle the overview if the request happens too close to the last activation, to filter out double-clicks or activation by both the hot corner and a click. However as the check is based on the real time, the check breaks if the system clock moves backwards and the last activations appears to be in the future. Fix this by using monotonic time which is guaranteed to only move forward. https://bugzilla.gnome.org/show_bug.cgi?id=763886
This commit is contained in:
parent
13390543b0
commit
e00f22ebe6
@ -488,7 +488,8 @@ var Overview = new Lang.Class({
|
|||||||
return false;
|
return false;
|
||||||
if (this._inItemDrag || this._inWindowDrag)
|
if (this._inItemDrag || this._inWindowDrag)
|
||||||
return false;
|
return false;
|
||||||
if (this._activationTime == 0 || Date.now() / 1000 - this._activationTime > OVERVIEW_ACTIVATION_TIMEOUT)
|
if (this._activationTime == 0 ||
|
||||||
|
GLib.get_monotonic_time() / GLib.USEC_PER_SEC - this._activationTime > OVERVIEW_ACTIVATION_TIMEOUT)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
@ -547,7 +548,7 @@ var Overview = new Lang.Class({
|
|||||||
this.visible = true;
|
this.visible = true;
|
||||||
this.animationInProgress = true;
|
this.animationInProgress = true;
|
||||||
this.visibleTarget = true;
|
this.visibleTarget = true;
|
||||||
this._activationTime = Date.now() / 1000;
|
this._activationTime = GLib.get_monotonic_time() / GLib.USEC_PER_SEC;
|
||||||
|
|
||||||
Meta.disable_unredirect_for_screen(global.screen);
|
Meta.disable_unredirect_for_screen(global.screen);
|
||||||
this.viewSelector.show();
|
this.viewSelector.show();
|
||||||
|
Loading…
Reference in New Issue
Block a user