Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
969db82f5a | ||
![]() |
6ee13ff685 |
@@ -1,16 +1,19 @@
|
|||||||
# Coding guide
|
Coding guide
|
||||||
|
============
|
||||||
|
|
||||||
Our goal is to have all JavaScript code in GNOME follow a consistent style. In
|
Our goal is to have all JavaScript code in GNOME follow a consistent style. In
|
||||||
a dynamic language like JavaScript, it is essential to be rigorous about style
|
a dynamic language like JavaScript, it is essential to be rigorous about style
|
||||||
(and unit tests), or you rapidly end up with a spaghetti-code mess.
|
(and unit tests), or you rapidly end up with a spaghetti-code mess.
|
||||||
|
|
||||||
## A quick note
|
A quick note
|
||||||
|
------------
|
||||||
|
|
||||||
Life isn't fun if you can't break the rules. If a rule seems unnecessarily
|
Life isn't fun if you can't break the rules. If a rule seems unnecessarily
|
||||||
restrictive while you're coding, ignore it, and let the patch reviewer decide
|
restrictive while you're coding, ignore it, and let the patch reviewer decide
|
||||||
what to do.
|
what to do.
|
||||||
|
|
||||||
## Indentation and whitespace
|
Indentation and whitespace
|
||||||
|
--------------------------
|
||||||
|
|
||||||
Use four-space indents. Braces are on the same line as their associated
|
Use four-space indents. Braces are on the same line as their associated
|
||||||
statements. You should only omit braces if *both* sides of the statement are
|
statements. You should only omit braces if *both* sides of the statement are
|
||||||
@@ -19,7 +22,7 @@ on one line.
|
|||||||
* One space after the `function` keyword. No space between the function name
|
* One space after the `function` keyword. No space between the function name
|
||||||
* in a declaration or a call. One space before the parens in the `if`
|
* in a declaration or a call. One space before the parens in the `if`
|
||||||
* statements, or `while`, or `for` loops.
|
* statements, or `while`, or `for` loops.
|
||||||
```javascript
|
|
||||||
function foo(a, b) {
|
function foo(a, b) {
|
||||||
let bar;
|
let bar;
|
||||||
|
|
||||||
@@ -36,20 +39,22 @@ on one line.
|
|||||||
print(20);
|
print(20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
|
||||||
|
|
||||||
## Semicolons
|
Semicolons
|
||||||
|
----------
|
||||||
|
|
||||||
JavaScript allows omitting semicolons at the end of lines, but don't. Always
|
JavaScript allows omitting semicolons at the end of lines, but don't. Always
|
||||||
end statements with a semicolon.
|
end statements with a semicolon.
|
||||||
|
|
||||||
## js2-mode
|
js2-mode
|
||||||
|
--------
|
||||||
|
|
||||||
If using Emacs, do not use js2-mode. It is outdated and hasn't worked for a
|
If using Emacs, do not use js2-mode. It is outdated and hasn't worked for a
|
||||||
while. emacs now has a built-in JavaScript mode, js-mode, based on
|
while. emacs now has a built-in JavaScript mode, js-mode, based on
|
||||||
espresso-mode. It is the de facto emacs mode for JavaScript.
|
espresso-mode. It is the de facto emacs mode for JavaScript.
|
||||||
|
|
||||||
## File naming and creation
|
File naming and creation
|
||||||
|
------------------------
|
||||||
|
|
||||||
For JavaScript files, use lowerCamelCase-style names, with a `.js` extension.
|
For JavaScript files, use lowerCamelCase-style names, with a `.js` extension.
|
||||||
|
|
||||||
@@ -62,13 +67,14 @@ library name followed by a dash, e.g. `shell-app-system.c`. Create a
|
|||||||
`-private.h` header when you want to share code internally in the
|
`-private.h` header when you want to share code internally in the
|
||||||
library. These headers are not installed, distributed or introspected.
|
library. These headers are not installed, distributed or introspected.
|
||||||
|
|
||||||
## Imports
|
Imports
|
||||||
|
-------
|
||||||
|
|
||||||
Use UpperCamelCase when importing modules to distinguish them from ordinary
|
Use UpperCamelCase when importing modules to distinguish them from ordinary
|
||||||
variables, e.g.
|
variables, e.g.
|
||||||
```javascript
|
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
```
|
|
||||||
Imports should be categorized into one of two places. The top-most import block
|
Imports should be categorized into one of two places. The top-most import block
|
||||||
should contain only "environment imports". These are either modules from
|
should contain only "environment imports". These are either modules from
|
||||||
gobject-introspection or modules added by gjs itself.
|
gobject-introspection or modules added by gjs itself.
|
||||||
@@ -79,7 +85,7 @@ e.g. `imports.ui.popupMenu`.
|
|||||||
|
|
||||||
Each import block should be sorted alphabetically. Don't import modules you
|
Each import block should be sorted alphabetically. Don't import modules you
|
||||||
don't use.
|
don't use.
|
||||||
```javascript
|
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
@@ -89,22 +95,23 @@ don't use.
|
|||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
const Tweener = imports.ui.tweener;
|
const Tweener = imports.ui.tweener;
|
||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
```
|
|
||||||
The alphabetical ordering should be done independently of the location of the
|
The alphabetical ordering should be done independently of the location of the
|
||||||
location. Never reference `imports` in actual code.
|
location. Never reference `imports` in actual code.
|
||||||
|
|
||||||
## Constants
|
Constants
|
||||||
|
---------
|
||||||
|
|
||||||
We use CONSTANTS_CASE to define constants. All constants should be directly
|
We use CONSTANTS_CASE to define constants. All constants should be directly
|
||||||
under the imports:
|
under the imports:
|
||||||
```javascript
|
|
||||||
const MY_DBUS_INTERFACE = 'org.my.Interface';
|
|
||||||
```
|
|
||||||
|
|
||||||
## Variable declaration
|
const MY_DBUS_INTERFACE = 'org.my.Interface';
|
||||||
|
|
||||||
|
Variable declaration
|
||||||
|
--------------------
|
||||||
|
|
||||||
Always use either `const` or `let` when defining a variable.
|
Always use either `const` or `let` when defining a variable.
|
||||||
```javascript
|
|
||||||
// Iterating over an array
|
// Iterating over an array
|
||||||
for (let i = 0; i < arr.length; ++i) {
|
for (let i = 0; i < arr.length; ++i) {
|
||||||
let item = arr[i];
|
let item = arr[i];
|
||||||
@@ -114,17 +121,17 @@ Always use either `const` or `let` when defining a variable.
|
|||||||
for (let prop in someobj) {
|
for (let prop in someobj) {
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
```
|
|
||||||
|
|
||||||
If you use "var" then the variable is added to function scope, not block scope.
|
If you use "var" then the variable is added to function scope, not block scope.
|
||||||
See [What's new in JavaScript 1.7](https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.7#Block_scope_with_let_%28Merge_into_let_Statement%29)
|
See [What's new in JavaScript 1.7](https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.7#Block_scope_with_let_%28Merge_into_let_Statement%29)
|
||||||
|
|
||||||
## Classes
|
Classes
|
||||||
|
-------
|
||||||
|
|
||||||
There are many approaches to classes in JavaScript. We use our own class framework
|
There are many approaches to classes in JavaScript. We use our own class framework
|
||||||
(sigh), which is built in gjs. The advantage is that it supports inheriting from
|
(sigh), which is built in gjs. The advantage is that it supports inheriting from
|
||||||
GObjects, although this feature isn't used very often in the Shell itself.
|
GObjects, although this feature isn't used very often in the Shell itself.
|
||||||
```javascript
|
|
||||||
var IconLabelMenuItem = new Lang.Class({
|
var IconLabelMenuItem = new Lang.Class({
|
||||||
Name: 'IconLabelMenuItem',
|
Name: 'IconLabelMenuItem',
|
||||||
Extends: PopupMenu.PopupMenuBaseItem,
|
Extends: PopupMenu.PopupMenuBaseItem,
|
||||||
@@ -139,7 +146,6 @@ GObjects, although this feature isn't used very often in the Shell itself.
|
|||||||
log("menu opened!");
|
log("menu opened!");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
```
|
|
||||||
|
|
||||||
* 'Name' is required. 'Extends' is optional. If you leave it out, you will
|
* 'Name' is required. 'Extends' is optional. If you leave it out, you will
|
||||||
automatically inherit from Object.
|
automatically inherit from Object.
|
||||||
@@ -156,12 +162,13 @@ GObjects, although this feature isn't used very often in the Shell itself.
|
|||||||
still a giant function call, even though it may resemble a more
|
still a giant function call, even though it may resemble a more
|
||||||
conventional syntax.
|
conventional syntax.
|
||||||
|
|
||||||
## GObject Introspection
|
GObject Introspection
|
||||||
|
---------------------
|
||||||
|
|
||||||
GObject Introspection is a powerful feature that allows us to have native
|
GObject Introspection is a powerful feature that allows us to have native
|
||||||
bindings for almost any library built around GObject. If a library requires
|
bindings for almost any library built around GObject. If a library requires
|
||||||
you to inherit from a type to use it, you can do so:
|
you to inherit from a type to use it, you can do so:
|
||||||
```javascript
|
|
||||||
var MyClutterActor = new Lang.Class({
|
var MyClutterActor = new Lang.Class({
|
||||||
Name: 'MyClutterActor',
|
Name: 'MyClutterActor',
|
||||||
Extends: Clutter.Actor,
|
Extends: Clutter.Actor,
|
||||||
@@ -181,9 +188,9 @@ you to inherit from a type to use it, you can do so:
|
|||||||
alloc.x2, alloc.y2);
|
alloc.x2, alloc.y2);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
```
|
|
||||||
|
|
||||||
## Translatable strings, `environment.js`
|
Translatable strings, `environment.js`
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
We use gettext to translate the GNOME Shell into all the languages that GNOME
|
We use gettext to translate the GNOME Shell into all the languages that GNOME
|
||||||
supports. The `gettext` function is aliased globally as `_`, you do not need to
|
supports. The `gettext` function is aliased globally as `_`, you do not need to
|
||||||
@@ -197,7 +204,8 @@ and "double quotes" for strings that the user may see. This allows us to
|
|||||||
quickly find untranslated or mistranslated strings by grepping through the
|
quickly find untranslated or mistranslated strings by grepping through the
|
||||||
sources for double quotes without a gettext call around them.
|
sources for double quotes without a gettext call around them.
|
||||||
|
|
||||||
## `actor` and `_delegate`
|
`actor` and `_delegate`
|
||||||
|
-----------------------
|
||||||
|
|
||||||
gjs allows us to set so-called "expando properties" on introspected objects,
|
gjs allows us to set so-called "expando properties" on introspected objects,
|
||||||
allowing us to treat them like any other. Because the Shell was built before
|
allowing us to treat them like any other. Because the Shell was built before
|
||||||
@@ -206,7 +214,7 @@ that has a property called `actor`. We call this wrapper class the "delegate".
|
|||||||
|
|
||||||
We sometimes use expando properties to set a property called `_delegate` on
|
We sometimes use expando properties to set a property called `_delegate` on
|
||||||
the actor itself:
|
the actor itself:
|
||||||
```javascript
|
|
||||||
var MyClass = new Lang.Class({
|
var MyClass = new Lang.Class({
|
||||||
Name: 'MyClass',
|
Name: 'MyClass',
|
||||||
|
|
||||||
@@ -221,7 +229,6 @@ the actor itself:
|
|||||||
actor.set_label("You clicked the button!");
|
actor.set_label("You clicked the button!");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
```
|
|
||||||
|
|
||||||
The 'delegate' property is important for anything which trying to get the
|
The 'delegate' property is important for anything which trying to get the
|
||||||
delegate object from an associated actor. For instance, the drag and drop
|
delegate object from an associated actor. For instance, the drag and drop
|
||||||
@@ -229,14 +236,16 @@ system calls the `handleDragOver` function on the delegate of a "drop target"
|
|||||||
when the user drags an item over it. If you do not set the `_delegate`
|
when the user drags an item over it. If you do not set the `_delegate`
|
||||||
property, your actor will not be able to be dropped onto.
|
property, your actor will not be able to be dropped onto.
|
||||||
|
|
||||||
## Functional style
|
Functional style
|
||||||
|
----------------
|
||||||
|
|
||||||
JavaScript Array objects offer a lot of common functional programming
|
JavaScript Array objects offer a lot of common functional programming
|
||||||
capabilities such as forEach, map, filter and so on. You can use these when
|
capabilities such as forEach, map, filter and so on. You can use these when
|
||||||
they make sense, but please don't have a spaghetti mess of function programming
|
they make sense, but please don't have a spaghetti mess of function programming
|
||||||
messed in a procedural style. Use your best judgment.
|
messed in a procedural style. Use your best judgment.
|
||||||
|
|
||||||
## Closures
|
Closures
|
||||||
|
--------
|
||||||
|
|
||||||
`this` will not be captured in a closure, it is relative to how the closure is
|
`this` will not be captured in a closure, it is relative to how the closure is
|
||||||
invoked, not to the value of this where the closure is created, because "this"
|
invoked, not to the value of this where the closure is created, because "this"
|
||||||
@@ -245,16 +254,15 @@ variable that can be captured in closures.
|
|||||||
|
|
||||||
All closures should be wrapped with Function.prototype.bind or use arrow
|
All closures should be wrapped with Function.prototype.bind or use arrow
|
||||||
notation.
|
notation.
|
||||||
```javascript
|
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
|
|
||||||
let closure1 = () => { this._fnorbate(); };
|
let closure1 = () => { this._fnorbate(); };
|
||||||
let closure2 = this._fnorbate.bind(this);
|
let closure2 = this._fnorbate.bind(this);
|
||||||
```
|
|
||||||
|
|
||||||
A more realistic example would be connecting to a signal on a method of a
|
A more realistic example would be connecting to a signal on a method of a
|
||||||
prototype:
|
prototype:
|
||||||
```javascript
|
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const FnorbLib = imports.fborbLib;
|
const FnorbLib = imports.fborbLib;
|
||||||
|
|
||||||
@@ -268,21 +276,19 @@ prototype:
|
|||||||
this._updateFnorb();
|
this._updateFnorb();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
```
|
|
||||||
|
|
||||||
## Object literal syntax
|
Object literal syntax
|
||||||
|
---------------------
|
||||||
|
|
||||||
In JavaScript, these are equivalent:
|
In JavaScript, these are equivalent:
|
||||||
```javascript
|
|
||||||
foo = { 'bar': 42 };
|
foo = { 'bar': 42 };
|
||||||
foo = { bar: 42 };
|
foo = { bar: 42 };
|
||||||
```
|
|
||||||
|
|
||||||
and so are these:
|
and so are these:
|
||||||
```javascript
|
|
||||||
var b = foo['bar'];
|
var b = foo['bar'];
|
||||||
var b = foo.bar;
|
var b = foo.bar;
|
||||||
```
|
|
||||||
|
|
||||||
If your usage of an object is like an object, then you're defining "member
|
If your usage of an object is like an object, then you're defining "member
|
||||||
variables." For member variables, use the no-quotes no-brackets syntax: `{ bar:
|
variables." For member variables, use the no-quotes no-brackets syntax: `{ bar:
|
||||||
@@ -292,13 +298,14 @@ If your usage of an object is like a hash table (and thus conceptually the keys
|
|||||||
can have special chars in them), don't use quotes, but use brackets: `{ bar: 42
|
can have special chars in them), don't use quotes, but use brackets: `{ bar: 42
|
||||||
}`, `foo['bar']`.
|
}`, `foo['bar']`.
|
||||||
|
|
||||||
## Getters, setters, and Tweener
|
Getters, setters, and Tweener
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
Getters and setters should be used when you are dealing with an API that is
|
Getters and setters should be used when you are dealing with an API that is
|
||||||
designed around setting properties, like Tweener. If you want to animate an
|
designed around setting properties, like Tweener. If you want to animate an
|
||||||
arbitrary property, create a getter and setter, and use Tweener to animate the
|
arbitrary property, create a getter and setter, and use Tweener to animate the
|
||||||
property.
|
property.
|
||||||
```javascript
|
|
||||||
var ANIMATION_TIME = 2000;
|
var ANIMATION_TIME = 2000;
|
||||||
|
|
||||||
var MyClass = new Lang.Class({
|
var MyClass = new Lang.Class({
|
||||||
@@ -324,4 +331,3 @@ property.
|
|||||||
{ position: 100,
|
{ position: 100,
|
||||||
time: ANIMATION_TIME,
|
time: ANIMATION_TIME,
|
||||||
transition: 'easeOutQuad' });
|
transition: 'easeOutQuad' });
|
||||||
```
|
|
7
MAINTAINERS
Normal file
7
MAINTAINERS
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Owen Taylor
|
||||||
|
E-mail: otaylor@redhat.com
|
||||||
|
Userid: otaylor
|
||||||
|
|
||||||
|
Colin Walters
|
||||||
|
E-mail: walters@verbum.org
|
||||||
|
Userid: walters
|
89
NEWS
89
NEWS
@@ -1,92 +1,3 @@
|
|||||||
3.29.91
|
|
||||||
=======
|
|
||||||
* Fix handling of 0/false options in ShowOSD D-Bus API [Florian; #791669]
|
|
||||||
* overview: Fix handling of confirmation dialogs on wayland [verdre; !180]
|
|
||||||
* Avoid some full relayout/redraws [Carlos; !197]
|
|
||||||
* Keep workspace switcher slid out when workspaces are in use [Florian; !161]
|
|
||||||
* Ignore auto-repeat for some keybindings [Andrea; #373]
|
|
||||||
* Misc. bug fixes [Carlos, Florian, Pascal; #464, !189, !191, !192, !162]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Andrea Azzarone, Olivier Blin, Carlos Garnacho, Florian Müllner,
|
|
||||||
Pascal Nowack, verdre
|
|
||||||
|
|
||||||
Translators:
|
|
||||||
Bruno Lopes da Silva [pt_BR], Matej Urbančič [sl], Piotr Drąg [pl],
|
|
||||||
Aurimas Černius [lt], Emin Tufan Çetin [tr], Fabio Tomat [fur],
|
|
||||||
Alexandre Franke [fr], Yi-Jyun Pan [zh_TW], Bernd Homuth [de],
|
|
||||||
Andre Klapper [cs], Jordi Mas [ca], Daniel Șerbănescu [ro],
|
|
||||||
Bruce Cowan [en_GB]
|
|
||||||
|
|
||||||
3.29.90
|
|
||||||
=======
|
|
||||||
* Add remote access indication on wayland [Jonas; !160]
|
|
||||||
* Fix wrong window positions in overview on wayland [Marco; #776588]
|
|
||||||
* Add gesture to unfullscreen a window [Jan-Michael; !123]
|
|
||||||
* Add PickColor method to screenshot D-Bus interface [Florian; #286]
|
|
||||||
* Consider "new-window" action when opening new windows [Florian; #756844]
|
|
||||||
* Make workspace switching gestures follow motion [Carlos; #788994]
|
|
||||||
* Support audio volumes above 100% [Didier; #790280]
|
|
||||||
* Misc. bug fixes [Florian, Daniel; #424, !132, !182, #433, !179, #786496]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Jonas Ådahl, Jan-Michael Brummer, Piotr Drąg, Daniel Drake, Carlos Garnacho,
|
|
||||||
Florian Müllner, Georges Basile Stavracas Neto, Didier Roche, Jakub Steiner,
|
|
||||||
Marco Trevisan (Treviño)
|
|
||||||
|
|
||||||
Translators:
|
|
||||||
Charles Monzat [fr], Daniel Mustieles [es]
|
|
||||||
|
|
||||||
3.29.4
|
|
||||||
======
|
|
||||||
* Fix "Clear All" for calendar events [Florian; #325]
|
|
||||||
* Allow cancelling direct switch operations [Xavier; #315]
|
|
||||||
* Support being started by systemd --user [Iain; !137, !138]
|
|
||||||
* Support key event forwarding required by some input methods [Carlos; #275]
|
|
||||||
* Misc. bug fixes and cleanups [Jasper, Andrea, Florian; #663461, #372, !112,
|
|
||||||
#414, !151]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Andrea Azzarone, Carlos Garnacho, Xavier Johnson, Iain Lane, Florian Müllner,
|
|
||||||
Jasper St. Pierre
|
|
||||||
|
|
||||||
Translators:
|
|
||||||
Stas Solovey [ru]
|
|
||||||
|
|
||||||
3.29.3
|
|
||||||
======
|
|
||||||
* Save creation time in screenshot metadata [Florian; #790481]
|
|
||||||
* Improve consistency between ctrl- and middle-click on app icons [Xavier; #316]
|
|
||||||
* Add support for font-feature-settings CSS property [Ryan; #34]
|
|
||||||
* Adjust to MetaScreen removal [Jonas; #759538]
|
|
||||||
* Misc. bug fixes [Florian, Marco, Sam; #298, #788931, #26, #76, !54, #788882,
|
|
||||||
#791233]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Jonas Ådahl, Ryan Hendrickson, Xavier Johnson, Florian Müllner, Joe Rabinoff,
|
|
||||||
Sam Spilsbury, Marco Trevisan (Treviño)
|
|
||||||
|
|
||||||
Translators:
|
|
||||||
Gun Chleoc [gd], Yi-Jyun Pan [zh_TW], Cédric Valmary [oc], Jordi Mas [ca]
|
|
||||||
|
|
||||||
3.29.2
|
|
||||||
======
|
|
||||||
* Guard against untimely keyboard map changes [Carlos; #240]
|
|
||||||
* Fix icons in search provider results [Florian; #249]
|
|
||||||
* Fix blurriness of OSD under some resolutions [Silvère; #782011]
|
|
||||||
* Fix lagging pointer when zoomed [Daniel; #682013]
|
|
||||||
* Misc. bug fixes [Milan, Xiaoguang, Florian, Mario, Ole; #244, #787871,
|
|
||||||
#781471, #136, #214, #294]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Ole Jørgen Brønner, Milan Crha, Carlos Garnacho, Yussuf Khalil,
|
|
||||||
Silvère Latchurié, Florian Müllner, Mario Sanchez Prada, Ray Strode,
|
|
||||||
Daniel van Vugt, Xiaoguang Wang
|
|
||||||
|
|
||||||
Translators:
|
|
||||||
Rafael Fontenelle [pt_BR], Kukuh Syafaat [id], Marcos Lans [gl],
|
|
||||||
Anders Jonsson [sv], Mingcong Bai [zh_CN]
|
|
||||||
|
|
||||||
3.29.1
|
3.29.1
|
||||||
======
|
======
|
||||||
* Support icons in app-menu [Florian; #760985]
|
* Support icons in app-menu [Florian; #760985]
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
# GNOME Shell
|
|
||||||
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
|
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
|
||||||
like switching to windows and launching applications. GNOME Shell takes
|
like switching to windows and launching applications. GNOME Shell takes
|
||||||
advantage of the capabilities of modern graphics hardware and introduces
|
advantage of the capabilities of modern graphics hardware and introduces
|
||||||
@@ -7,14 +6,15 @@ easy to use experience.
|
|||||||
|
|
||||||
For more information about GNOME Shell, including instructions on how
|
For more information about GNOME Shell, including instructions on how
|
||||||
to build GNOME Shell from source and how to get involved with the project,
|
to build GNOME Shell from source and how to get involved with the project,
|
||||||
see the [project wiki][wiki]
|
see:
|
||||||
|
|
||||||
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
https://wiki.gnome.org/Projects/GnomeShell
|
||||||
|
|
||||||
## License
|
Bugs should be reported at http://bugzilla.gnome.org against the 'gnome-shell'
|
||||||
|
product.
|
||||||
|
|
||||||
|
License
|
||||||
|
=======
|
||||||
GNOME Shell is distributed under the terms of the GNU General Public License,
|
GNOME Shell is distributed under the terms of the GNU General Public License,
|
||||||
version 2 or later. See the [COPYING][license] file for details.
|
version 2 or later. See the COPYING file for details.
|
||||||
|
|
||||||
[project-wiki]: https://wiki.gnome.org/Projects/GnomeShell
|
|
||||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues
|
|
||||||
[license]: COPYING
|
|
@@ -4,14 +4,14 @@ the extensions repository to provide good integration, letting the website
|
|||||||
know which extensions are enabled and disabled, and allowing the website to
|
know which extensions are enabled and disabled, and allowing the website to
|
||||||
enable, disable and install them.
|
enable, disable and install them.
|
||||||
|
|
||||||
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
Bugs should be reported at http://bugzilla.gnome.org against the 'gnome-shell'
|
||||||
|
product.
|
||||||
|
|
||||||
## License
|
License
|
||||||
|
=======
|
||||||
The GNOME Shell Browser Plugin, like GNOME Shell itself is distributed under
|
The GNOME Shell Browser Plugin, like GNOME Shell itself is distributed under
|
||||||
the GNU General Public License, version 2 or later. The plugin also contains
|
the GNU General Public License, version 2 or later. The plugin also contains
|
||||||
header files from the "NPAPI SDK" project, tri-licensed under MPL 1.1, GPL 2.0
|
header files from the "NPAPI SDK" project, tri-licensed under MPL 1.1, GPL 2.0
|
||||||
and LGPL 2.1. These headers are third-party sources and can be retrieved from:
|
and LGPL 2.1. These headers are third-party sources and can be retrieved from:
|
||||||
|
|
||||||
http://code.google.com/p/npapi-sdk/
|
http://code.google.com/p/npapi-sdk/
|
||||||
|
|
||||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues
|
|
@@ -24,9 +24,3 @@
|
|||||||
|
|
||||||
/* Define if _NL_TIME_FIRST_WEEKDATE is available */
|
/* Define if _NL_TIME_FIRST_WEEKDATE is available */
|
||||||
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
|
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
|
||||||
|
|
||||||
/* Define if you have the `g_desktop_app_info_launch_uris_as_manager_with_fds` function */
|
|
||||||
#mesondefine HAVE_GIO_DESKTOP_LAUNCH_URIS_WITH_FDS
|
|
||||||
|
|
||||||
/* Define if fdwalk is available in libc */
|
|
||||||
#mesondefine HAVE_FDWALK
|
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
[org.gnome.mutter:GNOME]
|
|
||||||
attach-modal-dialogs=true
|
|
||||||
edge-tiling=true
|
|
||||||
dynamic-workspaces=true
|
|
||||||
workspaces-only-on-primary=true
|
|
||||||
focus-change-on-pointer-rest=true
|
|
@@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=GNOME settings overrides migration
|
|
||||||
NoDisplay=true
|
|
||||||
Exec=@libexecdir@/gnome-shell-overrides-migration.sh
|
|
@@ -1,5 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=GNOME Shell (wayland sync point)
|
|
||||||
After=gnome-shell.service
|
|
||||||
BindsTo=gnome-shell.service
|
|
||||||
Conflicts=gnome-shell-x11.target
|
|
@@ -1,5 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=GNOME Shell (x11 sync point)
|
|
||||||
After=gnome-shell.service
|
|
||||||
BindsTo=gnome-shell.service
|
|
||||||
Conflicts=gnome-shell-wayland.target
|
|
@@ -1,11 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=GNOME Shell
|
|
||||||
Wants=gnome-session.service
|
|
||||||
After=graphical-session-pre.target gnome-session-bus.target
|
|
||||||
PartOf=graphical-session.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=dbus
|
|
||||||
ExecStart=@bindir@/gnome-shell
|
|
||||||
Restart=on-failure
|
|
||||||
BusName=org.gnome.Shell
|
|
@@ -92,33 +92,6 @@ schema = configure_file(
|
|||||||
configuration: schemaconf,
|
configuration: schemaconf,
|
||||||
install_dir: schemadir
|
install_dir: schemadir
|
||||||
)
|
)
|
||||||
install_data('00_org.gnome.shell.gschema.override', install_dir: schemadir)
|
|
||||||
|
|
||||||
overrides_migration_conf = configuration_data()
|
|
||||||
overrides_migration_conf.set('libexecdir', libexecdir)
|
|
||||||
overrides_migration = configure_file(
|
|
||||||
input: 'gnome-shell-overrides-migration.desktop.in',
|
|
||||||
output: 'gnome-shell-overrides-migration.desktop',
|
|
||||||
configuration: overrides_migration_conf,
|
|
||||||
install_dir: autostartdir
|
|
||||||
)
|
|
||||||
|
|
||||||
if have_systemd
|
|
||||||
unitconf = configuration_data()
|
|
||||||
unitconf.set('bindir', bindir)
|
|
||||||
|
|
||||||
unit = configure_file(
|
|
||||||
input: 'gnome-shell.service.in',
|
|
||||||
output: 'gnome-shell.service',
|
|
||||||
configuration: unitconf,
|
|
||||||
install_dir: systemduserunitdir
|
|
||||||
)
|
|
||||||
|
|
||||||
units = files('gnome-shell-wayland.target',
|
|
||||||
'gnome-shell-x11.target')
|
|
||||||
|
|
||||||
install_data(units, install_dir: systemduserunitdir)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# for unit tests - gnome.compile_schemas() only looks in srcdir
|
# for unit tests - gnome.compile_schemas() only looks in srcdir
|
||||||
custom_target('compile-schemas',
|
custom_target('compile-schemas',
|
||||||
|
@@ -91,23 +91,6 @@
|
|||||||
<arg type="s" direction="out" name="filename_used"/>
|
<arg type="s" direction="out" name="filename_used"/>
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
<!--
|
|
||||||
PickColor:
|
|
||||||
|
|
||||||
Picks a color and returns the result.
|
|
||||||
|
|
||||||
The @result vardict contains:
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>color (ddd)</term>
|
|
||||||
<listitem><para>The color, RGB values in the range [0,1].</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
-->
|
|
||||||
<method name="PickColor">
|
|
||||||
<arg type="a{sv}" direction="out" name="result"/>
|
|
||||||
</method>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
FlashArea:
|
FlashArea:
|
||||||
@x: the X coordinate of the area to flash
|
@x: the X coordinate of the area to flash
|
||||||
|
@@ -190,7 +190,6 @@
|
|||||||
</key>
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<!-- unused, change 00_org.gnome.shell.gschema.override instead -->
|
|
||||||
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
|
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
|
||||||
gettext-domain="@GETTEXT_PACKAGE@">
|
gettext-domain="@GETTEXT_PACKAGE@">
|
||||||
<key name="attach-modal-dialogs" type="b">
|
<key name="attach-modal-dialogs" type="b">
|
||||||
|
3
data/theme/HACKING
Normal file
3
data/theme/HACKING
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
To generate the css files, from the project directory:
|
||||||
|
|
||||||
|
sass --sourcemap=none --update .
|
31
data/theme/README
Normal file
31
data/theme/README
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
Summary
|
||||||
|
-------
|
||||||
|
|
||||||
|
* Do not edit the CSS directly, edit the source SCSS files and the CSS files will be generated
|
||||||
|
automatically when building with meson + ninja and left inside the build directory to be
|
||||||
|
incorporated into the gresource XML (you'll need to have sassc installed).
|
||||||
|
|
||||||
|
How to tweak the theme
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Adwaita is a complex theme, so to keep it maintainable it's written and processed in SASS, the
|
||||||
|
generated CSS is then transformed into a gresource file during gtk build and used at runtime in a
|
||||||
|
non-legible or editable form.
|
||||||
|
|
||||||
|
It is very likely your change will happen in the _common.scss file. That's where all the widget
|
||||||
|
selectors are defined. Here's a rundown of the "supporting" stylesheets, that are unlikely to be the
|
||||||
|
right place for a drive by stylesheet fix:
|
||||||
|
|
||||||
|
_colors.scss - global color definitions. We keep the number of defined colors to a necessary minimum,
|
||||||
|
most colors are derived from a handful of basics. It is an exact copy of the gtk+
|
||||||
|
counterpart. Light theme is used for the classic theme and dark is for GNOME3 shell
|
||||||
|
default.
|
||||||
|
|
||||||
|
_drawing.scss - drawing helper mixings/functions to allow easier definition of widget drawing under
|
||||||
|
specific context. This is why Adwaita isn't 15000 LOC.
|
||||||
|
|
||||||
|
_common.scss - actual definitions of style for each widget. This is where you are likely to add/remove
|
||||||
|
your changes.
|
||||||
|
|
||||||
|
You can read about SASS at http://sass-lang.com/documentation/. Once you make your changes to the
|
||||||
|
_common.scss file, you can run ninja to generate the final CSS files.
|
@@ -1,32 +0,0 @@
|
|||||||
## Summary
|
|
||||||
|
|
||||||
Do not edit the CSS directly, edit the source SCSS files and the CSS files
|
|
||||||
will be generated automatically when building with meson + ninja and left
|
|
||||||
inside the build directory to be incorporated into the gresource XML (you'll
|
|
||||||
need to have sassc installed).
|
|
||||||
|
|
||||||
## How to tweak the theme
|
|
||||||
|
|
||||||
Adwaita is a complex theme, so to keep it maintainable it's written and
|
|
||||||
processed in SASS, the generated CSS is then transformed into a gresource
|
|
||||||
file during gtk build and used at runtime in a non-legible or editable form.
|
|
||||||
|
|
||||||
It is very likely your change will happen in the [_common.scss][common] file.
|
|
||||||
That's where all the widget selectors are defined. Here's a rundown of
|
|
||||||
the "supporting" stylesheets, that are unlikely to be the right place
|
|
||||||
for a drive by stylesheet fix:
|
|
||||||
|
|
||||||
| File | Description |
|
|
||||||
| ------------------------ | ----------------- |
|
|
||||||
| [_colors.scss][colors] | global color definitions. We keep the number of defined colors to a necessary minimum, most colors are derived from a handful of basics. It is an exact copy of the gtk+ counterpart. Light theme is used for the classic theme and dark is for GNOME3 shell default. |
|
|
||||||
| [_drawing.scss][drawing] | drawing helper mixings/functions to allow easier definition of widget drawing under specific context. This is why Adwaita isn't 15000 LOC. |
|
|
||||||
| [_common.scss][common] | actual definitions of style for each widget. This is where you are likely to add/remove your changes. |
|
|
||||||
|
|
||||||
You can read about SASS on its [web page][sass-web]. Once you make your
|
|
||||||
changes to the [_common.scss][common] file, you can run ninja to generate the
|
|
||||||
final CSS files.
|
|
||||||
|
|
||||||
[common]: data/theme/gnome-shell-sass/_common.scss
|
|
||||||
[colors]: data/theme/gnome-shell-sass/_colors.scss
|
|
||||||
[drawing]: data/theme/gnome-shell-sass/_drawing.scss
|
|
||||||
[sass-web]: http://sass-lang.com/documentation/
|
|
6
data/theme/gnome-shell-sass/HACKING
Normal file
6
data/theme/gnome-shell-sass/HACKING
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
--- Generating the css file ---
|
||||||
|
|
||||||
|
You need sass to generate the css file.
|
||||||
|
|
||||||
|
To generate them run from a command line in the project directory:
|
||||||
|
sass --sourcemap=none --update ./
|
7
data/theme/gnome-shell-sass/README
Normal file
7
data/theme/gnome-shell-sass/README
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
GNOME Shell Sass is a project intended to allow the sharing of the theme sources in sass between gnome-shell and other projects like gnome-shell-extensions.
|
||||||
|
|
||||||
|
License
|
||||||
|
=======
|
||||||
|
GNOME Shell Sass is distributed under the terms of the GNU General Public License,
|
||||||
|
version 2 or later. See the COPYING file for details.
|
||||||
|
|
@@ -1,16 +0,0 @@
|
|||||||
# GNOME Shell Sass
|
|
||||||
GNOME Shell Sass is a project intended to allow the sharing of the
|
|
||||||
theme sources in sass between gnome-shell and other projects like
|
|
||||||
gnome-shell-extensions.
|
|
||||||
|
|
||||||
Any changes should be done in the [GNOME Shell subtree][shell-subtree]
|
|
||||||
and not the stand-alone [gnome-shell-sass repository][sass-repo]. They
|
|
||||||
will then be synchronized periodically before releases.
|
|
||||||
|
|
||||||
## License
|
|
||||||
GNOME Shell Sass is distributed under the terms of the GNU General Public
|
|
||||||
License, version 2 or later. See the [COPYING][license] file for details.
|
|
||||||
|
|
||||||
[shell-subtree]: https://gitlab.gnome.org/GNOME/gnome-shell/tree/master/data/theme/gnome-shell-sass
|
|
||||||
[sass-repo]: https://gitlab.gnome.org/GNOME/gnome-shell-sass
|
|
||||||
[license]: COPYING
|
|
@@ -128,15 +128,12 @@ StScrollBar {
|
|||||||
|
|
||||||
.slider {
|
.slider {
|
||||||
height: 1em;
|
height: 1em;
|
||||||
-barlevel-height: 0.3em;
|
-slider-height: 0.3em;
|
||||||
-barlevel-background-color: $insensitive_bg_color; //background of the trough
|
-slider-background-color: $insensitive_bg_color; //background of the trough
|
||||||
-barlevel-border-color: $borders_color; //trough border color
|
-slider-border-color: $borders_color; //trough border color
|
||||||
-barlevel-active-background-color: $selected_bg_color; //active trough fill
|
-slider-active-background-color: $selected_bg_color; //active trough fill
|
||||||
-barlevel-active-border-color: darken($selected_bg_color,10%); //active trough border
|
-slider-active-border-color: darken($selected_bg_color,10%); //active trough border
|
||||||
-barlevel-overdrive-color: $destructive_color;
|
-slider-border-width: 1px;
|
||||||
-barlevel-overdrive-border-color: darken($destructive_color,10%);
|
|
||||||
-barlevel-overdrive-separator-width: 0.2em;
|
|
||||||
-barlevel-border-width: 1px;
|
|
||||||
-slider-handle-radius: 6px;
|
-slider-handle-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -588,11 +585,13 @@ StScrollBar {
|
|||||||
.osd-monitor-label { font-size: 3em; }
|
.osd-monitor-label { font-size: 3em; }
|
||||||
.level {
|
.level {
|
||||||
height: 0.6em;
|
height: 0.6em;
|
||||||
-barlevel-height: 0.6em;
|
border-radius: 0.3em;
|
||||||
-barlevel-background-color: transparentize(darken($osd_bg_color,15%),0.5);
|
background-color: transparentize(darken($osd_bg_color,15%),0.5);
|
||||||
-barlevel-active-background-color: $osd_fg_color;
|
color: $osd_fg_color;
|
||||||
-barlevel-overdrive-color: $destructive_color;
|
}
|
||||||
-barlevel-overdrive-separator-width: 0.2em;
|
.level-bar {
|
||||||
|
background-color: $osd_fg_color;
|
||||||
|
border-radius: 0.3em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -734,7 +733,6 @@ StScrollBar {
|
|||||||
transition-duration: 500ms;
|
transition-duration: 500ms;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
height: 1.86em;
|
height: 1.86em;
|
||||||
font-feature-settings: "tnum";
|
|
||||||
|
|
||||||
&.unlock-screen,
|
&.unlock-screen,
|
||||||
&.login-screen,
|
&.login-screen,
|
||||||
@@ -826,8 +824,6 @@ StScrollBar {
|
|||||||
|
|
||||||
.screencast-indicator { color: $warning_color; }
|
.screencast-indicator { color: $warning_color; }
|
||||||
|
|
||||||
.remote-access-indicator { color: $warning_color; }
|
|
||||||
|
|
||||||
&.solid {
|
&.solid {
|
||||||
background-color: black;
|
background-color: black;
|
||||||
/* transition from transparent to solid */
|
/* transition from transparent to solid */
|
||||||
@@ -962,7 +958,6 @@ StScrollBar {
|
|||||||
padding: 0.1em;
|
padding: 0.1em;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
border-radius: 1.4em;
|
border-radius: 1.4em;
|
||||||
font-feature-settings: "tnum";
|
|
||||||
&:hover,&:focus { background-color: lighten($bg_color,5%); }
|
&:hover,&:focus { background-color: lighten($bg_color,5%); }
|
||||||
&:active,&:selected {
|
&:active,&:selected {
|
||||||
color: lighten($selected_fg_color,5%);
|
color: lighten($selected_fg_color,5%);
|
||||||
@@ -1125,7 +1120,6 @@ StScrollBar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.system-menu-action {
|
.system-menu-action {
|
||||||
-st-icon-style: symbolic;
|
|
||||||
color: $fg_color;
|
color: $fg_color;
|
||||||
border-radius: 32px; /* wish we could do 50% */
|
border-radius: 32px; /* wish we could do 50% */
|
||||||
padding: 13px;
|
padding: 13px;
|
||||||
@@ -1873,7 +1867,6 @@ StScrollBar {
|
|||||||
.screen-shield-clock-time {
|
.screen-shield-clock-time {
|
||||||
font-size: 72pt;
|
font-size: 72pt;
|
||||||
text-shadow: 0px 2px 2px rgba(0,0,0,0.4);
|
text-shadow: 0px 2px 2px rgba(0,0,0,0.4);
|
||||||
font-feature-settings: "tnum";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.screen-shield-clock-date {
|
.screen-shield-clock-date {
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
id="svg7384"
|
id="svg7384"
|
||||||
height="32"
|
height="32"
|
||||||
sodipodi:docname="key-layout.svg"
|
sodipodi:docname="key-layout.svg"
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
bordercolor="#666666"
|
bordercolor="#666666"
|
||||||
@@ -24,21 +24,17 @@
|
|||||||
guidetolerance="10"
|
guidetolerance="10"
|
||||||
inkscape:pageopacity="0"
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:window-width="3440"
|
inkscape:window-width="1919"
|
||||||
inkscape:window-height="1376"
|
inkscape:window-height="1011"
|
||||||
id="namedview19"
|
id="namedview19"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:zoom="1"
|
inkscape:zoom="14.75"
|
||||||
inkscape:cx="46.246852"
|
inkscape:cx="1.220339"
|
||||||
inkscape:cy="17.474578"
|
inkscape:cy="11.842802"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="0"
|
||||||
inkscape:window-y="27"
|
inkscape:window-y="55"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="0"
|
||||||
inkscape:current-layer="svg7384">
|
inkscape:current-layer="svg7384" />
|
||||||
<inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid861" />
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata90">
|
id="metadata90">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
@@ -96,34 +92,23 @@
|
|||||||
style="display:inline"
|
style="display:inline"
|
||||||
id="g4953" />
|
id="g4953" />
|
||||||
<g
|
<g
|
||||||
style="stroke-width:0.5;enable-background:new"
|
|
||||||
id="g3561"
|
|
||||||
inkscape:label="preferences-desktop-locale"
|
inkscape:label="preferences-desktop-locale"
|
||||||
transform="matrix(2,0,0,2,135.99464,-895.9793)">
|
id="g11728"
|
||||||
<path
|
transform="matrix(2,0,0,2,-522.0004,-1086)"
|
||||||
sodipodi:nodetypes="cc"
|
style="display:inline;stroke-width:1">
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path3535"
|
|
||||||
d="m -65,450 v 12"
|
|
||||||
style="fill:#e5e5e5;fill-opacity:1;fill-rule:evenodd;stroke:#e5e5e5;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="ccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path3537"
|
|
||||||
d="m -65,456 h 4 l 1,2 h 5 v -6 h -4 l -1,-2 h -5 z"
|
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#e5e5e5;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="opacity:1;vector-effect:none;fill:#e5e5e5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
|
||||||
d="m -65,456 h 4 l 1,2 h 5 v -6 h -4 l -1,-2 h -5 z"
|
|
||||||
id="path3539"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccccccc" />
|
|
||||||
<rect
|
<rect
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:0.89050001;marker:none;enable-background:new"
|
style="fill:none;stroke:none;stroke-width:1"
|
||||||
id="rect3543"
|
id="rect11724"
|
||||||
y="448"
|
width="16"
|
||||||
x="-68"
|
|
||||||
height="16"
|
height="16"
|
||||||
width="16" />
|
x="20"
|
||||||
|
y="326"
|
||||||
|
transform="translate(241.0002,217)" />
|
||||||
|
<path
|
||||||
|
style="fill:#e5e5e5;fill-opacity:1;stroke:none;stroke-width:1"
|
||||||
|
d="m 265.69612,545.23396 c -3.58218,0 -4.66582,1.39975 -4.66582,1.39975 v 10.04946 c 0,0 1.08364,-1.07673 4.66582,-1.07673 2.9161,0 4.47225,1.07673 7.17818,1.07673 2.08923,0 3.19429,-1.39975 3.19429,-1.39975 v -10.04946 c 0,0 -1.14095,1.04084 -3.23018,1.04084 -3.3734,0 -3.97619,-1.04084 -7.14229,-1.04084 z m 2.93145,2.77148 c 1.32876,0 2.375,1.08037 2.375,2.4375 0,1.35713 -1.04624,2.46875 -2.375,2.46875 -1.32876,0 -2.40625,-1.11162 -2.40625,-2.46875 0,-1.35713 1.07749,-2.4375 2.40625,-2.4375 z m -4.5625,0.96875 0.96875,1.03125 -0.9375,-0.0312 0.9375,1 -0.96875,-0.0312 0.96875,1.03125 -1,-0.0312 0.0312,-1 h -0.0312 l 0.0312,-0.9688 h -0.0312 z m 4.5625,0 c -0.794,0 -1.46875,0.6578 -1.46875,1.46875 0,0.81095 0.67475,1.46875 1.46875,1.46875 0.79399,0 1.4375,-0.6578 1.4375,-1.46875 0,-0.81095 -0.64351,-1.46875 -1.4375,-1.46875 z m 4.375,0 v 1 l 0.0312,0.96875 h -0.0312 l 0.0312,1 -1,0.0312 0.96875,-1.03125 -0.96875,0.0312 0.9375,-1 -0.9375,0.0312 z m -7.9375,2.96875 0.96875,1.03125 -1,-0.0312 z m 6.9375,0 0.0312,1 -1,0.0312 z m -5.9375,1 0.96875,1.03125 -1,-0.0312 z m 4.9375,0 0.0312,1 -1,0.0312 z"
|
||||||
|
id="path11726"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="sccssccsssssssccccccccccccsssssccccccccccccccccccccccccccc" />
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -13,102 +13,10 @@
|
|||||||
height="64px"
|
height="64px"
|
||||||
id="svg3393"
|
id="svg3393"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
inkscape:version="0.48.5 r10040"
|
||||||
sodipodi:docname="no-notifications.svg">
|
sodipodi:docname="New document 2">
|
||||||
<defs
|
<defs
|
||||||
id="defs3395">
|
id="defs3395" />
|
||||||
<clipPath
|
|
||||||
id="clipPath6262-0"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none"
|
|
||||||
id="rect6264-6"
|
|
||||||
width="3.8250003"
|
|
||||||
height="6.3750005"
|
|
||||||
x="26.849981"
|
|
||||||
y="220.75" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath6258-0"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none"
|
|
||||||
id="rect6260-6"
|
|
||||||
width="2.8977275"
|
|
||||||
height="5.3129687"
|
|
||||||
x="26.965673"
|
|
||||||
y="221.28162" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath6254-6"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none"
|
|
||||||
id="rect6256-6"
|
|
||||||
width="1.876245"
|
|
||||||
height="4.8783236"
|
|
||||||
x="26.998718"
|
|
||||||
y="221.50153" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath8028-3"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
||||||
d="m -73,-30 -7,-7 v -4.5 h 16.5 v 4.5 l -7.5,7 z"
|
|
||||||
id="path8030-6"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccccc" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath6810-7-87-7">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
|
||||||
id="rect6812-2-4-5"
|
|
||||||
width="14"
|
|
||||||
height="11"
|
|
||||||
x="21"
|
|
||||||
y="281" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath6262"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none"
|
|
||||||
id="rect6264"
|
|
||||||
width="3.8250003"
|
|
||||||
height="6.3750005"
|
|
||||||
x="26.849981"
|
|
||||||
y="220.75" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath6258"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none"
|
|
||||||
id="rect6260"
|
|
||||||
width="2.8977275"
|
|
||||||
height="5.3129687"
|
|
||||||
x="26.965673"
|
|
||||||
y="221.28162" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
id="clipPath6254"
|
|
||||||
clipPathUnits="userSpaceOnUse">
|
|
||||||
<rect
|
|
||||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none"
|
|
||||||
id="rect6256"
|
|
||||||
width="1.876245"
|
|
||||||
height="4.8783236"
|
|
||||||
x="26.998718"
|
|
||||||
y="221.50153" />
|
|
||||||
</clipPath>
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="spiro"
|
|
||||||
id="path-effect3951"
|
|
||||||
is_visible="true" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
id="base"
|
id="base"
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
@@ -116,17 +24,17 @@
|
|||||||
borderopacity="1.0"
|
borderopacity="1.0"
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="1"
|
inkscape:zoom="5.5"
|
||||||
inkscape:cx="125.08157"
|
inkscape:cx="32"
|
||||||
inkscape:cy="-13.805087"
|
inkscape:cy="32"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer1"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:document-units="px"
|
inkscape:document-units="px"
|
||||||
inkscape:grid-bbox="true"
|
inkscape:grid-bbox="true"
|
||||||
inkscape:window-width="1664"
|
inkscape:window-width="697"
|
||||||
inkscape:window-height="1034"
|
inkscape:window-height="613"
|
||||||
inkscape:window-x="1479"
|
inkscape:window-x="100"
|
||||||
inkscape:window-y="252"
|
inkscape:window-y="77"
|
||||||
inkscape:window-maximized="0" />
|
inkscape:window-maximized="0" />
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata3398">
|
id="metadata3398">
|
||||||
@@ -146,7 +54,7 @@
|
|||||||
inkscape:groupmode="layer">
|
inkscape:groupmode="layer">
|
||||||
<g
|
<g
|
||||||
style="display:inline"
|
style="display:inline"
|
||||||
transform="matrix(4,0,0,4,-79.702662,-0.35415646)"
|
transform="matrix(4,0,0,4,0.29733827,-0.35415646)"
|
||||||
id="g19245">
|
id="g19245">
|
||||||
<g
|
<g
|
||||||
id="g19247"
|
id="g19247"
|
||||||
@@ -163,15 +71,15 @@
|
|||||||
transform="translate(-323.02908,-649.02581)">
|
transform="translate(-323.02908,-649.02581)">
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
d="m 331.9377,653 c 0.0187,0.16677 0.0625,0.32822 0.0625,0.5 0,2.48528 -2.01472,4.5 -4.5,4.5 -0.11769,0 -0.22834,-0.0224 -0.34375,-0.0312 v 2.21875 c 0,1.00412 0.80838,1.8125 1.8125,1.8125 l 1.54511,-5e-5 2,2.04688 2.0625,-2.04688 h 1.61114 c 1.00413,0 1.8125,-0.80838 1.8125,-1.8125 v -5.375 c 0,-1.00412 -0.80837,-1.8125 -1.8125,-1.8125 z"
|
d="m 331.9377,653 c 0.0187,0.16677 0.0625,0.32822 0.0625,0.5 0,2.48528 -2.01472,4.5 -4.5,4.5 -0.11769,0 -0.22834,-0.0224 -0.34375,-0.0312 l 0,2.21875 c 0,1.00412 0.80838,1.8125 1.8125,1.8125 l 1.54511,-5e-5 2,2.04688 2.0625,-2.04688 1.61114,0 c 1.00413,0 1.8125,-0.80838 1.8125,-1.8125 l 0,-5.375 c 0,-1.00412 -0.80837,-1.8125 -1.8125,-1.8125 z"
|
||||||
id="path19253"
|
id="path19253"
|
||||||
sodipodi:nodetypes="csscsscccssssc"
|
sodipodi:nodetypes="csscsscccssssc"
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#c3c3c3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" />
|
style="opacity:0.5;color:#000000;fill:#c3c3c3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
d="m 327.5002,650 c -1.933,0 -3.5,1.567 -3.5,3.5 0,1.933 1.567,3.5 3.5,3.5 1.933,0 3.5,-1.567 3.5,-3.5 0,-1.933 -1.567,-3.5 -3.5,-3.5 z m -0.53125,1 h 1.03125 l -0.0625,1.375 a 0.19951718,0.19951718 0 0 0 0,0.0625 0.19951718,0.19951718 0 0 0 0,0.0312 0.19951718,0.19951718 0 0 0 0.125,0.125 0.19951718,0.19951718 0 0 0 0.0312,0 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 l 1.15625,-0.75 0.5,0.90625 -1.21875,0.625 a 0.19951718,0.19951718 0 0 0 -0.0312,0 0.19951718,0.19951718 0 0 0 -0.0312,0.0312 0.19951718,0.19951718 0 0 0 -0.0312,0.0937 0.19951718,0.19951718 0 0 0 0,0.0625 0.19951718,0.19951718 0 0 0 0,0.0312 0.19951718,0.19951718 0 0 0 0.0312,0.0625 0.19951718,0.19951718 0 0 0 0.0312,0.0312 0.19951718,0.19951718 0 0 0 0.0312,0.0312 l 1.25,0.625 -0.53125,0.90625 -1.15625,-0.781 a 0.19951718,0.19951718 0 0 0 -0.0312,0 0.19951718,0.19951718 0 0 0 -0.0625,-0.0312 0.19951718,0.19951718 0 0 0 -0.0625,0 0.19951718,0.19951718 0 0 0 -0.125,0.0937 0.19951718,0.19951718 0 0 0 -0.0312,0.0312 0.19951718,0.19951718 0 0 0 0,0.0312 0.19951718,0.19951718 0 0 0 0,0.0625 L 328.0002,656 h -1.03125 l 0.0937,-1.375 a 0.19951718,0.19951718 0 0 0 -0.0312,-0.0937 0.19951718,0.19951718 0 0 0 -0.0312,-0.0625 0.19951718,0.19951718 0 0 0 -0.0625,-0.0312 0.19951718,0.19951718 0 0 0 -0.0625,-0.0312 0.19951718,0.19951718 0 0 0 -0.0312,0 0.19951718,0.19951718 0 0 0 -0.0937,0.0312 l -1.1875,0.78125 -0.5,-0.90625 1.25,-0.625 a 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0625 0.19951718,0.19951718 0 0 0 0,-0.0312 0.19951718,0.19951718 0 0 0 0,-0.0625 0.19951718,0.19951718 0 0 0 0,-0.0312 0.19951718,0.19951718 0 0 0 -0.0312,-0.0625 0.19951718,0.19951718 0 0 0 -0.0312,-0.0312 0.19951718,0.19951718 0 0 0 -0.0312,0 l -1.25,-0.625 0.5,-0.90625 1.1875,0.75 a 0.19951718,0.19951718 0 0 0 0.0312,0.0312 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0312,0 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0625 0.19951718,0.19951718 0 0 0 0,-0.0312 z"
|
d="m 327.5002,650 c -1.933,0 -3.5,1.567 -3.5,3.5 0,1.933 1.567,3.5 3.5,3.5 1.933,0 3.5,-1.567 3.5,-3.5 0,-1.933 -1.567,-3.5 -3.5,-3.5 z m -0.53125,1 1.03125,0 -0.0625,1.375 a 0.19951718,0.19951718 0 0 0 0,0.0625 0.19951718,0.19951718 0 0 0 0,0.0312 0.19951718,0.19951718 0 0 0 0.125,0.125 0.19951718,0.19951718 0 0 0 0.0312,0 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 l 1.15625,-0.75 0.5,0.90625 -1.21875,0.625 a 0.19951718,0.19951718 0 0 0 -0.0312,0 0.19951718,0.19951718 0 0 0 -0.0312,0.0312 0.19951718,0.19951718 0 0 0 -0.0312,0.0937 0.19951718,0.19951718 0 0 0 0,0.0625 0.19951718,0.19951718 0 0 0 0,0.0312 0.19951718,0.19951718 0 0 0 0.0312,0.0625 0.19951718,0.19951718 0 0 0 0.0312,0.0312 0.19951718,0.19951718 0 0 0 0.0312,0.0312 l 1.25,0.625 -0.53125,0.90625 -1.15625,-0.781 a 0.19951718,0.19951718 0 0 0 -0.0312,0 0.19951718,0.19951718 0 0 0 -0.0625,-0.0312 0.19951718,0.19951718 0 0 0 -0.0625,0 0.19951718,0.19951718 0 0 0 -0.125,0.0937 0.19951718,0.19951718 0 0 0 -0.0312,0.0312 0.19951718,0.19951718 0 0 0 0,0.0312 0.19951718,0.19951718 0 0 0 0,0.0625 l 0.0625,1.3751 -1.03125,0 0.0937,-1.375 a 0.19951718,0.19951718 0 0 0 -0.0312,-0.0937 0.19951718,0.19951718 0 0 0 -0.0312,-0.0625 0.19951718,0.19951718 0 0 0 -0.0625,-0.0312 0.19951718,0.19951718 0 0 0 -0.0625,-0.0312 0.19951718,0.19951718 0 0 0 -0.0312,0 0.19951718,0.19951718 0 0 0 -0.0937,0.0312 l -1.1875,0.78125 -0.5,-0.90625 1.25,-0.625 a 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0625 0.19951718,0.19951718 0 0 0 0,-0.0312 0.19951718,0.19951718 0 0 0 0,-0.0625 0.19951718,0.19951718 0 0 0 0,-0.0312 0.19951718,0.19951718 0 0 0 -0.0312,-0.0625 0.19951718,0.19951718 0 0 0 -0.0312,-0.0312 0.19951718,0.19951718 0 0 0 -0.0312,0 l -1.25,-0.625 0.5,-0.90625 1.1875,0.75 a 0.19951718,0.19951718 0 0 0 0.0312,0.0312 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0625,0 0.19951718,0.19951718 0 0 0 0.0312,0 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0312 0.19951718,0.19951718 0 0 0 0,-0.0312 0.19951718,0.19951718 0 0 0 0.0312,-0.0625 0.19951718,0.19951718 0 0 0 0,-0.0312 L 326.96895,651 z"
|
||||||
id="path19255"
|
id="path19255"
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;enable-background:accumulate" />
|
style="color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g19257"
|
id="g19257"
|
||||||
@@ -202,22 +110,5 @@
|
|||||||
style="display:inline"
|
style="display:inline"
|
||||||
transform="translate(-323.02908,-649.02581)" />
|
transform="translate(-323.02908,-649.02581)" />
|
||||||
</g>
|
</g>
|
||||||
<g
|
|
||||||
style="opacity:1;vector-effect:none;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:new"
|
|
||||||
inkscape:label="preferences-system-notifications"
|
|
||||||
id="g13967"
|
|
||||||
transform="matrix(4,0,0,4,-1044.0008,-2172)">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 268.94244,544.94838 c -2.20914,0 -3.33013,1.5 -4,4 l -1,5 c -0.10831,0.54156 -0.44772,1 -1,1 v 1 h 12 v -1 c -0.55229,0 -0.89169,-0.45844 -1,-1 l -1,-5 c -0.53033,-2.5 -1.79086,-4 -4,-4 z"
|
|
||||||
id="path40220"
|
|
||||||
sodipodi:nodetypes="ccsccccscc"
|
|
||||||
style="opacity:1;vector-effect:none;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 269.11822,556.94838 a 1.5,1.5 0 0 0 1.41211,1 1.5,1.5 0 0 0 1.41211,-1 z"
|
|
||||||
id="path40774"
|
|
||||||
style="opacity:1;vector-effect:none;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal" />
|
|
||||||
</g>
|
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -50,7 +50,8 @@ gnome.gtkdoc('shell',
|
|||||||
join_paths(meson.build_root(), 'src')
|
join_paths(meson.build_root(), 'src')
|
||||||
],
|
],
|
||||||
scan_args: [
|
scan_args: [
|
||||||
'--ignore-headers=' + ' '.join(private_headers + exclude_directories)
|
'--ignore-headers=' + ' '.join(private_headers + exclude_directories),
|
||||||
|
'--rebuild-types'
|
||||||
],
|
],
|
||||||
install: true
|
install: true
|
||||||
)
|
)
|
||||||
|
@@ -17,7 +17,8 @@ gnome.gtkdoc('st',
|
|||||||
],
|
],
|
||||||
scan_args: [
|
scan_args: [
|
||||||
'--ignore-headers=' + ' '.join(private_headers),
|
'--ignore-headers=' + ' '.join(private_headers),
|
||||||
'--rebuild-sections'
|
'--rebuild-sections',
|
||||||
|
'--rebuild-types'
|
||||||
],
|
],
|
||||||
install: true
|
install: true
|
||||||
)
|
)
|
||||||
|
@@ -242,11 +242,11 @@ var AuthPrompt = new Lang.Class({
|
|||||||
this.emit('prompted');
|
this.emit('prompted');
|
||||||
},
|
},
|
||||||
|
|
||||||
_onVerificationFailed(userVerifier, canRetry) {
|
_onVerificationFailed() {
|
||||||
this._queryingService = null;
|
this._queryingService = null;
|
||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
this.updateSensitivity(canRetry);
|
this.updateSensitivity(true);
|
||||||
this.setActorInDefaultButtonWell(null);
|
this.setActorInDefaultButtonWell(null);
|
||||||
this.verificationStatus = AuthPromptStatus.VERIFICATION_FAILED;
|
this.verificationStatus = AuthPromptStatus.VERIFICATION_FAILED;
|
||||||
},
|
},
|
||||||
@@ -439,7 +439,6 @@ var AuthPrompt = new Lang.Class({
|
|||||||
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
|
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
|
||||||
this.cancelButton.reactive = true;
|
this.cancelButton.reactive = true;
|
||||||
this.nextButton.label = _("Next");
|
this.nextButton.label = _("Next");
|
||||||
this._preemptiveAnswer = null;
|
|
||||||
|
|
||||||
if (this._userVerifier)
|
if (this._userVerifier)
|
||||||
this._userVerifier.cancel();
|
this._userVerifier.cancel();
|
||||||
|
@@ -350,19 +350,16 @@ var ShellUserVerifier = new Lang.Class({
|
|||||||
try {
|
try {
|
||||||
this._clearUserVerifier();
|
this._clearUserVerifier();
|
||||||
this._userVerifier = client.open_reauthentication_channel_finish(result);
|
this._userVerifier = client.open_reauthentication_channel_finish(result);
|
||||||
} catch(e) {
|
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
|
return;
|
||||||
return;
|
} catch(e if e.matches(Gio.DBusError, Gio.DBusError.ACCESS_DENIED) &&
|
||||||
if (e.matches(Gio.DBusError, Gio.DBusError.ACCESS_DENIED) &&
|
|
||||||
!this._reauthOnly) {
|
!this._reauthOnly) {
|
||||||
// Gdm emits org.freedesktop.DBus.Error.AccessDenied when there
|
// Gdm emits org.freedesktop.DBus.Error.AccessDenied when there is
|
||||||
// is no session to reauthenticate. Fall back to performing
|
// no session to reauthenticate. Fall back to performing verification
|
||||||
// verification from this login session
|
// from this login session
|
||||||
client.get_user_verifier(this._cancellable,
|
client.get_user_verifier(this._cancellable, this._userVerifierGot.bind(this));
|
||||||
this._userVerifierGot.bind(this));
|
return;
|
||||||
return;
|
} catch(e) {
|
||||||
}
|
|
||||||
|
|
||||||
this._reportInitError('Failed to open reauthentication channel', e);
|
this._reportInitError('Failed to open reauthentication channel', e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -377,9 +374,9 @@ var ShellUserVerifier = new Lang.Class({
|
|||||||
try {
|
try {
|
||||||
this._clearUserVerifier();
|
this._clearUserVerifier();
|
||||||
this._userVerifier = client.get_user_verifier_finish(result);
|
this._userVerifier = client.get_user_verifier_finish(result);
|
||||||
|
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||||
|
return;
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
|
|
||||||
return;
|
|
||||||
this._reportInitError('Failed to obtain user verifier', e);
|
this._reportInitError('Failed to obtain user verifier', e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -437,9 +434,9 @@ var ShellUserVerifier = new Lang.Class({
|
|||||||
(obj, result) => {
|
(obj, result) => {
|
||||||
try {
|
try {
|
||||||
obj.call_begin_verification_for_user_finish(result);
|
obj.call_begin_verification_for_user_finish(result);
|
||||||
|
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||||
|
return;
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
|
|
||||||
return;
|
|
||||||
this._reportInitError('Failed to start verification for user', e);
|
this._reportInitError('Failed to start verification for user', e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -452,9 +449,9 @@ var ShellUserVerifier = new Lang.Class({
|
|||||||
(obj, result) => {
|
(obj, result) => {
|
||||||
try {
|
try {
|
||||||
obj.call_begin_verification_finish(result);
|
obj.call_begin_verification_finish(result);
|
||||||
|
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||||
|
return;
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
|
|
||||||
return;
|
|
||||||
this._reportInitError('Failed to start verification', e);
|
this._reportInitError('Failed to start verification', e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -537,13 +534,12 @@ var ShellUserVerifier = new Lang.Class({
|
|||||||
_verificationFailed(retry) {
|
_verificationFailed(retry) {
|
||||||
// For Not Listed / enterprise logins, immediately reset
|
// For Not Listed / enterprise logins, immediately reset
|
||||||
// the dialog
|
// the dialog
|
||||||
// Otherwise, when in login mode we allow ALLOWED_FAILURES attempts.
|
// Otherwise, we allow ALLOWED_FAILURES attempts. After that, we
|
||||||
// After that, we go back to the welcome screen.
|
// go back to the welcome screen.
|
||||||
|
|
||||||
this._failCounter++;
|
this._failCounter++;
|
||||||
let canRetry = retry && this._userName &&
|
let canRetry = retry && this._userName &&
|
||||||
(this._reauthOnly ||
|
this._failCounter < this._settings.get_int(ALLOWED_FAILURES_KEY);
|
||||||
this._failCounter < this._settings.get_int(ALLOWED_FAILURES_KEY));
|
|
||||||
|
|
||||||
if (canRetry) {
|
if (canRetry) {
|
||||||
if (!this.hasPendingMessages) {
|
if (!this.hasPendingMessages) {
|
||||||
@@ -566,7 +562,7 @@ var ShellUserVerifier = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.emit('verification-failed', canRetry);
|
this.emit('verification-failed');
|
||||||
},
|
},
|
||||||
|
|
||||||
_onConversationStopped(client, serviceName) {
|
_onConversationStopped(client, serviceName) {
|
||||||
|
@@ -9,6 +9,8 @@
|
|||||||
<file>gdm/realmd.js</file>
|
<file>gdm/realmd.js</file>
|
||||||
<file>gdm/util.js</file>
|
<file>gdm/util.js</file>
|
||||||
|
|
||||||
|
<file>extensionPrefs/main.js</file>
|
||||||
|
|
||||||
<file>misc/config.js</file>
|
<file>misc/config.js</file>
|
||||||
<file>misc/extensionUtils.js</file>
|
<file>misc/extensionUtils.js</file>
|
||||||
<file>misc/fileUtils.js</file>
|
<file>misc/fileUtils.js</file>
|
||||||
@@ -31,6 +33,8 @@
|
|||||||
<file>perf/core.js</file>
|
<file>perf/core.js</file>
|
||||||
<file>perf/hwtest.js</file>
|
<file>perf/hwtest.js</file>
|
||||||
|
|
||||||
|
<file>portalHelper/main.js</file>
|
||||||
|
|
||||||
<file>ui/accessDialog.js</file>
|
<file>ui/accessDialog.js</file>
|
||||||
<file>ui/altTab.js</file>
|
<file>ui/altTab.js</file>
|
||||||
<file>ui/animation.js</file>
|
<file>ui/animation.js</file>
|
||||||
@@ -39,7 +43,6 @@
|
|||||||
<file>ui/audioDeviceSelection.js</file>
|
<file>ui/audioDeviceSelection.js</file>
|
||||||
<file>ui/backgroundMenu.js</file>
|
<file>ui/backgroundMenu.js</file>
|
||||||
<file>ui/background.js</file>
|
<file>ui/background.js</file>
|
||||||
<file>ui/barLevel.js</file>
|
|
||||||
<file>ui/boxpointer.js</file>
|
<file>ui/boxpointer.js</file>
|
||||||
<file>ui/calendar.js</file>
|
<file>ui/calendar.js</file>
|
||||||
<file>ui/checkBox.js</file>
|
<file>ui/checkBox.js</file>
|
||||||
@@ -127,7 +130,6 @@
|
|||||||
<file>ui/status/rfkill.js</file>
|
<file>ui/status/rfkill.js</file>
|
||||||
<file>ui/status/volume.js</file>
|
<file>ui/status/volume.js</file>
|
||||||
<file>ui/status/bluetooth.js</file>
|
<file>ui/status/bluetooth.js</file>
|
||||||
<file>ui/status/remoteAccess.js</file>
|
|
||||||
<file>ui/status/screencast.js</file>
|
<file>ui/status/screencast.js</file>
|
||||||
<file>ui/status/system.js</file>
|
<file>ui/status/system.js</file>
|
||||||
<file>ui/status/thunderbolt.js</file>
|
<file>ui/status/thunderbolt.js</file>
|
||||||
|
@@ -6,17 +6,3 @@ js_resources = gnome.compile_resources(
|
|||||||
c_name: 'shell_js_resources',
|
c_name: 'shell_js_resources',
|
||||||
dependencies: [config_js]
|
dependencies: [config_js]
|
||||||
)
|
)
|
||||||
|
|
||||||
portal_resources = gnome.compile_resources(
|
|
||||||
'portal-resources', 'portal-resources.gresource.xml',
|
|
||||||
source_dir: ['.', meson.current_build_dir()],
|
|
||||||
c_name: 'portal_js_resources',
|
|
||||||
dependencies: [config_js]
|
|
||||||
)
|
|
||||||
|
|
||||||
prefs_resources = gnome.compile_resources(
|
|
||||||
'prefs-resources', 'prefs-resources.gresource.xml',
|
|
||||||
source_dir: ['.', meson.current_build_dir()],
|
|
||||||
c_name: 'prefs_js_resources',
|
|
||||||
dependencies: [config_js]
|
|
||||||
)
|
|
||||||
|
@@ -112,8 +112,6 @@ function createExtensionObject(uuid, dir, type) {
|
|||||||
let metadataContents, success, tag;
|
let metadataContents, success, tag;
|
||||||
try {
|
try {
|
||||||
[success, metadataContents, tag] = metadataFile.load_contents(null);
|
[success, metadataContents, tag] = metadataFile.load_contents(null);
|
||||||
if (metadataContents instanceof Uint8Array)
|
|
||||||
metadataContents = imports.byteArray.toString(metadataContents);
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw new Error('Failed to load metadata.json: ' + e);
|
throw new Error('Failed to load metadata.json: ' + e);
|
||||||
}
|
}
|
||||||
|
@@ -115,11 +115,6 @@ var IBusManager = new Lang.Class({
|
|||||||
object_path: IBus.PATH_PANEL });
|
object_path: IBus.PATH_PANEL });
|
||||||
this._candidatePopup.setPanelService(this._panelService);
|
this._candidatePopup.setPanelService(this._panelService);
|
||||||
this._panelService.connect('update-property', this._updateProperty.bind(this));
|
this._panelService.connect('update-property', this._updateProperty.bind(this));
|
||||||
this._panelService.connect('set-cursor-location', (ps, x, y, w, h) => {
|
|
||||||
let cursorLocation = { x, y, width: w, height: h };
|
|
||||||
this.emit('set-cursor-location', cursorLocation);
|
|
||||||
});
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// IBus versions older than 1.5.10 have a bug which
|
// IBus versions older than 1.5.10 have a bug which
|
||||||
// causes spurious set-content-type emissions when
|
// causes spurious set-content-type emissions when
|
||||||
|
@@ -15,8 +15,6 @@ var InputMethod = new Lang.Class({
|
|||||||
this._purpose = 0;
|
this._purpose = 0;
|
||||||
this._enabled = true;
|
this._enabled = true;
|
||||||
this._currentFocus = null;
|
this._currentFocus = null;
|
||||||
this._currentEvent = null;
|
|
||||||
this._doForwardEvent = false;
|
|
||||||
this._ibus = IBus.Bus.new_async();
|
this._ibus = IBus.Bus.new_async();
|
||||||
this._ibus.connect('connected', this._onConnected.bind(this));
|
this._ibus.connect('connected', this._onConnected.bind(this));
|
||||||
this._ibus.connect('disconnected', this._clear.bind(this));
|
this._ibus.connect('disconnected', this._clear.bind(this));
|
||||||
@@ -27,9 +25,6 @@ var InputMethod = new Lang.Class({
|
|||||||
this._onSourceChanged.bind(this));
|
this._onSourceChanged.bind(this));
|
||||||
this._currentSource = this._inputSourceManager.currentSource;
|
this._currentSource = this._inputSourceManager.currentSource;
|
||||||
|
|
||||||
let deviceManager = Clutter.DeviceManager.get_default();
|
|
||||||
this._virtualDevice = deviceManager.create_virtual_device(Clutter.InputDeviceType.KEYBOARD_DEVICE);
|
|
||||||
|
|
||||||
if (this._ibus.is_connected())
|
if (this._ibus.is_connected())
|
||||||
this._onConnected();
|
this._onConnected();
|
||||||
},
|
},
|
||||||
@@ -69,7 +64,6 @@ var InputMethod = new Lang.Class({
|
|||||||
this._context.connect('commit-text', this._onCommitText.bind(this));
|
this._context.connect('commit-text', this._onCommitText.bind(this));
|
||||||
this._context.connect('delete-surrounding-text', this._onDeleteSurroundingText.bind(this));
|
this._context.connect('delete-surrounding-text', this._onDeleteSurroundingText.bind(this));
|
||||||
this._context.connect('update-preedit-text', this._onUpdatePreeditText.bind(this));
|
this._context.connect('update-preedit-text', this._onUpdatePreeditText.bind(this));
|
||||||
this._context.connect('forward-key-event', this._onForwardKeyEvent.bind(this));
|
|
||||||
|
|
||||||
this._updateCapabilities();
|
this._updateCapabilities();
|
||||||
},
|
},
|
||||||
@@ -102,24 +96,6 @@ var InputMethod = new Lang.Class({
|
|||||||
this.set_preedit_text(str, pos);
|
this.set_preedit_text(str, pos);
|
||||||
},
|
},
|
||||||
|
|
||||||
_onForwardKeyEvent(context, keyval, keycode, state) {
|
|
||||||
let press = (state & IBus.ModifierType.RELEASE_MASK) == 0;
|
|
||||||
|
|
||||||
if (this._currentEvent) {
|
|
||||||
// If we are handling this same event in filter_key_press(),
|
|
||||||
// just let it go through, sending the same event again will
|
|
||||||
// be silenced away because the key counts as pressed.
|
|
||||||
if (this._currentEvent.get_key_symbol() == keyval &&
|
|
||||||
(this._currentEvent.type() == Clutter.EventType.KEY_PRESS) == press) {
|
|
||||||
this._doForwardEvent = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this._virtualDevice.notify_key(Clutter.get_current_event_time(), keycode,
|
|
||||||
press ? Clutter.KeyState.PRESSED : Clutter.KeyState.RELEASED);
|
|
||||||
},
|
|
||||||
|
|
||||||
vfunc_focus_in(focus) {
|
vfunc_focus_in(focus) {
|
||||||
this._currentFocus = focus;
|
this._currentFocus = focus;
|
||||||
if (this._context) {
|
if (this._context) {
|
||||||
@@ -221,23 +197,13 @@ var InputMethod = new Lang.Class({
|
|||||||
|
|
||||||
if (event.type() == Clutter.EventType.KEY_RELEASE)
|
if (event.type() == Clutter.EventType.KEY_RELEASE)
|
||||||
state |= IBus.ModifierType.RELEASE_MASK;
|
state |= IBus.ModifierType.RELEASE_MASK;
|
||||||
|
|
||||||
this._currentEvent = event;
|
|
||||||
this._doForwardEvent = false;
|
|
||||||
|
|
||||||
this._context.process_key_event_async(event.get_key_symbol(),
|
this._context.process_key_event_async(event.get_key_symbol(),
|
||||||
event.get_key_code() - 8, // Convert XKB keycodes to evcodes
|
event.get_key_code() - 8, // Convert XKB keycodes to evcodes
|
||||||
state, -1, null,
|
state, -1, null,
|
||||||
(context, res) => {
|
(context, res) => {
|
||||||
try {
|
try {
|
||||||
let retval = context.process_key_event_async_finish(res);
|
let retval = context.process_key_event_async_finish(res);
|
||||||
|
|
||||||
if (this._doForwardEvent)
|
|
||||||
retval = false;
|
|
||||||
|
|
||||||
this.notify_key_event(event, retval);
|
this.notify_key_event(event, retval);
|
||||||
this._doForwardEvent = false;
|
|
||||||
this._currentEvent = null;
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log('Error processing key on IM: ' + e.message);
|
log('Error processing key on IM: ' + e.message);
|
||||||
}
|
}
|
||||||
|
@@ -40,24 +40,14 @@ const SystemdLoginSessionIface = '<node> \
|
|||||||
<signal name="Lock" /> \
|
<signal name="Lock" /> \
|
||||||
<signal name="Unlock" /> \
|
<signal name="Unlock" /> \
|
||||||
<property name="Active" type="b" access="read" /> \
|
<property name="Active" type="b" access="read" /> \
|
||||||
<property name="Class" type="s" access="read" /> \
|
|
||||||
<property name="Id" type="s" access="read" /> \
|
|
||||||
<method name="SetLockedHint"> \
|
<method name="SetLockedHint"> \
|
||||||
<arg type="b" direction="in"/> \
|
<arg type="b" direction="in"/> \
|
||||||
</method> \
|
</method> \
|
||||||
</interface> \
|
</interface> \
|
||||||
</node>';
|
</node>';
|
||||||
|
|
||||||
const SystemdLoginUserIface = '<node> \
|
|
||||||
<interface name="org.freedesktop.login1.User"> \
|
|
||||||
<property name="Display" type="(so)" access="read" /> \
|
|
||||||
<property name="Sessions" type="a(so)" access="read" /> \
|
|
||||||
</interface> \
|
|
||||||
</node>';
|
|
||||||
|
|
||||||
const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
|
const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
|
||||||
const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
|
const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
|
||||||
const SystemdLoginUser = Gio.DBusProxy.makeProxyWrapper(SystemdLoginUserIface);
|
|
||||||
|
|
||||||
function haveSystemd() {
|
function haveSystemd() {
|
||||||
return GLib.access("/run/systemd/seats", 0) >= 0;
|
return GLib.access("/run/systemd/seats", 0) >= 0;
|
||||||
@@ -119,9 +109,6 @@ var LoginManagerSystemd = new Lang.Class({
|
|||||||
this._proxy = new SystemdLoginManager(Gio.DBus.system,
|
this._proxy = new SystemdLoginManager(Gio.DBus.system,
|
||||||
'org.freedesktop.login1',
|
'org.freedesktop.login1',
|
||||||
'/org/freedesktop/login1');
|
'/org/freedesktop/login1');
|
||||||
this._userProxy = new SystemdLoginUser(Gio.DBus.system,
|
|
||||||
'org.freedesktop.login1',
|
|
||||||
'/org/freedesktop/login1/user/self');
|
|
||||||
this._proxy.connectSignal('PrepareForSleep',
|
this._proxy.connectSignal('PrepareForSleep',
|
||||||
this._prepareForSleep.bind(this));
|
this._prepareForSleep.bind(this));
|
||||||
},
|
},
|
||||||
@@ -134,31 +121,8 @@ var LoginManagerSystemd = new Lang.Class({
|
|||||||
|
|
||||||
let sessionId = GLib.getenv('XDG_SESSION_ID');
|
let sessionId = GLib.getenv('XDG_SESSION_ID');
|
||||||
if (!sessionId) {
|
if (!sessionId) {
|
||||||
log('Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session. Asking logind directly.');
|
log('Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session.');
|
||||||
let [session, objectPath] = this._userProxy.Display;
|
return;
|
||||||
if (session) {
|
|
||||||
log(`Will monitor session ${session}`);
|
|
||||||
sessionId = session;
|
|
||||||
} else {
|
|
||||||
log('Failed to find "Display" session; are we the greeter?');
|
|
||||||
|
|
||||||
for (let [session, objectPath] of this._userProxy.Sessions) {
|
|
||||||
let sessionProxy = new SystemdLoginSession(Gio.DBus.system,
|
|
||||||
'org.freedesktop.login1',
|
|
||||||
objectPath);
|
|
||||||
log(`Considering ${session}, class=${sessionProxy.Class}`);
|
|
||||||
if (sessionProxy.Class == 'greeter') {
|
|
||||||
log(`Yes, will monitor session ${session}`);
|
|
||||||
sessionId = session;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!sessionId) {
|
|
||||||
log('No, failed to get session from logind.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._proxy.GetSessionRemote(sessionId, (result, error) => {
|
this._proxy.GetSessionRemote(sessionId, (result, error) => {
|
||||||
|
@@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gresources>
|
|
||||||
<gresource prefix="/org/gnome/shell">
|
|
||||||
<file>misc/config.js</file>
|
|
||||||
<file>portalHelper/main.js</file>
|
|
||||||
</gresource>
|
|
||||||
</gresources>
|
|
@@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<gresources>
|
|
||||||
<gresource prefix="/org/gnome/shell">
|
|
||||||
<file>extensionPrefs/main.js</file>
|
|
||||||
|
|
||||||
<file>misc/config.js</file>
|
|
||||||
<file>misc/extensionUtils.js</file>
|
|
||||||
<file>misc/fileUtils.js</file>
|
|
||||||
<file>misc/params.js</file>
|
|
||||||
</gresource>
|
|
||||||
</gresources>
|
|
@@ -502,8 +502,7 @@ var CyclerPopup = new Lang.Class({
|
|||||||
_finish() {
|
_finish() {
|
||||||
let window = this._items[this._selectedIndex];
|
let window = this._items[this._selectedIndex];
|
||||||
let ws = window.get_workspace();
|
let ws = window.get_workspace();
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWs = global.screen.get_active_workspace();
|
||||||
let activeWs = workspaceManager.get_active_workspace();
|
|
||||||
|
|
||||||
if (window.minimized) {
|
if (window.minimized) {
|
||||||
Main.wm.skipNextEffect(window.get_compositor_private());
|
Main.wm.skipNextEffect(window.get_compositor_private());
|
||||||
@@ -573,14 +572,7 @@ var WindowSwitcherPopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_getWindowList() {
|
_getWindowList() {
|
||||||
let workspace = null;
|
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
||||||
|
|
||||||
if (this._settings.get_boolean('current-workspace-only')) {
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
workspace = workspaceManager.get_active_workspace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return getWindows(workspace);
|
return getWindows(workspace);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -628,14 +620,7 @@ var WindowCyclerPopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_getWindows() {
|
_getWindows() {
|
||||||
let workspace = null;
|
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
||||||
|
|
||||||
if (this._settings.get_boolean('current-workspace-only')) {
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
workspace = workspaceManager.get_active_workspace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return getWindows(workspace);
|
return getWindows(workspace);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -684,14 +669,8 @@ var AppSwitcher = new Lang.Class({
|
|||||||
|
|
||||||
let windowTracker = Shell.WindowTracker.get_default();
|
let windowTracker = Shell.WindowTracker.get_default();
|
||||||
let settings = new Gio.Settings({ schema_id: 'org.gnome.shell.app-switcher' });
|
let settings = new Gio.Settings({ schema_id: 'org.gnome.shell.app-switcher' });
|
||||||
|
let workspace = settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace()
|
||||||
let workspace = null;
|
: null;
|
||||||
if (settings.get_boolean('current-workspace-only')) {
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
workspace = workspaceManager.get_active_workspace();
|
|
||||||
}
|
|
||||||
|
|
||||||
let allWindows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
|
let allWindows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
|
||||||
|
|
||||||
// Construct the AppIcons, add to the popup
|
// Construct the AppIcons, add to the popup
|
||||||
|
@@ -1778,11 +1778,10 @@ var AppIcon = new Lang.Class({
|
|||||||
activate(button) {
|
activate(button) {
|
||||||
let event = Clutter.get_current_event();
|
let event = Clutter.get_current_event();
|
||||||
let modifiers = event ? event.get_state() : 0;
|
let modifiers = event ? event.get_state() : 0;
|
||||||
let isMiddleButton = button && button == Clutter.BUTTON_MIDDLE;
|
let openNewWindow = this.app.can_open_new_window () &&
|
||||||
let isCtrlPressed = (modifiers & Clutter.ModifierType.CONTROL_MASK) != 0;
|
modifiers & Clutter.ModifierType.CONTROL_MASK &&
|
||||||
let openNewWindow = this.app.can_open_new_window() &&
|
this.app.state == Shell.AppState.RUNNING ||
|
||||||
this.app.state == Shell.AppState.RUNNING &&
|
button && button == 2;
|
||||||
(isCtrlPressed || isMiddleButton);
|
|
||||||
|
|
||||||
if (this.app.state == Shell.AppState.STOPPED || openNewWindow)
|
if (this.app.state == Shell.AppState.STOPPED || openNewWindow)
|
||||||
this.animateLaunch();
|
this.animateLaunch();
|
||||||
@@ -1862,8 +1861,7 @@ var AppIconMenu = new Lang.Class({
|
|||||||
|
|
||||||
// Display the app windows menu items and the separator between windows
|
// Display the app windows menu items and the separator between windows
|
||||||
// of the current desktop and other windows.
|
// of the current desktop and other windows.
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWorkspace = global.screen.get_active_workspace();
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
let separatorShown = windows.length > 0 && windows[0].get_workspace() != activeWorkspace;
|
let separatorShown = windows.length > 0 && windows[0].get_workspace() != activeWorkspace;
|
||||||
|
|
||||||
for (let i = 0; i < windows.length; i++) {
|
for (let i = 0; i < windows.length; i++) {
|
||||||
@@ -1872,9 +1870,7 @@ var AppIconMenu = new Lang.Class({
|
|||||||
this._appendSeparator();
|
this._appendSeparator();
|
||||||
separatorShown = true;
|
separatorShown = true;
|
||||||
}
|
}
|
||||||
let title = window.title ? window.title
|
let item = this._appendMenuItem(window.title);
|
||||||
: this._source.app.get_name();
|
|
||||||
let item = this._appendMenuItem(title);
|
|
||||||
item.connect('activate', () => {
|
item.connect('activate', () => {
|
||||||
this.emit('activate-window', window);
|
this.emit('activate-window', window);
|
||||||
});
|
});
|
||||||
|
@@ -240,7 +240,7 @@ var Background = new Lang.Class({
|
|||||||
file: null,
|
file: null,
|
||||||
style: null });
|
style: null });
|
||||||
|
|
||||||
this.background = new Meta.Background({ meta_display: global.display });
|
this.background = new Meta.Background({ meta_screen: global.screen });
|
||||||
this.background._delegate = this;
|
this.background._delegate = this;
|
||||||
|
|
||||||
this._settings = params.settings;
|
this._settings = params.settings;
|
||||||
@@ -499,12 +499,12 @@ var SystemBackground = new Lang.Class({
|
|||||||
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/noise-texture.png');
|
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/noise-texture.png');
|
||||||
|
|
||||||
if (_systemBackground == null) {
|
if (_systemBackground == null) {
|
||||||
_systemBackground = new Meta.Background({ meta_display: global.display });
|
_systemBackground = new Meta.Background({ meta_screen: global.screen });
|
||||||
_systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
|
_systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
|
||||||
_systemBackground.set_file(file, GDesktopEnums.BackgroundStyle.WALLPAPER);
|
_systemBackground.set_file(file, GDesktopEnums.BackgroundStyle.WALLPAPER);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.actor = new Meta.BackgroundActor({ meta_display: global.display,
|
this.actor = new Meta.BackgroundActor({ meta_screen: global.screen,
|
||||||
monitor: 0,
|
monitor: 0,
|
||||||
background: _systemBackground });
|
background: _systemBackground });
|
||||||
|
|
||||||
@@ -538,10 +538,8 @@ var BackgroundSource = new Lang.Class({
|
|||||||
this._settings = new Gio.Settings({ schema_id: settingsSchema });
|
this._settings = new Gio.Settings({ schema_id: settingsSchema });
|
||||||
this._backgrounds = [];
|
this._backgrounds = [];
|
||||||
|
|
||||||
let monitorManager = Meta.MonitorManager.get();
|
this._monitorsChangedId = global.screen.connect('monitors-changed',
|
||||||
this._monitorsChangedId =
|
this._onMonitorsChanged.bind(this));
|
||||||
monitorManager.connect('monitors-changed',
|
|
||||||
this._onMonitorsChanged.bind(this));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onMonitorsChanged() {
|
_onMonitorsChanged() {
|
||||||
@@ -606,8 +604,7 @@ var BackgroundSource = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
let monitorManager = Meta.MonitorManager.get();
|
global.screen.disconnect(this._monitorsChangedId);
|
||||||
monitorManager.disconnect(this._monitorsChangedId);
|
|
||||||
|
|
||||||
for (let monitorIndex in this._backgrounds) {
|
for (let monitorIndex in this._backgrounds) {
|
||||||
let background = this._backgrounds[monitorIndex];
|
let background = this._backgrounds[monitorIndex];
|
||||||
@@ -754,7 +751,7 @@ var BackgroundManager = new Lang.Class({
|
|||||||
|
|
||||||
_createBackgroundActor() {
|
_createBackgroundActor() {
|
||||||
let background = this._backgroundSource.getBackground(this._monitorIndex);
|
let background = this._backgroundSource.getBackground(this._monitorIndex);
|
||||||
let backgroundActor = new Meta.BackgroundActor({ meta_display: global.display,
|
let backgroundActor = new Meta.BackgroundActor({ meta_screen: global.screen,
|
||||||
monitor: this._monitorIndex,
|
monitor: this._monitorIndex,
|
||||||
background: background.background,
|
background: background.background,
|
||||||
vignette: this._vignette,
|
vignette: this._vignette,
|
||||||
|
@@ -1,210 +0,0 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
||||||
|
|
||||||
const Atk = imports.gi.Atk;
|
|
||||||
const Cairo = imports.cairo;
|
|
||||||
const Clutter = imports.gi.Clutter;
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const St = imports.gi.St;
|
|
||||||
const Signals = imports.signals;
|
|
||||||
|
|
||||||
var BarLevel = new Lang.Class({
|
|
||||||
Name: "BarLevel",
|
|
||||||
|
|
||||||
_init(value, params) {
|
|
||||||
if (isNaN(value))
|
|
||||||
// Avoid spreading NaNs around
|
|
||||||
throw TypeError('The bar level value must be a number');
|
|
||||||
this._maxValue = 1;
|
|
||||||
this._value = Math.max(Math.min(value, this._maxValue), 0);
|
|
||||||
this._overdriveStart = 1;
|
|
||||||
this._barLevelWidth = 0;
|
|
||||||
|
|
||||||
if (params == undefined)
|
|
||||||
params = {}
|
|
||||||
|
|
||||||
this.actor = new St.DrawingArea({ styleClass: params['styleClass'] || 'barlevel',
|
|
||||||
can_focus: params['canFocus'] || false,
|
|
||||||
reactive: params['reactive'] || false,
|
|
||||||
accessible_role: params['accessibleRole'] || Atk.Role.LEVEL_BAR });
|
|
||||||
this.actor.connect('repaint', this._barLevelRepaint.bind(this));
|
|
||||||
this.actor.connect('allocation-changed', (actor, box) => {
|
|
||||||
this._barLevelWidth = box.get_width();
|
|
||||||
});
|
|
||||||
|
|
||||||
this._customAccessible = St.GenericAccessible.new_for_actor(this.actor);
|
|
||||||
this.actor.set_accessible(this._customAccessible);
|
|
||||||
|
|
||||||
this._customAccessible.connect('get-current-value', this._getCurrentValue.bind(this));
|
|
||||||
this._customAccessible.connect('get-minimum-value', this._getMinimumValue.bind(this));
|
|
||||||
this._customAccessible.connect('get-maximum-value', this._getMaximumValue.bind(this));
|
|
||||||
this._customAccessible.connect('set-current-value', this._setCurrentValue.bind(this));
|
|
||||||
|
|
||||||
this.connect('value-changed', this._valueChanged.bind(this));
|
|
||||||
},
|
|
||||||
|
|
||||||
setValue(value) {
|
|
||||||
if (isNaN(value))
|
|
||||||
throw TypeError('The bar level value must be a number');
|
|
||||||
|
|
||||||
this._value = Math.max(Math.min(value, this._maxValue), 0);
|
|
||||||
this.actor.queue_repaint();
|
|
||||||
},
|
|
||||||
|
|
||||||
setMaximumValue(value) {
|
|
||||||
if (isNaN(value))
|
|
||||||
throw TypeError('The bar level max value must be a number');
|
|
||||||
|
|
||||||
this._maxValue = Math.max(value, 1);
|
|
||||||
this._overdriveStart = Math.min(this._overdriveStart, this._maxValue);
|
|
||||||
this.actor.queue_repaint();
|
|
||||||
},
|
|
||||||
|
|
||||||
setOverdriveStart(value) {
|
|
||||||
if (isNaN(value))
|
|
||||||
throw TypeError('The overdrive limit value must be a number');
|
|
||||||
if (value > this._maxValue)
|
|
||||||
throw new Error(`Tried to set overdrive value to ${value}, ` +
|
|
||||||
`which is a number greater than the maximum allowed value ${this._maxValue}`);
|
|
||||||
|
|
||||||
this._overdriveStart = value;
|
|
||||||
this._value = Math.max(Math.min(value, this._maxValue), 0);
|
|
||||||
this.actor.queue_repaint();
|
|
||||||
},
|
|
||||||
|
|
||||||
_barLevelRepaint(area) {
|
|
||||||
let cr = area.get_context();
|
|
||||||
let themeNode = area.get_theme_node();
|
|
||||||
let [width, height] = area.get_surface_size();
|
|
||||||
|
|
||||||
let barLevelHeight = themeNode.get_length('-barlevel-height');
|
|
||||||
let barLevelBorderRadius = Math.min(width, barLevelHeight) / 2;
|
|
||||||
let fgColor = themeNode.get_foreground_color();
|
|
||||||
|
|
||||||
let barLevelColor = themeNode.get_color('-barlevel-background-color');
|
|
||||||
let barLevelActiveColor = themeNode.get_color('-barlevel-active-background-color');
|
|
||||||
let barLevelOverdriveColor = themeNode.get_color('-barlevel-overdrive-color');
|
|
||||||
|
|
||||||
let barLevelBorderWidth = Math.min(themeNode.get_length('-barlevel-border-width'), 1);
|
|
||||||
let [hasBorderColor, barLevelBorderColor] =
|
|
||||||
themeNode.lookup_color('-barlevel-border-color', false);
|
|
||||||
if (!hasBorderColor)
|
|
||||||
barLevelBorderColor = barLevelColor;
|
|
||||||
let [hasActiveBorderColor, barLevelActiveBorderColor] =
|
|
||||||
themeNode.lookup_color('-barlevel-active-border-color', false);
|
|
||||||
if (!hasActiveBorderColor)
|
|
||||||
barLevelActiveBorderColor = barLevelActiveColor;
|
|
||||||
let [hasOverdriveBorderColor, barLevelOverdriveBorderColor] =
|
|
||||||
themeNode.lookup_color('-barlevel-overdrive-border-color', false);
|
|
||||||
if (!hasOverdriveBorderColor)
|
|
||||||
barLevelOverdriveBorderColor = barLevelOverdriveColor;
|
|
||||||
|
|
||||||
const TAU = Math.PI * 2;
|
|
||||||
|
|
||||||
let endX = 0;
|
|
||||||
if (this._maxValue > 0)
|
|
||||||
endX = barLevelBorderRadius + (width - 2 * barLevelBorderRadius) * this._value / this._maxValue;
|
|
||||||
|
|
||||||
let overdriveSeparatorX = barLevelBorderRadius + (width - 2 * barLevelBorderRadius) * this._overdriveStart / this._maxValue;
|
|
||||||
let overdriveActive = this._overdriveStart !== this._maxValue;
|
|
||||||
let overdriveSeparatorWidth = 0;
|
|
||||||
if (overdriveActive)
|
|
||||||
overdriveSeparatorWidth = themeNode.get_length('-barlevel-overdrive-separator-width');
|
|
||||||
|
|
||||||
/* background bar */
|
|
||||||
cr.arc(width - barLevelBorderRadius - barLevelBorderWidth, height / 2, barLevelBorderRadius, TAU * 3 / 4, TAU * 1 / 4);
|
|
||||||
cr.lineTo(endX, (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(endX, (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(width - barLevelBorderRadius - barLevelBorderWidth, (height - barLevelHeight) / 2);
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelColor);
|
|
||||||
cr.fillPreserve();
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelBorderColor);
|
|
||||||
cr.setLineWidth(barLevelBorderWidth);
|
|
||||||
cr.stroke();
|
|
||||||
|
|
||||||
/* normal progress bar */
|
|
||||||
let x = Math.min(endX, overdriveSeparatorX - overdriveSeparatorWidth / 2);
|
|
||||||
cr.arc(barLevelBorderRadius + barLevelBorderWidth, height / 2, barLevelBorderRadius, TAU * 1 / 4, TAU * 3 / 4);
|
|
||||||
cr.lineTo(x, (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(x, (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(barLevelBorderRadius + barLevelBorderWidth, (height + barLevelHeight) / 2);
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelActiveColor);
|
|
||||||
cr.fillPreserve();
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelActiveBorderColor);
|
|
||||||
cr.setLineWidth(barLevelBorderWidth);
|
|
||||||
cr.stroke();
|
|
||||||
|
|
||||||
/* overdrive progress barLevel */
|
|
||||||
x = Math.min(endX, overdriveSeparatorX) + overdriveSeparatorWidth / 2;
|
|
||||||
if (this._value > this._overdriveStart) {
|
|
||||||
cr.moveTo(x, (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(endX, (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(endX, (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(x, (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(x, (height - barLevelHeight) / 2);
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelOverdriveColor);
|
|
||||||
cr.fillPreserve();
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelOverdriveBorderColor);
|
|
||||||
cr.setLineWidth(barLevelBorderWidth);
|
|
||||||
cr.stroke();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* end progress bar arc */
|
|
||||||
if (this._value <= this._overdriveStart)
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelActiveColor);
|
|
||||||
else
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelOverdriveColor);
|
|
||||||
cr.arc(endX, height / 2, barLevelBorderRadius, TAU * 3 / 4, TAU * 1 / 4);
|
|
||||||
cr.lineTo(Math.floor(endX), (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(Math.floor(endX), (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(endX, (height - barLevelHeight) / 2);
|
|
||||||
cr.fillPreserve();
|
|
||||||
cr.setLineWidth(barLevelBorderWidth);
|
|
||||||
cr.stroke();
|
|
||||||
|
|
||||||
/* draw overdrive separator */
|
|
||||||
if (overdriveActive) {
|
|
||||||
cr.moveTo(overdriveSeparatorX - overdriveSeparatorWidth / 2, (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(overdriveSeparatorX + overdriveSeparatorWidth / 2, (height - barLevelHeight) / 2);
|
|
||||||
cr.lineTo(overdriveSeparatorX + overdriveSeparatorWidth / 2, (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(overdriveSeparatorX - overdriveSeparatorWidth / 2, (height + barLevelHeight) / 2);
|
|
||||||
cr.lineTo(overdriveSeparatorX - overdriveSeparatorWidth / 2, (height - barLevelHeight) / 2);
|
|
||||||
if (this._value <= this._overdriveStart)
|
|
||||||
Clutter.cairo_set_source_color(cr, fgColor);
|
|
||||||
else
|
|
||||||
Clutter.cairo_set_source_color(cr, barLevelColor);
|
|
||||||
cr.fill();
|
|
||||||
}
|
|
||||||
|
|
||||||
cr.$dispose();
|
|
||||||
},
|
|
||||||
|
|
||||||
_getCurrentValue(actor) {
|
|
||||||
return this._value;
|
|
||||||
},
|
|
||||||
|
|
||||||
_getOverdriveStart(actor) {
|
|
||||||
return this._overdriveStart;
|
|
||||||
},
|
|
||||||
|
|
||||||
_getMinimumValue(actor) {
|
|
||||||
return 0;
|
|
||||||
},
|
|
||||||
|
|
||||||
_getMaximumValue(actor) {
|
|
||||||
return this._maxValue;
|
|
||||||
},
|
|
||||||
|
|
||||||
_setCurrentValue(actor, value) {
|
|
||||||
this._value = value;
|
|
||||||
},
|
|
||||||
|
|
||||||
_valueChanged(barLevel, value, property) {
|
|
||||||
this._customAccessible.notify("accessible-value");
|
|
||||||
},
|
|
||||||
|
|
||||||
get value() {
|
|
||||||
return this._value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Signals.addSignalMethods(BarLevel.prototype);
|
|
@@ -821,8 +821,6 @@ var EventsSection = new Lang.Class({
|
|||||||
this._desktopSettings.connect('changed', this._reloadEvents.bind(this));
|
this._desktopSettings.connect('changed', this._reloadEvents.bind(this));
|
||||||
this._eventSource = new EmptyEventSource();
|
this._eventSource = new EmptyEventSource();
|
||||||
|
|
||||||
this._messageById = new Map();
|
|
||||||
|
|
||||||
this.parent();
|
this.parent();
|
||||||
|
|
||||||
this._title = new St.Button({ style_class: 'events-section-title',
|
this._title = new St.Button({ style_class: 'events-section-title',
|
||||||
@@ -877,32 +875,20 @@ var EventsSection = new Lang.Class({
|
|||||||
|
|
||||||
this._reloading = true;
|
this._reloading = true;
|
||||||
|
|
||||||
|
this._list.destroy_all_children();
|
||||||
|
|
||||||
let periodBegin = _getBeginningOfDay(this._date);
|
let periodBegin = _getBeginningOfDay(this._date);
|
||||||
let periodEnd = _getEndOfDay(this._date);
|
let periodEnd = _getEndOfDay(this._date);
|
||||||
let events = this._eventSource.getEvents(periodBegin, periodEnd);
|
let events = this._eventSource.getEvents(periodBegin, periodEnd);
|
||||||
|
|
||||||
let ids = events.map(e => e.id);
|
|
||||||
this._messageById.forEach((message, id) => {
|
|
||||||
if (ids.includes(id))
|
|
||||||
return;
|
|
||||||
this._messageById.delete(id);
|
|
||||||
this.removeMessage(message);
|
|
||||||
});
|
|
||||||
|
|
||||||
for (let i = 0; i < events.length; i++) {
|
for (let i = 0; i < events.length; i++) {
|
||||||
let event = events[i];
|
let event = events[i];
|
||||||
|
|
||||||
let message = this._messageById.get(event.id);
|
let message = new EventMessage(event, this._date);
|
||||||
if (!message) {
|
message.connect('close', () => {
|
||||||
message = new EventMessage(event, this._date);
|
this._ignoreEvent(event);
|
||||||
message.connect('close', () => {
|
});
|
||||||
this._ignoreEvent(event);
|
this.addMessage(message, false);
|
||||||
});
|
|
||||||
this._messageById.set(event.id, message);
|
|
||||||
this.addMessage(message, false);
|
|
||||||
} else {
|
|
||||||
this.moveMessage(message, i, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._reloading = false;
|
this._reloading = false;
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const GLib = imports.gi.GLib;
|
|
||||||
const GObject = imports.gi.GObject;
|
const GObject = imports.gi.GObject;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Meta = imports.gi.Meta;
|
const Meta = imports.gi.Meta;
|
||||||
@@ -14,7 +13,6 @@ const Tweener = imports.ui.tweener;
|
|||||||
|
|
||||||
var FROZEN_WINDOW_BRIGHTNESS = -0.3
|
var FROZEN_WINDOW_BRIGHTNESS = -0.3
|
||||||
var DIALOG_TRANSITION_TIME = 0.15
|
var DIALOG_TRANSITION_TIME = 0.15
|
||||||
var ALIVE_TIMEOUT = 5000;
|
|
||||||
|
|
||||||
var CloseDialog = new Lang.Class({
|
var CloseDialog = new Lang.Class({
|
||||||
Name: 'CloseDialog',
|
Name: 'CloseDialog',
|
||||||
@@ -28,7 +26,6 @@ var CloseDialog = new Lang.Class({
|
|||||||
this.parent();
|
this.parent();
|
||||||
this._window = window;
|
this._window = window;
|
||||||
this._dialog = null;
|
this._dialog = null;
|
||||||
this._timeoutId = 0;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
get window() {
|
get window() {
|
||||||
@@ -100,14 +97,6 @@ var CloseDialog = new Lang.Class({
|
|||||||
if (this._dialog != null)
|
if (this._dialog != null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
|
||||||
|
|
||||||
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, ALIVE_TIMEOUT,
|
|
||||||
() => {
|
|
||||||
this._window.check_alive(global.display.get_current_time_roundtrip());
|
|
||||||
return GLib.SOURCE_CONTINUE;
|
|
||||||
});
|
|
||||||
|
|
||||||
this._addWindowEffect();
|
this._addWindowEffect();
|
||||||
this._initDialog();
|
this._initDialog();
|
||||||
|
|
||||||
@@ -128,11 +117,6 @@ var CloseDialog = new Lang.Class({
|
|||||||
if (this._dialog == null)
|
if (this._dialog == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
|
||||||
|
|
||||||
GLib.source_remove(this._timeoutId);
|
|
||||||
this._timeoutId = 0;
|
|
||||||
|
|
||||||
let dialog = this._dialog;
|
let dialog = this._dialog;
|
||||||
this._dialog = null;
|
this._dialog = null;
|
||||||
this._removeWindowEffect();
|
this._removeWindowEffect();
|
||||||
|
@@ -506,12 +506,8 @@ var VPNRequestHandler = new Lang.Class({
|
|||||||
try {
|
try {
|
||||||
data = this._dataStdout.peek_buffer();
|
data = this._dataStdout.peek_buffer();
|
||||||
|
|
||||||
if (data instanceof Uint8Array)
|
keyfile.load_from_data(data.toString(), data.length,
|
||||||
data = imports.byteArray.toGBytes(data);
|
GLib.KeyFileFlags.NONE);
|
||||||
else
|
|
||||||
data = data.toGBytes();
|
|
||||||
|
|
||||||
keyfile.load_from_bytes(data, GLib.KeyFileFlags.NONE);
|
|
||||||
|
|
||||||
if (keyfile.get_integer(VPN_UI_GROUP, 'Version') != 2)
|
if (keyfile.get_integer(VPN_UI_GROUP, 'Version') != 2)
|
||||||
throw new Error('Invalid plugin keyfile version, is %d');
|
throw new Error('Invalid plugin keyfile version, is %d');
|
||||||
|
@@ -85,11 +85,9 @@ var CtrlAltTabManager = new Lang.Class({
|
|||||||
|
|
||||||
// And add the windows metacity would show in its Ctrl-Alt-Tab list
|
// And add the windows metacity would show in its Ctrl-Alt-Tab list
|
||||||
if (Main.sessionMode.hasWindows && !Main.overview.visible) {
|
if (Main.sessionMode.hasWindows && !Main.overview.visible) {
|
||||||
let display = global.display;
|
let screen = global.screen;
|
||||||
let workspaceManager = global.workspace_manager;
|
let display = screen.get_display();
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
let windows = display.get_tab_list(Meta.TabList.DOCKS, screen.get_active_workspace ());
|
||||||
let windows = display.get_tab_list(Meta.TabList.DOCKS,
|
|
||||||
activeWorkspace);
|
|
||||||
let windowTracker = Shell.WindowTracker.get_default();
|
let windowTracker = Shell.WindowTracker.get_default();
|
||||||
let textureCache = St.TextureCache.get_default();
|
let textureCache = St.TextureCache.get_default();
|
||||||
for (let i = 0; i < windows.length; i++) {
|
for (let i = 0; i < windows.length; i++) {
|
||||||
@@ -133,7 +131,7 @@ var CtrlAltTabManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_focusWindows(timestamp) {
|
_focusWindows(timestamp) {
|
||||||
global.display.focus_default_window(timestamp);
|
global.screen.focus_default_window(timestamp);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
14
js/ui/dnd.js
14
js/ui/dnd.js
@@ -280,7 +280,7 @@ var _Draggable = new Lang.Class({
|
|||||||
|
|
||||||
this._touchSequence = sequence;
|
this._touchSequence = sequence;
|
||||||
this._grabEvents();
|
this._grabEvents();
|
||||||
global.display.set_cursor(Meta.Cursor.DND_IN_DRAG);
|
global.screen.set_cursor(Meta.Cursor.DND_IN_DRAG);
|
||||||
|
|
||||||
this._dragX = this._dragStartX = stageX;
|
this._dragX = this._dragStartX = stageX;
|
||||||
this._dragY = this._dragStartY = stageY;
|
this._dragY = this._dragStartY = stageY;
|
||||||
@@ -412,7 +412,7 @@ var _Draggable = new Lang.Class({
|
|||||||
if (motionFunc) {
|
if (motionFunc) {
|
||||||
let result = motionFunc(dragEvent);
|
let result = motionFunc(dragEvent);
|
||||||
if (result != DragMotionResult.CONTINUE) {
|
if (result != DragMotionResult.CONTINUE) {
|
||||||
global.display.set_cursor(DRAG_CURSOR_MAP[result]);
|
global.screen.set_cursor(DRAG_CURSOR_MAP[result]);
|
||||||
return GLib.SOURCE_REMOVE;
|
return GLib.SOURCE_REMOVE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -430,13 +430,13 @@ var _Draggable = new Lang.Class({
|
|||||||
targY,
|
targY,
|
||||||
0);
|
0);
|
||||||
if (result != DragMotionResult.CONTINUE) {
|
if (result != DragMotionResult.CONTINUE) {
|
||||||
global.display.set_cursor(DRAG_CURSOR_MAP[result]);
|
global.screen.set_cursor(DRAG_CURSOR_MAP[result]);
|
||||||
return GLib.SOURCE_REMOVE;
|
return GLib.SOURCE_REMOVE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
target = target.get_parent();
|
target = target.get_parent();
|
||||||
}
|
}
|
||||||
global.display.set_cursor(Meta.Cursor.DND_IN_DRAG);
|
global.screen.set_cursor(Meta.Cursor.DND_IN_DRAG);
|
||||||
return GLib.SOURCE_REMOVE;
|
return GLib.SOURCE_REMOVE;
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -509,7 +509,7 @@ var _Draggable = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._dragInProgress = false;
|
this._dragInProgress = false;
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||||
this.emit('drag-end', event.get_time(), true);
|
this.emit('drag-end', event.get_time(), true);
|
||||||
this._dragComplete();
|
this._dragComplete();
|
||||||
return true;
|
return true;
|
||||||
@@ -561,7 +561,7 @@ var _Draggable = new Lang.Class({
|
|||||||
let [snapBackX, snapBackY, snapBackScale] = this._getRestoreLocation();
|
let [snapBackX, snapBackY, snapBackScale] = this._getRestoreLocation();
|
||||||
|
|
||||||
if (this._actorDestroyed) {
|
if (this._actorDestroyed) {
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||||
if (!this._buttonDown)
|
if (!this._buttonDown)
|
||||||
this._dragComplete();
|
this._dragComplete();
|
||||||
this.emit('drag-end', eventTime, false);
|
this.emit('drag-end', eventTime, false);
|
||||||
@@ -620,7 +620,7 @@ var _Draggable = new Lang.Class({
|
|||||||
if (!this._buttonDown)
|
if (!this._buttonDown)
|
||||||
this._dragComplete();
|
this._dragComplete();
|
||||||
|
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||||
},
|
},
|
||||||
|
|
||||||
_onAnimationComplete(dragActor, eventTime) {
|
_onAnimationComplete(dragActor, eventTime) {
|
||||||
|
@@ -27,9 +27,9 @@ var EdgeDragAction = new Lang.Class({
|
|||||||
|
|
||||||
_getMonitorRect(x, y) {
|
_getMonitorRect(x, y) {
|
||||||
let rect = new Meta.Rectangle({ x: x - 1, y: y - 1, width: 1, height: 1 });
|
let rect = new Meta.Rectangle({ x: x - 1, y: y - 1, width: 1, height: 1 });
|
||||||
let monitorIndex = global.display.get_monitor_index_for_rect(rect);
|
let monitorIndex = global.screen.get_monitor_index_for_rect(rect);
|
||||||
|
|
||||||
return global.display.get_monitor_geometry(monitorIndex);
|
return global.screen.get_monitor_geometry(monitorIndex);
|
||||||
},
|
},
|
||||||
|
|
||||||
vfunc_gesture_prepare(action, actor) {
|
vfunc_gesture_prepare(action, actor) {
|
||||||
|
@@ -697,14 +697,7 @@ var EndSessionDialog = new Lang.Class({
|
|||||||
if (proxy.State == 'closing')
|
if (proxy.State == 'closing')
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
let sessionId = GLib.getenv('XDG_SESSION_ID');
|
if (proxy.Id == GLib.getenv('XDG_SESSION_ID'))
|
||||||
if (!sessionId)
|
|
||||||
this._loginManager.getCurrentSessionProxy(currentSessionProxy => {
|
|
||||||
sessionId = currentSessionProxy.Id;
|
|
||||||
log(`endSessionDialog: No XDG_SESSION_ID, fetched from logind: ${sessionId}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (proxy.Id == sessionId)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
let session = { user: this._userManager.get_user(userName),
|
let session = { user: this._userManager.get_user(userName),
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
|
|
||||||
|
const FocusCaretTracker = imports.ui.focusCaretTracker;
|
||||||
const Atspi = imports.gi.Atspi;
|
const Atspi = imports.gi.Atspi;
|
||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const Gdk = imports.gi.Gdk;
|
const Gdk = imports.gi.Gdk;
|
||||||
@@ -12,7 +13,6 @@ const Signals = imports.signals;
|
|||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
const InputSourceManager = imports.ui.status.keyboard;
|
const InputSourceManager = imports.ui.status.keyboard;
|
||||||
|
|
||||||
const IBusManager = imports.misc.ibusManager;
|
|
||||||
const BoxPointer = imports.ui.boxpointer;
|
const BoxPointer = imports.ui.boxpointer;
|
||||||
const Layout = imports.ui.layout;
|
const Layout = imports.ui.layout;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
@@ -261,7 +261,6 @@ var Key = new Lang.Class({
|
|||||||
this._extended_keyboard = null;
|
this._extended_keyboard = null;
|
||||||
this._pressTimeoutId = 0;
|
this._pressTimeoutId = 0;
|
||||||
this._capturedPress = false;
|
this._capturedPress = false;
|
||||||
|
|
||||||
this._capturedEventId = 0;
|
this._capturedEventId = 0;
|
||||||
this._unmapId = 0;
|
this._unmapId = 0;
|
||||||
this._longPress = false;
|
this._longPress = false;
|
||||||
@@ -472,8 +471,6 @@ var KeyboardModel = new Lang.Class({
|
|||||||
_loadModel(groupName) {
|
_loadModel(groupName) {
|
||||||
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/osk-layouts/%s.json'.format(groupName));
|
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/osk-layouts/%s.json'.format(groupName));
|
||||||
let [success, contents] = file.load_contents(null);
|
let [success, contents] = file.load_contents(null);
|
||||||
if (contents instanceof Uint8Array)
|
|
||||||
contents = imports.byteArray.toString(contents);
|
|
||||||
|
|
||||||
return JSON.parse(contents);
|
return JSON.parse(contents);
|
||||||
},
|
},
|
||||||
@@ -487,73 +484,6 @@ var KeyboardModel = new Lang.Class({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var FocusTracker = new Lang.Class({
|
|
||||||
Name: 'FocusTracker',
|
|
||||||
|
|
||||||
_init() {
|
|
||||||
this._currentWindow = null;
|
|
||||||
|
|
||||||
global.display.connect('notify::focus-window', () => {
|
|
||||||
this._setCurrentWindow(global.display.focus_window);
|
|
||||||
this.emit('window-changed', this._currentWindow);
|
|
||||||
});
|
|
||||||
|
|
||||||
global.display.connect('grab-op-begin', (display, window, op) => {
|
|
||||||
if (window == this._currentWindow &&
|
|
||||||
(op == Meta.GrabOp.MOVING || op == Meta.GrabOp.KEYBOARD_MOVING))
|
|
||||||
this.emit('reset');
|
|
||||||
});
|
|
||||||
|
|
||||||
/* Valid for wayland clients */
|
|
||||||
Main.inputMethod.connect('cursor-location-changed', (o, rect) => {
|
|
||||||
let newRect = { x: rect.get_x(), y: rect.get_y(), width: rect.get_width(), height: rect.get_height() };
|
|
||||||
this._setCurrentRect(newRect);
|
|
||||||
});
|
|
||||||
|
|
||||||
this._ibusManager = IBusManager.getIBusManager();
|
|
||||||
this._ibusManager.connect('set-cursor-location', (manager, rect) => {
|
|
||||||
/* Valid for X11 clients only */
|
|
||||||
if (Main.inputMethod.currentFocus)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._setCurrentRect(rect);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
get currentWindow() {
|
|
||||||
return this._currentWindow;
|
|
||||||
},
|
|
||||||
|
|
||||||
_setCurrentWindow(window) {
|
|
||||||
this._currentWindow = window;
|
|
||||||
},
|
|
||||||
|
|
||||||
_setCurrentRect(rect) {
|
|
||||||
if (this._currentWindow) {
|
|
||||||
let frameRect = this._currentWindow.get_frame_rect();
|
|
||||||
rect.x -= frameRect.x;
|
|
||||||
rect.y -= frameRect.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
this._rect = rect;
|
|
||||||
this.emit('position-changed');
|
|
||||||
},
|
|
||||||
|
|
||||||
getCurrentRect() {
|
|
||||||
let rect = { x: this._rect.x, y: this._rect.y,
|
|
||||||
width: this._rect.width, height: this._rect.height };
|
|
||||||
|
|
||||||
if (this._currentWindow) {
|
|
||||||
let frameRect = this._currentWindow.get_frame_rect();
|
|
||||||
rect.x += frameRect.x;
|
|
||||||
rect.y += frameRect.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rect;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Signals.addSignalMethods(FocusTracker.prototype);
|
|
||||||
|
|
||||||
var Keyboard = new Lang.Class({
|
var Keyboard = new Lang.Class({
|
||||||
Name: 'Keyboard',
|
Name: 'Keyboard',
|
||||||
|
|
||||||
@@ -561,10 +491,15 @@ var Keyboard = new Lang.Class({
|
|||||||
this.actor = null;
|
this.actor = null;
|
||||||
this._focusInExtendedKeys = false;
|
this._focusInExtendedKeys = false;
|
||||||
|
|
||||||
|
this._focusCaretTracker = new FocusCaretTracker.FocusCaretTracker();
|
||||||
|
this._focusCaretTracker.connect('focus-changed', this._onFocusChanged.bind(this));
|
||||||
|
this._focusCaretTracker.connect('caret-moved', this._onCaretMoved.bind(this));
|
||||||
this._languagePopup = null;
|
this._languagePopup = null;
|
||||||
|
this._currentAccessible = null;
|
||||||
|
this._caretTrackingEnabled = false;
|
||||||
|
this._updateCaretPositionId = 0;
|
||||||
this._currentFocusWindow = null;
|
this._currentFocusWindow = null;
|
||||||
this._animFocusedWindow = null;
|
this._originalWindowY = null;
|
||||||
this._delayedAnimFocusWindow = null;
|
|
||||||
|
|
||||||
this._enableKeyboard = false; // a11y settings value
|
this._enableKeyboard = false; // a11y settings value
|
||||||
this._enabled = false; // enabled state (by setting or device type)
|
this._enabled = false; // enabled state (by setting or device type)
|
||||||
@@ -575,14 +510,6 @@ var Keyboard = new Lang.Class({
|
|||||||
this._lastDeviceId = null;
|
this._lastDeviceId = null;
|
||||||
this._suggestions = null;
|
this._suggestions = null;
|
||||||
|
|
||||||
this._focusTracker = new FocusTracker();
|
|
||||||
this._focusTracker.connect('position-changed', this._onFocusPositionChanged.bind(this));
|
|
||||||
this._focusTracker.connect('reset', () => {
|
|
||||||
this._delayedAnimFocusWindow = null;
|
|
||||||
this._animFocusedWindow = null;
|
|
||||||
this._oskFocusWindow = null;
|
|
||||||
});
|
|
||||||
|
|
||||||
Meta.get_backend().connect('last-device-changed',
|
Meta.get_backend().connect('last-device-changed',
|
||||||
(backend, deviceId) => {
|
(backend, deviceId) => {
|
||||||
let manager = Clutter.DeviceManager.get_default();
|
let manager = Clutter.DeviceManager.get_default();
|
||||||
@@ -605,15 +532,102 @@ var Keyboard = new Lang.Class({
|
|||||||
this._keyboardRestingId = 0;
|
this._keyboardRestingId = 0;
|
||||||
|
|
||||||
Main.layoutManager.connect('monitors-changed', this._relayout.bind(this));
|
Main.layoutManager.connect('monitors-changed', this._relayout.bind(this));
|
||||||
|
//Main.inputMethod.connect('cursor-location-changed', (o, rect) => {
|
||||||
|
// if (this._keyboardVisible) {
|
||||||
|
// let currentWindow = global.screen.get_display().focus_window;
|
||||||
|
// this.setCursorLocation(currentWindow, rect.get_x(), rect.get_y(),
|
||||||
|
// rect.get_width(), rect.get_height());
|
||||||
|
// }
|
||||||
|
//});
|
||||||
},
|
},
|
||||||
|
|
||||||
get visible() {
|
get visible() {
|
||||||
return this._keyboardVisible;
|
return this._keyboardVisible;
|
||||||
},
|
},
|
||||||
|
|
||||||
_onFocusPositionChanged(focusTracker) {
|
_setCaretTrackerEnabled(enabled) {
|
||||||
let rect = focusTracker.getCurrentRect();
|
if (this._caretTrackingEnabled == enabled)
|
||||||
this.setCursorLocation(focusTracker.currentWindow, rect.x, rect.y, rect.width, rect.height);
|
return;
|
||||||
|
|
||||||
|
this._caretTrackingEnabled = enabled;
|
||||||
|
|
||||||
|
if (enabled) {
|
||||||
|
this._focusCaretTracker.registerFocusListener();
|
||||||
|
this._focusCaretTracker.registerCaretListener();
|
||||||
|
} else {
|
||||||
|
this._focusCaretTracker.deregisterFocusListener();
|
||||||
|
this._focusCaretTracker.deregisterCaretListener();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateCaretPosition(accessible) {
|
||||||
|
if (this._updateCaretPositionId)
|
||||||
|
GLib.source_remove(this._updateCaretPositionId);
|
||||||
|
if (!this._keyboardRequested)
|
||||||
|
return;
|
||||||
|
this._updateCaretPositionId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
|
||||||
|
this._updateCaretPositionId = 0;
|
||||||
|
|
||||||
|
let currentWindow = global.screen.get_display().focus_window;
|
||||||
|
if (!currentWindow) {
|
||||||
|
this.setCursorLocation(null);
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
}
|
||||||
|
|
||||||
|
let windowRect = currentWindow.get_frame_rect();
|
||||||
|
let text = accessible.get_text_iface();
|
||||||
|
let component = accessible.get_component_iface();
|
||||||
|
|
||||||
|
try {
|
||||||
|
let caretOffset = text.get_caret_offset();
|
||||||
|
let caretRect = text.get_character_extents(caretOffset, Atspi.CoordType.WINDOW);
|
||||||
|
let focusRect = component.get_extents(Atspi.CoordType.WINDOW);
|
||||||
|
|
||||||
|
if (caretRect.width == 0 && caretRect.height == 0)
|
||||||
|
caretRect = focusRect;
|
||||||
|
|
||||||
|
this.setCursorLocation(currentWindow, caretRect.x, caretRect.y, caretRect.width, caretRect.height);
|
||||||
|
} catch (e) {
|
||||||
|
log('Error updating caret position for OSK: ' + e.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
});
|
||||||
|
|
||||||
|
GLib.Source.set_name_by_id(this._updateCaretPositionId, '[gnome-shell] this._updateCaretPosition');
|
||||||
|
},
|
||||||
|
|
||||||
|
_focusIsTextEntry(accessible) {
|
||||||
|
try {
|
||||||
|
let role = accessible.get_role();
|
||||||
|
let stateSet = accessible.get_state_set();
|
||||||
|
return stateSet.contains(Atspi.StateType.EDITABLE) || role == Atspi.Role.TERMINAL;
|
||||||
|
} catch (e) {
|
||||||
|
log('Error determining accessible role: ' + e.message);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_onFocusChanged(caretTracker, event) {
|
||||||
|
let accessible = event.source;
|
||||||
|
if (!this._focusIsTextEntry(accessible))
|
||||||
|
return;
|
||||||
|
|
||||||
|
let focused = event.detail1 != 0;
|
||||||
|
if (focused) {
|
||||||
|
this._currentAccessible = accessible;
|
||||||
|
this._updateCaretPosition(accessible);
|
||||||
|
this.show(Main.layoutManager.focusIndex);
|
||||||
|
} else if (this._currentAccessible == accessible) {
|
||||||
|
this._currentAccessible = null;
|
||||||
|
this.hide();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_onCaretMoved(caretTracker, event) {
|
||||||
|
let accessible = event.source;
|
||||||
|
if (this._currentAccessible == accessible)
|
||||||
|
this._updateCaretPosition(accessible);
|
||||||
},
|
},
|
||||||
|
|
||||||
_lastDeviceIsTouchscreen() {
|
_lastDeviceIsTouchscreen() {
|
||||||
@@ -636,6 +650,8 @@ var Keyboard = new Lang.Class({
|
|||||||
if (!this._enabled && !this._keyboardController)
|
if (!this._enabled && !this._keyboardController)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
this._setCaretTrackerEnabled(this._enabled);
|
||||||
|
|
||||||
if (this._enabled && !this._keyboardController)
|
if (this._enabled && !this._keyboardController)
|
||||||
this._setupKeyboard();
|
this._setupKeyboard();
|
||||||
else if (!this._enabled)
|
else if (!this._enabled)
|
||||||
@@ -920,11 +936,9 @@ var Keyboard = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_relayout() {
|
_relayout() {
|
||||||
let monitor = Main.layoutManager.keyboardMonitor;
|
if (this.actor == null)
|
||||||
|
|
||||||
if (this.actor == null || monitor == null)
|
|
||||||
return;
|
return;
|
||||||
|
let monitor = Main.layoutManager.keyboardMonitor;
|
||||||
let maxHeight = monitor.height / 3;
|
let maxHeight = monitor.height / 3;
|
||||||
this.actor.width = monitor.width;
|
this.actor.width = monitor.width;
|
||||||
this.actor.height = maxHeight;
|
this.actor.height = maxHeight;
|
||||||
@@ -1013,14 +1027,11 @@ var Keyboard = new Lang.Class({
|
|||||||
if (!this._keyboardRequested)
|
if (!this._keyboardRequested)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (this._currentAccessible)
|
||||||
|
this._updateCaretPosition(this._currentAccessible);
|
||||||
Main.layoutManager.keyboardIndex = monitor;
|
Main.layoutManager.keyboardIndex = monitor;
|
||||||
this._relayout();
|
this._relayout();
|
||||||
Main.layoutManager.showKeyboard();
|
Main.layoutManager.showKeyboard();
|
||||||
|
|
||||||
if (this._delayedAnimFocusWindow) {
|
|
||||||
this._setAnimationWindow(this._delayedAnimFocusWindow);
|
|
||||||
this._delayedAnimFocusWindow = null;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
hide() {
|
hide() {
|
||||||
@@ -1091,9 +1102,8 @@ var Keyboard = new Lang.Class({
|
|||||||
window.move_frame(true, frameRect.x, frameRect.y);
|
window.move_frame(true, frameRect.x, frameRect.y);
|
||||||
},
|
},
|
||||||
|
|
||||||
_animateWindow(window, show) {
|
_animateWindow(window, show, deltaY) {
|
||||||
let windowActor = window.get_compositor_private();
|
let windowActor = window.get_compositor_private();
|
||||||
let deltaY = Main.layoutManager.keyboardBox.height;
|
|
||||||
if (!windowActor)
|
if (!windowActor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -1114,39 +1124,35 @@ var Keyboard = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_setAnimationWindow(window) {
|
setCursorLocation(window, x, y , w, h) {
|
||||||
if (this._animFocusedWindow == window)
|
if (window == this._oskFocusWindow)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (this._animFocusedWindow)
|
if (this._oskFocusWindow) {
|
||||||
this._animateWindow(this._animFocusedWindow, false);
|
let display = global.screen.get_display();
|
||||||
if (window)
|
|
||||||
this._animateWindow(window, true);
|
|
||||||
|
|
||||||
this._animFocusedWindow = window;
|
if (display.get_grab_op() == Meta.GrabOp.NONE ||
|
||||||
},
|
display.get_focus_window() != this._oskFocusWindow)
|
||||||
|
this._animateWindow(this._oskFocusWindow, false, this._oskFocusWindowDelta);
|
||||||
|
|
||||||
setCursorLocation(window, x, y , w, h) {
|
this._oskFocusWindow = null;
|
||||||
let monitor = Main.layoutManager.keyboardMonitor;
|
this._oskFocusWindowDelta = null;
|
||||||
|
|
||||||
if (window && monitor) {
|
|
||||||
let keyboardHeight = Main.layoutManager.keyboardBox.height;
|
|
||||||
let focusObscured = false;
|
|
||||||
|
|
||||||
if (y + h >= monitor.y + monitor.height - keyboardHeight) {
|
|
||||||
if (this._keyboardVisible)
|
|
||||||
this._setAnimationWindow(window);
|
|
||||||
else
|
|
||||||
this._delayedAnimFocusWindow = window;
|
|
||||||
} else if (y < keyboardHeight) {
|
|
||||||
this._delayedAnimFocusWindow = null;
|
|
||||||
this._setAnimationWindow(null);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this._setAnimationWindow(null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._oskFocusWindow = window;
|
if (window) {
|
||||||
|
let monitor = Main.layoutManager.keyboardMonitor;
|
||||||
|
let keyboardHeight = Main.layoutManager.keyboardBox.height;
|
||||||
|
let frameRect = window.get_frame_rect();
|
||||||
|
let windowActor = window.get_compositor_private();
|
||||||
|
let delta = 0;
|
||||||
|
|
||||||
|
if (frameRect.y + y + h >= monitor.height - keyboardHeight)
|
||||||
|
delta = keyboardHeight;
|
||||||
|
|
||||||
|
this._animateWindow(window, true, delta);
|
||||||
|
this._oskFocusWindow = window;
|
||||||
|
this._oskFocusWindowDelta = delta;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -109,7 +109,7 @@ var MonitorConstraint = new Lang.Class({
|
|||||||
|
|
||||||
if (!this._workareasChangedId) {
|
if (!this._workareasChangedId) {
|
||||||
this._workareasChangedId =
|
this._workareasChangedId =
|
||||||
global.display.connect('workareas-changed', () => {
|
global.screen.connect('workareas-changed', () => {
|
||||||
if (this._workArea)
|
if (this._workArea)
|
||||||
this.actor.queue_relayout();
|
this.actor.queue_relayout();
|
||||||
});
|
});
|
||||||
@@ -120,7 +120,7 @@ var MonitorConstraint = new Lang.Class({
|
|||||||
this._monitorsChangedId = 0;
|
this._monitorsChangedId = 0;
|
||||||
|
|
||||||
if (this._workareasChangedId)
|
if (this._workareasChangedId)
|
||||||
global.display.disconnect(this._workareasChangedId);
|
global.screen.disconnect(this._workareasChangedId);
|
||||||
this._workareasChangedId = 0;
|
this._workareasChangedId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,8 +142,7 @@ var MonitorConstraint = new Lang.Class({
|
|||||||
|
|
||||||
let rect;
|
let rect;
|
||||||
if (this._workArea) {
|
if (this._workArea) {
|
||||||
let workspaceManager = global.workspace_manager;
|
let ws = global.screen.get_workspace_by_index(0);
|
||||||
let ws = workspaceManager.get_workspace_by_index(0);
|
|
||||||
rect = ws.get_work_area_for_monitor(index);
|
rect = ws.get_work_area_for_monitor(index);
|
||||||
} else {
|
} else {
|
||||||
rect = Main.layoutManager.monitors[index];
|
rect = Main.layoutManager.monitors[index];
|
||||||
@@ -165,7 +164,7 @@ var Monitor = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
get inFullscreen() {
|
get inFullscreen() {
|
||||||
return global.display.get_monitor_in_fullscreen(this.index);
|
return global.screen.get_monitor_in_fullscreen(this.index);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -204,7 +203,6 @@ var LayoutManager = new Lang.Class({
|
|||||||
|
|
||||||
// Set up stage hierarchy to group all UI actors under one container.
|
// Set up stage hierarchy to group all UI actors under one container.
|
||||||
this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
|
this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
|
||||||
this.uiGroup.set_flags(Clutter.ActorFlags.NO_LAYOUT);
|
|
||||||
this.uiGroup.connect('allocate', (actor, box, flags) => {
|
this.uiGroup.connect('allocate', (actor, box, flags) => {
|
||||||
let children = actor.get_children();
|
let children = actor.get_children();
|
||||||
for (let i = 0; i < children.length; i++)
|
for (let i = 0; i < children.length; i++)
|
||||||
@@ -261,7 +259,7 @@ var LayoutManager = new Lang.Class({
|
|||||||
global.stage.remove_actor(global.top_window_group);
|
global.stage.remove_actor(global.top_window_group);
|
||||||
this.uiGroup.add_actor(global.top_window_group);
|
this.uiGroup.add_actor(global.top_window_group);
|
||||||
|
|
||||||
let feedbackGroup = Meta.get_feedback_group_for_display(global.display);
|
let feedbackGroup = Meta.get_feedback_group_for_screen(global.screen);
|
||||||
global.stage.remove_actor(feedbackGroup);
|
global.stage.remove_actor(feedbackGroup);
|
||||||
this.uiGroup.add_actor(feedbackGroup);
|
this.uiGroup.add_actor(feedbackGroup);
|
||||||
|
|
||||||
@@ -271,19 +269,14 @@ var LayoutManager = new Lang.Class({
|
|||||||
this._bgManagers = [];
|
this._bgManagers = [];
|
||||||
|
|
||||||
// Need to update struts on new workspaces when they are added
|
// Need to update struts on new workspaces when they are added
|
||||||
let workspaceManager = global.workspace_manager;
|
global.screen.connect('notify::n-workspaces',
|
||||||
workspaceManager.connect('notify::n-workspaces',
|
this._queueUpdateRegions.bind(this));
|
||||||
this._queueUpdateRegions.bind(this));
|
global.screen.connect('restacked',
|
||||||
|
this._windowsRestacked.bind(this));
|
||||||
let display = global.display;
|
global.screen.connect('monitors-changed',
|
||||||
display.connect('restacked',
|
this._monitorsChanged.bind(this));
|
||||||
this._windowsRestacked.bind(this));
|
global.screen.connect('in-fullscreen-changed',
|
||||||
display.connect('in-fullscreen-changed',
|
this._updateFullscreen.bind(this));
|
||||||
this._updateFullscreen.bind(this));
|
|
||||||
|
|
||||||
let monitorManager = Meta.MonitorManager.get();
|
|
||||||
monitorManager.connect('monitors-changed',
|
|
||||||
this._monitorsChanged.bind(this));
|
|
||||||
this._monitorsChanged();
|
this._monitorsChanged();
|
||||||
|
|
||||||
// NVIDIA drivers don't preserve FBO contents across
|
// NVIDIA drivers don't preserve FBO contents across
|
||||||
@@ -326,12 +319,12 @@ var LayoutManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateMonitors() {
|
_updateMonitors() {
|
||||||
let display = global.display;
|
let screen = global.screen;
|
||||||
|
|
||||||
this.monitors = [];
|
this.monitors = [];
|
||||||
let nMonitors = display.get_n_monitors();
|
let nMonitors = screen.get_n_monitors();
|
||||||
for (let i = 0; i < nMonitors; i++)
|
for (let i = 0; i < nMonitors; i++)
|
||||||
this.monitors.push(new Monitor(i, display.get_monitor_geometry(i)));
|
this.monitors.push(new Monitor(i, screen.get_monitor_geometry(i)));
|
||||||
|
|
||||||
if (nMonitors == 0) {
|
if (nMonitors == 0) {
|
||||||
this.primaryIndex = this.bottomIndex = -1;
|
this.primaryIndex = this.bottomIndex = -1;
|
||||||
@@ -340,7 +333,7 @@ var LayoutManager = new Lang.Class({
|
|||||||
} else {
|
} else {
|
||||||
// If there are monitors below the primary, then we need
|
// If there are monitors below the primary, then we need
|
||||||
// to split primary from bottom.
|
// to split primary from bottom.
|
||||||
this.primaryIndex = this.bottomIndex = display.get_primary_monitor();
|
this.primaryIndex = this.bottomIndex = screen.get_primary_monitor();
|
||||||
for (let i = 0; i < this.monitors.length; i++) {
|
for (let i = 0; i < this.monitors.length; i++) {
|
||||||
let monitor = this.monitors[i];
|
let monitor = this.monitors[i];
|
||||||
if (this._isAboveOrBelowPrimary(monitor)) {
|
if (this._isAboveOrBelowPrimary(monitor)) {
|
||||||
@@ -545,7 +538,7 @@ var LayoutManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
get currentMonitor() {
|
get currentMonitor() {
|
||||||
let index = global.display.get_current_monitor();
|
let index = global.screen.get_current_monitor();
|
||||||
return this.monitors[index];
|
return this.monitors[index];
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -564,8 +557,6 @@ var LayoutManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
get focusMonitor() {
|
get focusMonitor() {
|
||||||
if (this.focusIndex < 0)
|
|
||||||
return null;
|
|
||||||
return this.monitors[this.focusIndex];
|
return this.monitors[this.focusIndex];
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -918,8 +909,7 @@ var LayoutManager = new Lang.Class({
|
|||||||
getWorkAreaForMonitor(monitorIndex) {
|
getWorkAreaForMonitor(monitorIndex) {
|
||||||
// Assume that all workspaces will have the same
|
// Assume that all workspaces will have the same
|
||||||
// struts and pick the first one.
|
// struts and pick the first one.
|
||||||
let workspaceManager = global.workspace_manager;
|
let ws = global.screen.get_workspace_by_index(0);
|
||||||
let ws = workspaceManager.get_workspace_by_index(0);
|
|
||||||
return ws.get_work_area_for_monitor(monitorIndex);
|
return ws.get_work_area_for_monitor(monitorIndex);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -929,7 +919,7 @@ var LayoutManager = new Lang.Class({
|
|||||||
let [x, y] = actor.get_transformed_position();
|
let [x, y] = actor.get_transformed_position();
|
||||||
let [w, h] = actor.get_transformed_size();
|
let [w, h] = actor.get_transformed_size();
|
||||||
let rect = new Meta.Rectangle({ x: x, y: y, width: w, height: h });
|
let rect = new Meta.Rectangle({ x: x, y: y, width: w, height: h });
|
||||||
return global.display.get_monitor_index_for_rect(rect);
|
return global.screen.get_monitor_index_for_rect(rect);
|
||||||
},
|
},
|
||||||
|
|
||||||
findMonitorForActor(actor) {
|
findMonitorForActor(actor) {
|
||||||
@@ -1062,9 +1052,9 @@ var LayoutManager = new Lang.Class({
|
|||||||
global.set_stage_input_region(rects);
|
global.set_stage_input_region(rects);
|
||||||
this._isPopupWindowVisible = isPopupMenuVisible;
|
this._isPopupWindowVisible = isPopupMenuVisible;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let screen = global.screen;
|
||||||
for (let w = 0; w < workspaceManager.n_workspaces; w++) {
|
for (let w = 0; w < screen.n_workspaces; w++) {
|
||||||
let workspace = workspaceManager.get_workspace_by_index(w);
|
let workspace = screen.get_workspace_by_index(w);
|
||||||
workspace.set_builtin_struts(struts);
|
workspace.set_builtin_struts(struts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -19,6 +19,7 @@ const MagnifierDBus = imports.ui.magnifierDBus;
|
|||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
const PointerWatcher = imports.ui.pointerWatcher;
|
const PointerWatcher = imports.ui.pointerWatcher;
|
||||||
|
|
||||||
|
var MOUSE_POLL_FREQUENCY = 50;
|
||||||
var CROSSHAIRS_CLIP_SIZE = [100, 100];
|
var CROSSHAIRS_CLIP_SIZE = [100, 100];
|
||||||
var NO_CHANGE = 0.0;
|
var NO_CHANGE = 0.0;
|
||||||
|
|
||||||
@@ -61,7 +62,7 @@ var Magnifier = new Lang.Class({
|
|||||||
this._zoomRegions = [];
|
this._zoomRegions = [];
|
||||||
|
|
||||||
// Create small clutter tree for the magnified mouse.
|
// Create small clutter tree for the magnified mouse.
|
||||||
let cursorTracker = Meta.CursorTracker.get_for_display(global.display);
|
let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
|
||||||
this._mouseSprite = new Clutter.Texture();
|
this._mouseSprite = new Clutter.Texture();
|
||||||
Shell.util_cursor_tracker_to_clutter(cursorTracker, this._mouseSprite);
|
Shell.util_cursor_tracker_to_clutter(cursorTracker, this._mouseSprite);
|
||||||
this._cursorRoot = new Clutter.Actor();
|
this._cursorRoot = new Clutter.Actor();
|
||||||
@@ -116,10 +117,10 @@ var Magnifier = new Lang.Class({
|
|||||||
|
|
||||||
if (isActive != activate) {
|
if (isActive != activate) {
|
||||||
if (activate) {
|
if (activate) {
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
Meta.disable_unredirect_for_screen(global.screen);
|
||||||
this.startTrackingMouse();
|
this.startTrackingMouse();
|
||||||
} else {
|
} else {
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
Meta.enable_unredirect_for_screen(global.screen);
|
||||||
this.stopTrackingMouse();
|
this.stopTrackingMouse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,10 +152,8 @@ var Magnifier = new Lang.Class({
|
|||||||
* Turn on mouse tracking, if not already doing so.
|
* Turn on mouse tracking, if not already doing so.
|
||||||
*/
|
*/
|
||||||
startTrackingMouse() {
|
startTrackingMouse() {
|
||||||
if (!this._pointerWatch) {
|
if (!this._pointerWatch)
|
||||||
let interval = 1000 / Clutter.get_default_frame_rate();
|
this._pointerWatch = PointerWatcher.getPointerWatcher().addWatch(MOUSE_POLL_FREQUENCY, this.scrollToMousePos.bind(this));
|
||||||
this._pointerWatch = PointerWatcher.getPointerWatcher().addWatch(interval, this.scrollToMousePos.bind(this));
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -429,7 +429,7 @@ function pushModal(actor, params) {
|
|||||||
log('pushModal: invocation of begin_modal failed');
|
log('pushModal: invocation of begin_modal failed');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
Meta.disable_unredirect_for_screen(global.screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
modalCount += 1;
|
modalCount += 1;
|
||||||
@@ -528,7 +528,7 @@ function popModal(actor, timestamp) {
|
|||||||
|
|
||||||
layoutManager.modalEnded();
|
layoutManager.modalEnded();
|
||||||
global.end_modal(timestamp);
|
global.end_modal(timestamp);
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
Meta.enable_unredirect_for_screen(global.screen);
|
||||||
actionMode = Shell.ActionMode.NORMAL;
|
actionMode = Shell.ActionMode.NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -556,15 +556,14 @@ function openRunDialog() {
|
|||||||
* and switching out of the overview if it's currently active
|
* and switching out of the overview if it's currently active
|
||||||
*/
|
*/
|
||||||
function activateWindow(window, time, workspaceNum) {
|
function activateWindow(window, time, workspaceNum) {
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWorkspaceNum = global.screen.get_active_workspace_index();
|
||||||
let activeWorkspaceNum = workspaceManager.get_active_workspace_index();
|
|
||||||
let windowWorkspaceNum = (workspaceNum !== undefined) ? workspaceNum : window.get_workspace().index();
|
let windowWorkspaceNum = (workspaceNum !== undefined) ? workspaceNum : window.get_workspace().index();
|
||||||
|
|
||||||
if (!time)
|
if (!time)
|
||||||
time = global.get_current_time();
|
time = global.get_current_time();
|
||||||
|
|
||||||
if (windowWorkspaceNum != activeWorkspaceNum) {
|
if (windowWorkspaceNum != activeWorkspaceNum) {
|
||||||
let workspace = workspaceManager.get_workspace_by_index(windowWorkspaceNum);
|
let workspace = global.screen.get_workspace_by_index(windowWorkspaceNum);
|
||||||
workspace.activate_with_focus(window, time);
|
workspace.activate_with_focus(window, time);
|
||||||
} else {
|
} else {
|
||||||
window.activate(time);
|
window.activate(time);
|
||||||
|
@@ -27,7 +27,6 @@ function _fixMarkup(text, allowMarkup) {
|
|||||||
|
|
||||||
// Support <b>, <i>, and <u>, escape anything else
|
// Support <b>, <i>, and <u>, escape anything else
|
||||||
// so it displays as raw markup.
|
// so it displays as raw markup.
|
||||||
// Ref: https://developer.gnome.org/notification-spec/#markup
|
|
||||||
_text = _text.replace(/<(?!\/?[biu]>)/g, '<');
|
_text = _text.replace(/<(?!\/?[biu]>)/g, '<');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -96,10 +95,10 @@ var URLHighlighter = new Lang.Class({
|
|||||||
|
|
||||||
let urlId = this._findUrlAtPos(event);
|
let urlId = this._findUrlAtPos(event);
|
||||||
if (urlId != -1 && !this._cursorChanged) {
|
if (urlId != -1 && !this._cursorChanged) {
|
||||||
global.display.set_cursor(Meta.Cursor.POINTING_HAND);
|
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
|
||||||
this._cursorChanged = true;
|
this._cursorChanged = true;
|
||||||
} else if (urlId == -1) {
|
} else if (urlId == -1) {
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||||
this._cursorChanged = false;
|
this._cursorChanged = false;
|
||||||
}
|
}
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
@@ -110,7 +109,7 @@ var URLHighlighter = new Lang.Class({
|
|||||||
|
|
||||||
if (this._cursorChanged) {
|
if (this._cursorChanged) {
|
||||||
this._cursorChanged = false;
|
this._cursorChanged = false;
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||||
}
|
}
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
});
|
});
|
||||||
|
@@ -315,10 +315,10 @@ var NotificationApplicationPolicy = new Lang.Class({
|
|||||||
// You can add a secondary icon to the banner with 'secondaryGIcon'. There
|
// You can add a secondary icon to the banner with 'secondaryGIcon'. There
|
||||||
// is no fallback for this icon.
|
// is no fallback for this icon.
|
||||||
//
|
//
|
||||||
// If @params contains 'bannerMarkup', with the value %true, a subset (<b>,
|
// If @params contains 'bannerMarkup', with the value %true, then
|
||||||
// <i> and <u>) of the markup in [1] will be interpreted within @banner. If
|
// the corresponding element is assumed to use pango markup. If the
|
||||||
// the parameter is not present, then anything that looks like markup
|
// parameter is not present for an element, then anything that looks
|
||||||
// in @banner will appear literally in the output.
|
// like markup in that element will appear literally in the output.
|
||||||
//
|
//
|
||||||
// If @params contains a 'clear' parameter with the value %true, then
|
// If @params contains a 'clear' parameter with the value %true, then
|
||||||
// the content and the action area of the notification will be cleared.
|
// the content and the action area of the notification will be cleared.
|
||||||
@@ -328,8 +328,6 @@ var NotificationApplicationPolicy = new Lang.Class({
|
|||||||
// If @params contains 'soundName' or 'soundFile', the corresponding
|
// If @params contains 'soundName' or 'soundFile', the corresponding
|
||||||
// event sound is played when the notification is shown (if the policy for
|
// event sound is played when the notification is shown (if the policy for
|
||||||
// @source allows playing sounds).
|
// @source allows playing sounds).
|
||||||
//
|
|
||||||
// [1] https://developer.gnome.org/notification-spec/#markup
|
|
||||||
var Notification = new Lang.Class({
|
var Notification = new Lang.Class({
|
||||||
Name: 'Notification',
|
Name: 'Notification',
|
||||||
|
|
||||||
@@ -917,7 +915,7 @@ var MessageTray = new Lang.Class({
|
|||||||
Main.layoutManager.addChrome(this.actor, { affectsInputRegion: false });
|
Main.layoutManager.addChrome(this.actor, { affectsInputRegion: false });
|
||||||
Main.layoutManager.trackChrome(this._bannerBin, { affectsInputRegion: true });
|
Main.layoutManager.trackChrome(this._bannerBin, { affectsInputRegion: true });
|
||||||
|
|
||||||
global.display.connect('in-fullscreen-changed', this._updateState.bind(this));
|
global.screen.connect('in-fullscreen-changed', this._updateState.bind(this));
|
||||||
|
|
||||||
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
|
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
|
||||||
|
|
||||||
|
@@ -116,7 +116,7 @@ var ModalDialog = new Lang.Class({
|
|||||||
if (onPrimary)
|
if (onPrimary)
|
||||||
this._monitorConstraint.primary = true;
|
this._monitorConstraint.primary = true;
|
||||||
else
|
else
|
||||||
this._monitorConstraint.index = global.display.get_current_monitor();
|
this._monitorConstraint.index = global.screen.get_current_monitor();
|
||||||
|
|
||||||
this.state = State.OPENING;
|
this.state = State.OPENING;
|
||||||
|
|
||||||
|
@@ -831,10 +831,8 @@ var GtkNotificationDaemon = new Lang.Class({
|
|||||||
let source;
|
let source;
|
||||||
try {
|
try {
|
||||||
source = this._ensureAppSource(appId);
|
source = this._ensureAppSource(appId);
|
||||||
} catch(e) {
|
} catch(e if e instanceof InvalidAppError) {
|
||||||
if (e instanceof InvalidAppError)
|
return;
|
||||||
return;
|
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
notifications.forEach(([notificationId, notification]) => {
|
notifications.forEach(([notificationId, notification]) => {
|
||||||
@@ -865,12 +863,9 @@ var GtkNotificationDaemon = new Lang.Class({
|
|||||||
let source;
|
let source;
|
||||||
try {
|
try {
|
||||||
source = this._ensureAppSource(appId);
|
source = this._ensureAppSource(appId);
|
||||||
} catch(e) {
|
} catch(e if e instanceof InvalidAppError) {
|
||||||
if (e instanceof InvalidAppError) {
|
invocation.return_dbus_error('org.gtk.Notifications.InvalidApp', 'The app by ID "%s" could not be found'.format(appId));
|
||||||
invocation.return_dbus_error('org.gtk.Notifications.InvalidApp', 'The app by ID "%s" could not be found'.format(appId));
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let timestamp = GLib.DateTime.new_now_local().to_unix();
|
let timestamp = GLib.DateTime.new_now_local().to_unix();
|
||||||
|
@@ -32,7 +32,7 @@ var OsdMonitorLabel = new Lang.Class({
|
|||||||
Main.uiGroup.set_child_above_sibling(this._actor, null);
|
Main.uiGroup.set_child_above_sibling(this._actor, null);
|
||||||
this._position();
|
this._position();
|
||||||
|
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
Meta.disable_unredirect_for_screen(global.screen);
|
||||||
},
|
},
|
||||||
|
|
||||||
_position() {
|
_position() {
|
||||||
@@ -48,7 +48,7 @@ var OsdMonitorLabel = new Lang.Class({
|
|||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
this._actor.destroy();
|
this._actor.destroy();
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
Meta.enable_unredirect_for_screen(global.screen);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -4,7 +4,6 @@ const Clutter = imports.gi.Clutter;
|
|||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
|
|
||||||
const BarLevel = imports.ui.barLevel;
|
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Layout = imports.ui.layout;
|
const Layout = imports.ui.layout;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
@@ -18,18 +17,16 @@ var LEVEL_ANIMATION_TIME = 0.1;
|
|||||||
|
|
||||||
var LevelBar = new Lang.Class({
|
var LevelBar = new Lang.Class({
|
||||||
Name: 'LevelBar',
|
Name: 'LevelBar',
|
||||||
Extends: BarLevel.BarLevel,
|
|
||||||
|
|
||||||
_init() {
|
_init() {
|
||||||
this._level = 0;
|
this._level = 0;
|
||||||
this._maxLevel = 100;
|
|
||||||
|
|
||||||
let params = {
|
this.actor = new St.Bin({ style_class: 'level',
|
||||||
styleClass: 'level',
|
x_align: St.Align.START,
|
||||||
}
|
y_fill: true });
|
||||||
this.parent(this._level, params);
|
this._bar = new St.Widget({ style_class: 'level-bar' });
|
||||||
|
|
||||||
this.actor.accessible_name = _("Volume");
|
this.actor.set_child(this._bar);
|
||||||
|
|
||||||
this.actor.connect('notify::width', () => { this.level = this.level; });
|
this.actor.connect('notify::width', () => { this.level = this.level; });
|
||||||
},
|
},
|
||||||
@@ -39,19 +36,12 @@ var LevelBar = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
set level(value) {
|
set level(value) {
|
||||||
this._level = Math.max(0, Math.min(value, this._maxLevel));
|
this._level = Math.max(0, Math.min(value, 100));
|
||||||
|
|
||||||
this.setValue(this._level / 100);
|
let alloc = this.actor.get_allocation_box();
|
||||||
},
|
let newWidth = Math.round((alloc.x2 - alloc.x1) * this._level / 100);
|
||||||
|
if (newWidth != this._bar.width)
|
||||||
get maxLevel() {
|
this._bar.width = newWidth;
|
||||||
return this._maxLevel;
|
|
||||||
},
|
|
||||||
|
|
||||||
set maxLevel(value) {
|
|
||||||
this._maxLevel = Math.max(100, value);
|
|
||||||
|
|
||||||
this.setMaximumValue(this._maxLevel / 100);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -150,18 +140,12 @@ var OsdWindow = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setMaxLevel(maxLevel) {
|
|
||||||
if (maxLevel === undefined)
|
|
||||||
maxLevel = 100;
|
|
||||||
this._level.maxLevel = maxLevel;
|
|
||||||
},
|
|
||||||
|
|
||||||
show() {
|
show() {
|
||||||
if (!this._icon.gicon)
|
if (!this._icon.gicon)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!this.actor.visible) {
|
if (!this.actor.visible) {
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
Meta.disable_unredirect_for_screen(global.screen);
|
||||||
this.actor.show();
|
this.actor.show();
|
||||||
this.actor.opacity = 0;
|
this.actor.opacity = 0;
|
||||||
this.actor.get_parent().set_child_above_sibling(this.actor, null);
|
this.actor.get_parent().set_child_above_sibling(this.actor, null);
|
||||||
@@ -195,7 +179,7 @@ var OsdWindow = new Lang.Class({
|
|||||||
transition: 'easeOutQuad',
|
transition: 'easeOutQuad',
|
||||||
onComplete: () => {
|
onComplete: () => {
|
||||||
this._reset();
|
this._reset();
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
Meta.enable_unredirect_for_screen(global.screen);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return GLib.SOURCE_REMOVE;
|
return GLib.SOURCE_REMOVE;
|
||||||
@@ -205,7 +189,6 @@ var OsdWindow = new Lang.Class({
|
|||||||
this.actor.hide();
|
this.actor.hide();
|
||||||
this.setLabel(null);
|
this.setLabel(null);
|
||||||
this.setLevel(null);
|
this.setLevel(null);
|
||||||
this.setMaxLevel(null);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_relayout() {
|
_relayout() {
|
||||||
@@ -250,25 +233,24 @@ var OsdWindowManager = new Lang.Class({
|
|||||||
this._osdWindows.length = Main.layoutManager.monitors.length;
|
this._osdWindows.length = Main.layoutManager.monitors.length;
|
||||||
},
|
},
|
||||||
|
|
||||||
_showOsdWindow(monitorIndex, icon, label, level, maxLevel) {
|
_showOsdWindow(monitorIndex, icon, label, level) {
|
||||||
this._osdWindows[monitorIndex].setIcon(icon);
|
this._osdWindows[monitorIndex].setIcon(icon);
|
||||||
this._osdWindows[monitorIndex].setLabel(label);
|
this._osdWindows[monitorIndex].setLabel(label);
|
||||||
this._osdWindows[monitorIndex].setLevel(level);
|
this._osdWindows[monitorIndex].setLevel(level);
|
||||||
this._osdWindows[monitorIndex].setMaxLevel(maxLevel);
|
|
||||||
this._osdWindows[monitorIndex].show();
|
this._osdWindows[monitorIndex].show();
|
||||||
},
|
},
|
||||||
|
|
||||||
show(monitorIndex, icon, label, level, maxLevel) {
|
show(monitorIndex, icon, label, level) {
|
||||||
if (monitorIndex != -1) {
|
if (monitorIndex != -1) {
|
||||||
for (let i = 0; i < this._osdWindows.length; i++) {
|
for (let i = 0; i < this._osdWindows.length; i++) {
|
||||||
if (i == monitorIndex)
|
if (i == monitorIndex)
|
||||||
this._showOsdWindow(i, icon, label, level, maxLevel);
|
this._showOsdWindow(i, icon, label, level);
|
||||||
else
|
else
|
||||||
this._osdWindows[i].cancel();
|
this._osdWindows[i].cancel();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (let i = 0; i < this._osdWindows.length; i++)
|
for (let i = 0; i < this._osdWindows.length; i++)
|
||||||
this._showOsdWindow(i, icon, label, level, maxLevel);
|
this._showOsdWindow(i, icon, label, level);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@@ -157,7 +157,7 @@ var Overview = new Lang.Class({
|
|||||||
Main.xdndHandler.connect('drag-begin', this._onDragBegin.bind(this));
|
Main.xdndHandler.connect('drag-begin', this._onDragBegin.bind(this));
|
||||||
Main.xdndHandler.connect('drag-end', this._onDragEnd.bind(this));
|
Main.xdndHandler.connect('drag-end', this._onDragEnd.bind(this));
|
||||||
|
|
||||||
global.display.connect('restacked', this._onRestacked.bind(this));
|
global.screen.connect('restacked', this._onRestacked.bind(this));
|
||||||
|
|
||||||
this._windowSwitchTimeoutId = 0;
|
this._windowSwitchTimeoutId = 0;
|
||||||
this._windowSwitchTimestamp = 0;
|
this._windowSwitchTimestamp = 0;
|
||||||
@@ -286,8 +286,7 @@ var Overview = new Lang.Class({
|
|||||||
|
|
||||||
DND.addDragMonitor(this._dragMonitor);
|
DND.addDragMonitor(this._dragMonitor);
|
||||||
// Remember the workspace we started from
|
// Remember the workspace we started from
|
||||||
let workspaceManager = global.workspace_manager;
|
this._lastActiveWorkspaceIndex = global.screen.get_active_workspace_index();
|
||||||
this._lastActiveWorkspaceIndex = workspaceManager.get_active_workspace_index();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDragEnd(time) {
|
_onDragEnd(time) {
|
||||||
@@ -297,8 +296,7 @@ var Overview = new Lang.Class({
|
|||||||
// we have to go back to where we started and hide
|
// we have to go back to where we started and hide
|
||||||
// the overview
|
// the overview
|
||||||
if (this._shown) {
|
if (this._shown) {
|
||||||
let workspaceManager = global.workspace_manager;
|
global.screen.get_workspace_by_index(this._lastActiveWorkspaceIndex).activate(time);
|
||||||
workspaceManager.get_workspace_by_index(this._lastActiveWorkspaceIndex).activate(time);
|
|
||||||
this.hide();
|
this.hide();
|
||||||
}
|
}
|
||||||
this._resetWindowSwitchTimeout();
|
this._resetWindowSwitchTimeout();
|
||||||
@@ -319,9 +317,9 @@ var Overview = new Lang.Class({
|
|||||||
let display = Gdk.Display.get_default();
|
let display = Gdk.Display.get_default();
|
||||||
let deviceManager = display.get_device_manager();
|
let deviceManager = display.get_device_manager();
|
||||||
let pointer = deviceManager.get_client_pointer();
|
let pointer = deviceManager.get_client_pointer();
|
||||||
let [gdkScreen, pointerX, pointerY] = pointer.get_position();
|
let [screen, pointerX, pointerY] = pointer.get_position();
|
||||||
|
|
||||||
pointer.warp(gdkScreen, pointerX, pointerY);
|
pointer.warp(screen, pointerX, pointerY);
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDragMotion(dragEvent) {
|
_onDragMotion(dragEvent) {
|
||||||
@@ -395,8 +393,10 @@ var Overview = new Lang.Class({
|
|||||||
if (!Main.layoutManager.primaryMonitor)
|
if (!Main.layoutManager.primaryMonitor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._coverPane.set_position(0, 0);
|
let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
|
||||||
this._coverPane.set_size(global.screen_width, global.screen_height);
|
|
||||||
|
this._coverPane.set_position(0, workArea.y);
|
||||||
|
this._coverPane.set_size(workArea.width, workArea.height);
|
||||||
|
|
||||||
this._updateBackgrounds();
|
this._updateBackgrounds();
|
||||||
},
|
},
|
||||||
@@ -550,7 +550,7 @@ var Overview = new Lang.Class({
|
|||||||
this.visibleTarget = true;
|
this.visibleTarget = true;
|
||||||
this._activationTime = GLib.get_monotonic_time() / GLib.USEC_PER_SEC;
|
this._activationTime = GLib.get_monotonic_time() / GLib.USEC_PER_SEC;
|
||||||
|
|
||||||
Meta.disable_unredirect_for_display(global.display);
|
Meta.disable_unredirect_for_screen(global.screen);
|
||||||
this.viewSelector.show();
|
this.viewSelector.show();
|
||||||
|
|
||||||
this._overview.opacity = 0;
|
this._overview.opacity = 0;
|
||||||
@@ -635,7 +635,7 @@ var Overview = new Lang.Class({
|
|||||||
|
|
||||||
_hideDone() {
|
_hideDone() {
|
||||||
// Re-enable unredirection
|
// Re-enable unredirection
|
||||||
Meta.enable_unredirect_for_display(global.display);
|
Meta.enable_unredirect_for_screen(global.screen);
|
||||||
|
|
||||||
this.viewSelector.hide();
|
this.viewSelector.hide();
|
||||||
this._desktopFade.hide();
|
this._desktopFade.hide();
|
||||||
|
@@ -253,23 +253,13 @@ var ThumbnailsSlider = new Lang.Class({
|
|||||||
this.actor.add_actor(this._thumbnailsBox.actor);
|
this.actor.add_actor(this._thumbnailsBox.actor);
|
||||||
|
|
||||||
Main.layoutManager.connect('monitors-changed', this._updateSlide.bind(this));
|
Main.layoutManager.connect('monitors-changed', this._updateSlide.bind(this));
|
||||||
global.workspace_manager.connect('active-workspace-changed',
|
|
||||||
this._updateSlide.bind(this));
|
|
||||||
global.workspace_manager.connect('notify::n-workspaces',
|
|
||||||
this._updateSlide.bind(this));
|
|
||||||
this.actor.connect('notify::hover', this._updateSlide.bind(this));
|
this.actor.connect('notify::hover', this._updateSlide.bind(this));
|
||||||
this._thumbnailsBox.actor.bind_property('visible', this.actor, 'visible', GObject.BindingFlags.SYNC_CREATE);
|
this._thumbnailsBox.actor.bind_property('visible', this.actor, 'visible', GObject.BindingFlags.SYNC_CREATE);
|
||||||
},
|
},
|
||||||
|
|
||||||
_getAlwaysZoomOut() {
|
_getAlwaysZoomOut() {
|
||||||
// Always show the pager on hover, during a drag, or if workspaces are
|
// Always show the pager on hover or during a drag
|
||||||
// actually used, e.g. there are windows on any non-active workspace
|
let alwaysZoomOut = this.actor.hover || this._inDrag;
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let alwaysZoomOut = this.actor.hover ||
|
|
||||||
this._inDrag ||
|
|
||||||
!Meta.prefs_get_dynamic_workspaces() ||
|
|
||||||
workspaceManager.n_workspaces > 2 ||
|
|
||||||
workspaceManager.get_active_workspace_index() != 0;
|
|
||||||
|
|
||||||
if (!alwaysZoomOut) {
|
if (!alwaysZoomOut) {
|
||||||
let monitors = Main.layoutManager.monitors;
|
let monitors = Main.layoutManager.monitors;
|
||||||
@@ -294,11 +284,6 @@ var ThumbnailsSlider = new Lang.Class({
|
|||||||
return child.get_theme_node().get_length('visible-width');
|
return child.get_theme_node().get_length('visible-width');
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDragEnd() {
|
|
||||||
this.actor.sync_hover();
|
|
||||||
this.parent();
|
|
||||||
},
|
|
||||||
|
|
||||||
_getSlide() {
|
_getSlide() {
|
||||||
if (!this._visible)
|
if (!this._visible)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -313,8 +313,6 @@ var PadDiagram = new Lang.Class({
|
|||||||
_init(params) {
|
_init(params) {
|
||||||
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/pad-osd.css');
|
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/pad-osd.css');
|
||||||
let [success, css, etag] = file.load_contents(null);
|
let [success, css, etag] = file.load_contents(null);
|
||||||
if (css instanceof Uint8Array)
|
|
||||||
css = imports.byteArray.toString(css);
|
|
||||||
this._curEdited = null;
|
this._curEdited = null;
|
||||||
this._prevEdited = null;
|
this._prevEdited = null;
|
||||||
this._css = css;
|
this._css = css;
|
||||||
|
@@ -265,8 +265,7 @@ var AppMenuButton = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_findTargetApp() {
|
_findTargetApp() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let workspace = global.screen.get_active_workspace();
|
||||||
let workspace = workspaceManager.get_active_workspace();
|
|
||||||
let tracker = Shell.WindowTracker.get_default();
|
let tracker = Shell.WindowTracker.get_default();
|
||||||
let focusedApp = tracker.focus_app;
|
let focusedApp = tracker.focus_app;
|
||||||
if (focusedApp && focusedApp.is_on_workspace(workspace))
|
if (focusedApp && focusedApp.is_on_workspace(workspace))
|
||||||
@@ -710,7 +709,6 @@ var AggregateMenu = new Lang.Class({
|
|||||||
this._bluetooth = null;
|
this._bluetooth = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._remoteAccess = new imports.ui.status.remoteAccess.RemoteAccessApplet();
|
|
||||||
this._power = new imports.ui.status.power.Indicator();
|
this._power = new imports.ui.status.power.Indicator();
|
||||||
this._rfkill = new imports.ui.status.rfkill.Indicator();
|
this._rfkill = new imports.ui.status.rfkill.Indicator();
|
||||||
this._volume = new imports.ui.status.volume.Indicator();
|
this._volume = new imports.ui.status.volume.Indicator();
|
||||||
@@ -731,7 +729,6 @@ var AggregateMenu = new Lang.Class({
|
|||||||
if (this._bluetooth) {
|
if (this._bluetooth) {
|
||||||
this._indicators.add_child(this._bluetooth.indicators);
|
this._indicators.add_child(this._bluetooth.indicators);
|
||||||
}
|
}
|
||||||
this._indicators.add_child(this._remoteAccess.indicators);
|
|
||||||
this._indicators.add_child(this._rfkill.indicators);
|
this._indicators.add_child(this._rfkill.indicators);
|
||||||
this._indicators.add_child(this._volume.indicators);
|
this._indicators.add_child(this._volume.indicators);
|
||||||
this._indicators.add_child(this._power.indicators);
|
this._indicators.add_child(this._power.indicators);
|
||||||
@@ -746,7 +743,6 @@ var AggregateMenu = new Lang.Class({
|
|||||||
if (this._bluetooth) {
|
if (this._bluetooth) {
|
||||||
this.menu.addMenuItem(this._bluetooth.menu);
|
this.menu.addMenuItem(this._bluetooth.menu);
|
||||||
}
|
}
|
||||||
this.menu.addMenuItem(this._remoteAccess.menu);
|
|
||||||
this.menu.addMenuItem(this._location.menu);
|
this.menu.addMenuItem(this._location.menu);
|
||||||
this.menu.addMenuItem(this._rfkill.menu);
|
this.menu.addMenuItem(this._rfkill.menu);
|
||||||
this.menu.addMenuItem(this._power.menu);
|
this.menu.addMenuItem(this._power.menu);
|
||||||
@@ -800,7 +796,6 @@ var Panel = new Lang.Class({
|
|||||||
this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
|
this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
|
||||||
this.actor.connect('allocate', this._allocate.bind(this));
|
this.actor.connect('allocate', this._allocate.bind(this));
|
||||||
this.actor.connect('button-press-event', this._onButtonPress.bind(this));
|
this.actor.connect('button-press-event', this._onButtonPress.bind(this));
|
||||||
this.actor.connect('touch-event', this._onButtonPress.bind(this));
|
|
||||||
this.actor.connect('key-press-event', this._onKeyPress.bind(this));
|
this.actor.connect('key-press-event', this._onKeyPress.bind(this));
|
||||||
|
|
||||||
Main.overview.connect('showing', () => {
|
Main.overview.connect('showing', () => {
|
||||||
@@ -823,7 +818,7 @@ var Panel = new Lang.Class({
|
|||||||
global.window_group.connect('actor-removed', this._onWindowActorRemoved.bind(this));
|
global.window_group.connect('actor-removed', this._onWindowActorRemoved.bind(this));
|
||||||
global.window_manager.connect('switch-workspace', this._updateSolidStyle.bind(this));
|
global.window_manager.connect('switch-workspace', this._updateSolidStyle.bind(this));
|
||||||
|
|
||||||
global.display.connect('workareas-changed', () => { this.actor.queue_relayout(); });
|
global.screen.connect('workareas-changed', () => { this.actor.queue_relayout(); });
|
||||||
this._updatePanel();
|
this._updatePanel();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -944,13 +939,8 @@ var Panel = new Lang.Class({
|
|||||||
if (event.get_source() != actor)
|
if (event.get_source() != actor)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
let type = event.type();
|
let button = event.get_button();
|
||||||
let isPress = type == Clutter.EventType.BUTTON_PRESS;
|
if (button != 1)
|
||||||
if (!isPress && type != Clutter.EventType.TOUCH_BEGIN)
|
|
||||||
return Clutter.EVENT_PROPAGATE;
|
|
||||||
|
|
||||||
let button = isPress ? event.get_button() : -1;
|
|
||||||
if (isPress && button != 1)
|
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
let focusWindow = global.display.focus_window;
|
let focusWindow = global.display.focus_window;
|
||||||
@@ -971,7 +961,8 @@ var Panel = new Lang.Class({
|
|||||||
if (!allowDrag)
|
if (!allowDrag)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
global.display.begin_grab_op(dragWindow,
|
global.display.begin_grab_op(global.screen,
|
||||||
|
dragWindow,
|
||||||
Meta.GrabOp.MOVING,
|
Meta.GrabOp.MOVING,
|
||||||
false, /* pointer grab */
|
false, /* pointer grab */
|
||||||
true, /* frame action */
|
true, /* frame action */
|
||||||
@@ -986,7 +977,7 @@ var Panel = new Lang.Class({
|
|||||||
_onKeyPress(actor, event) {
|
_onKeyPress(actor, event) {
|
||||||
let symbol = event.get_key_symbol();
|
let symbol = event.get_key_symbol();
|
||||||
if (symbol == Clutter.KEY_Escape) {
|
if (symbol == Clutter.KEY_Escape) {
|
||||||
global.display.focus_default_window(event.get_time());
|
global.screen.focus_default_window(event.get_time());
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1084,8 +1075,7 @@ var Panel = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Get all the windows in the active workspace that are in the primary monitor and visible */
|
/* Get all the windows in the active workspace that are in the primary monitor and visible */
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWorkspace = global.screen.get_active_workspace();
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
let windows = activeWorkspace.list_windows().filter(metaWindow => {
|
let windows = activeWorkspace.list_windows().filter(metaWindow => {
|
||||||
return metaWindow.is_on_primary_monitor() &&
|
return metaWindow.is_on_primary_monitor() &&
|
||||||
metaWindow.showing_on_its_workspace() &&
|
metaWindow.showing_on_its_workspace() &&
|
||||||
|
@@ -141,17 +141,8 @@ var PopupBaseMenuItem = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onKeyPressEvent(actor, event) {
|
_onKeyPressEvent(actor, event) {
|
||||||
let state = event.get_state();
|
|
||||||
|
|
||||||
// if user has a modifier down (except capslock)
|
|
||||||
// then don't handle the key press here
|
|
||||||
state &= ~Clutter.ModifierType.LOCK_MASK;
|
|
||||||
state &= Clutter.ModifierType.MODIFIER_MASK;
|
|
||||||
|
|
||||||
if (state)
|
|
||||||
return Clutter.EVENT_PROPAGATE;
|
|
||||||
|
|
||||||
let symbol = event.get_key_symbol();
|
let symbol = event.get_key_symbol();
|
||||||
|
|
||||||
if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return) {
|
if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return) {
|
||||||
this.activate(event);
|
this.activate(event);
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
|
@@ -62,11 +62,7 @@ var RunDialog = new Lang.Class({
|
|||||||
'rt': () => {
|
'rt': () => {
|
||||||
Main.reloadThemeResource();
|
Main.reloadThemeResource();
|
||||||
Main.loadTheme();
|
Main.loadTheme();
|
||||||
},
|
}
|
||||||
|
|
||||||
'check_cloexec_fds': () => {
|
|
||||||
Shell.util_check_cloexec_fds();
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -118,16 +114,18 @@ var RunDialog = new Lang.Class({
|
|||||||
|
|
||||||
this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY,
|
this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY,
|
||||||
entry: this._entryText });
|
entry: this._entryText });
|
||||||
this._entryText.connect('activate', (o) => {
|
|
||||||
this.popModal();
|
|
||||||
this._run(o.get_text(),
|
|
||||||
Clutter.get_current_event().get_state() & Clutter.ModifierType.CONTROL_MASK);
|
|
||||||
if (!this._commandError ||
|
|
||||||
!this.pushModal())
|
|
||||||
this.close();
|
|
||||||
});
|
|
||||||
this._entryText.connect('key-press-event', (o, e) => {
|
this._entryText.connect('key-press-event', (o, e) => {
|
||||||
let symbol = e.get_key_symbol();
|
let symbol = e.get_key_symbol();
|
||||||
|
if (symbol == Clutter.Return || symbol == Clutter.KP_Enter) {
|
||||||
|
this.popModal();
|
||||||
|
this._run(o.get_text(),
|
||||||
|
e.get_state() & Clutter.ModifierType.CONTROL_MASK);
|
||||||
|
if (!this._commandError ||
|
||||||
|
!this.pushModal())
|
||||||
|
this.close();
|
||||||
|
|
||||||
|
return Clutter.EVENT_STOP;
|
||||||
|
}
|
||||||
if (symbol == Clutter.Tab) {
|
if (symbol == Clutter.Tab) {
|
||||||
let text = o.get_text();
|
let text = o.get_text();
|
||||||
let prefix;
|
let prefix;
|
||||||
@@ -174,10 +172,9 @@ var RunDialog = new Lang.Class({
|
|||||||
if (name.slice(0, text.length) == text)
|
if (name.slice(0, text.length) == text)
|
||||||
results.push(name);
|
results.push(name);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND) &&
|
||||||
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND) &&
|
!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_DIRECTORY))) {
|
||||||
!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_DIRECTORY))
|
log(e);
|
||||||
log(e);
|
|
||||||
} finally {
|
} finally {
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
@@ -570,7 +570,7 @@ var ScreenShield = new Lang.Class({
|
|||||||
this._shortLightbox.connect('shown', this._onShortLightboxShown.bind(this));
|
this._shortLightbox.connect('shown', this._onShortLightboxShown.bind(this));
|
||||||
|
|
||||||
this.idleMonitor = Meta.IdleMonitor.get_core();
|
this.idleMonitor = Meta.IdleMonitor.get_core();
|
||||||
this._cursorTracker = Meta.CursorTracker.get_for_display(global.display);
|
this._cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
|
||||||
|
|
||||||
this._syncInhibitor();
|
this._syncInhibitor();
|
||||||
},
|
},
|
||||||
|
@@ -56,7 +56,7 @@ var ScreencastService = new Lang.Class({
|
|||||||
let recorder = this._recorders.get(sender);
|
let recorder = this._recorders.get(sender);
|
||||||
if (!recorder) {
|
if (!recorder) {
|
||||||
recorder = new Shell.Recorder({ stage: global.stage,
|
recorder = new Shell.Recorder({ stage: global.stage,
|
||||||
display: global.display });
|
screen: global.screen });
|
||||||
recorder._watchNameId =
|
recorder._watchNameId =
|
||||||
Gio.bus_watch_name(Gio.BusType.SESSION, sender, 0, null,
|
Gio.bus_watch_name(Gio.BusType.SESSION, sender, 0, null,
|
||||||
this._onNameVanished.bind(this));
|
this._onNameVanished.bind(this));
|
||||||
|
@@ -55,9 +55,6 @@ const ScreenshotIface = '<node> \
|
|||||||
<arg type="i" direction="in" name="width"/> \
|
<arg type="i" direction="in" name="width"/> \
|
||||||
<arg type="i" direction="in" name="height"/> \
|
<arg type="i" direction="in" name="height"/> \
|
||||||
</method> \
|
</method> \
|
||||||
<method name="PickColor"> \
|
|
||||||
<arg type="a{sv}" direction="out" name="result"/> \
|
|
||||||
</method> \
|
|
||||||
</interface> \
|
</interface> \
|
||||||
</node>';
|
</node>';
|
||||||
|
|
||||||
@@ -75,13 +72,10 @@ var ScreenshotService = new Lang.Class({
|
|||||||
Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null);
|
Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
_createScreenshot(invocation, needsDisk=true) {
|
_createScreenshot(invocation) {
|
||||||
let lockedDown = false;
|
|
||||||
if (needsDisk)
|
|
||||||
lockedDown = this._lockdownSettings.get_boolean('disable-save-to-disk')
|
|
||||||
|
|
||||||
let sender = invocation.get_sender();
|
let sender = invocation.get_sender();
|
||||||
if (this._screenShooter.has(sender) || lockedDown) {
|
if (this._screenShooter.has(sender) ||
|
||||||
|
this._lockdownSettings.get_boolean('disable-save-to-disk')) {
|
||||||
invocation.return_value(GLib.Variant.new('(bs)', [false, '']));
|
invocation.return_value(GLib.Variant.new('(bs)', [false, '']));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -116,7 +110,7 @@ var ScreenshotService = new Lang.Class({
|
|||||||
y + height <= global.screen_height;
|
y + height <= global.screen_height;
|
||||||
},
|
},
|
||||||
|
|
||||||
_onScreenshotComplete(result, area, filenameUsed, flash, invocation) {
|
_onScreenshotComplete(obj, result, area, filenameUsed, flash, invocation) {
|
||||||
if (result) {
|
if (result) {
|
||||||
if (flash) {
|
if (flash) {
|
||||||
let flashspot = new Flashspot(area);
|
let flashspot = new Flashspot(area);
|
||||||
@@ -163,15 +157,9 @@ var ScreenshotService = new Lang.Class({
|
|||||||
if (!screenshot)
|
if (!screenshot)
|
||||||
return;
|
return;
|
||||||
screenshot.screenshot_area (x, y, width, height, filename,
|
screenshot.screenshot_area (x, y, width, height, filename,
|
||||||
(o, res) => {
|
(obj, result, area, filenameUsed) => {
|
||||||
try {
|
this._onScreenshotComplete(obj, result, area, filenameUsed,
|
||||||
let [result, area, filenameUsed] =
|
flash, invocation);
|
||||||
screenshot.screenshot_area_finish(res);
|
|
||||||
this._onScreenshotComplete(result, area, filenameUsed,
|
|
||||||
flash, invocation);
|
|
||||||
} catch (e) {
|
|
||||||
invocation.return_gerror (e);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -181,15 +169,9 @@ var ScreenshotService = new Lang.Class({
|
|||||||
if (!screenshot)
|
if (!screenshot)
|
||||||
return;
|
return;
|
||||||
screenshot.screenshot_window (include_frame, include_cursor, filename,
|
screenshot.screenshot_window (include_frame, include_cursor, filename,
|
||||||
(o, res) => {
|
(obj, result, area, filenameUsed) => {
|
||||||
try {
|
this._onScreenshotComplete(obj, result, area, filenameUsed,
|
||||||
let [result, area, filenameUsed] =
|
flash, invocation);
|
||||||
screenshot.screenshot_window_finish(res);
|
|
||||||
this._onScreenshotComplete(result, area, filenameUsed,
|
|
||||||
flash, invocation);
|
|
||||||
} catch (e) {
|
|
||||||
invocation.return_gerror (e);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -199,15 +181,9 @@ var ScreenshotService = new Lang.Class({
|
|||||||
if (!screenshot)
|
if (!screenshot)
|
||||||
return;
|
return;
|
||||||
screenshot.screenshot(include_cursor, filename,
|
screenshot.screenshot(include_cursor, filename,
|
||||||
(o, res) => {
|
(obj, result, area, filenameUsed) => {
|
||||||
try {
|
this._onScreenshotComplete(obj, result, area, filenameUsed,
|
||||||
let [result, area, filenameUsed] =
|
flash, invocation);
|
||||||
screenshot.screenshot_finish(res);
|
|
||||||
this._onScreenshotComplete(result, area, filenameUsed,
|
|
||||||
flash, invocation);
|
|
||||||
} catch (e) {
|
|
||||||
invocation.return_gerror (e);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -239,34 +215,6 @@ var ScreenshotService = new Lang.Class({
|
|||||||
let flashspot = new Flashspot({ x : x, y : y, width: width, height: height});
|
let flashspot = new Flashspot({ x : x, y : y, width: width, height: height});
|
||||||
flashspot.fire();
|
flashspot.fire();
|
||||||
invocation.return_value(null);
|
invocation.return_value(null);
|
||||||
},
|
|
||||||
|
|
||||||
PickColorAsync(params, invocation) {
|
|
||||||
let pickPixel = new PickPixel();
|
|
||||||
pickPixel.show();
|
|
||||||
pickPixel.connect('finished', (pickPixel, coords) => {
|
|
||||||
if (coords) {
|
|
||||||
let screenshot = this._createScreenshot(invocation, false);
|
|
||||||
if (!screenshot)
|
|
||||||
return;
|
|
||||||
screenshot.pick_color(...coords, (o, res) => {
|
|
||||||
let [success, color] = screenshot.pick_color_finish(res);
|
|
||||||
let { red, green, blue } = color;
|
|
||||||
let retval = GLib.Variant.new('(a{sv})', [{
|
|
||||||
color: GLib.Variant.new('(ddd)', [
|
|
||||||
red / 255.0,
|
|
||||||
green / 255.0,
|
|
||||||
blue / 255.0
|
|
||||||
])
|
|
||||||
}]);
|
|
||||||
this._removeShooterForSender(invocation.get_sender());
|
|
||||||
invocation.return_value(retval);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
invocation.return_error_literal(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
|
|
||||||
"Operation was cancelled");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -313,7 +261,7 @@ var SelectArea = new Lang.Class({
|
|||||||
onUngrab: this._onUngrab.bind(this) }))
|
onUngrab: this._onUngrab.bind(this) }))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
global.display.set_cursor(Meta.Cursor.CROSSHAIR);
|
global.screen.set_cursor(Meta.Cursor.CROSSHAIR);
|
||||||
Main.uiGroup.set_child_above_sibling(this._group, null);
|
Main.uiGroup.set_child_above_sibling(this._group, null);
|
||||||
this._group.visible = true;
|
this._group.visible = true;
|
||||||
},
|
},
|
||||||
@@ -382,7 +330,7 @@ var SelectArea = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onUngrab() {
|
_onUngrab() {
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||||
this.emit('finished', this._result);
|
this.emit('finished', this._result);
|
||||||
|
|
||||||
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
|
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
|
||||||
@@ -393,54 +341,6 @@ var SelectArea = new Lang.Class({
|
|||||||
});
|
});
|
||||||
Signals.addSignalMethods(SelectArea.prototype);
|
Signals.addSignalMethods(SelectArea.prototype);
|
||||||
|
|
||||||
var PickPixel = new Lang.Class({
|
|
||||||
Name: 'PickPixel',
|
|
||||||
|
|
||||||
_init() {
|
|
||||||
this._result = null;
|
|
||||||
|
|
||||||
this._group = new St.Widget({ visible: false,
|
|
||||||
reactive: true });
|
|
||||||
Main.uiGroup.add_actor(this._group);
|
|
||||||
|
|
||||||
this._grabHelper = new GrabHelper.GrabHelper(this._group);
|
|
||||||
|
|
||||||
this._group.connect('button-release-event',
|
|
||||||
this._onButtonRelease.bind(this));
|
|
||||||
|
|
||||||
let constraint = new Clutter.BindConstraint({ source: global.stage,
|
|
||||||
coordinate: Clutter.BindCoordinate.ALL });
|
|
||||||
this._group.add_constraint(constraint);
|
|
||||||
},
|
|
||||||
|
|
||||||
show() {
|
|
||||||
if (!this._grabHelper.grab({ actor: this._group,
|
|
||||||
onUngrab: this._onUngrab.bind(this) }))
|
|
||||||
return;
|
|
||||||
|
|
||||||
global.display.set_cursor(Meta.Cursor.CROSSHAIR);
|
|
||||||
Main.uiGroup.set_child_above_sibling(this._group, null);
|
|
||||||
this._group.visible = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_onButtonRelease(actor, event) {
|
|
||||||
this._result = event.get_coords();
|
|
||||||
this._grabHelper.ungrab();
|
|
||||||
return Clutter.EVENT_PROPAGATE;
|
|
||||||
},
|
|
||||||
|
|
||||||
_onUngrab() {
|
|
||||||
global.display.set_cursor(Meta.Cursor.DEFAULT);
|
|
||||||
this.emit('finished', this._result);
|
|
||||||
|
|
||||||
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
|
|
||||||
this._group.destroy();
|
|
||||||
return GLib.SOURCE_REMOVE;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Signals.addSignalMethods(PickPixel.prototype);
|
|
||||||
|
|
||||||
var FLASHSPOT_ANIMATION_OUT_TIME = 0.5; // seconds
|
var FLASHSPOT_ANIMATION_OUT_TIME = 0.5; // seconds
|
||||||
|
|
||||||
var Flashspot = new Lang.Class({
|
var Flashspot = new Lang.Class({
|
||||||
|
@@ -216,14 +216,12 @@ function _step(g, finish, onError) {
|
|||||||
if (onError)
|
if (onError)
|
||||||
onError(err);
|
onError(err);
|
||||||
});
|
});
|
||||||
|
} catch (err if err instanceof StopIteration) {
|
||||||
|
if (finish)
|
||||||
|
finish();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err instanceof StopIteration) {
|
if (onError)
|
||||||
if (finish)
|
onError(err);
|
||||||
finish();
|
|
||||||
} else {
|
|
||||||
if (onError)
|
|
||||||
onError(err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -117,8 +117,6 @@ function _loadMode(file, info) {
|
|||||||
let fileContent, success, tag, newMode;
|
let fileContent, success, tag, newMode;
|
||||||
try {
|
try {
|
||||||
[success, fileContent, tag] = file.load_contents(null);
|
[success, fileContent, tag] = file.load_contents(null);
|
||||||
if (fileContent instanceof Uint8Array)
|
|
||||||
fileContent = imports.byteArray.toString(fileContent);
|
|
||||||
newMode = JSON.parse(fileContent);
|
newMode = JSON.parse(fileContent);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return;
|
return;
|
||||||
|
@@ -145,20 +145,15 @@ var GnomeShell = new Lang.Class({
|
|||||||
for (let param in params)
|
for (let param in params)
|
||||||
params[param] = params[param].deep_unpack();
|
params[param] = params[param].deep_unpack();
|
||||||
|
|
||||||
let { monitor: monitorIndex,
|
let monitorIndex = params['monitor'] || -1;
|
||||||
label,
|
let label = params['label'] || undefined;
|
||||||
level,
|
let level = params['level'] || undefined;
|
||||||
max_level: maxLevel,
|
|
||||||
icon: serializedIcon } = params;
|
|
||||||
|
|
||||||
if (monitorIndex === undefined)
|
|
||||||
monitorIndex = -1;
|
|
||||||
|
|
||||||
let icon = null;
|
let icon = null;
|
||||||
if (serializedIcon)
|
if (params['icon'])
|
||||||
icon = Gio.Icon.new_for_string(serializedIcon);
|
icon = Gio.Icon.new_for_string(params['icon']);
|
||||||
|
|
||||||
Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel);
|
Main.osdWindowManager.show(monitorIndex, icon, label, level);
|
||||||
},
|
},
|
||||||
|
|
||||||
FocusApp(id) {
|
FocusApp(id) {
|
||||||
|
109
js/ui/slider.js
109
js/ui/slider.js
@@ -7,38 +7,55 @@ const Lang = imports.lang;
|
|||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
|
|
||||||
const BarLevel = imports.ui.barLevel;
|
|
||||||
|
|
||||||
var SLIDER_SCROLL_STEP = 0.02; /* Slider scrolling step in % */
|
var SLIDER_SCROLL_STEP = 0.02; /* Slider scrolling step in % */
|
||||||
|
|
||||||
var Slider = new Lang.Class({
|
var Slider = new Lang.Class({
|
||||||
Name: "Slider",
|
Name: "Slider",
|
||||||
Extends: BarLevel.BarLevel,
|
|
||||||
|
|
||||||
_init(value) {
|
_init(value) {
|
||||||
let params = {
|
if (isNaN(value))
|
||||||
styleClass: 'slider',
|
// Avoid spreading NaNs around
|
||||||
canFocus: true,
|
throw TypeError('The slider value must be a number');
|
||||||
reactive: true,
|
this._value = Math.max(Math.min(value, 1), 0);
|
||||||
accessibleRole: Atk.Role.SLIDER,
|
this._sliderWidth = 0;
|
||||||
}
|
|
||||||
this.parent(value, params)
|
|
||||||
|
|
||||||
|
this.actor = new St.DrawingArea({ style_class: 'slider',
|
||||||
|
can_focus: true,
|
||||||
|
reactive: true,
|
||||||
|
accessible_role: Atk.Role.SLIDER });
|
||||||
|
this.actor.connect('repaint', this._sliderRepaint.bind(this));
|
||||||
this.actor.connect('button-press-event', this._startDragging.bind(this));
|
this.actor.connect('button-press-event', this._startDragging.bind(this));
|
||||||
this.actor.connect('touch-event', this._touchDragging.bind(this));
|
this.actor.connect('touch-event', this._touchDragging.bind(this));
|
||||||
this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
|
this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||||
this.actor.connect('key-press-event', this.onKeyPressEvent.bind(this));
|
this.actor.connect('key-press-event', this.onKeyPressEvent.bind(this));
|
||||||
|
this.actor.connect('allocation-changed', (actor, box) => {
|
||||||
|
this._sliderWidth = box.get_width();
|
||||||
|
});
|
||||||
|
|
||||||
this._releaseId = this._motionId = 0;
|
this._releaseId = this._motionId = 0;
|
||||||
this._dragging = false;
|
this._dragging = false;
|
||||||
|
|
||||||
|
this._customAccessible = St.GenericAccessible.new_for_actor(this.actor);
|
||||||
|
this.actor.set_accessible(this._customAccessible);
|
||||||
|
|
||||||
|
this._customAccessible.connect('get-current-value', this._getCurrentValue.bind(this));
|
||||||
|
this._customAccessible.connect('get-minimum-value', this._getMinimumValue.bind(this));
|
||||||
|
this._customAccessible.connect('get-maximum-value', this._getMaximumValue.bind(this));
|
||||||
this._customAccessible.connect('get-minimum-increment', this._getMinimumIncrement.bind(this));
|
this._customAccessible.connect('get-minimum-increment', this._getMinimumIncrement.bind(this));
|
||||||
|
this._customAccessible.connect('set-current-value', this._setCurrentValue.bind(this));
|
||||||
|
|
||||||
|
this.connect('value-changed', this._valueChanged.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
_barLevelRepaint(area) {
|
setValue(value) {
|
||||||
this.parent(area);
|
if (isNaN(value))
|
||||||
|
throw TypeError('The slider value must be a number');
|
||||||
|
|
||||||
// Add handle
|
this._value = Math.max(Math.min(value, 1), 0);
|
||||||
|
this.actor.queue_repaint();
|
||||||
|
},
|
||||||
|
|
||||||
|
_sliderRepaint(area) {
|
||||||
let cr = area.get_context();
|
let cr = area.get_context();
|
||||||
let themeNode = area.get_theme_node();
|
let themeNode = area.get_theme_node();
|
||||||
let [width, height] = area.get_surface_size();
|
let [width, height] = area.get_surface_size();
|
||||||
@@ -49,9 +66,41 @@ var Slider = new Lang.Class({
|
|||||||
let [hasHandleColor, handleBorderColor] =
|
let [hasHandleColor, handleBorderColor] =
|
||||||
themeNode.lookup_color('-slider-handle-border-color', false);
|
themeNode.lookup_color('-slider-handle-border-color', false);
|
||||||
|
|
||||||
|
let sliderHeight = themeNode.get_length('-slider-height');
|
||||||
|
|
||||||
|
let sliderBorderWidth = themeNode.get_length('-slider-border-width');
|
||||||
|
let sliderBorderRadius = Math.min(width, sliderHeight) / 2;
|
||||||
|
|
||||||
|
let sliderBorderColor = themeNode.get_color('-slider-border-color');
|
||||||
|
let sliderColor = themeNode.get_color('-slider-background-color');
|
||||||
|
|
||||||
|
let sliderActiveBorderColor = themeNode.get_color('-slider-active-border-color');
|
||||||
|
let sliderActiveColor = themeNode.get_color('-slider-active-background-color');
|
||||||
|
|
||||||
const TAU = Math.PI * 2;
|
const TAU = Math.PI * 2;
|
||||||
|
|
||||||
let handleX = handleRadius + (width - 2 * handleRadius) * this._value / this._maxValue;
|
let handleX = handleRadius + (width - 2 * handleRadius) * this._value;
|
||||||
|
|
||||||
|
cr.arc(sliderBorderRadius + sliderBorderWidth, height / 2, sliderBorderRadius, TAU * 1/4, TAU * 3/4);
|
||||||
|
cr.lineTo(handleX, (height - sliderHeight) / 2);
|
||||||
|
cr.lineTo(handleX, (height + sliderHeight) / 2);
|
||||||
|
cr.lineTo(sliderBorderRadius + sliderBorderWidth, (height + sliderHeight) / 2);
|
||||||
|
Clutter.cairo_set_source_color(cr, sliderActiveColor);
|
||||||
|
cr.fillPreserve();
|
||||||
|
Clutter.cairo_set_source_color(cr, sliderActiveBorderColor);
|
||||||
|
cr.setLineWidth(sliderBorderWidth);
|
||||||
|
cr.stroke();
|
||||||
|
|
||||||
|
cr.arc(width - sliderBorderRadius - sliderBorderWidth, height / 2, sliderBorderRadius, TAU * 3/4, TAU * 1/4);
|
||||||
|
cr.lineTo(handleX, (height + sliderHeight) / 2);
|
||||||
|
cr.lineTo(handleX, (height - sliderHeight) / 2);
|
||||||
|
cr.lineTo(width - sliderBorderRadius - sliderBorderWidth, (height - sliderHeight) / 2);
|
||||||
|
Clutter.cairo_set_source_color(cr, sliderColor);
|
||||||
|
cr.fillPreserve();
|
||||||
|
Clutter.cairo_set_source_color(cr, sliderBorderColor);
|
||||||
|
cr.setLineWidth(sliderBorderWidth);
|
||||||
|
cr.stroke();
|
||||||
|
|
||||||
let handleY = height / 2;
|
let handleY = height / 2;
|
||||||
|
|
||||||
let color = themeNode.get_foreground_color();
|
let color = themeNode.get_foreground_color();
|
||||||
@@ -159,7 +208,7 @@ var Slider = new Lang.Class({
|
|||||||
delta = -dy * SLIDER_SCROLL_STEP;
|
delta = -dy * SLIDER_SCROLL_STEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._value = Math.min(Math.max(0, this._value + delta), this._maxValue);
|
this._value = Math.min(Math.max(0, this._value + delta), 1);
|
||||||
|
|
||||||
this.actor.queue_repaint();
|
this.actor.queue_repaint();
|
||||||
this.emit('value-changed', this._value);
|
this.emit('value-changed', this._value);
|
||||||
@@ -181,7 +230,7 @@ var Slider = new Lang.Class({
|
|||||||
let key = event.get_key_symbol();
|
let key = event.get_key_symbol();
|
||||||
if (key == Clutter.KEY_Right || key == Clutter.KEY_Left) {
|
if (key == Clutter.KEY_Right || key == Clutter.KEY_Left) {
|
||||||
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
|
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
|
||||||
this._value = Math.max(0, Math.min(this._value + delta, this._maxValue));
|
this._value = Math.max(0, Math.min(this._value + delta, 1));
|
||||||
this.actor.queue_repaint();
|
this.actor.queue_repaint();
|
||||||
this.emit('drag-begin');
|
this.emit('drag-begin');
|
||||||
this.emit('value-changed', this._value);
|
this.emit('value-changed', this._value);
|
||||||
@@ -197,7 +246,7 @@ var Slider = new Lang.Class({
|
|||||||
relX = absX - sliderX;
|
relX = absX - sliderX;
|
||||||
relY = absY - sliderY;
|
relY = absY - sliderY;
|
||||||
|
|
||||||
let width = this._barLevelWidth;
|
let width = this._sliderWidth;
|
||||||
let handleRadius = this.actor.get_theme_node().get_length('-slider-handle-radius');
|
let handleRadius = this.actor.get_theme_node().get_length('-slider-handle-radius');
|
||||||
|
|
||||||
let newvalue;
|
let newvalue;
|
||||||
@@ -207,14 +256,38 @@ var Slider = new Lang.Class({
|
|||||||
newvalue = 1;
|
newvalue = 1;
|
||||||
else
|
else
|
||||||
newvalue = (relX - handleRadius) / (width - 2 * handleRadius);
|
newvalue = (relX - handleRadius) / (width - 2 * handleRadius);
|
||||||
this._value = newvalue * this._maxValue;
|
this._value = newvalue;
|
||||||
this.actor.queue_repaint();
|
this.actor.queue_repaint();
|
||||||
this.emit('value-changed', this._value);
|
this.emit('value-changed', this._value);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getCurrentValue(actor) {
|
||||||
|
return this._value;
|
||||||
|
},
|
||||||
|
|
||||||
|
_getMinimumValue(actor) {
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
_getMaximumValue(actor) {
|
||||||
|
return 1;
|
||||||
|
},
|
||||||
|
|
||||||
_getMinimumIncrement(actor) {
|
_getMinimumIncrement(actor) {
|
||||||
return 0.1;
|
return 0.1;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_setCurrentValue(actor, value) {
|
||||||
|
this._value = value;
|
||||||
|
},
|
||||||
|
|
||||||
|
_valueChanged(slider, value, property) {
|
||||||
|
this._customAccessible.notify ("accessible-value");
|
||||||
|
},
|
||||||
|
|
||||||
|
get value() {
|
||||||
|
return this._value;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Signals.addSignalMethods(Slider.prototype);
|
Signals.addSignalMethods(Slider.prototype);
|
||||||
|
@@ -398,7 +398,7 @@ var InputSourceManager = new Lang.Class({
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
_switchInputSource(display, window, binding) {
|
_switchInputSource(display, screen, window, binding) {
|
||||||
if (this._mruSources.length < 2)
|
if (this._mruSources.length < 2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@@ -995,16 +995,8 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
else if (!oneHasConnection && twoHasConnection)
|
else if (!oneHasConnection && twoHasConnection)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
let oneAp = one.accessPoints[0] || null;
|
let oneStrength = one.accessPoints[0].strength;
|
||||||
let twoAp = two.accessPoints[0] || null;
|
let twoStrength = two.accessPoints[0].strength;
|
||||||
|
|
||||||
if (oneAp != null && twoAp == null)
|
|
||||||
return -1;
|
|
||||||
else if (oneAp == null && twoAp != null)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
let oneStrength = oneAp.strength;
|
|
||||||
let twoStrength = twoAp.strength;
|
|
||||||
|
|
||||||
// place stronger connections first
|
// place stronger connections first
|
||||||
if (oneStrength != twoStrength)
|
if (oneStrength != twoStrength)
|
||||||
@@ -1164,11 +1156,6 @@ var NMWirelessDialog = new Lang.Class({
|
|||||||
Util.ensureActorVisibleInScrollView(this._scrollView, network.item.actor);
|
Util.ensureActorVisibleInScrollView(this._scrollView, network.item.actor);
|
||||||
this._selectNetwork(network);
|
this._selectNetwork(network);
|
||||||
});
|
});
|
||||||
network.item.actor.connect('destroy', () => {
|
|
||||||
let keyFocus = global.stage.key_focus;
|
|
||||||
if (keyFocus && keyFocus.contains(network.item.actor))
|
|
||||||
this._itemBox.grab_key_focus();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1957,7 +1944,6 @@ var NMApplet = new Lang.Class({
|
|||||||
this.indicators.visible = this._client.nm_running;
|
this.indicators.visible = this._client.nm_running;
|
||||||
this.menu.actor.visible = this._client.networking_enabled;
|
this.menu.actor.visible = this._client.networking_enabled;
|
||||||
|
|
||||||
this._updateIcon();
|
|
||||||
this._syncConnectivity();
|
this._syncConnectivity();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@@ -1,81 +0,0 @@
|
|||||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
|
||||||
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const Meta = imports.gi.Meta;
|
|
||||||
|
|
||||||
const PanelMenu = imports.ui.panelMenu;
|
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
|
||||||
|
|
||||||
var RemoteAccessApplet = new Lang.Class({
|
|
||||||
Name: 'RemoteAccessApplet',
|
|
||||||
Extends: PanelMenu.SystemIndicator,
|
|
||||||
|
|
||||||
_init() {
|
|
||||||
this.parent();
|
|
||||||
|
|
||||||
let backend = Meta.get_backend();
|
|
||||||
let controller = backend.get_remote_access_controller();
|
|
||||||
|
|
||||||
if (!controller)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// We can't possibly know about all types of screen sharing on X11, so
|
|
||||||
// showing these controls on X11 might give a false sense of security.
|
|
||||||
// Thus, only enable these controls when using Wayland, where we are
|
|
||||||
// in control of sharing.
|
|
||||||
if (!Meta.is_wayland_compositor())
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._handles = new Set();
|
|
||||||
this._indicator = null;
|
|
||||||
this._menuSection = null;
|
|
||||||
|
|
||||||
controller.connect('new-handle', (controller, handle) => {
|
|
||||||
this._onNewHandle(handle);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
_ensureControls() {
|
|
||||||
if (this._indicator)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._indicator = this._addIndicator();
|
|
||||||
this._indicator.icon_name = 'screen-shared-symbolic';
|
|
||||||
this._indicator.add_style_class_name('remote-access-indicator');
|
|
||||||
this._item =
|
|
||||||
new PopupMenu.PopupSubMenuMenuItem(_("Screen is Being Shared"),
|
|
||||||
true);
|
|
||||||
this._item.menu.addAction(_("Turn off"),
|
|
||||||
() => {
|
|
||||||
for (let handle of this._handles)
|
|
||||||
handle.stop();
|
|
||||||
});
|
|
||||||
this._item.icon.icon_name = 'screen-shared-symbolic';
|
|
||||||
this.menu.addMenuItem(this._item);
|
|
||||||
},
|
|
||||||
|
|
||||||
_sync() {
|
|
||||||
if (this._handles.size == 0) {
|
|
||||||
this._indicator.visible = false;
|
|
||||||
this._item.actor.visible = false;
|
|
||||||
} else {
|
|
||||||
this._indicator.visible = true;
|
|
||||||
this._item.actor.visible = true;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_onStopped(handle) {
|
|
||||||
this._handles.delete(handle);
|
|
||||||
this._sync();
|
|
||||||
},
|
|
||||||
|
|
||||||
_onNewHandle(handle) {
|
|
||||||
this._handles.add(handle);
|
|
||||||
handle.connect('stopped', this._onStopped.bind(this));
|
|
||||||
|
|
||||||
if (this._handles.size == 1) {
|
|
||||||
this._ensureControls();
|
|
||||||
this._sync();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
@@ -261,19 +261,8 @@ var Indicator = new Lang.Class({
|
|||||||
item = new PopupMenu.PopupBaseMenuItem({ reactive: false,
|
item = new PopupMenu.PopupBaseMenuItem({ reactive: false,
|
||||||
can_focus: false });
|
can_focus: false });
|
||||||
|
|
||||||
let app = this._settingsApp = Shell.AppSystem.get_default().lookup_app(
|
this._settingsAction = this._createActionButton('preferences-system-symbolic', _("Settings"));
|
||||||
'gnome-control-center.desktop'
|
this._settingsAction.connect('clicked', () => { this._onSettingsClicked(); });
|
||||||
);
|
|
||||||
if (app) {
|
|
||||||
let [icon, name] = [app.app_info.get_icon().names[0],
|
|
||||||
app.get_name()];
|
|
||||||
this._settingsAction = this._createActionButton(icon, name);
|
|
||||||
this._settingsAction.connect('clicked',
|
|
||||||
this._onSettingsClicked.bind(this));
|
|
||||||
} else {
|
|
||||||
log('Missing required core component Settings, expect trouble…');
|
|
||||||
this._settingsAction = new St.Widget();
|
|
||||||
}
|
|
||||||
item.actor.add(this._settingsAction, { expand: true, x_fill: false });
|
item.actor.add(this._settingsAction, { expand: true, x_fill: false });
|
||||||
|
|
||||||
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
|
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
|
||||||
@@ -291,7 +280,7 @@ var Indicator = new Lang.Class({
|
|||||||
'icon-name',
|
'icon-name',
|
||||||
bindFlags);
|
bindFlags);
|
||||||
|
|
||||||
this._lockScreenAction = this._createActionButton('changes-prevent', _("Lock"));
|
this._lockScreenAction = this._createActionButton('changes-prevent-symbolic', _("Lock"));
|
||||||
this._lockScreenAction.connect('clicked', () => {
|
this._lockScreenAction.connect('clicked', () => {
|
||||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||||
this._systemActions.activateLockScreen();
|
this._systemActions.activateLockScreen();
|
||||||
@@ -302,7 +291,7 @@ var Indicator = new Lang.Class({
|
|||||||
'visible',
|
'visible',
|
||||||
bindFlags);
|
bindFlags);
|
||||||
|
|
||||||
this._suspendAction = this._createActionButton('media-playback-pause', _("Suspend"));
|
this._suspendAction = this._createActionButton('media-playback-pause-symbolic', _("Suspend"));
|
||||||
this._suspendAction.connect('clicked', () => {
|
this._suspendAction.connect('clicked', () => {
|
||||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||||
this._systemActions.activateSuspend();
|
this._systemActions.activateSuspend();
|
||||||
@@ -312,7 +301,7 @@ var Indicator = new Lang.Class({
|
|||||||
'visible',
|
'visible',
|
||||||
bindFlags);
|
bindFlags);
|
||||||
|
|
||||||
this._powerOffAction = this._createActionButton('system-shutdown', _("Power Off"));
|
this._powerOffAction = this._createActionButton('system-shutdown-symbolic', _("Power Off"));
|
||||||
this._powerOffAction.connect('clicked', () => {
|
this._powerOffAction.connect('clicked', () => {
|
||||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||||
this._systemActions.activatePowerOff();
|
this._systemActions.activatePowerOff();
|
||||||
@@ -341,7 +330,8 @@ var Indicator = new Lang.Class({
|
|||||||
|
|
||||||
_onSettingsClicked() {
|
_onSettingsClicked() {
|
||||||
this.menu.itemActivated();
|
this.menu.itemActivated();
|
||||||
|
let app = Shell.AppSystem.get_default().lookup_app('gnome-control-center.desktop');
|
||||||
Main.overview.hide();
|
Main.overview.hide();
|
||||||
this._settingsApp.activate();
|
app.activate();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -49,6 +49,7 @@ const BoltDeviceInterface = '<node> \
|
|||||||
</interface> \
|
</interface> \
|
||||||
</node>';
|
</node>';
|
||||||
|
|
||||||
|
const BoltClientProxy = Gio.DBusProxy.makeProxyWrapper(BoltClientInterface);
|
||||||
const BoltDeviceProxy = Gio.DBusProxy.makeProxyWrapper(BoltDeviceInterface);
|
const BoltDeviceProxy = Gio.DBusProxy.makeProxyWrapper(BoltDeviceInterface);
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
@@ -77,7 +78,6 @@ var AuthMode = {
|
|||||||
ENABLED: 'enabled'
|
ENABLED: 'enabled'
|
||||||
};
|
};
|
||||||
|
|
||||||
const BOLT_DBUS_CLIENT_IFACE = 'org.freedesktop.bolt1.Manager';
|
|
||||||
const BOLT_DBUS_NAME = 'org.freedesktop.bolt';
|
const BOLT_DBUS_NAME = 'org.freedesktop.bolt';
|
||||||
const BOLT_DBUS_PATH = '/org/freedesktop/bolt';
|
const BOLT_DBUS_PATH = '/org/freedesktop/bolt';
|
||||||
|
|
||||||
@@ -87,26 +87,22 @@ var Client = new Lang.Class({
|
|||||||
_init() {
|
_init() {
|
||||||
|
|
||||||
this._proxy = null;
|
this._proxy = null;
|
||||||
let nodeInfo = Gio.DBusNodeInfo.new_for_xml(BoltClientInterface);
|
new BoltClientProxy(
|
||||||
Gio.DBusProxy.new(Gio.DBus.system,
|
Gio.DBus.system,
|
||||||
Gio.DBusProxyFlags.DO_NOT_AUTO_START,
|
BOLT_DBUS_NAME,
|
||||||
nodeInfo.lookup_interface(BOLT_DBUS_CLIENT_IFACE),
|
BOLT_DBUS_PATH,
|
||||||
BOLT_DBUS_NAME,
|
this._onProxyReady.bind(this)
|
||||||
BOLT_DBUS_PATH,
|
);
|
||||||
BOLT_DBUS_CLIENT_IFACE,
|
|
||||||
null,
|
|
||||||
this._onProxyReady.bind(this));
|
|
||||||
|
|
||||||
this.probing = false;
|
this.probing = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
_onProxyReady(o, res) {
|
_onProxyReady(proxy, error) {
|
||||||
try {
|
if (error !== null) {
|
||||||
this._proxy = Gio.DBusProxy.new_finish(res);
|
log('error creating bolt proxy: %s'.format(error.message));
|
||||||
} catch(e) {
|
return;
|
||||||
log('error creating bolt proxy: %s'.format(e.message));
|
}
|
||||||
return;
|
this._proxy = proxy;
|
||||||
}
|
|
||||||
this._propsChangedId = this._proxy.connect('g-properties-changed', this._onPropertiesChanged.bind(this));
|
this._propsChangedId = this._proxy.connect('g-properties-changed', this._onPropertiesChanged.bind(this));
|
||||||
this._deviceAddedId = this._proxy.connectSignal('DeviceAdded', this._onDeviceAdded.bind(this));
|
this._deviceAddedId = this._proxy.connectSignal('DeviceAdded', this._onDeviceAdded.bind(this));
|
||||||
|
|
||||||
|
@@ -12,8 +12,6 @@ const PanelMenu = imports.ui.panelMenu;
|
|||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const Slider = imports.ui.slider;
|
const Slider = imports.ui.slider;
|
||||||
|
|
||||||
const ALLOW_AMPLIFIED_VOLUME_KEY = 'allow-volume-above-100-percent';
|
|
||||||
|
|
||||||
var VOLUME_NOTIFY_ID = 1;
|
var VOLUME_NOTIFY_ID = 1;
|
||||||
|
|
||||||
// Each Gvc.MixerControl is a connection to PulseAudio,
|
// Each Gvc.MixerControl is a connection to PulseAudio,
|
||||||
@@ -38,11 +36,6 @@ var StreamSlider = new Lang.Class({
|
|||||||
this.item = new PopupMenu.PopupBaseMenuItem({ activate: false });
|
this.item = new PopupMenu.PopupBaseMenuItem({ activate: false });
|
||||||
|
|
||||||
this._slider = new Slider.Slider(0);
|
this._slider = new Slider.Slider(0);
|
||||||
|
|
||||||
this._soundSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.sound' });
|
|
||||||
this._soundSettings.connect('changed::' + ALLOW_AMPLIFIED_VOLUME_KEY, this._amplifySettingsChanged.bind(this));
|
|
||||||
this._amplifySettingsChanged();
|
|
||||||
|
|
||||||
this._slider.connect('value-changed', this._sliderChanged.bind(this));
|
this._slider.connect('value-changed', this._sliderChanged.bind(this));
|
||||||
this._slider.connect('drag-end', this._notifyVolumeChange.bind(this));
|
this._slider.connect('drag-end', this._notifyVolumeChange.bind(this));
|
||||||
|
|
||||||
@@ -142,40 +135,21 @@ var StreamSlider = new Lang.Class({
|
|||||||
this.emit('stream-updated');
|
this.emit('stream-updated');
|
||||||
},
|
},
|
||||||
|
|
||||||
_amplifySettingsChanged() {
|
|
||||||
this._allowAmplified = this._soundSettings.get_boolean(ALLOW_AMPLIFIED_VOLUME_KEY);
|
|
||||||
|
|
||||||
if (this._allowAmplified)
|
|
||||||
this._slider.setMaximumValue(this.getMaxLevel() / 100);
|
|
||||||
else
|
|
||||||
this._slider.setMaximumValue(1);
|
|
||||||
|
|
||||||
if (this._stream)
|
|
||||||
this._updateVolume();
|
|
||||||
},
|
|
||||||
|
|
||||||
getIcon() {
|
getIcon() {
|
||||||
if (!this._stream)
|
if (!this._stream)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
let icons = ["audio-volume-muted-symbolic",
|
|
||||||
"audio-volume-low-symbolic",
|
|
||||||
"audio-volume-medium-symbolic",
|
|
||||||
"audio-volume-high-symbolic",
|
|
||||||
"audio-volume-overamplified-symbolic"];
|
|
||||||
|
|
||||||
let volume = this._stream.volume;
|
let volume = this._stream.volume;
|
||||||
let n;
|
|
||||||
if (this._stream.is_muted || volume <= 0) {
|
if (this._stream.is_muted || volume <= 0) {
|
||||||
n = 0;
|
return 'audio-volume-muted-symbolic';
|
||||||
} else {
|
} else {
|
||||||
n = Math.ceil(3 * volume / this._control.get_vol_max_norm());
|
let n = Math.floor(3 * volume / this._control.get_vol_max_norm()) + 1;
|
||||||
if (n < 1)
|
if (n < 2)
|
||||||
n = 1;
|
return 'audio-volume-low-symbolic';
|
||||||
else if (n > 3)
|
if (n >= 3)
|
||||||
n = 4;
|
return 'audio-volume-high-symbolic';
|
||||||
|
return 'audio-volume-medium-symbolic';
|
||||||
}
|
}
|
||||||
return icons[n];
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getLevel() {
|
getLevel() {
|
||||||
@@ -183,14 +157,6 @@ var StreamSlider = new Lang.Class({
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
return 100 * this._stream.volume / this._control.get_vol_max_norm();
|
return 100 * this._stream.volume / this._control.get_vol_max_norm();
|
||||||
},
|
|
||||||
|
|
||||||
getMaxLevel() {
|
|
||||||
let maxVolume = this._control.get_vol_max_norm();
|
|
||||||
if (this._allowAmplified)
|
|
||||||
maxVolume = this._control.get_vol_max_amplified();
|
|
||||||
|
|
||||||
return 100 * maxVolume / this._control.get_vol_max_norm();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Signals.addSignalMethods(StreamSlider.prototype);
|
Signals.addSignalMethods(StreamSlider.prototype);
|
||||||
@@ -344,10 +310,6 @@ var VolumeMenu = new Lang.Class({
|
|||||||
|
|
||||||
getLevel() {
|
getLevel() {
|
||||||
return this._output.getLevel();
|
return this._output.getLevel();
|
||||||
},
|
|
||||||
|
|
||||||
getMaxLevel() {
|
|
||||||
return this._output.getMaxLevel();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -384,9 +346,8 @@ var Indicator = new Lang.Class({
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
let gicon = new Gio.ThemedIcon({ name: this._volumeMenu.getIcon() });
|
let gicon = new Gio.ThemedIcon({ name: this._volumeMenu.getIcon() });
|
||||||
let level = parseInt(this._volumeMenu.getLevel());
|
let level = this._volumeMenu.getLevel();
|
||||||
let maxLevel = parseInt(this._volumeMenu.getMaxLevel());
|
Main.osdWindowManager.show(-1, gicon, null, level);
|
||||||
Main.osdWindowManager.show(-1, gicon, null, level, maxLevel);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -192,9 +192,7 @@ var SwitcherPopup = new Lang.Class({
|
|||||||
if (this._keyPressHandler(keysym, action) != Clutter.EVENT_PROPAGATE)
|
if (this._keyPressHandler(keysym, action) != Clutter.EVENT_PROPAGATE)
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
|
|
||||||
// Note: pressing one of the below keys will destroy the popup only if
|
if (keysym == Clutter.Escape)
|
||||||
// that key is not used by the active popup's keyboard shortcut
|
|
||||||
if (keysym == Clutter.Escape || keysym == Clutter.Tab)
|
|
||||||
this.destroy();
|
this.destroy();
|
||||||
|
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
|
@@ -230,14 +230,14 @@ var ViewSelector = new Lang.Class({
|
|||||||
|
|
||||||
Main.wm.addKeybinding('toggle-application-view',
|
Main.wm.addKeybinding('toggle-application-view',
|
||||||
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
Meta.KeyBindingFlags.NONE,
|
||||||
Shell.ActionMode.NORMAL |
|
Shell.ActionMode.NORMAL |
|
||||||
Shell.ActionMode.OVERVIEW,
|
Shell.ActionMode.OVERVIEW,
|
||||||
this._toggleAppsPage.bind(this));
|
this._toggleAppsPage.bind(this));
|
||||||
|
|
||||||
Main.wm.addKeybinding('toggle-overview',
|
Main.wm.addKeybinding('toggle-overview',
|
||||||
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
Meta.KeyBindingFlags.NONE,
|
||||||
Shell.ActionMode.NORMAL |
|
Shell.ActionMode.NORMAL |
|
||||||
Shell.ActionMode.OVERVIEW,
|
Shell.ActionMode.OVERVIEW,
|
||||||
Main.overview.toggle.bind(Main.overview));
|
Main.overview.toggle.bind(Main.overview));
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const GObject = imports.gi.GObject;
|
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Mainloop = imports.mainloop;
|
const Mainloop = imports.mainloop;
|
||||||
const Meta = imports.gi.Meta;
|
const Meta = imports.gi.Meta;
|
||||||
@@ -25,7 +24,7 @@ const EdgeDragAction = imports.ui.edgeDragAction;
|
|||||||
const CloseDialog = imports.ui.closeDialog;
|
const CloseDialog = imports.ui.closeDialog;
|
||||||
const SwitchMonitor = imports.ui.switchMonitor;
|
const SwitchMonitor = imports.ui.switchMonitor;
|
||||||
|
|
||||||
var SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
|
const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
|
||||||
var MINIMIZE_WINDOW_ANIMATION_TIME = 0.2;
|
var MINIMIZE_WINDOW_ANIMATION_TIME = 0.2;
|
||||||
var SHOW_WINDOW_ANIMATION_TIME = 0.15;
|
var SHOW_WINDOW_ANIMATION_TIME = 0.15;
|
||||||
var DIALOG_SHOW_WINDOW_ANIMATION_TIME = 0.1;
|
var DIALOG_SHOW_WINDOW_ANIMATION_TIME = 0.1;
|
||||||
@@ -35,7 +34,6 @@ var WINDOW_ANIMATION_TIME = 0.25;
|
|||||||
var DIM_BRIGHTNESS = -0.3;
|
var DIM_BRIGHTNESS = -0.3;
|
||||||
var DIM_TIME = 0.500;
|
var DIM_TIME = 0.500;
|
||||||
var UNDIM_TIME = 0.250;
|
var UNDIM_TIME = 0.250;
|
||||||
var MOTION_THRESHOLD = 100;
|
|
||||||
|
|
||||||
var ONE_SECOND = 1000; // in ms
|
var ONE_SECOND = 1000; // in ms
|
||||||
|
|
||||||
@@ -202,25 +200,27 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
let tracker = Shell.WindowTracker.get_default();
|
let tracker = Shell.WindowTracker.get_default();
|
||||||
tracker.connect('startup-sequence-changed', this._queueCheckWorkspaces.bind(this));
|
tracker.connect('startup-sequence-changed', this._queueCheckWorkspaces.bind(this));
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
global.screen.connect('notify::n-workspaces', this._nWorkspacesChanged.bind(this));
|
||||||
workspaceManager.connect('notify::n-workspaces',
|
global.window_manager.connect('switch-workspace', this._queueCheckWorkspaces.bind(this));
|
||||||
this._nWorkspacesChanged.bind(this));
|
|
||||||
global.window_manager.connect('switch-workspace',
|
|
||||||
this._queueCheckWorkspaces.bind(this));
|
|
||||||
|
|
||||||
global.display.connect('window-entered-monitor',
|
global.screen.connect('window-entered-monitor', this._windowEnteredMonitor.bind(this));
|
||||||
this._windowEnteredMonitor.bind(this));
|
global.screen.connect('window-left-monitor', this._windowLeftMonitor.bind(this));
|
||||||
global.display.connect('window-left-monitor',
|
global.screen.connect('restacked', this._windowsRestacked.bind(this));
|
||||||
this._windowLeftMonitor.bind(this));
|
|
||||||
global.display.connect('restacked',
|
|
||||||
this._windowsRestacked.bind(this));
|
|
||||||
|
|
||||||
this._workspaceSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
|
this._workspaceSettings = this._getWorkspaceSettings();
|
||||||
this._workspaceSettings.connect('changed::dynamic-workspaces', this._queueCheckWorkspaces.bind(this));
|
this._workspaceSettings.connect('changed::dynamic-workspaces', this._queueCheckWorkspaces.bind(this));
|
||||||
|
|
||||||
this._nWorkspacesChanged();
|
this._nWorkspacesChanged();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getWorkspaceSettings() {
|
||||||
|
let settings = global.get_overrides_settings();
|
||||||
|
if (settings &&
|
||||||
|
settings.settings_schema.list_keys().indexOf('dynamic-workspaces') > -1)
|
||||||
|
return settings;
|
||||||
|
return new Gio.Settings({ schema_id: 'org.gnome.mutter' });
|
||||||
|
},
|
||||||
|
|
||||||
blockUpdates() {
|
blockUpdates() {
|
||||||
this._pauseWorkspaceCheck = true;
|
this._pauseWorkspaceCheck = true;
|
||||||
},
|
},
|
||||||
@@ -230,7 +230,6 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_checkWorkspaces() {
|
_checkWorkspaces() {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let i;
|
let i;
|
||||||
let emptyWorkspaces = [];
|
let emptyWorkspaces = [];
|
||||||
|
|
||||||
@@ -258,7 +257,7 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
let sequences = Shell.WindowTracker.get_default().get_startup_sequences();
|
let sequences = Shell.WindowTracker.get_default().get_startup_sequences();
|
||||||
for (i = 0; i < sequences.length; i++) {
|
for (i = 0; i < sequences.length; i++) {
|
||||||
let index = sequences[i].get_workspace();
|
let index = sequences[i].get_workspace();
|
||||||
if (index >= 0 && index <= workspaceManager.n_workspaces)
|
if (index >= 0 && index <= global.screen.n_workspaces)
|
||||||
emptyWorkspaces[index] = false;
|
emptyWorkspaces[index] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,17 +275,17 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
|
|
||||||
// If we don't have an empty workspace at the end, add one
|
// If we don't have an empty workspace at the end, add one
|
||||||
if (!emptyWorkspaces[emptyWorkspaces.length -1]) {
|
if (!emptyWorkspaces[emptyWorkspaces.length -1]) {
|
||||||
workspaceManager.append_new_workspace(false, global.get_current_time());
|
global.screen.append_new_workspace(false, global.get_current_time());
|
||||||
emptyWorkspaces.push(false);
|
emptyWorkspaces.push(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeWorkspaceIndex = workspaceManager.get_active_workspace_index();
|
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
|
||||||
emptyWorkspaces[activeWorkspaceIndex] = false;
|
emptyWorkspaces[activeWorkspaceIndex] = false;
|
||||||
|
|
||||||
// Delete other empty workspaces; do it from the end to avoid index changes
|
// Delete other empty workspaces; do it from the end to avoid index changes
|
||||||
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
|
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
|
||||||
if (emptyWorkspaces[i])
|
if (emptyWorkspaces[i])
|
||||||
workspaceManager.remove_workspace(this._workspaces[i], global.get_current_time());
|
global.screen.remove_workspace(this._workspaces[i], global.get_current_time());
|
||||||
}
|
}
|
||||||
|
|
||||||
this._checkWorkspacesId = 0;
|
this._checkWorkspacesId = 0;
|
||||||
@@ -318,14 +317,14 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
GLib.Source.set_name_by_id(id, '[gnome-shell] this._queueCheckWorkspaces');
|
GLib.Source.set_name_by_id(id, '[gnome-shell] this._queueCheckWorkspaces');
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowLeftMonitor(metaDisplay, monitorIndex, metaWin) {
|
_windowLeftMonitor(metaScreen, monitorIndex, metaWin) {
|
||||||
// If the window left the primary monitor, that
|
// If the window left the primary monitor, that
|
||||||
// might make that workspace empty
|
// might make that workspace empty
|
||||||
if (monitorIndex == Main.layoutManager.primaryIndex)
|
if (monitorIndex == Main.layoutManager.primaryIndex)
|
||||||
this._queueCheckWorkspaces();
|
this._queueCheckWorkspaces();
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowEnteredMonitor(metaDisplay, monitorIndex, metaWin) {
|
_windowEnteredMonitor(metaScreen, monitorIndex, metaWin) {
|
||||||
// If the window entered the primary monitor, that
|
// If the window entered the primary monitor, that
|
||||||
// might make that workspace non-empty
|
// might make that workspace non-empty
|
||||||
if (monitorIndex == Main.layoutManager.primaryIndex)
|
if (monitorIndex == Main.layoutManager.primaryIndex)
|
||||||
@@ -345,9 +344,8 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_nWorkspacesChanged() {
|
_nWorkspacesChanged() {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let oldNumWorkspaces = this._workspaces.length;
|
let oldNumWorkspaces = this._workspaces.length;
|
||||||
let newNumWorkspaces = workspaceManager.n_workspaces;
|
let newNumWorkspaces = global.screen.n_workspaces;
|
||||||
|
|
||||||
if (oldNumWorkspaces == newNumWorkspaces)
|
if (oldNumWorkspaces == newNumWorkspaces)
|
||||||
return false;
|
return false;
|
||||||
@@ -358,7 +356,7 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
|
|
||||||
// Assume workspaces are only added at the end
|
// Assume workspaces are only added at the end
|
||||||
for (w = oldNumWorkspaces; w < newNumWorkspaces; w++)
|
for (w = oldNumWorkspaces; w < newNumWorkspaces; w++)
|
||||||
this._workspaces[w] = workspaceManager.get_workspace_by_index(w);
|
this._workspaces[w] = global.screen.get_workspace_by_index(w);
|
||||||
|
|
||||||
for (w = oldNumWorkspaces; w < newNumWorkspaces; w++) {
|
for (w = oldNumWorkspaces; w < newNumWorkspaces; w++) {
|
||||||
let workspace = this._workspaces[w];
|
let workspace = this._workspaces[w];
|
||||||
@@ -372,7 +370,7 @@ var WorkspaceTracker = new Lang.Class({
|
|||||||
let removedIndex;
|
let removedIndex;
|
||||||
let removedNum = oldNumWorkspaces - newNumWorkspaces;
|
let removedNum = oldNumWorkspaces - newNumWorkspaces;
|
||||||
for (let w = 0; w < oldNumWorkspaces; w++) {
|
for (let w = 0; w < oldNumWorkspaces; w++) {
|
||||||
let workspace = workspaceManager.get_workspace_by_index(w);
|
let workspace = global.screen.get_workspace_by_index(w);
|
||||||
if (this._workspaces[w] != workspace) {
|
if (this._workspaces[w] != workspace) {
|
||||||
removedIndex = w;
|
removedIndex = w;
|
||||||
break;
|
break;
|
||||||
@@ -489,8 +487,13 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_checkActivated() {
|
_checkActivated() {
|
||||||
|
const MOTION_THRESHOLD = 50;
|
||||||
|
let allowedModes = Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW;
|
||||||
let dir;
|
let dir;
|
||||||
|
|
||||||
|
if ((allowedModes & Main.actionMode) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (this._dy < -MOTION_THRESHOLD)
|
if (this._dy < -MOTION_THRESHOLD)
|
||||||
dir = Meta.MotionDirection.DOWN;
|
dir = Meta.MotionDirection.DOWN;
|
||||||
else if (this._dy > MOTION_THRESHOLD)
|
else if (this._dy > MOTION_THRESHOLD)
|
||||||
@@ -500,35 +503,26 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
|
|||||||
else if (this._dx > MOTION_THRESHOLD)
|
else if (this._dx > MOTION_THRESHOLD)
|
||||||
dir = Meta.MotionDirection.LEFT;
|
dir = Meta.MotionDirection.LEFT;
|
||||||
else
|
else
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
this.emit('activated', dir);
|
this.emit('activated', dir);
|
||||||
return true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_handleEvent(actor, event) {
|
_handleEvent(actor, event) {
|
||||||
let allowedModes = Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW;
|
|
||||||
|
|
||||||
if (event.type() != Clutter.EventType.TOUCHPAD_SWIPE)
|
if (event.type() != Clutter.EventType.TOUCHPAD_SWIPE)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
if (event.get_touchpad_gesture_finger_count() != 4)
|
if (event.get_touchpad_gesture_finger_count() != 4)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
if ((allowedModes & Main.actionMode) == 0)
|
|
||||||
return Clutter.EVENT_PROPAGATE;
|
|
||||||
|
|
||||||
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
|
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
|
||||||
let [dx, dy] = event.get_gesture_motion_delta();
|
let [dx, dy] = event.get_gesture_motion_delta();
|
||||||
|
|
||||||
// Scale deltas up a bit to make it feel snappier
|
this._dx += dx;
|
||||||
this._dx += dx * 2;
|
this._dy += dy;
|
||||||
this._dy += dy * 2;
|
|
||||||
this.emit('motion', this._dx, this._dy);
|
|
||||||
} else {
|
} else {
|
||||||
if ((event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END && ! this._checkActivated()) ||
|
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END)
|
||||||
event.get_gesture_phase() == Clutter.TouchpadGesturePhase.CANCEL)
|
this._checkActivated();
|
||||||
this.emit('cancel');
|
|
||||||
|
|
||||||
this._dx = 0;
|
this._dx = 0;
|
||||||
this._dy = 0;
|
this._dy = 0;
|
||||||
@@ -542,14 +536,14 @@ Signals.addSignalMethods(TouchpadWorkspaceSwitchAction.prototype);
|
|||||||
var WorkspaceSwitchAction = new Lang.Class({
|
var WorkspaceSwitchAction = new Lang.Class({
|
||||||
Name: 'WorkspaceSwitchAction',
|
Name: 'WorkspaceSwitchAction',
|
||||||
Extends: Clutter.SwipeAction,
|
Extends: Clutter.SwipeAction,
|
||||||
Signals: { 'activated': { param_types: [Meta.MotionDirection.$gtype] },
|
Signals: { 'activated': { param_types: [Meta.MotionDirection.$gtype] } },
|
||||||
'motion': { param_types: [GObject.TYPE_DOUBLE, GObject.TYPE_DOUBLE] },
|
|
||||||
'cancel': { param_types: [] }},
|
|
||||||
|
|
||||||
_init() {
|
_init() {
|
||||||
|
const MOTION_THRESHOLD = 50;
|
||||||
|
|
||||||
this.parent();
|
this.parent();
|
||||||
this.set_n_touch_points(4);
|
this.set_n_touch_points(4);
|
||||||
this._swept = false;
|
this.set_threshold_trigger_distance(MOTION_THRESHOLD, MOTION_THRESHOLD);
|
||||||
|
|
||||||
global.display.connect('grab-op-begin', () => {
|
global.display.connect('grab-op-begin', () => {
|
||||||
this.cancel();
|
this.cancel();
|
||||||
@@ -559,35 +553,13 @@ var WorkspaceSwitchAction = new Lang.Class({
|
|||||||
vfunc_gesture_prepare(actor) {
|
vfunc_gesture_prepare(actor) {
|
||||||
let allowedModes = Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW;
|
let allowedModes = Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW;
|
||||||
|
|
||||||
this._swept = false;
|
|
||||||
|
|
||||||
if (!this.parent(actor))
|
if (!this.parent(actor))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return (allowedModes & Main.actionMode);
|
return (allowedModes & Main.actionMode);
|
||||||
},
|
},
|
||||||
|
|
||||||
vfunc_gesture_progress(actor) {
|
vfunc_swept(actor, direction) {
|
||||||
let [x, y] = this.get_motion_coords(0);
|
|
||||||
let [xPress, yPress] = this.get_press_coords(0);
|
|
||||||
this.emit('motion', x - xPress, y - yPress);
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
vfunc_gesture_cancel(actor) {
|
|
||||||
if (!this._swept)
|
|
||||||
this.emit('cancel');
|
|
||||||
},
|
|
||||||
|
|
||||||
vfunc_swipe(actor, direction) {
|
|
||||||
let [x, y] = this.get_motion_coords(0);
|
|
||||||
let [xPress, yPress] = this.get_press_coords(0);
|
|
||||||
if (Math.abs(x - xPress) < MOTION_THRESHOLD &&
|
|
||||||
Math.abs(y - yPress) < MOTION_THRESHOLD) {
|
|
||||||
this.emit('cancel');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let dir;
|
let dir;
|
||||||
|
|
||||||
if (direction & Clutter.SwipeDirection.UP)
|
if (direction & Clutter.SwipeDirection.UP)
|
||||||
@@ -599,7 +571,6 @@ var WorkspaceSwitchAction = new Lang.Class({
|
|||||||
else if (direction & Clutter.SwipeDirection.RIGHT)
|
else if (direction & Clutter.SwipeDirection.RIGHT)
|
||||||
dir = Meta.MotionDirection.LEFT;
|
dir = Meta.MotionDirection.LEFT;
|
||||||
|
|
||||||
this._swept = true;
|
|
||||||
this.emit('activated', dir);
|
this.emit('activated', dir);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -656,8 +627,8 @@ var AppSwitchAction = new Lang.Class({
|
|||||||
|
|
||||||
if (this.get_n_current_points() == 3) {
|
if (this.get_n_current_points() == 3) {
|
||||||
for (let i = 0; i < this.get_n_current_points(); i++) {
|
for (let i = 0; i < this.get_n_current_points(); i++) {
|
||||||
let [startX, startY] = this.get_press_coords(i);
|
[startX, startY] = this.get_press_coords(i);
|
||||||
let [x, y] = this.get_motion_coords(i);
|
[x, y] = this.get_motion_coords(i);
|
||||||
|
|
||||||
if (Math.abs(x - startX) > MOTION_THRESHOLD ||
|
if (Math.abs(x - startX) > MOTION_THRESHOLD ||
|
||||||
Math.abs(y - startY) > MOTION_THRESHOLD)
|
Math.abs(y - startY) > MOTION_THRESHOLD)
|
||||||
@@ -721,14 +692,7 @@ var WindowManager = new Lang.Class({
|
|||||||
this._isWorkspacePrepended = false;
|
this._isWorkspacePrepended = false;
|
||||||
|
|
||||||
this._switchData = null;
|
this._switchData = null;
|
||||||
this._shellwm.connect('kill-switch-workspace', (shellwm) => {
|
this._shellwm.connect('kill-switch-workspace', this._switchWorkspaceDone.bind(this));
|
||||||
if (this._switchData) {
|
|
||||||
if (this._switchData.inProgress)
|
|
||||||
this._switchWorkspaceDone(shellwm);
|
|
||||||
else if (!this._switchData.gestureActivated)
|
|
||||||
this._finishWorkspaceSwitch(this._switchData);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this._shellwm.connect('kill-window-effects', (shellwm, actor) => {
|
this._shellwm.connect('kill-window-effects', (shellwm, actor) => {
|
||||||
this._minimizeWindowDone(shellwm, actor);
|
this._minimizeWindowDone(shellwm, actor);
|
||||||
this._mapWindowDone(shellwm, actor);
|
this._mapWindowDone(shellwm, actor);
|
||||||
@@ -750,7 +714,7 @@ var WindowManager = new Lang.Class({
|
|||||||
this._shellwm.connect('confirm-display-change', this._confirmDisplayChange.bind(this));
|
this._shellwm.connect('confirm-display-change', this._confirmDisplayChange.bind(this));
|
||||||
this._shellwm.connect('create-close-dialog', this._createCloseDialog.bind(this));
|
this._shellwm.connect('create-close-dialog', this._createCloseDialog.bind(this));
|
||||||
this._shellwm.connect('create-inhibit-shortcuts-dialog', this._createInhibitShortcutsDialog.bind(this));
|
this._shellwm.connect('create-inhibit-shortcuts-dialog', this._createInhibitShortcutsDialog.bind(this));
|
||||||
global.display.connect('restacked', this._syncStacking.bind(this));
|
global.screen.connect('restacked', this._syncStacking.bind(this));
|
||||||
|
|
||||||
this._workspaceSwitcherPopup = null;
|
this._workspaceSwitcherPopup = null;
|
||||||
this._tilePreview = null;
|
this._tilePreview = null;
|
||||||
@@ -948,14 +912,14 @@ var WindowManager = new Lang.Class({
|
|||||||
|
|
||||||
this.addKeybinding('open-application-menu',
|
this.addKeybinding('open-application-menu',
|
||||||
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
Meta.KeyBindingFlags.NONE,
|
||||||
Shell.ActionMode.NORMAL |
|
Shell.ActionMode.NORMAL |
|
||||||
Shell.ActionMode.POPUP,
|
Shell.ActionMode.POPUP,
|
||||||
this._toggleAppMenu.bind(this));
|
this._toggleAppMenu.bind(this));
|
||||||
|
|
||||||
this.addKeybinding('toggle-message-tray',
|
this.addKeybinding('toggle-message-tray',
|
||||||
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
Meta.KeyBindingFlags.NONE,
|
||||||
Shell.ActionMode.NORMAL |
|
Shell.ActionMode.NORMAL |
|
||||||
Shell.ActionMode.OVERVIEW |
|
Shell.ActionMode.OVERVIEW |
|
||||||
Shell.ActionMode.POPUP,
|
Shell.ActionMode.POPUP,
|
||||||
@@ -1006,20 +970,16 @@ var WindowManager = new Lang.Class({
|
|||||||
if (Main.sessionMode.hasWorkspaces)
|
if (Main.sessionMode.hasWorkspaces)
|
||||||
this._workspaceTracker = new WorkspaceTracker(this);
|
this._workspaceTracker = new WorkspaceTracker(this);
|
||||||
|
|
||||||
global.workspace_manager.override_workspace_layout(Meta.DisplayCorner.TOPLEFT,
|
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
|
||||||
false, -1, 1);
|
false, -1, 1);
|
||||||
|
|
||||||
let gesture = new WorkspaceSwitchAction();
|
let gesture = new WorkspaceSwitchAction();
|
||||||
gesture.connect('motion', this._switchWorkspaceMotion.bind(this));
|
|
||||||
gesture.connect('activated', this._actionSwitchWorkspace.bind(this));
|
gesture.connect('activated', this._actionSwitchWorkspace.bind(this));
|
||||||
gesture.connect('cancel', this._switchWorkspaceCancel.bind(this));
|
|
||||||
global.stage.add_action(gesture);
|
global.stage.add_action(gesture);
|
||||||
|
|
||||||
// This is not a normal Clutter.GestureAction, doesn't need add_action()
|
// This is not a normal Clutter.GestureAction, doesn't need add_action()
|
||||||
gesture = new TouchpadWorkspaceSwitchAction(global.stage);
|
gesture = new TouchpadWorkspaceSwitchAction(global.stage);
|
||||||
gesture.connect('motion', this._switchWorkspaceMotion.bind(this));
|
|
||||||
gesture.connect('activated', this._actionSwitchWorkspace.bind(this));
|
gesture.connect('activated', this._actionSwitchWorkspace.bind(this));
|
||||||
gesture.connect('cancel', this._switchWorkspaceCancel.bind(this));
|
|
||||||
|
|
||||||
gesture = new AppSwitchAction();
|
gesture = new AppSwitchAction();
|
||||||
gesture.connect('activated', this._switchApp.bind(this));
|
gesture.connect('activated', this._switchApp.bind(this));
|
||||||
@@ -1031,14 +991,6 @@ var WindowManager = new Lang.Class({
|
|||||||
Main.keyboard.show(Main.layoutManager.bottomIndex);
|
Main.keyboard.show(Main.layoutManager.bottomIndex);
|
||||||
});
|
});
|
||||||
global.stage.add_action(gesture);
|
global.stage.add_action(gesture);
|
||||||
|
|
||||||
gesture = new EdgeDragAction.EdgeDragAction(St.Side.TOP, mode);
|
|
||||||
gesture.connect('activated', () => {
|
|
||||||
let currentWindow = global.display.focus_window;
|
|
||||||
if (currentWindow)
|
|
||||||
currentWindow.unmake_fullscreen();
|
|
||||||
});
|
|
||||||
global.stage.add_action(gesture);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_showPadOsd(display, device, settings, imagePath, editionMode, monitorIndex) {
|
_showPadOsd(display, device, settings, imagePath, editionMode, monitorIndex) {
|
||||||
@@ -1048,52 +1000,9 @@ var WindowManager = new Lang.Class({
|
|||||||
return this._currentPadOsd.actor;
|
return this._currentPadOsd.actor;
|
||||||
},
|
},
|
||||||
|
|
||||||
_switchWorkspaceMotion(action, xRel, yRel) {
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
|
|
||||||
if (!this._switchData)
|
|
||||||
this._prepareWorkspaceSwitch(activeWorkspace.index(), -1);
|
|
||||||
|
|
||||||
if (yRel < 0 && !this._switchData.surroundings[Meta.MotionDirection.DOWN])
|
|
||||||
yRel = 0;
|
|
||||||
if (yRel > 0 && !this._switchData.surroundings[Meta.MotionDirection.UP])
|
|
||||||
yRel = 0;
|
|
||||||
if (xRel < 0 && !this._switchData.surroundings[Meta.MotionDirection.RIGHT])
|
|
||||||
xRel = 0;
|
|
||||||
if (xRel > 0 && !this._switchData.surroundings[Meta.MotionDirection.LEFT])
|
|
||||||
xRel = 0;
|
|
||||||
|
|
||||||
this._switchData.container.set_position(xRel, yRel);
|
|
||||||
},
|
|
||||||
|
|
||||||
_switchWorkspaceCancel() {
|
|
||||||
if (!this._switchData || this._switchData.inProgress)
|
|
||||||
return;
|
|
||||||
let switchData = this._switchData;
|
|
||||||
this._switchData = null;
|
|
||||||
Tweener.addTween(switchData.container,
|
|
||||||
{ x: 0,
|
|
||||||
y: 0,
|
|
||||||
time: WINDOW_ANIMATION_TIME,
|
|
||||||
transition: 'easeOutQuad',
|
|
||||||
onComplete: this._finishWorkspaceSwitch,
|
|
||||||
onCompleteScope: this,
|
|
||||||
onCompleteParams: [switchData],
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
_actionSwitchWorkspace(action, direction) {
|
_actionSwitchWorkspace(action, direction) {
|
||||||
let workspaceManager = global.workspace_manager;
|
let newWs = global.screen.get_active_workspace().get_neighbor(direction);
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
let newWs = activeWorkspace.get_neighbor(direction);
|
|
||||||
|
|
||||||
if (newWs == activeWorkspace) {
|
|
||||||
this._switchWorkspaceCancel();
|
|
||||||
} else {
|
|
||||||
this._switchData.gestureActivated = true;
|
|
||||||
this.actionMoveWorkspace(newWs);
|
this.actionMoveWorkspace(newWs);
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_lookupIndex(windows, metaWindow) {
|
_lookupIndex(windows, metaWindow) {
|
||||||
@@ -1108,10 +1017,8 @@ var WindowManager = new Lang.Class({
|
|||||||
_switchApp() {
|
_switchApp() {
|
||||||
let windows = global.get_window_actors().filter(actor => {
|
let windows = global.get_window_actors().filter(actor => {
|
||||||
let win = actor.metaWindow;
|
let win = actor.metaWindow;
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
return (!win.is_override_redirect() &&
|
return (!win.is_override_redirect() &&
|
||||||
win.located_on_workspace(activeWorkspace));
|
win.located_on_workspace(global.screen.get_active_workspace()));
|
||||||
});
|
});
|
||||||
|
|
||||||
if (windows.length == 0)
|
if (windows.length == 0)
|
||||||
@@ -1135,12 +1042,10 @@ var WindowManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
insertWorkspace(pos) {
|
insertWorkspace(pos) {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
if (!Meta.prefs_get_dynamic_workspaces())
|
if (!Meta.prefs_get_dynamic_workspaces())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
workspaceManager.append_new_workspace(false, global.get_current_time());
|
global.screen.append_new_workspace(false, global.get_current_time());
|
||||||
|
|
||||||
let windows = global.get_window_actors().map(a => a.meta_window);
|
let windows = global.get_window_actors().map(a => a.meta_window);
|
||||||
|
|
||||||
@@ -1164,9 +1069,9 @@ var WindowManager = new Lang.Class({
|
|||||||
|
|
||||||
// If the new workspace was inserted before the active workspace,
|
// If the new workspace was inserted before the active workspace,
|
||||||
// activate the workspace to which its windows went
|
// activate the workspace to which its windows went
|
||||||
let activeIndex = workspaceManager.get_active_workspace_index();
|
let activeIndex = global.screen.get_active_workspace_index();
|
||||||
if (activeIndex >= pos) {
|
if (activeIndex >= pos) {
|
||||||
let newWs = workspaceManager.get_workspace_by_index(activeIndex + 1);
|
let newWs = global.screen.get_workspace_by_index(activeIndex + 1);
|
||||||
this._blockAnimations = true;
|
this._blockAnimations = true;
|
||||||
newWs.activate(global.get_current_time());
|
newWs.activate(global.get_current_time());
|
||||||
this._blockAnimations = false;
|
this._blockAnimations = false;
|
||||||
@@ -1268,10 +1173,6 @@ var WindowManager = new Lang.Class({
|
|||||||
yScale = geom.height / actor.height;
|
yScale = geom.height / actor.height;
|
||||||
} else {
|
} else {
|
||||||
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
||||||
if (!monitor) {
|
|
||||||
this._minimizeWindowDone();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
xDest = monitor.x;
|
xDest = monitor.x;
|
||||||
yDest = monitor.y;
|
yDest = monitor.y;
|
||||||
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
|
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
|
||||||
@@ -1347,11 +1248,6 @@ var WindowManager = new Lang.Class({
|
|||||||
geom.height / actor.height);
|
geom.height / actor.height);
|
||||||
} else {
|
} else {
|
||||||
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
||||||
if (!monitor) {
|
|
||||||
actor.show();
|
|
||||||
this._unminimizeWindowDone();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
actor.set_position(monitor.x, monitor.y);
|
actor.set_position(monitor.x, monitor.y);
|
||||||
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
|
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
|
||||||
actor.x += monitor.width;
|
actor.x += monitor.width;
|
||||||
@@ -1773,104 +1669,63 @@ var WindowManager = new Lang.Class({
|
|||||||
if (this._switchData == null)
|
if (this._switchData == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Update stacking of windows in inGroup (aka the workspace we are
|
||||||
|
// switching to). Windows in outGroup are about to be hidden anyway,
|
||||||
|
// so we just ignore them here.
|
||||||
let windows = global.get_window_actors();
|
let windows = global.get_window_actors();
|
||||||
let lastCurSibling = null;
|
let sibling = null;
|
||||||
let lastDirSibling = [];
|
|
||||||
for (let i = 0; i < windows.length; i++) {
|
for (let i = 0; i < windows.length; i++) {
|
||||||
if (windows[i].get_parent() == this._switchData.curGroup) {
|
if (windows[i].get_parent() != this._switchData.inGroup)
|
||||||
this._switchData.curGroup.set_child_above_sibling(windows[i], lastCurSibling);
|
continue;
|
||||||
lastCurSibling = windows[i];
|
|
||||||
} else {
|
|
||||||
for (let dir of Object.values(Meta.MotionDirection)) {
|
|
||||||
let info = this._switchData.surroundings[dir];
|
|
||||||
if (!info || windows[i].get_parent() != info.actor)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
let sibling = lastDirSibling[dir];
|
this._switchData.inGroup.set_child_above_sibling(windows[i], sibling);
|
||||||
if (sibling == undefined)
|
sibling = windows[i];
|
||||||
sibling = null;
|
|
||||||
|
|
||||||
info.actor.set_child_above_sibling(windows[i], sibling);
|
|
||||||
lastDirSibling[dir] = windows[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_getPositionForDirection(direction) {
|
_switchWorkspace(shellwm, from, to, direction) {
|
||||||
|
if (!Main.sessionMode.hasWorkspaces || !this._shouldAnimate()) {
|
||||||
|
shellwm.completed_switch_workspace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let windows = global.get_window_actors();
|
||||||
|
|
||||||
|
/* @direction is the direction that the "camera" moves, so the
|
||||||
|
* screen contents have to move one screen's worth in the
|
||||||
|
* opposite direction.
|
||||||
|
*/
|
||||||
let xDest = 0, yDest = 0;
|
let xDest = 0, yDest = 0;
|
||||||
|
|
||||||
if (direction == Meta.MotionDirection.UP ||
|
if (direction == Meta.MotionDirection.UP ||
|
||||||
direction == Meta.MotionDirection.UP_LEFT ||
|
direction == Meta.MotionDirection.UP_LEFT ||
|
||||||
direction == Meta.MotionDirection.UP_RIGHT)
|
direction == Meta.MotionDirection.UP_RIGHT)
|
||||||
yDest = -global.screen_height + Main.panel.actor.height;
|
yDest = global.screen_height - Main.panel.actor.height;
|
||||||
else if (direction == Meta.MotionDirection.DOWN ||
|
else if (direction == Meta.MotionDirection.DOWN ||
|
||||||
direction == Meta.MotionDirection.DOWN_LEFT ||
|
direction == Meta.MotionDirection.DOWN_LEFT ||
|
||||||
direction == Meta.MotionDirection.DOWN_RIGHT)
|
direction == Meta.MotionDirection.DOWN_RIGHT)
|
||||||
yDest = global.screen_height - Main.panel.actor.height;
|
yDest = -global.screen_height + Main.panel.actor.height;
|
||||||
|
|
||||||
if (direction == Meta.MotionDirection.LEFT ||
|
if (direction == Meta.MotionDirection.LEFT ||
|
||||||
direction == Meta.MotionDirection.UP_LEFT ||
|
direction == Meta.MotionDirection.UP_LEFT ||
|
||||||
direction == Meta.MotionDirection.DOWN_LEFT)
|
direction == Meta.MotionDirection.DOWN_LEFT)
|
||||||
xDest = -global.screen_width;
|
xDest = global.screen_width;
|
||||||
else if (direction == Meta.MotionDirection.RIGHT ||
|
else if (direction == Meta.MotionDirection.RIGHT ||
|
||||||
direction == Meta.MotionDirection.UP_RIGHT ||
|
direction == Meta.MotionDirection.UP_RIGHT ||
|
||||||
direction == Meta.MotionDirection.DOWN_RIGHT)
|
direction == Meta.MotionDirection.DOWN_RIGHT)
|
||||||
xDest = global.screen_width;
|
xDest = -global.screen_width;
|
||||||
|
|
||||||
return [xDest, yDest];
|
|
||||||
},
|
|
||||||
|
|
||||||
_prepareWorkspaceSwitch(from, to, direction) {
|
|
||||||
if (this._switchData)
|
|
||||||
return;
|
|
||||||
|
|
||||||
let wgroup = global.window_group;
|
|
||||||
let windows = global.get_window_actors();
|
|
||||||
let switchData = {};
|
let switchData = {};
|
||||||
|
|
||||||
this._switchData = switchData;
|
this._switchData = switchData;
|
||||||
switchData.curGroup = new Clutter.Actor();
|
switchData.inGroup = new Clutter.Actor();
|
||||||
|
switchData.outGroup = new Clutter.Actor();
|
||||||
switchData.movingWindowBin = new Clutter.Actor();
|
switchData.movingWindowBin = new Clutter.Actor();
|
||||||
switchData.windows = [];
|
switchData.windows = [];
|
||||||
switchData.surroundings = {};
|
|
||||||
switchData.gestureActivated = false;
|
|
||||||
switchData.inProgress = false;
|
|
||||||
|
|
||||||
switchData.container = new Clutter.Actor();
|
|
||||||
switchData.container.add_actor(switchData.curGroup);
|
|
||||||
|
|
||||||
|
let wgroup = global.window_group;
|
||||||
|
wgroup.add_actor(switchData.inGroup);
|
||||||
|
wgroup.add_actor(switchData.outGroup);
|
||||||
wgroup.add_actor(switchData.movingWindowBin);
|
wgroup.add_actor(switchData.movingWindowBin);
|
||||||
wgroup.add_actor(switchData.container);
|
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let curWs = workspaceManager.get_workspace_by_index (from);
|
|
||||||
|
|
||||||
for (let dir of Object.values(Meta.MotionDirection)) {
|
|
||||||
let ws = null;
|
|
||||||
|
|
||||||
if (to < 0)
|
|
||||||
ws = curWs.get_neighbor(dir);
|
|
||||||
else if (dir == direction)
|
|
||||||
ws = workspaceManager.get_workspace_by_index(to);
|
|
||||||
|
|
||||||
if (ws == null || ws == curWs) {
|
|
||||||
switchData.surroundings[dir] = null;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
let info = { index: ws.index(),
|
|
||||||
actor: new Clutter.Actor() };
|
|
||||||
switchData.surroundings[dir] = info;
|
|
||||||
switchData.container.add_actor(info.actor);
|
|
||||||
info.actor.raise_top();
|
|
||||||
|
|
||||||
let [x, y] = this._getPositionForDirection(dir);
|
|
||||||
info.actor.set_position(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
switchData.movingWindowBin.raise_top();
|
|
||||||
|
|
||||||
for (let i = 0; i < windows.length; i++) {
|
for (let i = 0; i < windows.length; i++) {
|
||||||
let actor = windows[i];
|
let actor = windows[i];
|
||||||
@@ -1891,70 +1746,20 @@ var WindowManager = new Lang.Class({
|
|||||||
actor.reparent(switchData.movingWindowBin);
|
actor.reparent(switchData.movingWindowBin);
|
||||||
} else if (window.get_workspace().index() == from) {
|
} else if (window.get_workspace().index() == from) {
|
||||||
switchData.windows.push(record);
|
switchData.windows.push(record);
|
||||||
actor.reparent(switchData.curGroup);
|
actor.reparent(switchData.outGroup);
|
||||||
} else {
|
} else if (window.get_workspace().index() == to) {
|
||||||
let visible = false;
|
switchData.windows.push(record);
|
||||||
for (let dir of Object.values(Meta.MotionDirection)) {
|
actor.reparent(switchData.inGroup);
|
||||||
let info = switchData.surroundings[dir];
|
actor.show();
|
||||||
|
|
||||||
if (!info || info.index != window.get_workspace().index())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
switchData.windows.push(record);
|
|
||||||
actor.reparent(info.actor);
|
|
||||||
visible = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
actor.visible = visible;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
_finishWorkspaceSwitch(switchData) {
|
switchData.inGroup.set_position(-xDest, -yDest);
|
||||||
this._switchData = null;
|
switchData.inGroup.raise_top();
|
||||||
|
|
||||||
for (let i = 0; i < switchData.windows.length; i++) {
|
switchData.movingWindowBin.raise_top();
|
||||||
let w = switchData.windows[i];
|
|
||||||
if (w.window.is_destroyed()) // Window gone
|
|
||||||
continue;
|
|
||||||
|
|
||||||
w.window.reparent(w.parent);
|
Tweener.addTween(switchData.outGroup,
|
||||||
|
|
||||||
if (w.window.get_meta_window().get_workspace() !=
|
|
||||||
global.workspace_manager.get_active_workspace())
|
|
||||||
w.window.hide();
|
|
||||||
}
|
|
||||||
Tweener.removeTweens(switchData.container);
|
|
||||||
switchData.container.destroy();
|
|
||||||
switchData.movingWindowBin.destroy();
|
|
||||||
|
|
||||||
this._movingWindow = null;
|
|
||||||
},
|
|
||||||
|
|
||||||
_switchWorkspace(shellwm, from, to, direction) {
|
|
||||||
if (!Main.sessionMode.hasWorkspaces || !this._shouldAnimate()) {
|
|
||||||
shellwm.completed_switch_workspace();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we come from a gesture, switchData will already be set,
|
|
||||||
// and we don't want to overwrite it.
|
|
||||||
if (!this._switchData)
|
|
||||||
this._prepareWorkspaceSwitch(from, to, direction);
|
|
||||||
|
|
||||||
this._switchData.inProgress = true;
|
|
||||||
|
|
||||||
let [xDest, yDest] = this._getPositionForDirection(direction);
|
|
||||||
|
|
||||||
/* @direction is the direction that the "camera" moves, so the
|
|
||||||
* screen contents have to move one screen's worth in the
|
|
||||||
* opposite direction.
|
|
||||||
*/
|
|
||||||
xDest = -xDest;
|
|
||||||
yDest = -yDest;
|
|
||||||
|
|
||||||
Tweener.addTween(this._switchData.container,
|
|
||||||
{ x: xDest,
|
{ x: xDest,
|
||||||
y: yDest,
|
y: yDest,
|
||||||
time: WINDOW_ANIMATION_TIME,
|
time: WINDOW_ANIMATION_TIME,
|
||||||
@@ -1963,10 +1768,39 @@ var WindowManager = new Lang.Class({
|
|||||||
onCompleteScope: this,
|
onCompleteScope: this,
|
||||||
onCompleteParams: [shellwm]
|
onCompleteParams: [shellwm]
|
||||||
});
|
});
|
||||||
|
Tweener.addTween(switchData.inGroup,
|
||||||
|
{ x: 0,
|
||||||
|
y: 0,
|
||||||
|
time: WINDOW_ANIMATION_TIME,
|
||||||
|
transition: 'easeOutQuad'
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
_switchWorkspaceDone(shellwm) {
|
_switchWorkspaceDone(shellwm) {
|
||||||
this._finishWorkspaceSwitch(this._switchData);
|
let switchData = this._switchData;
|
||||||
|
if (!switchData)
|
||||||
|
return;
|
||||||
|
this._switchData = null;
|
||||||
|
|
||||||
|
for (let i = 0; i < switchData.windows.length; i++) {
|
||||||
|
let w = switchData.windows[i];
|
||||||
|
if (w.window.is_destroyed()) // Window gone
|
||||||
|
continue;
|
||||||
|
if (w.window.get_parent() == switchData.outGroup) {
|
||||||
|
w.window.reparent(w.parent);
|
||||||
|
w.window.hide();
|
||||||
|
} else
|
||||||
|
w.window.reparent(w.parent);
|
||||||
|
}
|
||||||
|
Tweener.removeTweens(switchData.inGroup);
|
||||||
|
Tweener.removeTweens(switchData.outGroup);
|
||||||
|
switchData.inGroup.destroy();
|
||||||
|
switchData.outGroup.destroy();
|
||||||
|
switchData.movingWindowBin.destroy();
|
||||||
|
|
||||||
|
if (this._movingWindow)
|
||||||
|
this._movingWindow = null;
|
||||||
|
|
||||||
shellwm.completed_switch_workspace();
|
shellwm.completed_switch_workspace();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1986,7 +1820,7 @@ var WindowManager = new Lang.Class({
|
|||||||
this._windowMenuManager.showWindowMenuForWindow(window, menu, rect);
|
this._windowMenuManager.showWindowMenuForWindow(window, menu, rect);
|
||||||
},
|
},
|
||||||
|
|
||||||
_startSwitcher(display, window, binding) {
|
_startSwitcher(display, screen, window, binding) {
|
||||||
let constructor = null;
|
let constructor = null;
|
||||||
switch (binding.get_name()) {
|
switch (binding.get_name()) {
|
||||||
case 'switch-applications':
|
case 'switch-applications':
|
||||||
@@ -2025,15 +1859,15 @@ var WindowManager = new Lang.Class({
|
|||||||
tabPopup.destroy();
|
tabPopup.destroy();
|
||||||
},
|
},
|
||||||
|
|
||||||
_startA11ySwitcher(display, window, binding) {
|
_startA11ySwitcher(display, screen, window, binding) {
|
||||||
Main.ctrlAltTabManager.popup(binding.is_reversed(), binding.get_name(), binding.get_mask());
|
Main.ctrlAltTabManager.popup(binding.is_reversed(), binding.get_name(), binding.get_mask());
|
||||||
},
|
},
|
||||||
|
|
||||||
_toggleAppMenu(display, window, event, binding) {
|
_toggleAppMenu(display, screen, window, event, binding) {
|
||||||
Main.panel.toggleAppMenu();
|
Main.panel.toggleAppMenu();
|
||||||
},
|
},
|
||||||
|
|
||||||
_toggleCalendar(display, window, event, binding) {
|
_toggleCalendar(display, screen, window, event, binding) {
|
||||||
Main.panel.toggleCalendar();
|
Main.panel.toggleCalendar();
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -2046,13 +1880,11 @@ var WindowManager = new Lang.Class({
|
|||||||
OrigTweener.resumeAllTweens();
|
OrigTweener.resumeAllTweens();
|
||||||
},
|
},
|
||||||
|
|
||||||
_showWorkspaceSwitcher(display, window, binding) {
|
_showWorkspaceSwitcher(display, screen, window, binding) {
|
||||||
let workspaceManager = display.get_workspace_manager();
|
|
||||||
|
|
||||||
if (!Main.sessionMode.hasWorkspaces)
|
if (!Main.sessionMode.hasWorkspaces)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (workspaceManager.n_workspaces == 1)
|
if (screen.n_workspaces == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let [action,,,target] = binding.get_name().split('-');
|
let [action,,,target] = binding.get_name().split('-');
|
||||||
@@ -2071,22 +1903,22 @@ var WindowManager = new Lang.Class({
|
|||||||
|
|
||||||
if (target == 'last') {
|
if (target == 'last') {
|
||||||
direction = Meta.MotionDirection.DOWN;
|
direction = Meta.MotionDirection.DOWN;
|
||||||
newWs = workspaceManager.get_workspace_by_index(workspaceManager.n_workspaces - 1);
|
newWs = screen.get_workspace_by_index(screen.n_workspaces - 1);
|
||||||
} else if (isNaN(target)) {
|
} else if (isNaN(target)) {
|
||||||
// Prepend a new workspace dynamically
|
// Prepend a new workspace dynamically
|
||||||
if (workspaceManager.get_active_workspace_index() == 0 &&
|
if (screen.get_active_workspace_index() == 0 &&
|
||||||
action == 'move' && target == 'up' && this._isWorkspacePrepended == false) {
|
action == 'move' && target == 'up' && this._isWorkspacePrepended == false) {
|
||||||
this.insertWorkspace(0);
|
this.insertWorkspace(0);
|
||||||
this._isWorkspacePrepended = true;
|
this._isWorkspacePrepended = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
direction = Meta.MotionDirection[target.toUpperCase()];
|
direction = Meta.MotionDirection[target.toUpperCase()];
|
||||||
newWs = workspaceManager.get_active_workspace().get_neighbor(direction);
|
newWs = screen.get_active_workspace().get_neighbor(direction);
|
||||||
} else if (target > 0) {
|
} else if (target > 0) {
|
||||||
target--;
|
target--;
|
||||||
newWs = workspaceManager.get_workspace_by_index(target);
|
newWs = screen.get_workspace_by_index(target);
|
||||||
|
|
||||||
if (workspaceManager.get_active_workspace().index() > target)
|
if (screen.get_active_workspace().index() > target)
|
||||||
direction = Meta.MotionDirection.UP;
|
direction = Meta.MotionDirection.UP;
|
||||||
else
|
else
|
||||||
direction = Meta.MotionDirection.DOWN;
|
direction = Meta.MotionDirection.DOWN;
|
||||||
@@ -2119,8 +1951,7 @@ var WindowManager = new Lang.Class({
|
|||||||
if (!Main.sessionMode.hasWorkspaces)
|
if (!Main.sessionMode.hasWorkspaces)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWorkspace = global.screen.get_active_workspace();
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
|
|
||||||
if (activeWorkspace != workspace)
|
if (activeWorkspace != workspace)
|
||||||
workspace.activate(global.get_current_time());
|
workspace.activate(global.get_current_time());
|
||||||
@@ -2130,8 +1961,7 @@ var WindowManager = new Lang.Class({
|
|||||||
if (!Main.sessionMode.hasWorkspaces)
|
if (!Main.sessionMode.hasWorkspaces)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWorkspace = global.screen.get_active_workspace();
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
|
|
||||||
if (activeWorkspace != workspace) {
|
if (activeWorkspace != workspace) {
|
||||||
// This won't have any effect for "always sticky" windows
|
// This won't have any effect for "always sticky" windows
|
||||||
|
@@ -126,15 +126,16 @@ var WindowMenu = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let display = global.display;
|
let screen = global.screen;
|
||||||
let nMonitors = display.get_n_monitors();
|
let nMonitors = screen.get_n_monitors();
|
||||||
let monitorIndex = window.get_monitor();
|
if (nMonitors > 1) {
|
||||||
if (nMonitors > 1 && monitorIndex >= 0) {
|
|
||||||
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||||
|
|
||||||
|
let monitorIndex = window.get_monitor();
|
||||||
|
|
||||||
let dir = Meta.ScreenDirection.UP;
|
let dir = Meta.ScreenDirection.UP;
|
||||||
let upMonitorIndex =
|
let upMonitorIndex =
|
||||||
display.get_monitor_neighbor_index(monitorIndex, dir);
|
screen.get_monitor_neighbor_index(monitorIndex, dir);
|
||||||
if (upMonitorIndex != -1) {
|
if (upMonitorIndex != -1) {
|
||||||
this.addAction(_("Move to Monitor Up"), () => {
|
this.addAction(_("Move to Monitor Up"), () => {
|
||||||
window.move_to_monitor(upMonitorIndex);
|
window.move_to_monitor(upMonitorIndex);
|
||||||
@@ -143,7 +144,7 @@ var WindowMenu = new Lang.Class({
|
|||||||
|
|
||||||
dir = Meta.ScreenDirection.DOWN;
|
dir = Meta.ScreenDirection.DOWN;
|
||||||
let downMonitorIndex =
|
let downMonitorIndex =
|
||||||
display.get_monitor_neighbor_index(monitorIndex, dir);
|
screen.get_monitor_neighbor_index(monitorIndex, dir);
|
||||||
if (downMonitorIndex != -1) {
|
if (downMonitorIndex != -1) {
|
||||||
this.addAction(_("Move to Monitor Down"), () => {
|
this.addAction(_("Move to Monitor Down"), () => {
|
||||||
window.move_to_monitor(downMonitorIndex);
|
window.move_to_monitor(downMonitorIndex);
|
||||||
@@ -152,7 +153,7 @@ var WindowMenu = new Lang.Class({
|
|||||||
|
|
||||||
dir = Meta.ScreenDirection.LEFT;
|
dir = Meta.ScreenDirection.LEFT;
|
||||||
let leftMonitorIndex =
|
let leftMonitorIndex =
|
||||||
display.get_monitor_neighbor_index(monitorIndex, dir);
|
screen.get_monitor_neighbor_index(monitorIndex, dir);
|
||||||
if (leftMonitorIndex != -1) {
|
if (leftMonitorIndex != -1) {
|
||||||
this.addAction(_("Move to Monitor Left"), () => {
|
this.addAction(_("Move to Monitor Left"), () => {
|
||||||
window.move_to_monitor(leftMonitorIndex);
|
window.move_to_monitor(leftMonitorIndex);
|
||||||
@@ -161,7 +162,7 @@ var WindowMenu = new Lang.Class({
|
|||||||
|
|
||||||
dir = Meta.ScreenDirection.RIGHT;
|
dir = Meta.ScreenDirection.RIGHT;
|
||||||
let rightMonitorIndex =
|
let rightMonitorIndex =
|
||||||
display.get_monitor_neighbor_index(monitorIndex, dir);
|
screen.get_monitor_neighbor_index(monitorIndex, dir);
|
||||||
if (rightMonitorIndex != -1) {
|
if (rightMonitorIndex != -1) {
|
||||||
this.addAction(_("Move to Monitor Right"), () => {
|
this.addAction(_("Move to Monitor Right"), () => {
|
||||||
window.move_to_monitor(rightMonitorIndex);
|
window.move_to_monitor(rightMonitorIndex);
|
||||||
|
@@ -137,10 +137,8 @@ var WindowClone = new Lang.Class({
|
|||||||
this._dragSlot = [0, 0, 0, 0];
|
this._dragSlot = [0, 0, 0, 0];
|
||||||
this._stackAbove = null;
|
this._stackAbove = null;
|
||||||
|
|
||||||
this._windowClone._sizeChangedId = this.metaWindow.connect('size-changed',
|
this._windowClone._updateId = this.metaWindow.connect('size-changed',
|
||||||
this._onMetaWindowSizeChanged.bind(this));
|
this._onRealWindowSizeChanged.bind(this));
|
||||||
this._windowClone._posChangedId = this.metaWindow.connect('position-changed',
|
|
||||||
this._computeBoundingBox.bind(this));
|
|
||||||
this._windowClone._destroyId =
|
this._windowClone._destroyId =
|
||||||
this.realWindow.connect('destroy', () => {
|
this.realWindow.connect('destroy', () => {
|
||||||
// First destroy the clone and then destroy everything
|
// First destroy the clone and then destroy everything
|
||||||
@@ -179,7 +177,6 @@ var WindowClone = new Lang.Class({
|
|||||||
this.inDrag = false;
|
this.inDrag = false;
|
||||||
|
|
||||||
this._selected = false;
|
this._selected = false;
|
||||||
this._closeRequested = false;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
set slot(slot) {
|
set slot(slot) {
|
||||||
@@ -195,6 +192,7 @@ var WindowClone = new Lang.Class({
|
|||||||
|
|
||||||
deleteAll() {
|
deleteAll() {
|
||||||
// Delete all windows, starting from the bottom-most (most-modal) one
|
// Delete all windows, starting from the bottom-most (most-modal) one
|
||||||
|
|
||||||
let windows = this.actor.get_children();
|
let windows = this.actor.get_children();
|
||||||
for (let i = windows.length - 1; i >= 1; i--) {
|
for (let i = windows.length - 1; i >= 1; i--) {
|
||||||
let realWindow = windows[i].source;
|
let realWindow = windows[i].source;
|
||||||
@@ -204,24 +202,12 @@ var WindowClone = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.metaWindow.delete(global.get_current_time());
|
this.metaWindow.delete(global.get_current_time());
|
||||||
this._closeRequested = true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
addDialog(win) {
|
addAttachedDialog(win) {
|
||||||
let parent = win.get_transient_for();
|
this._doAddAttachedDialog(win, win.get_compositor_private());
|
||||||
while (parent.is_attached_dialog())
|
this._computeBoundingBox();
|
||||||
parent = parent.get_transient_for();
|
this.emit('size-changed');
|
||||||
|
|
||||||
// Display dialog if it is attached to our metaWindow
|
|
||||||
if (win.is_attached_dialog() && parent == this.metaWindow) {
|
|
||||||
this._doAddAttachedDialog(win, win.get_compositor_private());
|
|
||||||
this._onMetaWindowSizeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
// The dialog popped up after the user tried to close the window,
|
|
||||||
// assume it's a close confirmation and leave the overview
|
|
||||||
if (this._closeRequested)
|
|
||||||
this._activate();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
hasAttachedDialogs() {
|
hasAttachedDialogs() {
|
||||||
@@ -230,14 +216,15 @@ var WindowClone = new Lang.Class({
|
|||||||
|
|
||||||
_doAddAttachedDialog(metaWin, realWin) {
|
_doAddAttachedDialog(metaWin, realWin) {
|
||||||
let clone = new Clutter.Clone({ source: realWin });
|
let clone = new Clutter.Clone({ source: realWin });
|
||||||
clone._sizeChangedId = metaWin.connect('size-changed',
|
clone._updateId = metaWin.connect('size-changed', () => {
|
||||||
this._onMetaWindowSizeChanged.bind(this));
|
this._computeBoundingBox();
|
||||||
clone._posChangedId = metaWin.connect('position-changed',
|
this.emit('size-changed');
|
||||||
this._onMetaWindowSizeChanged.bind(this));
|
});
|
||||||
clone._destroyId = realWin.connect('destroy', () => {
|
clone._destroyId = realWin.connect('destroy', () => {
|
||||||
clone.destroy();
|
clone.destroy();
|
||||||
|
|
||||||
this._onMetaWindowSizeChanged();
|
this._computeBoundingBox();
|
||||||
|
this.emit('size-changed');
|
||||||
});
|
});
|
||||||
this.actor.add_child(clone);
|
this.actor.add_child(clone);
|
||||||
},
|
},
|
||||||
@@ -334,13 +321,12 @@ var WindowClone = new Lang.Class({
|
|||||||
else
|
else
|
||||||
realWindow = child.source;
|
realWindow = child.source;
|
||||||
|
|
||||||
realWindow.meta_window.disconnect(child._sizeChangedId);
|
realWindow.meta_window.disconnect(child._updateId);
|
||||||
realWindow.meta_window.disconnect(child._posChangedId);
|
|
||||||
realWindow.disconnect(child._destroyId);
|
realWindow.disconnect(child._destroyId);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
_onMetaWindowSizeChanged() {
|
_onRealWindowSizeChanged() {
|
||||||
this._computeBoundingBox();
|
this._computeBoundingBox();
|
||||||
this.emit('size-changed');
|
this.emit('size-changed');
|
||||||
},
|
},
|
||||||
@@ -461,13 +447,12 @@ var WindowOverlay = new Lang.Class({
|
|||||||
this.border = new St.Bin({ style_class: 'window-clone-border' });
|
this.border = new St.Bin({ style_class: 'window-clone-border' });
|
||||||
|
|
||||||
let title = new St.Label({ style_class: 'window-caption',
|
let title = new St.Label({ style_class: 'window-caption',
|
||||||
text: this._getCaption() });
|
text: metaWindow.title });
|
||||||
title.clutter_text.ellipsize = Pango.EllipsizeMode.END;
|
title.clutter_text.ellipsize = Pango.EllipsizeMode.END;
|
||||||
windowClone.actor.label_actor = title;
|
windowClone.actor.label_actor = title;
|
||||||
|
|
||||||
this._updateCaptionId = metaWindow.connect('notify::title', w => {
|
this._updateCaptionId = metaWindow.connect('notify::title', w => {
|
||||||
this.title.text = w.title;
|
this.title.text = w.title;
|
||||||
this.title.text = this._getCaption();
|
|
||||||
this.relayout(false);
|
this.relayout(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -475,12 +460,14 @@ var WindowOverlay = new Lang.Class({
|
|||||||
button._overlap = 0;
|
button._overlap = 0;
|
||||||
|
|
||||||
this._idleToggleCloseId = 0;
|
this._idleToggleCloseId = 0;
|
||||||
button.connect('clicked', () => this._windowClone.deleteAll());
|
button.connect('clicked', this._closeWindow.bind(this));
|
||||||
|
|
||||||
windowClone.actor.connect('destroy', this._onDestroy.bind(this));
|
windowClone.actor.connect('destroy', this._onDestroy.bind(this));
|
||||||
windowClone.connect('show-chrome', this._onShowChrome.bind(this));
|
windowClone.connect('show-chrome', this._onShowChrome.bind(this));
|
||||||
windowClone.connect('hide-chrome', this._onHideChrome.bind(this));
|
windowClone.connect('hide-chrome', this._onHideChrome.bind(this));
|
||||||
|
|
||||||
|
this._windowAddedId = 0;
|
||||||
|
|
||||||
button.hide();
|
button.hide();
|
||||||
title.hide();
|
title.hide();
|
||||||
|
|
||||||
@@ -578,16 +565,6 @@ var WindowOverlay = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_getCaption() {
|
|
||||||
let metaWindow = this._windowClone.metaWindow;
|
|
||||||
if (metaWindow.title)
|
|
||||||
return metaWindow.title;
|
|
||||||
|
|
||||||
let tracker = Shell.WindowTracker.get_default();
|
|
||||||
let app = tracker.get_window_app(metaWindow);
|
|
||||||
return app.get_name();
|
|
||||||
},
|
|
||||||
|
|
||||||
_animateOverlayActor(actor, x, y, width, height) {
|
_animateOverlayActor(actor, x, y, width, height) {
|
||||||
let params = { x: x,
|
let params = { x: x,
|
||||||
y: y,
|
y: y,
|
||||||
@@ -601,12 +578,43 @@ var WindowOverlay = new Lang.Class({
|
|||||||
Tweener.addTween(actor, params);
|
Tweener.addTween(actor, params);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_closeWindow(actor) {
|
||||||
|
let metaWindow = this._windowClone.metaWindow;
|
||||||
|
this._workspace = metaWindow.get_workspace();
|
||||||
|
|
||||||
|
this._windowAddedId = this._workspace.connect('window-added',
|
||||||
|
this._onWindowAdded.bind(this));
|
||||||
|
|
||||||
|
this._windowClone.deleteAll();
|
||||||
|
},
|
||||||
|
|
||||||
_windowCanClose() {
|
_windowCanClose() {
|
||||||
return this._windowClone.metaWindow.can_close() &&
|
return this._windowClone.metaWindow.can_close() &&
|
||||||
!this._windowClone.hasAttachedDialogs();
|
!this._windowClone.hasAttachedDialogs();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_onWindowAdded(workspace, win) {
|
||||||
|
let metaWindow = this._windowClone.metaWindow;
|
||||||
|
|
||||||
|
if (win.get_transient_for() == metaWindow) {
|
||||||
|
workspace.disconnect(this._windowAddedId);
|
||||||
|
this._windowAddedId = 0;
|
||||||
|
|
||||||
|
// use an idle handler to avoid mapping problems -
|
||||||
|
// see comment in Workspace._windowAdded
|
||||||
|
let id = Mainloop.idle_add(() => {
|
||||||
|
this._windowClone.emit('selected');
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
});
|
||||||
|
GLib.Source.set_name_by_id(id, '[gnome-shell] this._windowClone.emit');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
_onDestroy() {
|
_onDestroy() {
|
||||||
|
if (this._windowAddedId > 0) {
|
||||||
|
this._workspace.disconnect(this._windowAddedId);
|
||||||
|
this._windowAddedId = 0;
|
||||||
|
}
|
||||||
if (this._idleToggleCloseId > 0) {
|
if (this._idleToggleCloseId > 0) {
|
||||||
Mainloop.source_remove(this._idleToggleCloseId);
|
Mainloop.source_remove(this._idleToggleCloseId);
|
||||||
this._idleToggleCloseId = 0;
|
this._idleToggleCloseId = 0;
|
||||||
@@ -1137,10 +1145,10 @@ var Workspace = new Lang.Class({
|
|||||||
this._windowRemovedId = this.metaWorkspace.connect('window-removed',
|
this._windowRemovedId = this.metaWorkspace.connect('window-removed',
|
||||||
this._windowRemoved.bind(this));
|
this._windowRemoved.bind(this));
|
||||||
}
|
}
|
||||||
this._windowEnteredMonitorId = global.display.connect('window-entered-monitor',
|
this._windowEnteredMonitorId = global.screen.connect('window-entered-monitor',
|
||||||
this._windowEnteredMonitor.bind(this));
|
this._windowEnteredMonitor.bind(this));
|
||||||
this._windowLeftMonitorId = global.display.connect('window-left-monitor',
|
this._windowLeftMonitorId = global.screen.connect('window-left-monitor',
|
||||||
this._windowLeftMonitor.bind(this));
|
this._windowLeftMonitor.bind(this));
|
||||||
this._repositionWindowsId = 0;
|
this._repositionWindowsId = 0;
|
||||||
|
|
||||||
this.leavingOverview = false;
|
this.leavingOverview = false;
|
||||||
@@ -1286,8 +1294,7 @@ var Workspace = new Lang.Class({
|
|||||||
let area = padArea(this._actualGeometry, padding);
|
let area = padArea(this._actualGeometry, padding);
|
||||||
let slots = strategy.computeWindowSlots(layout, area);
|
let slots = strategy.computeWindowSlots(layout, area);
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let currentWorkspace = global.screen.get_active_workspace();
|
||||||
let currentWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
|
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
|
||||||
|
|
||||||
for (let i = 0; i < slots.length; i++) {
|
for (let i = 0; i < slots.length; i++) {
|
||||||
@@ -1424,26 +1431,34 @@ var Workspace = new Lang.Class({
|
|||||||
_doRemoveWindow(metaWin) {
|
_doRemoveWindow(metaWin) {
|
||||||
let win = metaWin.get_compositor_private();
|
let win = metaWin.get_compositor_private();
|
||||||
|
|
||||||
let clone = this._removeWindowClone(metaWin);
|
// find the position of the window in our list
|
||||||
|
let index = this._lookupIndex (metaWin);
|
||||||
|
|
||||||
if (clone) {
|
if (index == -1)
|
||||||
// If metaWin.get_compositor_private() returned non-NULL, that
|
return;
|
||||||
// means the window still exists (and is just being moved to
|
|
||||||
// another workspace or something), so set its overviewHint
|
let clone = this._windows[index];
|
||||||
// accordingly. (If it returned NULL, then the window is being
|
|
||||||
// destroyed; we'd like to animate this, but it's too late at
|
this._windows.splice(index, 1);
|
||||||
// this point.)
|
this._windowOverlays.splice(index, 1);
|
||||||
if (win) {
|
|
||||||
let [stageX, stageY] = clone.actor.get_transformed_position();
|
// If metaWin.get_compositor_private() returned non-NULL, that
|
||||||
let [stageWidth, stageHeight] = clone.actor.get_transformed_size();
|
// means the window still exists (and is just being moved to
|
||||||
win._overviewHint = {
|
// another workspace or something), so set its overviewHint
|
||||||
x: stageX,
|
// accordingly. (If it returned NULL, then the window is being
|
||||||
y: stageY,
|
// destroyed; we'd like to animate this, but it's too late at
|
||||||
scale: stageWidth / clone.actor.width
|
// this point.)
|
||||||
};
|
if (win) {
|
||||||
}
|
let [stageX, stageY] = clone.actor.get_transformed_position();
|
||||||
clone.destroy();
|
let [stageWidth, stageHeight] = clone.actor.get_transformed_size();
|
||||||
|
win._overviewHint = {
|
||||||
|
x: stageX,
|
||||||
|
y: stageY,
|
||||||
|
scale: stageWidth / clone.actor.width
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
clone.destroy();
|
||||||
|
|
||||||
|
|
||||||
// We need to reposition the windows; to avoid shuffling windows
|
// We need to reposition the windows; to avoid shuffling windows
|
||||||
// around while the user is interacting with the workspace, we delay
|
// around while the user is interacting with the workspace, we delay
|
||||||
@@ -1496,17 +1511,21 @@ var Workspace = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (!this._isOverviewWindow(win)) {
|
if (!this._isOverviewWindow(win)) {
|
||||||
if (metaWin.get_transient_for() == null)
|
if (metaWin.is_attached_dialog()) {
|
||||||
return;
|
let parent = metaWin.get_transient_for();
|
||||||
|
while (parent.is_attached_dialog())
|
||||||
|
parent = metaWin.get_transient_for();
|
||||||
|
|
||||||
// Let the top-most ancestor handle all transients
|
let idx = this._lookupIndex (parent);
|
||||||
let parent = metaWin.find_root_ancestor();
|
if (idx < 0) {
|
||||||
let clone = this._windows.find(c => c.metaWindow == parent);
|
// parent was not created yet, it will take care
|
||||||
|
// of the dialog when created
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// If no clone was found, the parent hasn't been created yet
|
let clone = this._windows[idx];
|
||||||
// and will take care of the dialog when added
|
clone.addAttachedDialog(metaWin);
|
||||||
if (clone)
|
}
|
||||||
clone.addDialog(metaWin);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1538,13 +1557,13 @@ var Workspace = new Lang.Class({
|
|||||||
this._doRemoveWindow(metaWin);
|
this._doRemoveWindow(metaWin);
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowEnteredMonitor(metaDisplay, monitorIndex, metaWin) {
|
_windowEnteredMonitor(metaScreen, monitorIndex, metaWin) {
|
||||||
if (monitorIndex == this.monitorIndex) {
|
if (monitorIndex == this.monitorIndex) {
|
||||||
this._doAddWindow(metaWin);
|
this._doAddWindow(metaWin);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowLeftMonitor(metaDisplay, monitorIndex, metaWin) {
|
_windowLeftMonitor(metaScreen, monitorIndex, metaWin) {
|
||||||
if (monitorIndex == this.monitorIndex) {
|
if (monitorIndex == this.monitorIndex) {
|
||||||
this._doRemoveWindow(metaWin);
|
this._doRemoveWindow(metaWin);
|
||||||
}
|
}
|
||||||
@@ -1569,9 +1588,7 @@ var Workspace = new Lang.Class({
|
|||||||
if (this._windows.length == 0)
|
if (this._windows.length == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
if (this.metaWorkspace != null && this.metaWorkspace != global.screen.get_active_workspace())
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
if (this.metaWorkspace != null && this.metaWorkspace != activeWorkspace)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Special case maximized windows, since it doesn't make sense
|
// Special case maximized windows, since it doesn't make sense
|
||||||
@@ -1627,9 +1644,7 @@ var Workspace = new Lang.Class({
|
|||||||
this._repositionWindowsId = 0;
|
this._repositionWindowsId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
if (this.metaWorkspace != null && this.metaWorkspace != global.screen.get_active_workspace())
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
if (this.metaWorkspace != null && this.metaWorkspace != activeWorkspace)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Special case maximized windows, since it doesn't make sense
|
// Special case maximized windows, since it doesn't make sense
|
||||||
@@ -1699,8 +1714,7 @@ var Workspace = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
zoomFromOverview() {
|
zoomFromOverview() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let currentWorkspace = global.screen.get_active_workspace();
|
||||||
let currentWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
|
|
||||||
this.leavingOverview = true;
|
this.leavingOverview = true;
|
||||||
|
|
||||||
@@ -1768,8 +1782,8 @@ var Workspace = new Lang.Class({
|
|||||||
this.metaWorkspace.disconnect(this._windowAddedId);
|
this.metaWorkspace.disconnect(this._windowAddedId);
|
||||||
this.metaWorkspace.disconnect(this._windowRemovedId);
|
this.metaWorkspace.disconnect(this._windowRemovedId);
|
||||||
}
|
}
|
||||||
global.display.disconnect(this._windowEnteredMonitorId);
|
global.screen.disconnect(this._windowEnteredMonitorId);
|
||||||
global.display.disconnect(this._windowLeftMonitorId);
|
global.screen.disconnect(this._windowLeftMonitorId);
|
||||||
|
|
||||||
if (this._repositionWindowsId > 0) {
|
if (this._repositionWindowsId > 0) {
|
||||||
Mainloop.source_remove(this._repositionWindowsId);
|
Mainloop.source_remove(this._repositionWindowsId);
|
||||||
@@ -1834,9 +1848,6 @@ var Workspace = new Lang.Class({
|
|||||||
clone.connect('size-changed', () => {
|
clone.connect('size-changed', () => {
|
||||||
this._recalculateWindowPositions(WindowPositionFlags.NONE);
|
this._recalculateWindowPositions(WindowPositionFlags.NONE);
|
||||||
});
|
});
|
||||||
clone.actor.connect('destroy', () => {
|
|
||||||
this._removeWindowClone(clone.metaWindow);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.actor.add_actor(clone.actor);
|
this.actor.add_actor(clone.actor);
|
||||||
|
|
||||||
@@ -1858,17 +1869,6 @@ var Workspace = new Lang.Class({
|
|||||||
return [clone, overlay];
|
return [clone, overlay];
|
||||||
},
|
},
|
||||||
|
|
||||||
_removeWindowClone(metaWin) {
|
|
||||||
// find the position of the window in our list
|
|
||||||
let index = this._lookupIndex (metaWin);
|
|
||||||
|
|
||||||
if (index == -1)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
this._windowOverlays.splice(index, 1);
|
|
||||||
return this._windows.splice(index, 1).pop();
|
|
||||||
},
|
|
||||||
|
|
||||||
_onShowOverlayClose(windowOverlay) {
|
_onShowOverlayClose(windowOverlay) {
|
||||||
for (let i = 0; i < this._windowOverlays.length; i++) {
|
for (let i = 0; i < this._windowOverlays.length; i++) {
|
||||||
let overlay = this._windowOverlays[i];
|
let overlay = this._windowOverlays[i];
|
||||||
@@ -2004,8 +2004,7 @@ var Workspace = new Lang.Class({
|
|||||||
if (metaWindow.get_monitor() != this.monitorIndex)
|
if (metaWindow.get_monitor() != this.monitorIndex)
|
||||||
metaWindow.move_to_monitor(this.monitorIndex);
|
metaWindow.move_to_monitor(this.monitorIndex);
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let index = this.metaWorkspace ? this.metaWorkspace.index() : global.screen.get_active_workspace_index();
|
||||||
let index = this.metaWorkspace ? this.metaWorkspace.index() : workspaceManager.get_active_workspace_index();
|
|
||||||
metaWindow.change_workspace_by_index(index, false);
|
metaWindow.change_workspace_by_index(index, false);
|
||||||
return true;
|
return true;
|
||||||
} else if (source.shellWorkspaceLaunch) {
|
} else if (source.shellWorkspaceLaunch) {
|
||||||
|
@@ -47,12 +47,9 @@ var WorkspaceSwitcherPopup = new Lang.Class({
|
|||||||
|
|
||||||
this.actor.hide();
|
this.actor.hide();
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
this._globalSignals = [];
|
||||||
this._workspaceManagerSignals = [];
|
this._globalSignals.push(global.screen.connect('workspace-added', this._redisplay.bind(this)));
|
||||||
this._workspaceManagerSignals.push(workspaceManager.connect('workspace-added',
|
this._globalSignals.push(global.screen.connect('workspace-removed', this._redisplay.bind(this)));
|
||||||
this._redisplay.bind(this)));
|
|
||||||
this._workspaceManagerSignals.push(workspaceManager.connect('workspace-removed',
|
|
||||||
this._redisplay.bind(this)));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_getPreferredHeight(actor, forWidth, alloc) {
|
_getPreferredHeight(actor, forWidth, alloc) {
|
||||||
@@ -71,12 +68,11 @@ var WorkspaceSwitcherPopup = new Lang.Class({
|
|||||||
height += childNaturalHeight * workArea.width / workArea.height;
|
height += childNaturalHeight * workArea.width / workArea.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let spacing = this._itemSpacing * (global.screen.n_workspaces - 1);
|
||||||
let spacing = this._itemSpacing * (workspaceManager.n_workspaces - 1);
|
|
||||||
height += spacing;
|
height += spacing;
|
||||||
height = Math.min(height, availHeight);
|
height = Math.min(height, availHeight);
|
||||||
|
|
||||||
this._childHeight = (height - spacing) / workspaceManager.n_workspaces;
|
this._childHeight = (height - spacing) / global.screen.n_workspaces;
|
||||||
|
|
||||||
alloc.min_size = height;
|
alloc.min_size = height;
|
||||||
alloc.natural_size = height;
|
alloc.natural_size = height;
|
||||||
@@ -108,11 +104,9 @@ var WorkspaceSwitcherPopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_redisplay() {
|
_redisplay() {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
this._list.destroy_all_children();
|
this._list.destroy_all_children();
|
||||||
|
|
||||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
for (let i = 0; i < global.screen.n_workspaces; i++) {
|
||||||
let indicator = null;
|
let indicator = null;
|
||||||
|
|
||||||
if (i == this._activeWorkspaceIndex && this._direction == Meta.MotionDirection.UP)
|
if (i == this._activeWorkspaceIndex && this._direction == Meta.MotionDirection.UP)
|
||||||
@@ -170,9 +164,8 @@ var WorkspaceSwitcherPopup = new Lang.Class({
|
|||||||
Mainloop.source_remove(this._timeoutId);
|
Mainloop.source_remove(this._timeoutId);
|
||||||
this._timeoutId = 0;
|
this._timeoutId = 0;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
for (let i = 0; i < this._globalSignals.length; i++)
|
||||||
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
|
global.screen.disconnect(this._globalSignals[i]);
|
||||||
workspaceManager.disconnect(this._workspaceManagerSignals[i]);
|
|
||||||
|
|
||||||
this.actor.destroy();
|
this.actor.destroy();
|
||||||
|
|
||||||
|
@@ -31,7 +31,7 @@ var WORKSPACE_CUT_SIZE = 10;
|
|||||||
|
|
||||||
var WORKSPACE_KEEP_ALIVE_TIME = 100;
|
var WORKSPACE_KEEP_ALIVE_TIME = 100;
|
||||||
|
|
||||||
var OVERRIDE_SCHEMA = 'org.gnome.shell.overrides';
|
const OVERRIDE_SCHEMA = 'org.gnome.shell.overrides';
|
||||||
|
|
||||||
/* A layout manager that requests size only for primary_actor, but then allocates
|
/* A layout manager that requests size only for primary_actor, but then allocates
|
||||||
all using a fixed layout */
|
all using a fixed layout */
|
||||||
@@ -68,7 +68,7 @@ var WindowClone = new Lang.Class({
|
|||||||
this.realWindow = realWindow;
|
this.realWindow = realWindow;
|
||||||
this.metaWindow = realWindow.meta_window;
|
this.metaWindow = realWindow.meta_window;
|
||||||
|
|
||||||
this.clone._updateId = this.realWindow.connect('notify::position',
|
this.clone._updateId = this.metaWindow.connect('position-changed',
|
||||||
this._onPositionChanged.bind(this));
|
this._onPositionChanged.bind(this));
|
||||||
this.clone._destroyId = this.realWindow.connect('destroy', () => {
|
this.clone._destroyId = this.realWindow.connect('destroy', () => {
|
||||||
// First destroy the clone and then destroy everything
|
// First destroy the clone and then destroy everything
|
||||||
@@ -153,7 +153,7 @@ var WindowClone = new Lang.Class({
|
|||||||
let clone = new Clutter.Clone({ source: realDialog });
|
let clone = new Clutter.Clone({ source: realDialog });
|
||||||
this._updateDialogPosition(realDialog, clone);
|
this._updateDialogPosition(realDialog, clone);
|
||||||
|
|
||||||
clone._updateId = realDialog.connect('notify::position', dialog => {
|
clone._updateId = metaDialog.connect('position-changed', dialog => {
|
||||||
this._updateDialogPosition(dialog, clone);
|
this._updateDialogPosition(dialog, clone);
|
||||||
});
|
});
|
||||||
clone._destroyId = realDialog.connect('destroy', () => {
|
clone._destroyId = realDialog.connect('destroy', () => {
|
||||||
@@ -171,6 +171,7 @@ var WindowClone = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onPositionChanged() {
|
_onPositionChanged() {
|
||||||
|
let rect = this.metaWindow.get_frame_rect();
|
||||||
this.actor.set_position(this.realWindow.x, this.realWindow.y);
|
this.actor.set_position(this.realWindow.x, this.realWindow.y);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -178,7 +179,7 @@ var WindowClone = new Lang.Class({
|
|||||||
this.actor.get_children().forEach(child => {
|
this.actor.get_children().forEach(child => {
|
||||||
let realWindow = child.source;
|
let realWindow = child.source;
|
||||||
|
|
||||||
realWindow.disconnect(child._updateId);
|
realWindow.meta_window.disconnect(child._updateId);
|
||||||
realWindow.disconnect(child._destroyId);
|
realWindow.disconnect(child._destroyId);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -240,7 +241,7 @@ var WindowClone = new Lang.Class({
|
|||||||
Signals.addSignalMethods(WindowClone.prototype);
|
Signals.addSignalMethods(WindowClone.prototype);
|
||||||
|
|
||||||
|
|
||||||
var ThumbnailState = {
|
const ThumbnailState = {
|
||||||
NEW : 0,
|
NEW : 0,
|
||||||
ANIMATING_IN : 1,
|
ANIMATING_IN : 1,
|
||||||
NORMAL: 2,
|
NORMAL: 2,
|
||||||
@@ -303,9 +304,9 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
this._windowAdded.bind(this));
|
this._windowAdded.bind(this));
|
||||||
this._windowRemovedId = this.metaWorkspace.connect('window-removed',
|
this._windowRemovedId = this.metaWorkspace.connect('window-removed',
|
||||||
this._windowRemoved.bind(this));
|
this._windowRemoved.bind(this));
|
||||||
this._windowEnteredMonitorId = global.display.connect('window-entered-monitor',
|
this._windowEnteredMonitorId = global.screen.connect('window-entered-monitor',
|
||||||
this._windowEnteredMonitor.bind(this));
|
this._windowEnteredMonitor.bind(this));
|
||||||
this._windowLeftMonitorId = global.display.connect('window-left-monitor',
|
this._windowLeftMonitorId = global.screen.connect('window-left-monitor',
|
||||||
this._windowLeftMonitor.bind(this));
|
this._windowLeftMonitor.bind(this));
|
||||||
|
|
||||||
this.state = ThumbnailState.NORMAL;
|
this.state = ThumbnailState.NORMAL;
|
||||||
@@ -371,9 +372,18 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_doRemoveWindow(metaWin) {
|
_doRemoveWindow(metaWin) {
|
||||||
let clone = this._removeWindowClone(metaWin);
|
let win = metaWin.get_compositor_private();
|
||||||
if (clone)
|
|
||||||
clone.destroy();
|
// find the position of the window in our list
|
||||||
|
let index = this._lookupIndex (metaWin);
|
||||||
|
|
||||||
|
if (index == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
let clone = this._windows[index];
|
||||||
|
this._windows.splice(index, 1);
|
||||||
|
|
||||||
|
clone.destroy();
|
||||||
},
|
},
|
||||||
|
|
||||||
_doAddWindow(metaWin) {
|
_doAddWindow(metaWin) {
|
||||||
@@ -416,7 +426,7 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
} else if (metaWin.is_attached_dialog()) {
|
} else if (metaWin.is_attached_dialog()) {
|
||||||
let parent = metaWin.get_transient_for();
|
let parent = metaWin.get_transient_for();
|
||||||
while (parent.is_attached_dialog())
|
while (parent.is_attached_dialog())
|
||||||
parent = parent.get_transient_for();
|
parent = metaWin.get_transient_for();
|
||||||
|
|
||||||
let idx = this._lookupIndex (parent);
|
let idx = this._lookupIndex (parent);
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
@@ -445,13 +455,13 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
this._doRemoveWindow(metaWin);
|
this._doRemoveWindow(metaWin);
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowEnteredMonitor(metaDisplay, monitorIndex, metaWin) {
|
_windowEnteredMonitor(metaScreen, monitorIndex, metaWin) {
|
||||||
if (monitorIndex == this.monitorIndex) {
|
if (monitorIndex == this.monitorIndex) {
|
||||||
this._doAddWindow(metaWin);
|
this._doAddWindow(metaWin);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowLeftMonitor(metaDisplay, monitorIndex, metaWin) {
|
_windowLeftMonitor(metaScreen, monitorIndex, metaWin) {
|
||||||
if (monitorIndex == this.monitorIndex) {
|
if (monitorIndex == this.monitorIndex) {
|
||||||
this._doRemoveWindow(metaWin);
|
this._doRemoveWindow(metaWin);
|
||||||
}
|
}
|
||||||
@@ -477,8 +487,8 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
|
|
||||||
this.metaWorkspace.disconnect(this._windowAddedId);
|
this.metaWorkspace.disconnect(this._windowAddedId);
|
||||||
this.metaWorkspace.disconnect(this._windowRemovedId);
|
this.metaWorkspace.disconnect(this._windowRemovedId);
|
||||||
global.display.disconnect(this._windowEnteredMonitorId);
|
global.screen.disconnect(this._windowEnteredMonitorId);
|
||||||
global.display.disconnect(this._windowLeftMonitorId);
|
global.screen.disconnect(this._windowLeftMonitorId);
|
||||||
|
|
||||||
for (let i = 0; i < this._allWindows.length; i++)
|
for (let i = 0; i < this._allWindows.length; i++)
|
||||||
this._allWindows[i].disconnect(this._minimizedChangedIds[i]);
|
this._allWindows[i].disconnect(this._minimizedChangedIds[i]);
|
||||||
@@ -525,9 +535,6 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
clone.connect('drag-end', () => {
|
clone.connect('drag-end', () => {
|
||||||
Main.overview.endWindowDrag(clone.metaWindow);
|
Main.overview.endWindowDrag(clone.metaWindow);
|
||||||
});
|
});
|
||||||
clone.actor.connect('destroy', () => {
|
|
||||||
this._removeWindowClone(clone.metaWindow);
|
|
||||||
});
|
|
||||||
this._contents.add_actor(clone.actor);
|
this._contents.add_actor(clone.actor);
|
||||||
|
|
||||||
if (this._windows.length == 0)
|
if (this._windows.length == 0)
|
||||||
@@ -540,24 +547,12 @@ var WorkspaceThumbnail = new Lang.Class({
|
|||||||
return clone;
|
return clone;
|
||||||
},
|
},
|
||||||
|
|
||||||
_removeWindowClone(metaWin) {
|
|
||||||
// find the position of the window in our list
|
|
||||||
let index = this._lookupIndex (metaWin);
|
|
||||||
|
|
||||||
if (index == -1)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return this._windows.splice(index, 1).pop();
|
|
||||||
},
|
|
||||||
|
|
||||||
activate(time) {
|
activate(time) {
|
||||||
if (this.state > ThumbnailState.NORMAL)
|
if (this.state > ThumbnailState.NORMAL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// a click on the already current workspace should go back to the main view
|
// a click on the already current workspace should go back to the main view
|
||||||
let workspaceManager = global.workspace_manager;
|
if (this.metaWorkspace == global.screen.get_active_workspace())
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
if (this.metaWorkspace == activeWorkspace)
|
|
||||||
Main.overview.hide();
|
Main.overview.hide();
|
||||||
else
|
else
|
||||||
this.metaWorkspace.activate(time);
|
this.metaWorkspace.activate(time);
|
||||||
@@ -678,24 +673,13 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
this._settings.connect('changed::dynamic-workspaces',
|
this._settings.connect('changed::dynamic-workspaces',
|
||||||
this._updateSwitcherVisibility.bind(this));
|
this._updateSwitcherVisibility.bind(this));
|
||||||
|
|
||||||
Main.layoutManager.connect('monitors-changed', () => {
|
Main.layoutManager.connect('monitors-changed', this._rebuildThumbnails.bind(this));
|
||||||
this._destroyThumbnails();
|
|
||||||
if (Main.overview.visible)
|
|
||||||
this._createThumbnails();
|
|
||||||
});
|
|
||||||
|
|
||||||
this._switchWorkspaceNotifyId = 0;
|
|
||||||
this._nWorkspacesNotifyId = 0;
|
|
||||||
this._syncStackingId = 0;
|
|
||||||
this._workareasChangedId = 0;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateSwitcherVisibility() {
|
_updateSwitcherVisibility() {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
this.actor.visible =
|
this.actor.visible =
|
||||||
this._settings.get_boolean('dynamic-workspaces') ||
|
this._settings.get_boolean('dynamic-workspaces') ||
|
||||||
workspaceManager.n_workspaces > 1;
|
global.screen.n_workspaces > 1;
|
||||||
},
|
},
|
||||||
|
|
||||||
_activateThumbnailAtPoint(stageX, stageY, time) {
|
_activateThumbnailAtPoint(stageX, stageY, time) {
|
||||||
@@ -853,8 +837,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
// to open its first window within some time, as tracked by Shell.WindowTracker.
|
// to open its first window within some time, as tracked by Shell.WindowTracker.
|
||||||
// Here, we only add a very brief timeout to avoid the _immediate_ removal of the
|
// Here, we only add a very brief timeout to avoid the _immediate_ removal of the
|
||||||
// workspace while we wait for the startup sequence to load.
|
// workspace while we wait for the startup sequence to load.
|
||||||
let workspaceManager = global.workspace_manager;
|
Main.wm.keepWorkspaceAlive(global.screen.get_workspace_by_index(newWorkspaceIndex),
|
||||||
Main.wm.keepWorkspaceAlive(workspaceManager.get_workspace_by_index(newWorkspaceIndex),
|
|
||||||
WORKSPACE_KEEP_ALIVE_TIME);
|
WORKSPACE_KEEP_ALIVE_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -873,18 +856,19 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_createThumbnails() {
|
_createThumbnails() {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
this._switchWorkspaceNotifyId =
|
this._switchWorkspaceNotifyId =
|
||||||
global.window_manager.connect('switch-workspace',
|
global.window_manager.connect('switch-workspace',
|
||||||
this._activeWorkspaceChanged.bind(this));
|
this._activeWorkspaceChanged.bind(this));
|
||||||
this._nWorkspacesNotifyId =
|
this._nWorkspacesNotifyId =
|
||||||
workspaceManager.connect('notify::n-workspaces',
|
global.screen.connect('notify::n-workspaces',
|
||||||
this._workspacesChanged.bind(this));
|
this._workspacesChanged.bind(this));
|
||||||
this._syncStackingId =
|
this._syncStackingId =
|
||||||
Main.overview.connect('windows-restacked',
|
Main.overview.connect('windows-restacked',
|
||||||
this._syncStacking.bind(this));
|
this._syncStacking.bind(this));
|
||||||
|
|
||||||
|
this._workareasChangedId =
|
||||||
|
global.screen.connect('workareas-changed', this._rebuildThumbnails.bind(this));
|
||||||
|
|
||||||
this._targetScale = 0;
|
this._targetScale = 0;
|
||||||
this._scale = 0;
|
this._scale = 0;
|
||||||
this._pendingScaleUpdate = false;
|
this._pendingScaleUpdate = false;
|
||||||
@@ -894,7 +878,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
for (let key in ThumbnailState)
|
for (let key in ThumbnailState)
|
||||||
this._stateCounts[ThumbnailState[key]] = 0;
|
this._stateCounts[ThumbnailState[key]] = 0;
|
||||||
|
|
||||||
this.addThumbnails(0, workspaceManager.n_workspaces);
|
this.addThumbnails(0, global.screen.n_workspaces);
|
||||||
|
|
||||||
this._updateSwitcherVisibility();
|
this._updateSwitcherVisibility();
|
||||||
},
|
},
|
||||||
@@ -908,8 +892,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
this._switchWorkspaceNotifyId = 0;
|
this._switchWorkspaceNotifyId = 0;
|
||||||
}
|
}
|
||||||
if (this._nWorkspacesNotifyId > 0) {
|
if (this._nWorkspacesNotifyId > 0) {
|
||||||
let workspaceManager = global.workspace_manager;
|
global.screen.disconnect(this._nWorkspacesNotifyId);
|
||||||
workspaceManager.disconnect(this._nWorkspacesNotifyId);
|
|
||||||
this._nWorkspacesNotifyId = 0;
|
this._nWorkspacesNotifyId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -918,19 +901,30 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
this._syncStackingId = 0;
|
this._syncStackingId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._workareasChangedId > 0) {
|
||||||
|
global.screen.disconnect(this._workareasChangedId);
|
||||||
|
this._workareasChangedId = 0;
|
||||||
|
}
|
||||||
|
|
||||||
for (let w = 0; w < this._thumbnails.length; w++)
|
for (let w = 0; w < this._thumbnails.length; w++)
|
||||||
this._thumbnails[w].destroy();
|
this._thumbnails[w].destroy();
|
||||||
this._thumbnails = [];
|
this._thumbnails = [];
|
||||||
this._porthole = null;
|
this._porthole = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_rebuildThumbnails() {
|
||||||
|
this._destroyThumbnails();
|
||||||
|
|
||||||
|
if (Main.overview.visible)
|
||||||
|
this._createThumbnails();
|
||||||
|
},
|
||||||
|
|
||||||
_workspacesChanged() {
|
_workspacesChanged() {
|
||||||
let validThumbnails =
|
let validThumbnails =
|
||||||
this._thumbnails.filter(t => t.state <= ThumbnailState.NORMAL);
|
this._thumbnails.filter(t => t.state <= ThumbnailState.NORMAL);
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let oldNumWorkspaces = validThumbnails.length;
|
let oldNumWorkspaces = validThumbnails.length;
|
||||||
let newNumWorkspaces = workspaceManager.n_workspaces;
|
let newNumWorkspaces = global.screen.n_workspaces;
|
||||||
let active = workspaceManager.get_active_workspace_index();
|
let active = global.screen.get_active_workspace_index();
|
||||||
|
|
||||||
if (newNumWorkspaces > oldNumWorkspaces) {
|
if (newNumWorkspaces > oldNumWorkspaces) {
|
||||||
this.addThumbnails(oldNumWorkspaces, newNumWorkspaces - oldNumWorkspaces);
|
this.addThumbnails(oldNumWorkspaces, newNumWorkspaces - oldNumWorkspaces);
|
||||||
@@ -938,7 +932,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
let removedIndex;
|
let removedIndex;
|
||||||
let removedNum = oldNumWorkspaces - newNumWorkspaces;
|
let removedNum = oldNumWorkspaces - newNumWorkspaces;
|
||||||
for (let w = 0; w < oldNumWorkspaces; w++) {
|
for (let w = 0; w < oldNumWorkspaces; w++) {
|
||||||
let metaWorkspace = workspaceManager.get_workspace_by_index(w);
|
let metaWorkspace = global.screen.get_workspace_by_index(w);
|
||||||
if (this._thumbnails[w].metaWorkspace != metaWorkspace) {
|
if (this._thumbnails[w].metaWorkspace != metaWorkspace) {
|
||||||
removedIndex = w;
|
removedIndex = w;
|
||||||
break;
|
break;
|
||||||
@@ -952,12 +946,10 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
addThumbnails(start, count) {
|
addThumbnails(start, count) {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
if (!this._ensurePorthole())
|
if (!this._ensurePorthole())
|
||||||
return;
|
return;
|
||||||
for (let k = start; k < start + count; k++) {
|
for (let k = start; k < start + count; k++) {
|
||||||
let metaWorkspace = workspaceManager.get_workspace_by_index(k);
|
let metaWorkspace = global.screen.get_workspace_by_index(k);
|
||||||
let thumbnail = new WorkspaceThumbnail(metaWorkspace);
|
let thumbnail = new WorkspaceThumbnail(metaWorkspace);
|
||||||
thumbnail.setPorthole(this._porthole.x, this._porthole.y,
|
thumbnail.setPorthole(this._porthole.x, this._porthole.y,
|
||||||
this._porthole.width, this._porthole.height);
|
this._porthole.width, this._porthole.height);
|
||||||
@@ -1143,11 +1135,10 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let themeNode = this.actor.get_theme_node();
|
let themeNode = this.actor.get_theme_node();
|
||||||
|
|
||||||
let spacing = themeNode.get_length('spacing');
|
let spacing = themeNode.get_length('spacing');
|
||||||
let nWorkspaces = workspaceManager.n_workspaces;
|
let nWorkspaces = global.screen.n_workspaces;
|
||||||
let totalSpacing = (nWorkspaces - 1) * spacing;
|
let totalSpacing = (nWorkspaces - 1) * spacing;
|
||||||
|
|
||||||
alloc.min_size = totalSpacing;
|
alloc.min_size = totalSpacing;
|
||||||
@@ -1161,11 +1152,10 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let themeNode = this.actor.get_theme_node();
|
let themeNode = this.actor.get_theme_node();
|
||||||
|
|
||||||
let spacing = this.actor.get_theme_node().get_length('spacing');
|
let spacing = this.actor.get_theme_node().get_length('spacing');
|
||||||
let nWorkspaces = workspaceManager.n_workspaces;
|
let nWorkspaces = global.screen.n_workspaces;
|
||||||
let totalSpacing = (nWorkspaces - 1) * spacing;
|
let totalSpacing = (nWorkspaces - 1) * spacing;
|
||||||
|
|
||||||
let avail = forHeight - totalSpacing;
|
let avail = forHeight - totalSpacing;
|
||||||
@@ -1196,7 +1186,6 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
if (this._thumbnails.length == 0) // not visible
|
if (this._thumbnails.length == 0) // not visible
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let themeNode = this.actor.get_theme_node();
|
let themeNode = this.actor.get_theme_node();
|
||||||
|
|
||||||
let portholeWidth = this._porthole.width;
|
let portholeWidth = this._porthole.width;
|
||||||
@@ -1204,7 +1193,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
let spacing = themeNode.get_length('spacing');
|
let spacing = themeNode.get_length('spacing');
|
||||||
|
|
||||||
// Compute the scale we'll need once everything is updated
|
// Compute the scale we'll need once everything is updated
|
||||||
let nWorkspaces = workspaceManager.n_workspaces;
|
let nWorkspaces = global.screen.n_workspaces;
|
||||||
let totalSpacing = (nWorkspaces - 1) * spacing;
|
let totalSpacing = (nWorkspaces - 1) * spacing;
|
||||||
let avail = (box.y2 - box.y1) - totalSpacing;
|
let avail = (box.y2 - box.y1) - totalSpacing;
|
||||||
|
|
||||||
@@ -1238,8 +1227,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
let indicatorY1 = this._indicatorY;
|
let indicatorY1 = this._indicatorY;
|
||||||
let indicatorY2;
|
let indicatorY2;
|
||||||
// when not animating, the workspace position overrides this._indicatorY
|
// when not animating, the workspace position overrides this._indicatorY
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
let indicatorWorkspace = !this._animatingIndicator ? global.screen.get_active_workspace() : null;
|
||||||
let indicatorWorkspace = !this._animatingIndicator ? activeWorkspace : null;
|
|
||||||
let indicatorThemeNode = this._indicator.get_theme_node();
|
let indicatorThemeNode = this._indicator.get_theme_node();
|
||||||
|
|
||||||
let indicatorTopFullBorder = indicatorThemeNode.get_padding(St.Side.TOP) + indicatorThemeNode.get_border_width(St.Side.TOP);
|
let indicatorTopFullBorder = indicatorThemeNode.get_padding(St.Side.TOP) + indicatorThemeNode.get_border_width(St.Side.TOP);
|
||||||
@@ -1330,8 +1318,7 @@ var ThumbnailsBox = new Lang.Class({
|
|||||||
|
|
||||||
_activeWorkspaceChanged(wm, from, to, direction) {
|
_activeWorkspaceChanged(wm, from, to, direction) {
|
||||||
let thumbnail;
|
let thumbnail;
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWorkspace = global.screen.get_active_workspace();
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
for (let i = 0; i < this._thumbnails.length; i++) {
|
for (let i = 0; i < this._thumbnails.length; i++) {
|
||||||
if (this._thumbnails[i].metaWorkspace == activeWorkspace) {
|
if (this._thumbnails[i].metaWorkspace == activeWorkspace) {
|
||||||
thumbnail = this._thumbnails[i];
|
thumbnail = this._thumbnails[i];
|
||||||
|
@@ -91,29 +91,25 @@ var WorkspacesView = new Lang.Class({
|
|||||||
Extends: WorkspacesViewBase,
|
Extends: WorkspacesViewBase,
|
||||||
|
|
||||||
_init(monitorIndex) {
|
_init(monitorIndex) {
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
|
|
||||||
this.parent(monitorIndex);
|
this.parent(monitorIndex);
|
||||||
|
|
||||||
this._animating = false; // tweening
|
this._animating = false; // tweening
|
||||||
this._scrolling = false; // swipe-scrolling
|
this._scrolling = false; // swipe-scrolling
|
||||||
this._animatingScroll = false; // programatically updating the adjustment
|
this._animatingScroll = false; // programatically updating the adjustment
|
||||||
|
|
||||||
let activeWorkspaceIndex = workspaceManager.get_active_workspace_index();
|
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
|
||||||
this.scrollAdjustment = new St.Adjustment({ value: activeWorkspaceIndex,
|
this.scrollAdjustment = new St.Adjustment({ value: activeWorkspaceIndex,
|
||||||
lower: 0,
|
lower: 0,
|
||||||
page_increment: 1,
|
page_increment: 1,
|
||||||
page_size: 1,
|
page_size: 1,
|
||||||
step_increment: 0,
|
step_increment: 0,
|
||||||
upper: workspaceManager.n_workspaces });
|
upper: global.screen.n_workspaces });
|
||||||
this.scrollAdjustment.connect('notify::value',
|
this.scrollAdjustment.connect('notify::value',
|
||||||
this._onScroll.bind(this));
|
this._onScroll.bind(this));
|
||||||
|
|
||||||
this._workspaces = [];
|
this._workspaces = [];
|
||||||
this._updateWorkspaces();
|
this._updateWorkspaces();
|
||||||
this._updateWorkspacesId =
|
this._updateWorkspacesId = global.screen.connect('notify::n-workspaces', this._updateWorkspaces.bind(this));
|
||||||
workspaceManager.connect('notify::n-workspaces',
|
|
||||||
this._updateWorkspaces.bind(this));
|
|
||||||
|
|
||||||
this._overviewShownId =
|
this._overviewShownId =
|
||||||
Main.overview.connect('shown', () => {
|
Main.overview.connect('shown', () => {
|
||||||
@@ -142,8 +138,7 @@ var WorkspacesView = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getActiveWorkspace() {
|
getActiveWorkspace() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let active = global.screen.get_active_workspace_index();
|
||||||
let active = workspaceManager.get_active_workspace_index();
|
|
||||||
return this._workspaces[active];
|
return this._workspaces[active];
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -174,8 +169,7 @@ var WorkspacesView = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_scrollToActive() {
|
_scrollToActive() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let active = global.screen.get_active_workspace_index();
|
||||||
let active = workspaceManager.get_active_workspace_index();
|
|
||||||
|
|
||||||
this._updateWorkspaceActors(true);
|
this._updateWorkspaceActors(true);
|
||||||
this._updateScrollAdjustment(active);
|
this._updateScrollAdjustment(active);
|
||||||
@@ -184,8 +178,7 @@ var WorkspacesView = new Lang.Class({
|
|||||||
// Update workspace actors parameters
|
// Update workspace actors parameters
|
||||||
// @showAnimation: iff %true, transition between states
|
// @showAnimation: iff %true, transition between states
|
||||||
_updateWorkspaceActors(showAnimation) {
|
_updateWorkspaceActors(showAnimation) {
|
||||||
let workspaceManager = global.workspace_manager;
|
let active = global.screen.get_active_workspace_index();
|
||||||
let active = workspaceManager.get_active_workspace_index();
|
|
||||||
|
|
||||||
this._animating = showAnimation;
|
this._animating = showAnimation;
|
||||||
|
|
||||||
@@ -221,8 +214,7 @@ var WorkspacesView = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateVisibility() {
|
_updateVisibility() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let active = global.screen.get_active_workspace_index();
|
||||||
let active = workspaceManager.get_active_workspace_index();
|
|
||||||
|
|
||||||
for (let w = 0; w < this._workspaces.length; w++) {
|
for (let w = 0; w < this._workspaces.length; w++) {
|
||||||
let workspace = this._workspaces[w];
|
let workspace = this._workspaces[w];
|
||||||
@@ -254,14 +246,13 @@ var WorkspacesView = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateWorkspaces() {
|
_updateWorkspaces() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let newNumWorkspaces = global.screen.n_workspaces;
|
||||||
let newNumWorkspaces = workspaceManager.n_workspaces;
|
|
||||||
|
|
||||||
this.scrollAdjustment.upper = newNumWorkspaces;
|
this.scrollAdjustment.upper = newNumWorkspaces;
|
||||||
|
|
||||||
let needsUpdate = false;
|
let needsUpdate = false;
|
||||||
for (let j = 0; j < newNumWorkspaces; j++) {
|
for (let j = 0; j < newNumWorkspaces; j++) {
|
||||||
let metaWorkspace = workspaceManager.get_workspace_by_index(j);
|
let metaWorkspace = global.screen.get_workspace_by_index(j);
|
||||||
let workspace;
|
let workspace;
|
||||||
|
|
||||||
if (j >= this._workspaces.length) { /* added */
|
if (j >= this._workspaces.length) { /* added */
|
||||||
@@ -299,8 +290,7 @@ var WorkspacesView = new Lang.Class({
|
|||||||
this.scrollAdjustment.run_dispose();
|
this.scrollAdjustment.run_dispose();
|
||||||
Main.overview.disconnect(this._overviewShownId);
|
Main.overview.disconnect(this._overviewShownId);
|
||||||
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
|
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
|
||||||
let workspaceManager = global.workspace_manager;
|
global.screen.disconnect(this._updateWorkspacesId);
|
||||||
workspaceManager.disconnect(this._updateWorkspacesId);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
startSwipeScroll() {
|
startSwipeScroll() {
|
||||||
@@ -321,8 +311,7 @@ var WorkspacesView = new Lang.Class({
|
|||||||
if (this._animatingScroll)
|
if (this._animatingScroll)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let active = global.screen.get_active_workspace_index();
|
||||||
let active = workspaceManager.get_active_workspace_index();
|
|
||||||
let current = Math.round(adj.value);
|
let current = Math.round(adj.value);
|
||||||
|
|
||||||
if (active != current) {
|
if (active != current) {
|
||||||
@@ -604,7 +593,7 @@ var WorkspacesDisplay = new Lang.Class({
|
|||||||
_getMonitorIndexForEvent(event) {
|
_getMonitorIndexForEvent(event) {
|
||||||
let [x, y] = event.get_coords();
|
let [x, y] = event.get_coords();
|
||||||
let rect = new Meta.Rectangle({ x: x, y: y, width: 1, height: 1 });
|
let rect = new Meta.Rectangle({ x: x, y: y, width: 1, height: 1 });
|
||||||
return global.display.get_monitor_index_for_rect(rect);
|
return global.screen.get_monitor_index_for_rect(rect);
|
||||||
},
|
},
|
||||||
|
|
||||||
_getPrimaryView() {
|
_getPrimaryView() {
|
||||||
@@ -690,8 +679,7 @@ var WorkspacesDisplay = new Lang.Class({
|
|||||||
this._getMonitorIndexForEvent(event) != this._primaryIndex)
|
this._getMonitorIndexForEvent(event) != this._primaryIndex)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWs = global.screen.get_active_workspace();
|
||||||
let activeWs = workspaceManager.get_active_workspace();
|
|
||||||
let ws;
|
let ws;
|
||||||
switch (event.get_scroll_direction()) {
|
switch (event.get_scroll_direction()) {
|
||||||
case Clutter.ScrollDirection.UP:
|
case Clutter.ScrollDirection.UP:
|
||||||
@@ -710,8 +698,7 @@ var WorkspacesDisplay = new Lang.Class({
|
|||||||
_onKeyPressEvent(actor, event) {
|
_onKeyPressEvent(actor, event) {
|
||||||
if (!this.actor.mapped)
|
if (!this.actor.mapped)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
let workspaceManager = global.workspace_manager;
|
let activeWs = global.screen.get_active_workspace();
|
||||||
let activeWs = workspaceManager.get_active_workspace();
|
|
||||||
let ws;
|
let ws;
|
||||||
switch (event.get_key_symbol()) {
|
switch (event.get_key_symbol()) {
|
||||||
case Clutter.KEY_Page_Up:
|
case Clutter.KEY_Page_Up:
|
||||||
|
37
meson.build
37
meson.build
@@ -1,12 +1,12 @@
|
|||||||
project('gnome-shell', 'c',
|
project('gnome-shell', 'c',
|
||||||
version: '3.29.91',
|
version: '3.29.1',
|
||||||
meson_version: '>= 0.47.0',
|
meson_version: '>= 0.42.0',
|
||||||
license: 'GPLv2+'
|
license: 'GPLv2+'
|
||||||
)
|
)
|
||||||
|
|
||||||
# We depend on a specific version of the libmutter API. The mutter variants of
|
# We depend on a specific version of the libmutter API. The mutter variants of
|
||||||
# the Cogl and Clutter libraries also use this API version.
|
# the Cogl and Clutter libraries also use this API version.
|
||||||
mutter_api_version = '3'
|
mutter_api_version = '2'
|
||||||
|
|
||||||
clutter_pc = 'mutter-clutter-' + mutter_api_version
|
clutter_pc = 'mutter-clutter-' + mutter_api_version
|
||||||
cogl_pc = 'mutter-cogl-' + mutter_api_version
|
cogl_pc = 'mutter-cogl-' + mutter_api_version
|
||||||
@@ -23,9 +23,9 @@ gi_req = '>= 1.49.1'
|
|||||||
gjs_req = '>= 1.47.0'
|
gjs_req = '>= 1.47.0'
|
||||||
gtk_req = '>= 3.15.0'
|
gtk_req = '>= 3.15.0'
|
||||||
json_glib_req = '>= 0.13.2'
|
json_glib_req = '>= 0.13.2'
|
||||||
mutter_req = '>= 3.29.91'
|
mutter_req = '>= 3.29.1'
|
||||||
polkit_req = '>= 0.100'
|
polkit_req = '>= 0.100'
|
||||||
schemas_req = '>= 3.27.90'
|
schemas_req = '>= 3.21.3'
|
||||||
startup_req = '>= 0.11'
|
startup_req = '>= 0.11'
|
||||||
ibus_req = '>= 1.5.2'
|
ibus_req = '>= 1.5.2'
|
||||||
|
|
||||||
@@ -44,12 +44,10 @@ datadir = join_paths(prefix, get_option('datadir'))
|
|||||||
libdir = join_paths(prefix, get_option('libdir'))
|
libdir = join_paths(prefix, get_option('libdir'))
|
||||||
libexecdir = join_paths(prefix, get_option('libexecdir'))
|
libexecdir = join_paths(prefix, get_option('libexecdir'))
|
||||||
mandir = join_paths(prefix, get_option('mandir'))
|
mandir = join_paths(prefix, get_option('mandir'))
|
||||||
sysconfdir = join_paths(prefix, get_option('sysconfdir'))
|
|
||||||
|
|
||||||
pkgdatadir = join_paths(datadir, meson.project_name())
|
pkgdatadir = join_paths(datadir, meson.project_name())
|
||||||
pkglibdir = join_paths(libdir, meson.project_name())
|
pkglibdir = join_paths(libdir, meson.project_name())
|
||||||
|
|
||||||
autostartdir = join_paths(sysconfdir, 'xdg', 'autostart')
|
|
||||||
convertdir = join_paths(datadir, 'GConf', 'gsettings')
|
convertdir = join_paths(datadir, 'GConf', 'gsettings')
|
||||||
desktopdir = join_paths(datadir, 'applications')
|
desktopdir = join_paths(datadir, 'applications')
|
||||||
ifacedir = join_paths(datadir, 'dbus-1', 'interfaces')
|
ifacedir = join_paths(datadir, 'dbus-1', 'interfaces')
|
||||||
@@ -61,13 +59,6 @@ servicedir = join_paths(datadir, 'dbus-1', 'services')
|
|||||||
|
|
||||||
plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir)
|
plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir)
|
||||||
|
|
||||||
# XXX: Once https://github.com/systemd/systemd/issues/9595 is fixed and we can
|
|
||||||
# depend on this version, replace with something like:
|
|
||||||
# systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir',
|
|
||||||
# define_variable: ['prefix', prefix])
|
|
||||||
# and uncomment systemd_dep below
|
|
||||||
systemduserunitdir = join_paths(prefix, 'lib', 'systemd', 'user')
|
|
||||||
|
|
||||||
keybindings_dep = dependency('gnome-keybindings', required: false)
|
keybindings_dep = dependency('gnome-keybindings', required: false)
|
||||||
if keybindings_dep.found()
|
if keybindings_dep.found()
|
||||||
keysdir = keybindings_dep.get_pkgconfig_variable('keysdir')
|
keysdir = keybindings_dep.get_pkgconfig_variable('keysdir')
|
||||||
@@ -126,12 +117,10 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('systemd')
|
if get_option('systemd')
|
||||||
libsystemd_dep = dependency('libsystemd')
|
systemd_dep = dependency('libsystemd')
|
||||||
# XXX: see systemduserunitdir
|
have_systemd = systemd_dep.found()
|
||||||
# systemd_dep = dependency('systemd')
|
|
||||||
have_systemd = true
|
|
||||||
else
|
else
|
||||||
libsystemd_dep = []
|
systemd_dep = []
|
||||||
have_systemd = false
|
have_systemd = false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -163,11 +152,6 @@ cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
|
|||||||
cdata.set('HAVE_NETWORKMANAGER', have_networkmanager)
|
cdata.set('HAVE_NETWORKMANAGER', have_networkmanager)
|
||||||
cdata.set('HAVE_SYSTEMD', have_systemd)
|
cdata.set('HAVE_SYSTEMD', have_systemd)
|
||||||
|
|
||||||
# New API added in glib-2.57.2
|
|
||||||
cdata.set('HAVE_GIO_DESKTOP_LAUNCH_URIS_WITH_FDS',
|
|
||||||
cc.has_function('g_desktop_app_info_launch_uris_as_manager_with_fds',
|
|
||||||
dependencies : gio_dep)
|
|
||||||
)
|
|
||||||
cdata.set('HAVE_FDWALK', cc.has_function('fdwalk'))
|
cdata.set('HAVE_FDWALK', cc.has_function('fdwalk'))
|
||||||
cdata.set('HAVE_MALLINFO', cc.has_function('mallinfo'))
|
cdata.set('HAVE_MALLINFO', cc.has_function('mallinfo'))
|
||||||
cdata.set('HAVE_SYS_RESOURCE_H', cc.has_header('sys/resource.h'))
|
cdata.set('HAVE_SYS_RESOURCE_H', cc.has_header('sys/resource.h'))
|
||||||
@@ -175,10 +159,6 @@ cdata.set('HAVE__NL_TIME_FIRST_WEEKDAY',
|
|||||||
cc.has_header_symbol('langinfo.h', '_NL_TIME_FIRST_WEEKDAY')
|
cc.has_header_symbol('langinfo.h', '_NL_TIME_FIRST_WEEKDAY')
|
||||||
)
|
)
|
||||||
|
|
||||||
cdata.set('HAVE_FDWALK',
|
|
||||||
cc.has_function('fdwalk')
|
|
||||||
)
|
|
||||||
|
|
||||||
config_h = configure_file(
|
config_h = configure_file(
|
||||||
input: 'config.h.meson',
|
input: 'config.h.meson',
|
||||||
output: 'config.h',
|
output: 'config.h',
|
||||||
@@ -205,7 +185,6 @@ subdir('src')
|
|||||||
subdir('po')
|
subdir('po')
|
||||||
subdir('data')
|
subdir('data')
|
||||||
subdir('tests')
|
subdir('tests')
|
||||||
subdir('tools')
|
|
||||||
|
|
||||||
if get_option('gtk_doc')
|
if get_option('gtk_doc')
|
||||||
subdir('docs/reference')
|
subdir('docs/reference')
|
||||||
|
@@ -40,7 +40,6 @@ js/ui/messageList.js
|
|||||||
js/ui/messageTray.js
|
js/ui/messageTray.js
|
||||||
js/ui/mpris.js
|
js/ui/mpris.js
|
||||||
js/ui/notificationDaemon.js
|
js/ui/notificationDaemon.js
|
||||||
js/ui/osdWindow.js
|
|
||||||
js/ui/overviewControls.js
|
js/ui/overviewControls.js
|
||||||
js/ui/overview.js
|
js/ui/overview.js
|
||||||
js/ui/padOsd.js
|
js/ui/padOsd.js
|
||||||
@@ -59,7 +58,6 @@ js/ui/status/location.js
|
|||||||
js/ui/status/network.js
|
js/ui/status/network.js
|
||||||
js/ui/status/nightLight.js
|
js/ui/status/nightLight.js
|
||||||
js/ui/status/power.js
|
js/ui/status/power.js
|
||||||
js/ui/status/remoteAccess.js
|
|
||||||
js/ui/status/rfkill.js
|
js/ui/status/rfkill.js
|
||||||
js/ui/status/system.js
|
js/ui/status/system.js
|
||||||
js/ui/status/thunderbolt.js
|
js/ui/status/thunderbolt.js
|
||||||
|
265
po/ca.po
265
po/ca.po
@@ -10,7 +10,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: HEAD\n"
|
"Project-Id-Version: HEAD\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"POT-Creation-Date: 2018-08-01 18:08+0000\n"
|
"POT-Creation-Date: 2018-03-10 12:32+0000\n"
|
||||||
"PO-Revision-Date: 2018-03-10 21:24+0100\n"
|
"PO-Revision-Date: 2018-03-10 21:24+0100\n"
|
||||||
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
|
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
|
||||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
||||||
@@ -299,36 +299,36 @@ msgstr ""
|
|||||||
"Si és «true» (cert), només les finestres de l'espai de treball actual es "
|
"Si és «true» (cert), només les finestres de l'espai de treball actual es "
|
||||||
"mostren en el canviador. En cas contrari, es mostren totes les finestres."
|
"mostren en el canviador. En cas contrari, es mostren totes les finestres."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:198
|
#: data/org.gnome.shell.gschema.xml.in:197
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Adjunta el diàleg modal a la finestra pare"
|
msgstr "Adjunta el diàleg modal a la finestra pare"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:199
|
#: data/org.gnome.shell.gschema.xml.in:198
|
||||||
#: data/org.gnome.shell.gschema.xml.in:208
|
#: data/org.gnome.shell.gschema.xml.in:207
|
||||||
#: data/org.gnome.shell.gschema.xml.in:216
|
#: data/org.gnome.shell.gschema.xml.in:215
|
||||||
#: data/org.gnome.shell.gschema.xml.in:224
|
#: data/org.gnome.shell.gschema.xml.in:223
|
||||||
#: data/org.gnome.shell.gschema.xml.in:232
|
#: data/org.gnome.shell.gschema.xml.in:231
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
|
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
|
||||||
"mutter»."
|
"mutter»."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:207
|
#: data/org.gnome.shell.gschema.xml.in:206
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Habilita el mòsaic a les vores en deixar anar les finestres a les vores de "
|
"Habilita el mòsaic a les vores en deixar anar les finestres a les vores de "
|
||||||
"la pantalla"
|
"la pantalla"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:215
|
#: data/org.gnome.shell.gschema.xml.in:214
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Els espais de treball es gestionen dinàmicament"
|
msgstr "Els espais de treball es gestionen dinàmicament"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:223
|
#: data/org.gnome.shell.gschema.xml.in:222
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Només en el monitor principal hi ha espais de treball"
|
msgstr "Només en el monitor principal hi ha espais de treball"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:231
|
#: data/org.gnome.shell.gschema.xml.in:230
|
||||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter "
|
"Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter "
|
||||||
@@ -349,7 +349,7 @@ msgid "There was an error loading the preferences dialog for %s:"
|
|||||||
msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:"
|
msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:"
|
||||||
|
|
||||||
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:153
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
|
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
@@ -369,20 +369,20 @@ msgctxt "button"
|
|||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Entra"
|
msgstr "Entra"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:319
|
#: js/gdm/loginDialog.js:315
|
||||||
msgid "Choose Session"
|
msgid "Choose Session"
|
||||||
msgstr "Trieu la sessió"
|
msgstr "Trieu la sessió"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: js/gdm/loginDialog.js:462
|
#: js/gdm/loginDialog.js:458
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "No esteu llistat?"
|
msgstr "No esteu llistat?"
|
||||||
|
|
||||||
#. Translators: this message is shown below the username entry field
|
#. Translators: this message is shown below the username entry field
|
||||||
#. to clue the user in on how to login to the local network realm
|
#. to clue the user in on how to login to the local network realm
|
||||||
#: js/gdm/loginDialog.js:891
|
#: js/gdm/loginDialog.js:887
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(p. ex. l'usuari o %s)"
|
msgstr "(p. ex. l'usuari o %s)"
|
||||||
@@ -390,12 +390,12 @@ msgstr "(p. ex. l'usuari o %s)"
|
|||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. is not visible here since we only care about phase2 authentication
|
||||||
#. (and don't even care of which one)
|
#. (and don't even care of which one)
|
||||||
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
|
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
|
||||||
#: js/ui/components/networkAgent.js:261
|
#: js/ui/components/networkAgent.js:261
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nom d'usuari:"
|
msgstr "Nom d'usuari:"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:1234
|
#: js/gdm/loginDialog.js:1228
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Finestra d'entrada"
|
msgstr "Finestra d'entrada"
|
||||||
|
|
||||||
@@ -408,7 +408,7 @@ msgstr "Error d'autenticació"
|
|||||||
#. as a cue to display our own message.
|
#. as a cue to display our own message.
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: js/gdm/util.js:485
|
#: js/gdm/util.js:482
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(o passeu el dit)"
|
msgstr "(o passeu el dit)"
|
||||||
|
|
||||||
@@ -649,32 +649,32 @@ msgstr "Freqüent"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Totes"
|
msgstr "Totes"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1890
|
#: js/ui/appDisplay.js:1886
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Finestra nova"
|
msgstr "Finestra nova"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1904
|
#: js/ui/appDisplay.js:1900
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Inicia usant una targeta gràfica dedicada"
|
msgstr "Inicia usant una targeta gràfica dedicada"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
|
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Suprimeix dels preferits"
|
msgstr "Suprimeix dels preferits"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1937
|
#: js/ui/appDisplay.js:1933
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Afegeix als preferits"
|
msgstr "Afegeix als preferits"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1947
|
#: js/ui/appDisplay.js:1943
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostra els detalls"
|
msgstr "Mostra els detalls"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:138
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "S'ha afegit %s als preferits."
|
msgstr "S'ha afegit %s als preferits."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:172
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "S'ha suprimit %s dels preferits."
|
msgstr "S'ha suprimit %s dels preferits."
|
||||||
@@ -695,7 +695,7 @@ msgstr "Auriculars"
|
|||||||
msgid "Headset"
|
msgid "Headset"
|
||||||
msgstr "Auriculars amb micròfon"
|
msgstr "Auriculars amb micròfon"
|
||||||
|
|
||||||
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
|
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
|
||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Micròfon"
|
msgstr "Micròfon"
|
||||||
|
|
||||||
@@ -707,7 +707,7 @@ msgstr "Canvia el fons de l'escriptori…"
|
|||||||
msgid "Display Settings"
|
msgid "Display Settings"
|
||||||
msgstr "Paràmetres de la pantalla"
|
msgstr "Paràmetres de la pantalla"
|
||||||
|
|
||||||
#: js/ui/backgroundMenu.js:22
|
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Paràmetres"
|
msgstr "Paràmetres"
|
||||||
|
|
||||||
@@ -812,35 +812,35 @@ msgctxt "event list time"
|
|||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Tot el dia"
|
msgstr "Tot el dia"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:864
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A %-d %B"
|
msgstr "%A %-d %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:870
|
#: js/ui/calendar.js:868
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A %d %B de %Y"
|
msgstr "%A %d %B de %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1100
|
#: js/ui/calendar.js:1086
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Cap notificació"
|
msgstr "Cap notificació"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1103
|
#: js/ui/calendar.js:1089
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Cap cita"
|
msgstr "Cap cita"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1131
|
#: js/ui/calendar.js:1117
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Neteja-ho tot"
|
msgstr "Neteja-ho tot"
|
||||||
|
|
||||||
#. Translators: %s is an application name
|
#. Translators: %s is an application name
|
||||||
#: js/ui/closeDialog.js:47
|
#: js/ui/closeDialog.js:44
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "«%s» no està responent."
|
msgstr "«%s» no està responent."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:48
|
#: js/ui/closeDialog.js:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -848,11 +848,11 @@ msgstr ""
|
|||||||
"Podeu esperar un moment perquè continuï o podeu forçar-ne la sortida "
|
"Podeu esperar un moment perquè continuï o podeu forçar-ne la sortida "
|
||||||
"completa."
|
"completa."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:64
|
#: js/ui/closeDialog.js:61
|
||||||
msgid "Force Quit"
|
msgid "Force Quit"
|
||||||
msgstr "Força la sortida"
|
msgstr "Força la sortida"
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:67
|
#: js/ui/closeDialog.js:64
|
||||||
msgid "Wait"
|
msgid "Wait"
|
||||||
msgstr "Espera"
|
msgstr "Espera"
|
||||||
|
|
||||||
@@ -869,7 +869,7 @@ msgstr "S'ha desconnectat un dispositiu extern"
|
|||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Obre amb %s"
|
msgstr "Obre amb %s"
|
||||||
|
|
||||||
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
|
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:284
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Contrasenya:"
|
msgstr "Contrasenya:"
|
||||||
|
|
||||||
@@ -906,11 +906,11 @@ msgstr "Contrasenya de la clau privada:"
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servei:"
|
msgstr "Servei:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "La xarxa sense fil requereix autenticació"
|
msgstr "La xarxa sense fil requereix autenticació"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -919,7 +919,7 @@ msgstr ""
|
|||||||
"Per accedir a la xarxa sense fil «%s» calen les contrasenyes o les claus "
|
"Per accedir a la xarxa sense fil «%s» calen les contrasenyes o les claus "
|
||||||
"d'encriptació."
|
"d'encriptació."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticació 802.1X amb fil"
|
msgstr "Autenticació 802.1X amb fil"
|
||||||
|
|
||||||
@@ -927,15 +927,15 @@ msgstr "Autenticació 802.1X amb fil"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Nom de la xarxa: "
|
msgstr "Nom de la xarxa: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticació DSL"
|
msgstr "Autenticació DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Cal que introduïu el codi PIN"
|
msgstr "Cal que introduïu el codi PIN"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
|
msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
|
||||||
|
|
||||||
@@ -943,29 +943,29 @@ msgstr "Cal que introduïu el codi PIN del dispositiu de banda ampla mòbil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Contrasenya de la xarxa de banda ampla mòbil"
|
msgstr "Contrasenya de la xarxa de banda ampla mòbil"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Cal introduir una contrasenya per connectar-vos a «%s»."
|
msgstr "Cal introduir una contrasenya per connectar-vos a «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Gestor de connexions de xarxa"
|
msgstr "Gestor de connexions de xarxa"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:48
|
#: js/ui/components/polkitAgent.js:43
|
||||||
msgid "Authentication Required"
|
msgid "Authentication Required"
|
||||||
msgstr "Cal autenticació"
|
msgstr "Cal autenticació"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:76
|
#: js/ui/components/polkitAgent.js:71
|
||||||
msgid "Administrator"
|
msgid "Administrator"
|
||||||
msgstr "Administrador"
|
msgstr "Administrador"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:156
|
#: js/ui/components/polkitAgent.js:151
|
||||||
msgid "Authenticate"
|
msgid "Authenticate"
|
||||||
msgstr "Autentica"
|
msgstr "Autentica"
|
||||||
|
|
||||||
@@ -973,7 +973,7 @@ msgstr "Autentica"
|
|||||||
#. * requested authentication was not gained; this can happen
|
#. * requested authentication was not gained; this can happen
|
||||||
#. * because of an authentication error (like invalid password),
|
#. * because of an authentication error (like invalid password),
|
||||||
#. * for instance.
|
#. * for instance.
|
||||||
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
|
#: js/ui/components/polkitAgent.js:270 js/ui/shellMountOperation.js:327
|
||||||
msgid "Sorry, that didn’t work. Please try again."
|
msgid "Sorry, that didn’t work. Please try again."
|
||||||
msgstr "No ha funcionat. Torneu-ho a provar."
|
msgstr "No ha funcionat. Torneu-ho a provar."
|
||||||
|
|
||||||
@@ -1021,7 +1021,7 @@ msgstr "Afegeix rellotges del món…"
|
|||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Rellotges del món"
|
msgstr "Rellotges del món"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:227
|
#: js/ui/dateMenu.js:225
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "El temps"
|
msgstr "El temps"
|
||||||
|
|
||||||
@@ -1029,7 +1029,7 @@ msgstr "El temps"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:291
|
#: js/ui/dateMenu.js:289
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s tot el dia."
|
msgstr "%s tot el dia."
|
||||||
@@ -1038,7 +1038,7 @@ msgstr "%s tot el dia."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:297
|
#: js/ui/dateMenu.js:295
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, llavors %s més tard."
|
msgstr "%s, llavors %s més tard."
|
||||||
@@ -1047,30 +1047,30 @@ msgstr "%s, llavors %s més tard."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:303
|
#: js/ui/dateMenu.js:301
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, llavors %s, seguit per %s més tard."
|
msgstr "%s, llavors %s, seguit per %s més tard."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:314
|
#: js/ui/dateMenu.js:312
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Trieu una ubicació…"
|
msgstr "Trieu una ubicació…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:317
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "S'està carregant…"
|
msgstr "S'està carregant…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:321
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Sensació tèrmica de %s."
|
msgstr "Sensació tèrmica de %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:326
|
#: js/ui/dateMenu.js:324
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Vés en línia per a informació sobre el temps"
|
msgstr "Vés en línia per a informació sobre el temps"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:328
|
#: js/ui/dateMenu.js:326
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "La informació sobre el temps no està disponible"
|
msgstr "La informació sobre el temps no està disponible"
|
||||||
|
|
||||||
@@ -1308,13 +1308,13 @@ msgid "Leave On"
|
|||||||
msgstr "Deixa-ho actiu"
|
msgstr "Deixa-ho actiu"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:1294
|
#: js/ui/status/network.js:1281
|
||||||
msgid "Turn On"
|
msgid "Turn On"
|
||||||
msgstr "Activa"
|
msgstr "Activa"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
||||||
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
|
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
|
||||||
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
#: js/ui/status/rfkill.js:117
|
#: js/ui/status/rfkill.js:117
|
||||||
msgid "Turn Off"
|
msgid "Turn Off"
|
||||||
@@ -1376,7 +1376,7 @@ msgstr "Mostra el codi font"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Pàgina web"
|
msgstr "Pàgina web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1495
|
#: js/ui/messageTray.js:1493
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Informació de l'ordinador"
|
msgstr "Informació de l'ordinador"
|
||||||
|
|
||||||
@@ -1388,10 +1388,6 @@ msgstr "Artista desconegut"
|
|||||||
msgid "Unknown title"
|
msgid "Unknown title"
|
||||||
msgstr "Títol desconegut"
|
msgstr "Títol desconegut"
|
||||||
|
|
||||||
#: js/ui/osdWindow.js:32 js/ui/status/volume.js:204
|
|
||||||
msgid "Volume"
|
|
||||||
msgstr "Volum"
|
|
||||||
|
|
||||||
#: js/ui/overview.js:83
|
#: js/ui/overview.js:83
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Desfés"
|
msgstr "Desfés"
|
||||||
@@ -1434,42 +1430,42 @@ msgstr "Assigna la pulsació de tecla"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Fet"
|
msgstr "Fet"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:742
|
#: js/ui/padOsd.js:740
|
||||||
msgid "Edit…"
|
msgid "Edit…"
|
||||||
msgstr "Edita…"
|
msgstr "Edita…"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
|
#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Cap"
|
msgstr "Cap"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:843
|
#: js/ui/padOsd.js:841
|
||||||
msgid "Press a button to configure"
|
msgid "Press a button to configure"
|
||||||
msgstr "Premeu un botó per a configurar"
|
msgstr "Premeu un botó per a configurar"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:844
|
#: js/ui/padOsd.js:842
|
||||||
msgid "Press Esc to exit"
|
msgid "Press Esc to exit"
|
||||||
msgstr "Premeu Esc per sortir"
|
msgstr "Premeu Esc per sortir"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:847
|
#: js/ui/padOsd.js:845
|
||||||
msgid "Press any key to exit"
|
msgid "Press any key to exit"
|
||||||
msgstr "Premeu qualsevol tecla per sortir"
|
msgstr "Premeu qualsevol tecla per sortir"
|
||||||
|
|
||||||
#: js/ui/panel.js:356
|
#: js/ui/panel.js:355
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Surt"
|
msgstr "Surt"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: js/ui/panel.js:412
|
#: js/ui/panel.js:411
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Activitats"
|
msgstr "Activitats"
|
||||||
|
|
||||||
#: js/ui/panel.js:693
|
#: js/ui/panel.js:692
|
||||||
msgctxt "System menu in the top bar"
|
msgctxt "System menu in the top bar"
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: js/ui/panel.js:816
|
#: js/ui/panel.js:811
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barra superior"
|
msgstr "Barra superior"
|
||||||
|
|
||||||
@@ -1478,23 +1474,23 @@ msgstr "Barra superior"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: js/ui/popupMenu.js:300
|
#: js/ui/popupMenu.js:291
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:74
|
#: js/ui/runDialog.js:70
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Introduïu una ordre"
|
msgstr "Introduïu una ordre"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
|
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Tanca"
|
msgstr "Tanca"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:278
|
#: js/ui/runDialog.js:273
|
||||||
msgid "Restart is not available on Wayland"
|
msgid "Restart is not available on Wayland"
|
||||||
msgstr "El reinici no està disponible en Wayland"
|
msgstr "El reinici no està disponible en Wayland"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:283
|
#: js/ui/runDialog.js:278
|
||||||
msgid "Restarting…"
|
msgid "Restarting…"
|
||||||
msgstr "S'està reiniciant…"
|
msgstr "S'està reiniciant…"
|
||||||
|
|
||||||
@@ -1518,7 +1514,7 @@ msgid_plural "%d new notifications"
|
|||||||
msgstr[0] "%d notificació nova"
|
msgstr[0] "%d notificació nova"
|
||||||
msgstr[1] "%d notificacions noves"
|
msgstr[1] "%d notificacions noves"
|
||||||
|
|
||||||
#: js/ui/screenShield.js:451 js/ui/status/system.js:294
|
#: js/ui/screenShield.js:451 js/ui/status/system.js:283
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Bloqueja"
|
msgstr "Bloqueja"
|
||||||
|
|
||||||
@@ -1701,7 +1697,7 @@ msgid "<unknown>"
|
|||||||
msgstr "<desconegut>"
|
msgstr "<desconegut>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
|
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s apagat"
|
msgstr "%s apagat"
|
||||||
@@ -1728,7 +1724,7 @@ msgid "%s Disconnecting"
|
|||||||
msgstr "%s s'està desconnectant"
|
msgstr "%s s'està desconnectant"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
|
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s s'està connectant"
|
msgstr "%s s'està connectant"
|
||||||
@@ -1768,7 +1764,7 @@ msgid "Mobile Broadband Settings"
|
|||||||
msgstr "Configuració de la xarxa de banda ampla mòbil"
|
msgstr "Configuració de la xarxa de banda ampla mòbil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s maquinari inhabilitat"
|
msgstr "%s maquinari inhabilitat"
|
||||||
@@ -1824,81 +1820,81 @@ msgstr "Cap xarxa"
|
|||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Utilitza l'interruptor de maquinari per desactivar-la"
|
msgstr "Utilitza l'interruptor de maquinari per desactivar-la"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1186
|
#: js/ui/status/network.js:1173
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Trieu una xarxa"
|
msgstr "Trieu una xarxa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1192
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Paràmetres de la xarxa sense fil"
|
msgstr "Paràmetres de la xarxa sense fil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1311
|
#: js/ui/status/network.js:1298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Hostpot %s actiu"
|
msgstr "Hostpot %s actiu"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1326
|
#: js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s no està connectat"
|
msgstr "%s no està connectat"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1426
|
#: js/ui/status/network.js:1413
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "s'està connectant..."
|
msgstr "s'està connectant..."
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1429
|
#: js/ui/status/network.js:1416
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "cal autenticació"
|
msgstr "cal autenticació"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1431
|
#: js/ui/status/network.js:1418
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "ha fallat la connexió"
|
msgstr "ha fallat la connexió"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1485
|
#: js/ui/status/network.js:1472
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Paràmetres de la VPN"
|
msgstr "Paràmetres de la VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1485
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1495
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN apagada"
|
msgstr "VPN apagada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Paràmetres de xarxa"
|
msgstr "Paràmetres de xarxa"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1601
|
#: js/ui/status/network.js:1588
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s connexió amb fil"
|
msgstr[0] "%s connexió amb fil"
|
||||||
msgstr[1] "%s connexions amb fil"
|
msgstr[1] "%s connexions amb fil"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1605
|
#: js/ui/status/network.js:1592
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s connexió Wifi"
|
msgstr[0] "%s connexió Wifi"
|
||||||
msgstr[1] "%s connexions Wifi"
|
msgstr[1] "%s connexions Wifi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1609
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s connexió mòdem"
|
msgstr[0] "%s connexió mòdem"
|
||||||
msgstr[1] "%s connexions mòdem"
|
msgstr[1] "%s connexions mòdem"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1741
|
#: js/ui/status/network.js:1728
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Ha fallat la connexió"
|
msgstr "Ha fallat la connexió"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1742
|
#: js/ui/status/network.js:1729
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Ha fallat l'activació de la connexió de xarxa"
|
msgstr "Ha fallat l'activació de la connexió de xarxa"
|
||||||
|
|
||||||
@@ -1949,14 +1945,6 @@ msgstr "%d∶%02d per completar la càrrega (%d %%)"
|
|||||||
msgid "%d %%"
|
msgid "%d %%"
|
||||||
msgstr "%d %%"
|
msgstr "%d %%"
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:46
|
|
||||||
msgid "Screen is Being Shared"
|
|
||||||
msgstr "Es comparteix la pantalla"
|
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:48
|
|
||||||
msgid "Turn off"
|
|
||||||
msgstr "Desactiva"
|
|
||||||
|
|
||||||
#. The menu only appears when airplane mode is on, so just
|
#. The menu only appears when airplane mode is on, so just
|
||||||
#. statically build it as if it was on, rather than dynamically
|
#. statically build it as if it was on, rather than dynamically
|
||||||
#. changing the menu contents.
|
#. changing the menu contents.
|
||||||
@@ -1976,48 +1964,51 @@ msgstr "Surt"
|
|||||||
msgid "Account Settings"
|
msgid "Account Settings"
|
||||||
msgstr "Paràmetres del compte"
|
msgstr "Paràmetres del compte"
|
||||||
|
|
||||||
#: js/ui/status/system.js:279
|
#: js/ui/status/system.js:268
|
||||||
msgid "Orientation Lock"
|
msgid "Orientation Lock"
|
||||||
msgstr "Bloqueja l'orientació"
|
msgstr "Bloqueja l'orientació"
|
||||||
|
|
||||||
#: js/ui/status/system.js:305
|
#: js/ui/status/system.js:294
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Atura temporalment"
|
msgstr "Atura temporalment"
|
||||||
|
|
||||||
#: js/ui/status/system.js:315
|
#: js/ui/status/system.js:304
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apaga"
|
msgstr "Apaga"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:298
|
#: js/ui/status/thunderbolt.js:294
|
||||||
msgid "Thunderbolt"
|
msgid "Thunderbolt"
|
||||||
msgstr "Thunderbolt"
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
#. we are done
|
#. we are done
|
||||||
#: js/ui/status/thunderbolt.js:354
|
#: js/ui/status/thunderbolt.js:350
|
||||||
msgid "Unknown Thunderbolt device"
|
msgid "Unknown Thunderbolt device"
|
||||||
msgstr "Dispostiu Thunderbolt desconegut"
|
msgstr "Dispostiu Thunderbolt desconegut"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:355
|
#: js/ui/status/thunderbolt.js:351
|
||||||
msgid ""
|
msgid ""
|
||||||
"New device has been detected while you were away. Please disconnect and "
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
"reconnect the device to start using it."
|
"reconnect the device to start using it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"El nou dispositiu s'ha detectat mentre estàveu absents. Desconnecteu i "
|
"El nou dispositiu s'ha detectat mentre estàveu absents. Desconnecteu i torneu a connectar el dispositiu per a començar a utilitzar-lo."
|
||||||
"torneu a connectar el dispositiu per a començar a utilitzar-lo."
|
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:360
|
#: js/ui/status/thunderbolt.js:356
|
||||||
msgid "Thunderbolt authorization error"
|
msgid "Thunderbolt authorization error"
|
||||||
msgstr "S'ha produït un error d'autorització a Thunderbolt"
|
msgstr "S'ha produït un error d'autorització a Thunderbolt"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:361
|
#: js/ui/status/thunderbolt.js:357
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Could not authorize the Thunderbolt device: %s"
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
msgstr "No s'ha pogut autoritzar el dispositiu Thunderbolt: %s"
|
msgstr "No s'ha pogut autoritzar el dispositiu thunderbolt: %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:135
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "S'ha canviat el volum"
|
msgstr "S'ha canviat el volum"
|
||||||
|
|
||||||
|
#: js/ui/status/volume.js:170
|
||||||
|
msgid "Volume"
|
||||||
|
msgstr "Volum"
|
||||||
|
|
||||||
#. Translators: this is for display mirroring i.e. cloning.
|
#. Translators: this is for display mirroring i.e. cloning.
|
||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
@@ -2067,22 +2058,22 @@ msgstr "Cerca"
|
|||||||
msgid "“%s” is ready"
|
msgid "“%s” is ready"
|
||||||
msgstr "«%s» ja està a punt"
|
msgstr "«%s» ja està a punt"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:74
|
#: js/ui/windowManager.js:72
|
||||||
msgid "Do you want to keep these display settings?"
|
msgid "Do you want to keep these display settings?"
|
||||||
msgstr "Voleu mantenir aquesta configuració de la pantalla?"
|
msgstr "Voleu mantenir aquesta configuració de la pantalla?"
|
||||||
|
|
||||||
#. Translators: this and the following message should be limited in lenght,
|
#. Translators: this and the following message should be limited in lenght,
|
||||||
#. to avoid ellipsizing the labels.
|
#. to avoid ellipsizing the labels.
|
||||||
#.
|
#.
|
||||||
#: js/ui/windowManager.js:86
|
#: js/ui/windowManager.js:84
|
||||||
msgid "Revert Settings"
|
msgid "Revert Settings"
|
||||||
msgstr "Descarta els canvis"
|
msgstr "Descarta els canvis"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:89
|
#: js/ui/windowManager.js:87
|
||||||
msgid "Keep Changes"
|
msgid "Keep Changes"
|
||||||
msgstr "Mantén els canvis"
|
msgstr "Mantén els canvis"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:107
|
#: js/ui/windowManager.js:105
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Settings changes will revert in %d second"
|
msgid "Settings changes will revert in %d second"
|
||||||
msgid_plural "Settings changes will revert in %d seconds"
|
msgid_plural "Settings changes will revert in %d seconds"
|
||||||
@@ -2091,7 +2082,7 @@ msgstr[1] "Es descartaran els canvis d'aquí %d segons"
|
|||||||
|
|
||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#: js/ui/windowManager.js:689
|
#: js/ui/windowManager.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d × %d"
|
msgid "%d × %d"
|
||||||
msgstr "%d × %d"
|
msgstr "%d × %d"
|
||||||
@@ -2144,19 +2135,19 @@ msgstr "Mou a l'espai de treball superior"
|
|||||||
msgid "Move to Workspace Down"
|
msgid "Move to Workspace Down"
|
||||||
msgstr "Mou a l'espai de treball inferior"
|
msgstr "Mou a l'espai de treball inferior"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:139
|
#: js/ui/windowMenu.js:140
|
||||||
msgid "Move to Monitor Up"
|
msgid "Move to Monitor Up"
|
||||||
msgstr "Mou a la pantalla de dalt"
|
msgstr "Mou a la pantalla de dalt"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:148
|
#: js/ui/windowMenu.js:149
|
||||||
msgid "Move to Monitor Down"
|
msgid "Move to Monitor Down"
|
||||||
msgstr "Mou a la pantalla de baix"
|
msgstr "Mou a la pantalla de baix"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:157
|
#: js/ui/windowMenu.js:158
|
||||||
msgid "Move to Monitor Left"
|
msgid "Move to Monitor Left"
|
||||||
msgstr "Mou a la pantalla de l'esquerra"
|
msgstr "Mou a la pantalla de l'esquerra"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:166
|
#: js/ui/windowMenu.js:167
|
||||||
msgid "Move to Monitor Right"
|
msgid "Move to Monitor Right"
|
||||||
msgstr "Mou a la pantalla de la dreta"
|
msgstr "Mou a la pantalla de la dreta"
|
||||||
|
|
||||||
@@ -2169,28 +2160,28 @@ msgstr "Calendari de l'Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:410
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Mostra la versió"
|
msgstr "Mostra la versió"
|
||||||
|
|
||||||
#: src/main.c:416
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
|
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
|
||||||
|
|
||||||
#: src/main.c:422
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
|
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
|
||||||
|
|
||||||
#: src/main.c:428
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Llista els modes possibles"
|
msgstr "Llista els modes possibles"
|
||||||
|
|
||||||
#: src/shell-app.c:272
|
#: src/shell-app.c:270
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Desconegut"
|
msgstr "Desconegut"
|
||||||
|
|
||||||
#: src/shell-app.c:523
|
#: src/shell-app.c:511
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "No s'ha pogut iniciar «%s»"
|
msgstr "No s'ha pogut iniciar «%s»"
|
||||||
|
2
po/cs.po
2
po/cs.po
@@ -1408,7 +1408,7 @@ msgstr "Přehled"
|
|||||||
#. characters.
|
#. characters.
|
||||||
#: js/ui/overview.js:239
|
#: js/ui/overview.js:239
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Vyhledávejte psaním…"
|
msgstr "vyhledávejte psaním…"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:105
|
#: js/ui/padOsd.js:105
|
||||||
msgid "New shortcut…"
|
msgid "New shortcut…"
|
||||||
|
520
po/en_GB.po
520
po/en_GB.po
File diff suppressed because it is too large
Load Diff
164
po/es.po
164
po/es.po
@@ -9,8 +9,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell.master\n"
|
"Project-Id-Version: gnome-shell.master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"POT-Creation-Date: 2018-07-24 18:34+0000\n"
|
"POT-Creation-Date: 2018-04-13 19:54+0000\n"
|
||||||
"PO-Revision-Date: 2018-07-27 13:15+0200\n"
|
"PO-Revision-Date: 2018-04-25 12:54+0200\n"
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -18,7 +18,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Gtranslator 2.91.7\n"
|
"X-Generator: Gtranslator 2.91.6\n"
|
||||||
|
|
||||||
#: data/50-gnome-shell-system.xml:6
|
#: data/50-gnome-shell-system.xml:6
|
||||||
msgid "System"
|
msgid "System"
|
||||||
@@ -366,20 +366,20 @@ msgctxt "button"
|
|||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:319
|
#: js/gdm/loginDialog.js:315
|
||||||
msgid "Choose Session"
|
msgid "Choose Session"
|
||||||
msgstr "Elegir sesión"
|
msgstr "Elegir sesión"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: js/gdm/loginDialog.js:462
|
#: js/gdm/loginDialog.js:458
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "¿No está en la lista?"
|
msgstr "¿No está en la lista?"
|
||||||
|
|
||||||
#. Translators: this message is shown below the username entry field
|
#. Translators: this message is shown below the username entry field
|
||||||
#. to clue the user in on how to login to the local network realm
|
#. to clue the user in on how to login to the local network realm
|
||||||
#: js/gdm/loginDialog.js:891
|
#: js/gdm/loginDialog.js:887
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(ej., usuario o %s)"
|
msgstr "(ej., usuario o %s)"
|
||||||
@@ -387,12 +387,12 @@ msgstr "(ej., usuario o %s)"
|
|||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. is not visible here since we only care about phase2 authentication
|
||||||
#. (and don't even care of which one)
|
#. (and don't even care of which one)
|
||||||
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
|
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
|
||||||
#: js/ui/components/networkAgent.js:261
|
#: js/ui/components/networkAgent.js:261
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nombre de usuario:"
|
msgstr "Nombre de usuario:"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:1234
|
#: js/gdm/loginDialog.js:1228
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Ventana de inicio de sesión"
|
msgstr "Ventana de inicio de sesión"
|
||||||
|
|
||||||
@@ -405,7 +405,7 @@ msgstr "Error de autenticación"
|
|||||||
#. as a cue to display our own message.
|
#. as a cue to display our own message.
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: js/gdm/util.js:485
|
#: js/gdm/util.js:482
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(o pase el dedo)"
|
msgstr "(o pase el dedo)"
|
||||||
|
|
||||||
@@ -645,23 +645,23 @@ msgstr "Frecuentes"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todas"
|
msgstr "Todas"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1890
|
#: js/ui/appDisplay.js:1886
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Ventana nueva"
|
msgstr "Ventana nueva"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1904
|
#: js/ui/appDisplay.js:1900
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Lanzar usando la tarjeta gráfica dedicada"
|
msgstr "Lanzar usando la tarjeta gráfica dedicada"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
|
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Quitar de los favoritos"
|
msgstr "Quitar de los favoritos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1937
|
#: js/ui/appDisplay.js:1933
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Añadir a los favoritos"
|
msgstr "Añadir a los favoritos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1947
|
#: js/ui/appDisplay.js:1943
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostrar detalles"
|
msgstr "Mostrar detalles"
|
||||||
|
|
||||||
@@ -808,35 +808,35 @@ msgctxt "event list time"
|
|||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Todo el día"
|
msgstr "Todo el día"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:864
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:870
|
#: js/ui/calendar.js:868
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d de %B de %Y"
|
msgstr "%A, %d de %B de %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1100
|
#: js/ui/calendar.js:1086
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "No hay notificaciones"
|
msgstr "No hay notificaciones"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1103
|
#: js/ui/calendar.js:1089
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "No hay eventos"
|
msgstr "No hay eventos"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1131
|
#: js/ui/calendar.js:1117
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Limpiar todo"
|
msgstr "Limpiar todo"
|
||||||
|
|
||||||
#. Translators: %s is an application name
|
#. Translators: %s is an application name
|
||||||
#: js/ui/closeDialog.js:47
|
#: js/ui/closeDialog.js:44
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "«%s» no responde."
|
msgstr "«%s» no responde."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:48
|
#: js/ui/closeDialog.js:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -844,11 +844,11 @@ msgstr ""
|
|||||||
"Puede elegir esperar un momento para que continúe o forzar a la aplicación a "
|
"Puede elegir esperar un momento para que continúe o forzar a la aplicación a "
|
||||||
"terminar."
|
"terminar."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:64
|
#: js/ui/closeDialog.js:61
|
||||||
msgid "Force Quit"
|
msgid "Force Quit"
|
||||||
msgstr "Forzar la salida"
|
msgstr "Forzar la salida"
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:67
|
#: js/ui/closeDialog.js:64
|
||||||
msgid "Wait"
|
msgid "Wait"
|
||||||
msgstr "Esperar"
|
msgstr "Esperar"
|
||||||
|
|
||||||
@@ -865,7 +865,7 @@ msgstr "Dispositivo externo desconectado"
|
|||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Abrir con %s"
|
msgstr "Abrir con %s"
|
||||||
|
|
||||||
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
|
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:295
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Contraseña:"
|
msgstr "Contraseña:"
|
||||||
|
|
||||||
@@ -902,11 +902,11 @@ msgstr "Contraseña de la clave privada:"
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servicio:"
|
msgstr "Servicio:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "La red inalámbrica requiere autenticación"
|
msgstr "La red inalámbrica requiere autenticación"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -915,7 +915,7 @@ msgstr ""
|
|||||||
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
|
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
|
||||||
"inalámbrica «%s»."
|
"inalámbrica «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticación 802.1X cableada"
|
msgstr "Autenticación 802.1X cableada"
|
||||||
|
|
||||||
@@ -923,15 +923,15 @@ msgstr "Autenticación 802.1X cableada"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Nombre de la red: "
|
msgstr "Nombre de la red: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticación DSL"
|
msgstr "Autenticación DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Código PIN requerido"
|
msgstr "Código PIN requerido"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
|
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
|
||||||
|
|
||||||
@@ -939,17 +939,17 @@ msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Contraseña de la red de banda ancha móvil"
|
msgstr "Contraseña de la red de banda ancha móvil"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Se requiere una contraseña para conectarse a «%s»."
|
msgstr "Se requiere una contraseña para conectarse a «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Gestor de la red"
|
msgstr "Gestor de la red"
|
||||||
|
|
||||||
@@ -969,7 +969,7 @@ msgstr "Autenticar"
|
|||||||
#. * requested authentication was not gained; this can happen
|
#. * requested authentication was not gained; this can happen
|
||||||
#. * because of an authentication error (like invalid password),
|
#. * because of an authentication error (like invalid password),
|
||||||
#. * for instance.
|
#. * for instance.
|
||||||
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
|
#: js/ui/components/polkitAgent.js:281 js/ui/shellMountOperation.js:327
|
||||||
msgid "Sorry, that didn’t work. Please try again."
|
msgid "Sorry, that didn’t work. Please try again."
|
||||||
msgstr "Eso no ha funcionado. Inténtelo de nuevo."
|
msgstr "Eso no ha funcionado. Inténtelo de nuevo."
|
||||||
|
|
||||||
@@ -1301,13 +1301,13 @@ msgid "Leave On"
|
|||||||
msgstr "Dejar activada"
|
msgstr "Dejar activada"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:1294
|
#: js/ui/status/network.js:1281
|
||||||
msgid "Turn On"
|
msgid "Turn On"
|
||||||
msgstr "Encender"
|
msgstr "Encender"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
||||||
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
|
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
|
||||||
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
#: js/ui/status/rfkill.js:117
|
#: js/ui/status/rfkill.js:117
|
||||||
msgid "Turn Off"
|
msgid "Turn Off"
|
||||||
@@ -1369,7 +1369,7 @@ msgstr "Ver fuente"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Página web"
|
msgstr "Página web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1495
|
#: js/ui/messageTray.js:1493
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Información del sistema"
|
msgstr "Información del sistema"
|
||||||
|
|
||||||
@@ -1443,22 +1443,22 @@ msgstr "Pulse Esc para salir"
|
|||||||
msgid "Press any key to exit"
|
msgid "Press any key to exit"
|
||||||
msgstr "Pulse cualquier tecla para salir"
|
msgstr "Pulse cualquier tecla para salir"
|
||||||
|
|
||||||
#: js/ui/panel.js:356
|
#: js/ui/panel.js:355
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Salir"
|
msgstr "Salir"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: js/ui/panel.js:412
|
#: js/ui/panel.js:411
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Actividades"
|
msgstr "Actividades"
|
||||||
|
|
||||||
#: js/ui/panel.js:693
|
#: js/ui/panel.js:692
|
||||||
msgctxt "System menu in the top bar"
|
msgctxt "System menu in the top bar"
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: js/ui/panel.js:816
|
#: js/ui/panel.js:811
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barra superior"
|
msgstr "Barra superior"
|
||||||
|
|
||||||
@@ -1467,7 +1467,7 @@ msgstr "Barra superior"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: js/ui/popupMenu.js:300
|
#: js/ui/popupMenu.js:291
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
@@ -1475,15 +1475,15 @@ msgstr "toggle-switch-intl"
|
|||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Introducir un comando"
|
msgstr "Introducir un comando"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:174
|
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Cerrar"
|
msgstr "Cerrar"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:274
|
#: js/ui/runDialog.js:273
|
||||||
msgid "Restart is not available on Wayland"
|
msgid "Restart is not available on Wayland"
|
||||||
msgstr "Reiniciar si no está disponible en Wayland"
|
msgstr "Reiniciar si no está disponible en Wayland"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:279
|
#: js/ui/runDialog.js:278
|
||||||
msgid "Restarting…"
|
msgid "Restarting…"
|
||||||
msgstr "Reiniciando…"
|
msgstr "Reiniciando…"
|
||||||
|
|
||||||
@@ -1690,7 +1690,7 @@ msgid "<unknown>"
|
|||||||
msgstr "<desconocido>"
|
msgstr "<desconocido>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
|
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s apagada"
|
msgstr "%s apagada"
|
||||||
@@ -1716,7 +1716,7 @@ msgid "%s Disconnecting"
|
|||||||
msgstr "Desconectando %s"
|
msgstr "Desconectando %s"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
|
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "Conectando %s"
|
msgstr "Conectando %s"
|
||||||
@@ -1756,7 +1756,7 @@ msgid "Mobile Broadband Settings"
|
|||||||
msgstr "Configuración de banda ancha móvil"
|
msgstr "Configuración de banda ancha móvil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "Hardware %s desactivado"
|
msgstr "Hardware %s desactivado"
|
||||||
@@ -1812,81 +1812,81 @@ msgstr "No hay redes"
|
|||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Usar el interruptor hardware para apagar"
|
msgstr "Usar el interruptor hardware para apagar"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1186
|
#: js/ui/status/network.js:1173
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Seleccionar red"
|
msgstr "Seleccionar red"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1192
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Configuración de Wi-Fi"
|
msgstr "Configuración de Wi-Fi"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1311
|
#: js/ui/status/network.js:1298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Punto de acceso %s activo"
|
msgstr "Punto de acceso %s activo"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1326
|
#: js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s no conectado"
|
msgstr "%s no conectado"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1426
|
#: js/ui/status/network.js:1413
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "conectando…"
|
msgstr "conectando…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1429
|
#: js/ui/status/network.js:1416
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "se necesita autenticación"
|
msgstr "se necesita autenticación"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1431
|
#: js/ui/status/network.js:1418
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "falló la conexión"
|
msgstr "falló la conexión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1485
|
#: js/ui/status/network.js:1472
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Configuración de VPN"
|
msgstr "Configuración de VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1485
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1495
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN apagada"
|
msgstr "VPN apagada"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Configuración de la red"
|
msgstr "Configuración de la red"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1601
|
#: js/ui/status/network.js:1588
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s conexión cableada"
|
msgstr[0] "%s conexión cableada"
|
||||||
msgstr[1] "%s conexiones cableadas"
|
msgstr[1] "%s conexiones cableadas"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1605
|
#: js/ui/status/network.js:1592
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s conexión inalámbrica"
|
msgstr[0] "%s conexión inalámbrica"
|
||||||
msgstr[1] "%s conexiones inalámbricas"
|
msgstr[1] "%s conexiones inalámbricas"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1609
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s conexión por módem"
|
msgstr[0] "%s conexión por módem"
|
||||||
msgstr[1] "%s conexiones por módem"
|
msgstr[1] "%s conexiones por módem"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1741
|
#: js/ui/status/network.js:1728
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Falló la conexión"
|
msgstr "Falló la conexión"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1742
|
#: js/ui/status/network.js:1729
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Falló la activación de la conexión de red"
|
msgstr "Falló la activación de la conexión de red"
|
||||||
|
|
||||||
@@ -1937,15 +1937,6 @@ msgstr "%d∶%02d para la carga completa (%d %%)"
|
|||||||
msgid "%d %%"
|
msgid "%d %%"
|
||||||
msgstr "%d %%"
|
msgstr "%d %%"
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:45
|
|
||||||
msgid "Screen is Being Shared"
|
|
||||||
msgstr "Se está compartiendo la pantalla"
|
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:47
|
|
||||||
#| msgid "Turn Off"
|
|
||||||
msgid "Turn off"
|
|
||||||
msgstr "Apagar"
|
|
||||||
|
|
||||||
#. The menu only appears when airplane mode is on, so just
|
#. The menu only appears when airplane mode is on, so just
|
||||||
#. statically build it as if it was on, rather than dynamically
|
#. statically build it as if it was on, rather than dynamically
|
||||||
#. changing the menu contents.
|
#. changing the menu contents.
|
||||||
@@ -1977,16 +1968,16 @@ msgstr "Suspender"
|
|||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:298
|
#: js/ui/status/thunderbolt.js:294
|
||||||
msgid "Thunderbolt"
|
msgid "Thunderbolt"
|
||||||
msgstr "Thunderbolt"
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
#. we are done
|
#. we are done
|
||||||
#: js/ui/status/thunderbolt.js:354
|
#: js/ui/status/thunderbolt.js:350
|
||||||
msgid "Unknown Thunderbolt device"
|
msgid "Unknown Thunderbolt device"
|
||||||
msgstr "Dispositivo Thunderbolt desconocido"
|
msgstr "Dispositivo Thunderbolt desconocido"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:355
|
#: js/ui/status/thunderbolt.js:351
|
||||||
msgid ""
|
msgid ""
|
||||||
"New device has been detected while you were away. Please disconnect and "
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
"reconnect the device to start using it."
|
"reconnect the device to start using it."
|
||||||
@@ -1994,12 +1985,13 @@ msgstr ""
|
|||||||
"Se ha detectado un dispositivo nuevo mientras estaba fuera. Desconéctelo y "
|
"Se ha detectado un dispositivo nuevo mientras estaba fuera. Desconéctelo y "
|
||||||
"vuélvalo a conectar para empezar a usarlo."
|
"vuélvalo a conectar para empezar a usarlo."
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:360
|
#: js/ui/status/thunderbolt.js:356
|
||||||
msgid "Thunderbolt authorization error"
|
msgid "Thunderbolt authorization error"
|
||||||
msgstr "Error de autorización de Thunderbolt"
|
msgstr "Error de autorización de Thunderbolt"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:361
|
#: js/ui/status/thunderbolt.js:357
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
|
#| msgid "Could not authorize the thunderbolt device: %s"
|
||||||
msgid "Could not authorize the Thunderbolt device: %s"
|
msgid "Could not authorize the Thunderbolt device: %s"
|
||||||
msgstr "No se pudo autorizar el dispositivo Thunderbolt: %s"
|
msgstr "No se pudo autorizar el dispositivo Thunderbolt: %s"
|
||||||
|
|
||||||
@@ -2084,7 +2076,7 @@ msgstr[1] "La configuración se revertirá en %d segundos"
|
|||||||
|
|
||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#: js/ui/windowManager.js:668
|
#: js/ui/windowManager.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d × %d"
|
msgid "%d × %d"
|
||||||
msgstr "%d × %d"
|
msgstr "%d × %d"
|
||||||
@@ -2137,19 +2129,19 @@ msgstr "Subir a un área de trabajo"
|
|||||||
msgid "Move to Workspace Down"
|
msgid "Move to Workspace Down"
|
||||||
msgstr "Bajar a un área de trabajo"
|
msgstr "Bajar a un área de trabajo"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:139
|
#: js/ui/windowMenu.js:140
|
||||||
msgid "Move to Monitor Up"
|
msgid "Move to Monitor Up"
|
||||||
msgstr "Mover a la pantalla de arriba"
|
msgstr "Mover a la pantalla de arriba"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:148
|
#: js/ui/windowMenu.js:149
|
||||||
msgid "Move to Monitor Down"
|
msgid "Move to Monitor Down"
|
||||||
msgstr "Mover a la pantalla de abajo"
|
msgstr "Mover a la pantalla de abajo"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:157
|
#: js/ui/windowMenu.js:158
|
||||||
msgid "Move to Monitor Left"
|
msgid "Move to Monitor Left"
|
||||||
msgstr "Mover a la pantalla de la izquierda"
|
msgstr "Mover a la pantalla de la izquierda"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:166
|
#: js/ui/windowMenu.js:167
|
||||||
msgid "Move to Monitor Right"
|
msgid "Move to Monitor Right"
|
||||||
msgstr "Mover a la pantalla de la derecha"
|
msgstr "Mover a la pantalla de la derecha"
|
||||||
|
|
||||||
@@ -2180,12 +2172,12 @@ msgstr ""
|
|||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Listar los modos posibles"
|
msgstr "Listar los modos posibles"
|
||||||
|
|
||||||
#: src/shell-app.c:272
|
#: src/shell-app.c:270
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Desconocido"
|
msgstr "Desconocido"
|
||||||
|
|
||||||
#: src/shell-app.c:523
|
#: src/shell-app.c:511
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "Falló al lanzar «%s»"
|
msgstr "Falló al lanzar «%s»"
|
||||||
|
278
po/fr.po
278
po/fr.po
@@ -14,22 +14,22 @@
|
|||||||
# Alain Lojewski <allomervan@gmail.com>, 2014-2018.
|
# Alain Lojewski <allomervan@gmail.com>, 2014-2018.
|
||||||
# Erwan Georget <egeorget@opmbx.org>, 2016.
|
# Erwan Georget <egeorget@opmbx.org>, 2016.
|
||||||
# Claude Paroz <claude@2xlibre.net>, 2010-2011, 2016.
|
# Claude Paroz <claude@2xlibre.net>, 2010-2011, 2016.
|
||||||
# Charles Monzat <superboa@hotmail.fr>, 2016, 2018.
|
# Charles Monzat <superboa@hotmail.fr>, 2016.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master fr\n"
|
"Project-Id-Version: gnome-shell master fr\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"POT-Creation-Date: 2018-08-01 18:08+0000\n"
|
"POT-Creation-Date: 2018-03-03 10:22+0000\n"
|
||||||
"PO-Revision-Date: 2018-08-09 19:51+0200\n"
|
"PO-Revision-Date: 2018-03-01 09:00+0100\n"
|
||||||
"Last-Translator: Charles Monzat <superboa@hotmail.fr>\n"
|
"Last-Translator: Alain Lojewski <allomervan@gmail.com>\n"
|
||||||
"Language-Team: français <gnomefr@traduc.org>\n"
|
"Language-Team: français <gnomefr@traduc.org>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
"X-Generator: Gtranslator 2.91.7\n"
|
"X-Generator: Poedit 1.8.12\n"
|
||||||
|
|
||||||
#: data/50-gnome-shell-system.xml:6
|
#: data/50-gnome-shell-system.xml:6
|
||||||
msgid "System"
|
msgid "System"
|
||||||
@@ -234,7 +234,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:116
|
#: data/org.gnome.shell.gschema.xml.in:116
|
||||||
msgid "Keybinding to open the overview"
|
msgid "Keybinding to open the overview"
|
||||||
msgstr "Combinaison de touches pour ouvrir la vue d’ensemble"
|
msgstr "Combinaison de touches pour ouvrir la vue d'ensemble"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:117
|
#: data/org.gnome.shell.gschema.xml.in:117
|
||||||
msgid "Keybinding to open the Activities Overview."
|
msgid "Keybinding to open the Activities Overview."
|
||||||
@@ -312,34 +312,34 @@ msgstr ""
|
|||||||
"Si vrai, seules les fenêtres de l’espace de travail actuel sont affichées "
|
"Si vrai, seules les fenêtres de l’espace de travail actuel sont affichées "
|
||||||
"dans le sélecteur. Sinon, toutes les fenêtres y sont incluses."
|
"dans le sélecteur. Sinon, toutes les fenêtres y sont incluses."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:198
|
#: data/org.gnome.shell.gschema.xml.in:197
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Attacher les dialogues modaux à leur fenêtre parente"
|
msgstr "Attacher les dialogues modaux à leur fenêtre parente"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:199
|
#: data/org.gnome.shell.gschema.xml.in:198
|
||||||
#: data/org.gnome.shell.gschema.xml.in:208
|
#: data/org.gnome.shell.gschema.xml.in:207
|
||||||
#: data/org.gnome.shell.gschema.xml.in:216
|
#: data/org.gnome.shell.gschema.xml.in:215
|
||||||
#: data/org.gnome.shell.gschema.xml.in:224
|
#: data/org.gnome.shell.gschema.xml.in:223
|
||||||
#: data/org.gnome.shell.gschema.xml.in:232
|
#: data/org.gnome.shell.gschema.xml.in:231
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cette clé prend le pas sur la clé dans org.gnome.mutter lorsque GNOME Shell "
|
"Cette clé prend le pas sur la clé dans org.gnome.mutter lorsque GNOME Shell "
|
||||||
"est lancé."
|
"est lancé."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:207
|
#: data/org.gnome.shell.gschema.xml.in:206
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr "Activer l’empilage des fenêtres déposées sur les bords de l’écran"
|
msgstr "Activer l’empilage des fenêtres déposées sur les bords de l'écran"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:215
|
#: data/org.gnome.shell.gschema.xml.in:214
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Les espaces de travail sont gérés dynamiquement"
|
msgstr "Les espaces de travail sont gérés dynamiquement"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:223
|
#: data/org.gnome.shell.gschema.xml.in:222
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Les espaces de travail sont uniquement sur l’écran principal"
|
msgstr "Les espaces de travail sont uniquement sur l’écran principal"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:231
|
#: data/org.gnome.shell.gschema.xml.in:230
|
||||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Retarder les changements de focus en mode souris jusqu’à ce que le pointeur "
|
"Retarder les changements de focus en mode souris jusqu’à ce que le pointeur "
|
||||||
@@ -362,7 +362,7 @@ msgstr ""
|
|||||||
"préférences de %s :"
|
"préférences de %s :"
|
||||||
|
|
||||||
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:153
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
|
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
@@ -382,20 +382,20 @@ msgctxt "button"
|
|||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Se connecter"
|
msgstr "Se connecter"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:319
|
#: js/gdm/loginDialog.js:315
|
||||||
msgid "Choose Session"
|
msgid "Choose Session"
|
||||||
msgstr "Choisir une session"
|
msgstr "Choisir une session"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: js/gdm/loginDialog.js:462
|
#: js/gdm/loginDialog.js:458
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Absent de la liste ?"
|
msgstr "Absent de la liste ?"
|
||||||
|
|
||||||
#. Translators: this message is shown below the username entry field
|
#. Translators: this message is shown below the username entry field
|
||||||
#. to clue the user in on how to login to the local network realm
|
#. to clue the user in on how to login to the local network realm
|
||||||
#: js/gdm/loginDialog.js:891
|
#: js/gdm/loginDialog.js:887
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(par ex. utilisateur ou %s)"
|
msgstr "(par ex. utilisateur ou %s)"
|
||||||
@@ -403,12 +403,12 @@ msgstr "(par ex. utilisateur ou %s)"
|
|||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. is not visible here since we only care about phase2 authentication
|
||||||
#. (and don't even care of which one)
|
#. (and don't even care of which one)
|
||||||
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
|
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
|
||||||
#: js/ui/components/networkAgent.js:261
|
#: js/ui/components/networkAgent.js:261
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nom d’utilisateur : "
|
msgstr "Nom d’utilisateur : "
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:1234
|
#: js/gdm/loginDialog.js:1228
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Fenêtre de connexion"
|
msgstr "Fenêtre de connexion"
|
||||||
|
|
||||||
@@ -421,7 +421,7 @@ msgstr "Erreur d’authentification"
|
|||||||
#. as a cue to display our own message.
|
#. as a cue to display our own message.
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: js/gdm/util.js:485
|
#: js/gdm/util.js:482
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(ou faites glisser le doigt)"
|
msgstr "(ou faites glisser le doigt)"
|
||||||
|
|
||||||
@@ -662,32 +662,32 @@ msgstr "Fréquemment utilisées"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Toutes"
|
msgstr "Toutes"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1890
|
#: js/ui/appDisplay.js:1886
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nouvelle fenêtre"
|
msgstr "Nouvelle fenêtre"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1904
|
#: js/ui/appDisplay.js:1900
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Démarrer en utilisant la carte graphique dédiée"
|
msgstr "Démarrer en utilisant la carte graphique dédiée"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
|
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Enlever des favoris"
|
msgstr "Enlever des favoris"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1937
|
#: js/ui/appDisplay.js:1933
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Ajouter aux favoris"
|
msgstr "Ajouter aux favoris"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1947
|
#: js/ui/appDisplay.js:1943
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Afficher les détails"
|
msgstr "Afficher les détails"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:138
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "%s a été ajouté à vos favoris."
|
msgstr "%s a été ajouté à vos favoris."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:172
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s a été supprimé de vos favoris."
|
msgstr "%s a été supprimé de vos favoris."
|
||||||
@@ -708,7 +708,7 @@ msgstr "Casque audio"
|
|||||||
msgid "Headset"
|
msgid "Headset"
|
||||||
msgstr "Micro-casque"
|
msgstr "Micro-casque"
|
||||||
|
|
||||||
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
|
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
|
||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Microphone"
|
msgstr "Microphone"
|
||||||
|
|
||||||
@@ -720,7 +720,7 @@ msgstr "Modifier l’arrière-plan…"
|
|||||||
msgid "Display Settings"
|
msgid "Display Settings"
|
||||||
msgstr "Paramètres d’affichage"
|
msgstr "Paramètres d’affichage"
|
||||||
|
|
||||||
#: js/ui/backgroundMenu.js:22
|
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Paramètres"
|
msgstr "Paramètres"
|
||||||
|
|
||||||
@@ -840,35 +840,35 @@ msgctxt "event list time"
|
|||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Journée"
|
msgstr "Journée"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:864
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A %d %B"
|
msgstr "%A %d %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:870
|
#: js/ui/calendar.js:868
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A %d %B, %Y"
|
msgstr "%A %d %B, %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1100
|
#: js/ui/calendar.js:1086
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Aucune notification"
|
msgstr "Aucune notification"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1103
|
#: js/ui/calendar.js:1089
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Aucun évènement"
|
msgstr "Aucun évènement"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1131
|
#: js/ui/calendar.js:1117
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Effacer tout"
|
msgstr "Effacer tout"
|
||||||
|
|
||||||
#. Translators: %s is an application name
|
#. Translators: %s is an application name
|
||||||
#: js/ui/closeDialog.js:47
|
#: js/ui/closeDialog.js:44
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "« %s » ne répond pas."
|
msgstr "« %s » ne répond pas."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:48
|
#: js/ui/closeDialog.js:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -876,11 +876,11 @@ msgstr ""
|
|||||||
"Vous pouvez soit attendre un peu pour continuer, soit forcer l’application à "
|
"Vous pouvez soit attendre un peu pour continuer, soit forcer l’application à "
|
||||||
"quitter."
|
"quitter."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:64
|
#: js/ui/closeDialog.js:61
|
||||||
msgid "Force Quit"
|
msgid "Force Quit"
|
||||||
msgstr "Forcer à quitter"
|
msgstr "Forcer à quitter"
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:67
|
#: js/ui/closeDialog.js:64
|
||||||
msgid "Wait"
|
msgid "Wait"
|
||||||
msgstr "Attendre"
|
msgstr "Attendre"
|
||||||
|
|
||||||
@@ -897,7 +897,7 @@ msgstr "Disque externe déconnecté"
|
|||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Ouvrir avec %s"
|
msgstr "Ouvrir avec %s"
|
||||||
|
|
||||||
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
|
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:284
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Mot de passe :"
|
msgstr "Mot de passe :"
|
||||||
|
|
||||||
@@ -934,11 +934,11 @@ msgstr "Mot de passe de la clé privée : "
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Service : "
|
msgstr "Service : "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "L’authentification est requise par le réseau sans fil"
|
msgstr "L’authentification est requise par le réseau sans fil"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -947,7 +947,7 @@ msgstr ""
|
|||||||
"Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau "
|
"Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau "
|
||||||
"sans fil « %s »"
|
"sans fil « %s »"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Authentification filaire 802.1X"
|
msgstr "Authentification filaire 802.1X"
|
||||||
|
|
||||||
@@ -955,15 +955,15 @@ msgstr "Authentification filaire 802.1X"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Nom du réseau : "
|
msgstr "Nom du réseau : "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Authentification DSL"
|
msgstr "Authentification DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Code PIN requis"
|
msgstr "Code PIN requis"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Un code PIN est nécessaire pour les connexions mobiles"
|
msgstr "Un code PIN est nécessaire pour les connexions mobiles"
|
||||||
|
|
||||||
@@ -971,29 +971,29 @@ msgstr "Un code PIN est nécessaire pour les connexions mobiles"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN : "
|
msgstr "PIN : "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Mot de passe de la connexion mobile"
|
msgstr "Mot de passe de la connexion mobile"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Un mot de passe est requis pour se connecter à « %s »."
|
msgstr "Un mot de passe est requis pour se connecter à « %s »."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Gestionnaire de réseau"
|
msgstr "Gestionnaire de réseau"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:48
|
#: js/ui/components/polkitAgent.js:43
|
||||||
msgid "Authentication Required"
|
msgid "Authentication Required"
|
||||||
msgstr "Authentification nécessaire"
|
msgstr "Authentification nécessaire"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:76
|
#: js/ui/components/polkitAgent.js:71
|
||||||
msgid "Administrator"
|
msgid "Administrator"
|
||||||
msgstr "Administrateur"
|
msgstr "Administrateur"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:156
|
#: js/ui/components/polkitAgent.js:151
|
||||||
msgid "Authenticate"
|
msgid "Authenticate"
|
||||||
msgstr "S’authentifier"
|
msgstr "S’authentifier"
|
||||||
|
|
||||||
@@ -1001,7 +1001,7 @@ msgstr "S’authentifier"
|
|||||||
#. * requested authentication was not gained; this can happen
|
#. * requested authentication was not gained; this can happen
|
||||||
#. * because of an authentication error (like invalid password),
|
#. * because of an authentication error (like invalid password),
|
||||||
#. * for instance.
|
#. * for instance.
|
||||||
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
|
#: js/ui/components/polkitAgent.js:270 js/ui/shellMountOperation.js:327
|
||||||
msgid "Sorry, that didn’t work. Please try again."
|
msgid "Sorry, that didn’t work. Please try again."
|
||||||
msgstr "Échec de l’authentification. Essayez à nouveau."
|
msgstr "Échec de l’authentification. Essayez à nouveau."
|
||||||
|
|
||||||
@@ -1061,7 +1061,7 @@ msgstr "Ajouter des horloges locales…"
|
|||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Horloges locales"
|
msgstr "Horloges locales"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:227
|
#: js/ui/dateMenu.js:225
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Météo"
|
msgstr "Météo"
|
||||||
|
|
||||||
@@ -1069,7 +1069,7 @@ msgstr "Météo"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:291
|
#: js/ui/dateMenu.js:289
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s toute la journée."
|
msgstr "%s toute la journée."
|
||||||
@@ -1078,7 +1078,7 @@ msgstr "%s toute la journée."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:297
|
#: js/ui/dateMenu.js:295
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, puis %s plus tard."
|
msgstr "%s, puis %s plus tard."
|
||||||
@@ -1087,30 +1087,30 @@ msgstr "%s, puis %s plus tard."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:303
|
#: js/ui/dateMenu.js:301
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, puis %s, suivi par %s plus tard."
|
msgstr "%s, puis %s, suivi par %s plus tard."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:314
|
#: js/ui/dateMenu.js:312
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Choisir un emplacement…"
|
msgstr "Choisir un emplacement…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:317
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Chargement…"
|
msgstr "Chargement…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:321
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Température ressentie : %s."
|
msgstr "Température ressentie : %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:326
|
#: js/ui/dateMenu.js:324
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Chercher les informations météorologiques en ligne"
|
msgstr "Chercher les informations météorologiques en ligne"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:328
|
#: js/ui/dateMenu.js:326
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "Les informations météorologiques ne sont pas disponibles actuellement"
|
msgstr "Les informations météorologiques ne sont pas disponibles actuellement"
|
||||||
|
|
||||||
@@ -1344,13 +1344,13 @@ msgid "Leave On"
|
|||||||
msgstr "Laisser activé"
|
msgstr "Laisser activé"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:1294
|
#: js/ui/status/network.js:1281
|
||||||
msgid "Turn On"
|
msgid "Turn On"
|
||||||
msgstr "Activer"
|
msgstr "Activer"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
||||||
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
|
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
|
||||||
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
#: js/ui/status/rfkill.js:117
|
#: js/ui/status/rfkill.js:117
|
||||||
msgid "Turn Off"
|
msgid "Turn Off"
|
||||||
@@ -1412,7 +1412,7 @@ msgstr "Afficher la source"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Page Web"
|
msgstr "Page Web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1495
|
#: js/ui/messageTray.js:1493
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Informations du système"
|
msgstr "Informations du système"
|
||||||
|
|
||||||
@@ -1424,10 +1424,6 @@ msgstr "Artiste inconnu"
|
|||||||
msgid "Unknown title"
|
msgid "Unknown title"
|
||||||
msgstr "Titre inconnu"
|
msgstr "Titre inconnu"
|
||||||
|
|
||||||
#: js/ui/osdWindow.js:32 js/ui/status/volume.js:204
|
|
||||||
msgid "Volume"
|
|
||||||
msgstr "Volume"
|
|
||||||
|
|
||||||
#: js/ui/overview.js:83
|
#: js/ui/overview.js:83
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
@@ -1470,42 +1466,42 @@ msgstr "Associer une touche"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Terminé"
|
msgstr "Terminé"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:742
|
#: js/ui/padOsd.js:740
|
||||||
msgid "Edit…"
|
msgid "Edit…"
|
||||||
msgstr "Édition…"
|
msgstr "Édition…"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
|
#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Aucun"
|
msgstr "Aucun"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:843
|
#: js/ui/padOsd.js:841
|
||||||
msgid "Press a button to configure"
|
msgid "Press a button to configure"
|
||||||
msgstr "Appuyez sur un bouton pour le configurer"
|
msgstr "Appuyez sur un bouton pour le configurer"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:844
|
#: js/ui/padOsd.js:842
|
||||||
msgid "Press Esc to exit"
|
msgid "Press Esc to exit"
|
||||||
msgstr "Appuyez sur Échap. pour quitter"
|
msgstr "Appuyez sur Échap. pour quitter"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:847
|
#: js/ui/padOsd.js:845
|
||||||
msgid "Press any key to exit"
|
msgid "Press any key to exit"
|
||||||
msgstr "Appuyez sur une touche pour quitter"
|
msgstr "Appuyez sur une touche pour quitter"
|
||||||
|
|
||||||
#: js/ui/panel.js:356
|
#: js/ui/panel.js:355
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Quitter"
|
msgstr "Quitter"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: js/ui/panel.js:412
|
#: js/ui/panel.js:411
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Activités"
|
msgstr "Activités"
|
||||||
|
|
||||||
#: js/ui/panel.js:693
|
#: js/ui/panel.js:692
|
||||||
msgctxt "System menu in the top bar"
|
msgctxt "System menu in the top bar"
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Système"
|
msgstr "Système"
|
||||||
|
|
||||||
#: js/ui/panel.js:816
|
#: js/ui/panel.js:811
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barre supérieure"
|
msgstr "Barre supérieure"
|
||||||
|
|
||||||
@@ -1514,23 +1510,23 @@ msgstr "Barre supérieure"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: js/ui/popupMenu.js:300
|
#: js/ui/popupMenu.js:291
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:74
|
#: js/ui/runDialog.js:70
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Saisissez une commande"
|
msgstr "Saisissez une commande"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
|
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Fermer"
|
msgstr "Fermer"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:278
|
#: js/ui/runDialog.js:273
|
||||||
msgid "Restart is not available on Wayland"
|
msgid "Restart is not available on Wayland"
|
||||||
msgstr "Le redémarrage n’est pas disponible sur Wayland"
|
msgstr "Le redémarrage n’est pas disponible sur Wayland"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:283
|
#: js/ui/runDialog.js:278
|
||||||
msgid "Restarting…"
|
msgid "Restarting…"
|
||||||
msgstr "Redémarrage…"
|
msgstr "Redémarrage…"
|
||||||
|
|
||||||
@@ -1554,7 +1550,7 @@ msgid_plural "%d new notifications"
|
|||||||
msgstr[0] "%d nouvelle notification"
|
msgstr[0] "%d nouvelle notification"
|
||||||
msgstr[1] "%d nouvelles notifications"
|
msgstr[1] "%d nouvelles notifications"
|
||||||
|
|
||||||
#: js/ui/screenShield.js:451 js/ui/status/system.js:294
|
#: js/ui/screenShield.js:451 js/ui/status/system.js:283
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Verrouiller"
|
msgstr "Verrouiller"
|
||||||
|
|
||||||
@@ -1710,7 +1706,7 @@ msgstr "Paramètres de confidentialité"
|
|||||||
|
|
||||||
#: js/ui/status/location.js:196
|
#: js/ui/status/location.js:196
|
||||||
msgid "Location In Use"
|
msgid "Location In Use"
|
||||||
msgstr "Localisation en cours d’utilisation"
|
msgstr "Localisation en cours d'utilisation"
|
||||||
|
|
||||||
#: js/ui/status/location.js:200
|
#: js/ui/status/location.js:200
|
||||||
msgid "Location Disabled"
|
msgid "Location Disabled"
|
||||||
@@ -1737,7 +1733,7 @@ msgid "<unknown>"
|
|||||||
msgstr "<inconnu>"
|
msgstr "<inconnu>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
|
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s éteint"
|
msgstr "%s éteint"
|
||||||
@@ -1763,7 +1759,7 @@ msgid "%s Disconnecting"
|
|||||||
msgstr "Déconnexion de %s en cours"
|
msgstr "Déconnexion de %s en cours"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
|
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "Connexion de %s en cours"
|
msgstr "Connexion de %s en cours"
|
||||||
@@ -1803,7 +1799,7 @@ msgid "Mobile Broadband Settings"
|
|||||||
msgstr "Paramètres connexion mobile"
|
msgstr "Paramètres connexion mobile"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "Équipement %s désactivé"
|
msgstr "Équipement %s désactivé"
|
||||||
@@ -1859,81 +1855,81 @@ msgstr "Aucun réseau disponible"
|
|||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Utiliser l’interrupteur matériel pour éteindre"
|
msgstr "Utiliser l’interrupteur matériel pour éteindre"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1186
|
#: js/ui/status/network.js:1173
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Sélectionner un réseau"
|
msgstr "Sélectionner un réseau"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1192
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Paramètres Wi-Fi"
|
msgstr "Paramètres Wi-Fi"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1311
|
#: js/ui/status/network.js:1298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Point d’accès %s actif"
|
msgstr "Point d’accès %s actif"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1326
|
#: js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s non connecté"
|
msgstr "%s non connecté"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1426
|
#: js/ui/status/network.js:1413
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "connexion…"
|
msgstr "connexion…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1429
|
#: js/ui/status/network.js:1416
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "authentification nécessaire"
|
msgstr "authentification nécessaire"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1431
|
#: js/ui/status/network.js:1418
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "échec de connexion"
|
msgstr "échec de connexion"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1485
|
#: js/ui/status/network.js:1472
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Paramètres VPN"
|
msgstr "Paramètres VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1485
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1495
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN désactivé"
|
msgstr "VPN désactivé"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Paramètres du réseau"
|
msgstr "Paramètres du réseau"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1601
|
#: js/ui/status/network.js:1588
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s connexion filaire."
|
msgstr[0] "%s connexion filaire."
|
||||||
msgstr[1] "%s connexions filaires."
|
msgstr[1] "%s connexions filaires."
|
||||||
|
|
||||||
#: js/ui/status/network.js:1605
|
#: js/ui/status/network.js:1592
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s connexion Wi-Fi."
|
msgstr[0] "%s connexion Wi-Fi."
|
||||||
msgstr[1] "%s connexions Wi-Fi."
|
msgstr[1] "%s connexions Wi-Fi."
|
||||||
|
|
||||||
#: js/ui/status/network.js:1609
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s connexion à un modem."
|
msgstr[0] "%s connexion à un modem."
|
||||||
msgstr[1] "%s connexions à des modem."
|
msgstr[1] "%s connexions à des modem."
|
||||||
|
|
||||||
#: js/ui/status/network.js:1741
|
#: js/ui/status/network.js:1728
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Échec de connexion"
|
msgstr "Échec de connexion"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1742
|
#: js/ui/status/network.js:1729
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "L’activation de la connexion réseau a échoué"
|
msgstr "L’activation de la connexion réseau a échoué"
|
||||||
|
|
||||||
@@ -1951,11 +1947,11 @@ msgstr "Reprendre"
|
|||||||
|
|
||||||
#: js/ui/status/nightLight.js:71
|
#: js/ui/status/nightLight.js:71
|
||||||
msgid "Disable Until Tomorrow"
|
msgid "Disable Until Tomorrow"
|
||||||
msgstr "Désactiver jusqu’à demain"
|
msgstr "Désactiver jusqu'à demain"
|
||||||
|
|
||||||
#: js/ui/status/power.js:61
|
#: js/ui/status/power.js:61
|
||||||
msgid "Power Settings"
|
msgid "Power Settings"
|
||||||
msgstr "Paramètres de gestion de l’énergie"
|
msgstr "Paramètres de gestion de l'énergie"
|
||||||
|
|
||||||
#: js/ui/status/power.js:77
|
#: js/ui/status/power.js:77
|
||||||
msgid "Fully Charged"
|
msgid "Fully Charged"
|
||||||
@@ -1984,14 +1980,6 @@ msgstr "%d∶%02d avant chargement complet (%d %%)"
|
|||||||
msgid "%d %%"
|
msgid "%d %%"
|
||||||
msgstr "%d %%"
|
msgstr "%d %%"
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:46
|
|
||||||
msgid "Screen is Being Shared"
|
|
||||||
msgstr "L’écran est partagé"
|
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:48
|
|
||||||
msgid "Turn off"
|
|
||||||
msgstr "Éteindre"
|
|
||||||
|
|
||||||
#. The menu only appears when airplane mode is on, so just
|
#. The menu only appears when airplane mode is on, so just
|
||||||
#. statically build it as if it was on, rather than dynamically
|
#. statically build it as if it was on, rather than dynamically
|
||||||
#. changing the menu contents.
|
#. changing the menu contents.
|
||||||
@@ -2011,28 +1999,28 @@ msgstr "Fermer la session"
|
|||||||
msgid "Account Settings"
|
msgid "Account Settings"
|
||||||
msgstr "Paramètres du compte"
|
msgstr "Paramètres du compte"
|
||||||
|
|
||||||
#: js/ui/status/system.js:279
|
#: js/ui/status/system.js:268
|
||||||
msgid "Orientation Lock"
|
msgid "Orientation Lock"
|
||||||
msgstr "Verrouillage de l’orientation "
|
msgstr "Verrouillage de l’orientation "
|
||||||
|
|
||||||
#: js/ui/status/system.js:305
|
#: js/ui/status/system.js:294
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Mettre en veille"
|
msgstr "Mettre en veille"
|
||||||
|
|
||||||
#: js/ui/status/system.js:315
|
#: js/ui/status/system.js:304
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Éteindre"
|
msgstr "Éteindre"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:298
|
#: js/ui/status/thunderbolt.js:272
|
||||||
msgid "Thunderbolt"
|
msgid "Thunderbolt"
|
||||||
msgstr "Interface Thunderbolt"
|
msgstr "Interface Thunderbolt"
|
||||||
|
|
||||||
#. we are done
|
#. we are done
|
||||||
#: js/ui/status/thunderbolt.js:354
|
#: js/ui/status/thunderbolt.js:328
|
||||||
msgid "Unknown Thunderbolt device"
|
msgid "Unknown Thunderbolt device"
|
||||||
msgstr "Périphérique Thunderbolt inconnu"
|
msgstr "Périphérique Thunderbolt inconnu"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:355
|
#: js/ui/status/thunderbolt.js:329
|
||||||
msgid ""
|
msgid ""
|
||||||
"New device has been detected while you were away. Please disconnect and "
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
"reconnect the device to start using it."
|
"reconnect the device to start using it."
|
||||||
@@ -2040,19 +2028,23 @@ msgstr ""
|
|||||||
"Un nouveau périphérique a été détecté pendant votre absence. Veuillez le "
|
"Un nouveau périphérique a été détecté pendant votre absence. Veuillez le "
|
||||||
"débrancher et rebrancher avant de commencer à l’utiliser"
|
"débrancher et rebrancher avant de commencer à l’utiliser"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:360
|
#: js/ui/status/thunderbolt.js:334
|
||||||
msgid "Thunderbolt authorization error"
|
msgid "Thunderbolt authorization error"
|
||||||
msgstr "Erreur d’autorisation Thunderbolt"
|
msgstr "Erreur d’autorisation Thunderbolt"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:361
|
#: js/ui/status/thunderbolt.js:335
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Could not authorize the Thunderbolt device: %s"
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
msgstr "Impossible d’autoriser le périphérique Thunderbolt : %s"
|
msgstr "Impossible d’autoriser le périphérique Thunderbolt : %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:135
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Volume modifié"
|
msgstr "Volume modifié"
|
||||||
|
|
||||||
|
#: js/ui/status/volume.js:170
|
||||||
|
msgid "Volume"
|
||||||
|
msgstr "Volume"
|
||||||
|
|
||||||
#. Translators: this is for display mirroring i.e. cloning.
|
#. Translators: this is for display mirroring i.e. cloning.
|
||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
@@ -2102,22 +2094,22 @@ msgstr "Recherche"
|
|||||||
msgid "“%s” is ready"
|
msgid "“%s” is ready"
|
||||||
msgstr "« %s » est prêt"
|
msgstr "« %s » est prêt"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:74
|
#: js/ui/windowManager.js:72
|
||||||
msgid "Do you want to keep these display settings?"
|
msgid "Do you want to keep these display settings?"
|
||||||
msgstr "Voulez-vous conserver ces paramètres d’affichage ?"
|
msgstr "Voulez-vous conserver ces paramètres d’affichage ?"
|
||||||
|
|
||||||
#. Translators: this and the following message should be limited in lenght,
|
#. Translators: this and the following message should be limited in lenght,
|
||||||
#. to avoid ellipsizing the labels.
|
#. to avoid ellipsizing the labels.
|
||||||
#.
|
#.
|
||||||
#: js/ui/windowManager.js:86
|
#: js/ui/windowManager.js:84
|
||||||
msgid "Revert Settings"
|
msgid "Revert Settings"
|
||||||
msgstr "Restaurer les paramètres"
|
msgstr "Restaurer les paramètres"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:89
|
#: js/ui/windowManager.js:87
|
||||||
msgid "Keep Changes"
|
msgid "Keep Changes"
|
||||||
msgstr "Conserver les modifications"
|
msgstr "Conserver les modifications"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:107
|
#: js/ui/windowManager.js:105
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Settings changes will revert in %d second"
|
msgid "Settings changes will revert in %d second"
|
||||||
msgid_plural "Settings changes will revert in %d seconds"
|
msgid_plural "Settings changes will revert in %d seconds"
|
||||||
@@ -2126,7 +2118,7 @@ msgstr[1] "Les paramètres seront restaurés dans %d secondes"
|
|||||||
|
|
||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#: js/ui/windowManager.js:689
|
#: js/ui/windowManager.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d × %d"
|
msgid "%d × %d"
|
||||||
msgstr "%d × %d"
|
msgstr "%d × %d"
|
||||||
@@ -2179,19 +2171,19 @@ msgstr "Déplacer vers l’espace de travail supérieur"
|
|||||||
msgid "Move to Workspace Down"
|
msgid "Move to Workspace Down"
|
||||||
msgstr "Déplacer vers l’espace de travail inférieur"
|
msgstr "Déplacer vers l’espace de travail inférieur"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:139
|
#: js/ui/windowMenu.js:140
|
||||||
msgid "Move to Monitor Up"
|
msgid "Move to Monitor Up"
|
||||||
msgstr "Déplacer vers l’écran du haut"
|
msgstr "Déplacer vers l’écran du haut"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:148
|
#: js/ui/windowMenu.js:149
|
||||||
msgid "Move to Monitor Down"
|
msgid "Move to Monitor Down"
|
||||||
msgstr "Déplacer vers l’écran du bas"
|
msgstr "Déplacer vers l’écran du bas"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:157
|
#: js/ui/windowMenu.js:158
|
||||||
msgid "Move to Monitor Left"
|
msgid "Move to Monitor Left"
|
||||||
msgstr "Déplacer vers l’écran de gauche"
|
msgstr "Déplacer vers l’écran de gauche"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:166
|
#: js/ui/windowMenu.js:167
|
||||||
msgid "Move to Monitor Right"
|
msgid "Move to Monitor Right"
|
||||||
msgstr "Déplacer vers l’écran de droite"
|
msgstr "Déplacer vers l’écran de droite"
|
||||||
|
|
||||||
@@ -2204,29 +2196,29 @@ msgstr "Agenda d’Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:410
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Affiche la version"
|
msgstr "Affiche la version"
|
||||||
|
|
||||||
#: src/main.c:416
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Mode utilisé par GDM pour l’écran de connexion"
|
msgstr "Mode utilisé par GDM pour l’écran de connexion"
|
||||||
|
|
||||||
#: src/main.c:422
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Utiliser un mode particulier, par ex. « gdm » pour l’écran de connexion"
|
"Utiliser un mode particulier, par ex. « gdm » pour l’écran de connexion"
|
||||||
|
|
||||||
#: src/main.c:428
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Lister les modes possibles"
|
msgstr "Lister les modes possibles"
|
||||||
|
|
||||||
#: src/shell-app.c:272
|
#: src/shell-app.c:270
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Inconnu"
|
msgstr "Inconnu"
|
||||||
|
|
||||||
#: src/shell-app.c:523
|
#: src/shell-app.c:511
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "Impossible de lancer « %s »"
|
msgstr "Impossible de lancer « %s »"
|
||||||
|
232
po/fur.po
232
po/fur.po
@@ -7,15 +7,15 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: video-subtitles master\n"
|
"Project-Id-Version: video-subtitles master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"POT-Creation-Date: 2018-08-01 18:08+0000\n"
|
"POT-Creation-Date: 2018-04-13 19:54+0000\n"
|
||||||
"PO-Revision-Date: 2018-08-08 06:58+0200\n"
|
"PO-Revision-Date: 2018-04-23 21:41+0200\n"
|
||||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||||
"Language-Team: Friulian <fur@li.org>\n"
|
"Language-Team: Friulian <fur@li.org>\n"
|
||||||
"Language: fur\n"
|
"Language: fur\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.0.7\n"
|
"X-Generator: Poedit 2.0.6\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: data/50-gnome-shell-system.xml:6
|
#: data/50-gnome-shell-system.xml:6
|
||||||
@@ -286,36 +286,36 @@ msgstr ""
|
|||||||
"Se vêr, nome i barcons dal spazi di lavôr curint a vegnin mostrâts intal "
|
"Se vêr, nome i barcons dal spazi di lavôr curint a vegnin mostrâts intal "
|
||||||
"seletôr. Se no, ducj i barcons a vegnin includûts."
|
"seletôr. Se no, ducj i barcons a vegnin includûts."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:198
|
#: data/org.gnome.shell.gschema.xml.in:197
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Lee il barcon modâl al barcon gjenitôr"
|
msgstr "Lee il barcon modâl al barcon gjenitôr"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:199
|
#: data/org.gnome.shell.gschema.xml.in:198
|
||||||
#: data/org.gnome.shell.gschema.xml.in:208
|
#: data/org.gnome.shell.gschema.xml.in:207
|
||||||
#: data/org.gnome.shell.gschema.xml.in:216
|
#: data/org.gnome.shell.gschema.xml.in:215
|
||||||
#: data/org.gnome.shell.gschema.xml.in:224
|
#: data/org.gnome.shell.gschema.xml.in:223
|
||||||
#: data/org.gnome.shell.gschema.xml.in:232
|
#: data/org.gnome.shell.gschema.xml.in:231
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cheste clâf e sorplante chê in org.gnome.mutter cuant che al è in esecuzion "
|
"Cheste clâf e sorplante chê in org.gnome.mutter cuant che al è in esecuzion "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:207
|
#: data/org.gnome.shell.gschema.xml.in:206
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Abilite la tasseladure sul ôr cuant che si strissine i barcons tal ôr dal "
|
"Abilite la tasseladure sul ôr cuant che si strissine i barcons tal ôr dal "
|
||||||
"visôr"
|
"visôr"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:215
|
#: data/org.gnome.shell.gschema.xml.in:214
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "I spazis di vore a son ministrât in maniere dinamiche"
|
msgstr "I spazis di vore a son ministrât in maniere dinamiche"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:223
|
#: data/org.gnome.shell.gschema.xml.in:222
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Spazis di lavôr dome sul visôr principâl"
|
msgstr "Spazis di lavôr dome sul visôr principâl"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:231
|
#: data/org.gnome.shell.gschema.xml.in:230
|
||||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Tardâ il cambiament dal focus te modalitât mouse fintant che il pontadôr no "
|
"Tardâ il cambiament dal focus te modalitât mouse fintant che il pontadôr no "
|
||||||
@@ -358,20 +358,20 @@ msgctxt "button"
|
|||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Jentre"
|
msgstr "Jentre"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:319
|
#: js/gdm/loginDialog.js:315
|
||||||
msgid "Choose Session"
|
msgid "Choose Session"
|
||||||
msgstr "Selezione Session"
|
msgstr "Selezione Session"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: js/gdm/loginDialog.js:462
|
#: js/gdm/loginDialog.js:458
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "No in liste?"
|
msgstr "No in liste?"
|
||||||
|
|
||||||
#. Translators: this message is shown below the username entry field
|
#. Translators: this message is shown below the username entry field
|
||||||
#. to clue the user in on how to login to the local network realm
|
#. to clue the user in on how to login to the local network realm
|
||||||
#: js/gdm/loginDialog.js:891
|
#: js/gdm/loginDialog.js:887
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(p.e., utent o %s)"
|
msgstr "(p.e., utent o %s)"
|
||||||
@@ -379,12 +379,12 @@ msgstr "(p.e., utent o %s)"
|
|||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. is not visible here since we only care about phase2 authentication
|
||||||
#. (and don't even care of which one)
|
#. (and don't even care of which one)
|
||||||
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
|
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
|
||||||
#: js/ui/components/networkAgent.js:261
|
#: js/ui/components/networkAgent.js:261
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Non utent:"
|
msgstr "Non utent:"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:1234
|
#: js/gdm/loginDialog.js:1228
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Barcon di acès"
|
msgstr "Barcon di acès"
|
||||||
|
|
||||||
@@ -397,7 +397,7 @@ msgstr "Erôr di autenticazion"
|
|||||||
#. as a cue to display our own message.
|
#. as a cue to display our own message.
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: js/gdm/util.js:485
|
#: js/gdm/util.js:482
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(o passe cul dêt)"
|
msgstr "(o passe cul dêt)"
|
||||||
|
|
||||||
@@ -638,23 +638,23 @@ msgstr "Dispès"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Dutis"
|
msgstr "Dutis"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1890
|
#: js/ui/appDisplay.js:1886
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Gnûf barcon"
|
msgstr "Gnûf barcon"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1904
|
#: js/ui/appDisplay.js:1900
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Invie doprant une schede grafiche dedicade"
|
msgstr "Invie doprant une schede grafiche dedicade"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
|
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Gjave dai preferîts"
|
msgstr "Gjave dai preferîts"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1937
|
#: js/ui/appDisplay.js:1933
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Zonte tai preferîts"
|
msgstr "Zonte tai preferîts"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1947
|
#: js/ui/appDisplay.js:1943
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Mostre Detais"
|
msgstr "Mostre Detais"
|
||||||
|
|
||||||
@@ -684,7 +684,7 @@ msgstr "Cufis"
|
|||||||
msgid "Headset"
|
msgid "Headset"
|
||||||
msgstr "Cufis cun microfon"
|
msgstr "Cufis cun microfon"
|
||||||
|
|
||||||
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
|
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
|
||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Microfon"
|
msgstr "Microfon"
|
||||||
|
|
||||||
@@ -696,7 +696,7 @@ msgstr "Cambie sfont…"
|
|||||||
msgid "Display Settings"
|
msgid "Display Settings"
|
||||||
msgstr "Impostazions visôr"
|
msgstr "Impostazions visôr"
|
||||||
|
|
||||||
#: js/ui/backgroundMenu.js:22
|
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Impostazions"
|
msgstr "Impostazions"
|
||||||
|
|
||||||
@@ -801,35 +801,35 @@ msgctxt "event list time"
|
|||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Dut il dì"
|
msgstr "Dut il dì"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:864
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d di %B"
|
msgstr "%A, %d di %B"
|
||||||
|
|
||||||
#: js/ui/calendar.js:870
|
#: js/ui/calendar.js:868
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d di %B dal %Y"
|
msgstr "%A, %d di %B dal %Y"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1100
|
#: js/ui/calendar.js:1086
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Nissune notifiche"
|
msgstr "Nissune notifiche"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1103
|
#: js/ui/calendar.js:1089
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Nissun event"
|
msgstr "Nissun event"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1131
|
#: js/ui/calendar.js:1117
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Nete dut"
|
msgstr "Nete dut"
|
||||||
|
|
||||||
#. Translators: %s is an application name
|
#. Translators: %s is an application name
|
||||||
#: js/ui/closeDialog.js:47
|
#: js/ui/closeDialog.js:44
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "“%s” nol rispuint."
|
msgstr "“%s” nol rispuint."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:48
|
#: js/ui/closeDialog.js:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -837,11 +837,11 @@ msgstr ""
|
|||||||
"Si pues sielzi di spietâ un tic che al continui o sfuarçâ la aplicazion a "
|
"Si pues sielzi di spietâ un tic che al continui o sfuarçâ la aplicazion a "
|
||||||
"jessî dal dut."
|
"jessî dal dut."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:64
|
#: js/ui/closeDialog.js:61
|
||||||
msgid "Force Quit"
|
msgid "Force Quit"
|
||||||
msgstr "Sfuarce jessude"
|
msgstr "Sfuarce jessude"
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:67
|
#: js/ui/closeDialog.js:64
|
||||||
msgid "Wait"
|
msgid "Wait"
|
||||||
msgstr "Spiete"
|
msgstr "Spiete"
|
||||||
|
|
||||||
@@ -858,7 +858,7 @@ msgstr "Dispositîf esterni distacât"
|
|||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Vierç cun %s"
|
msgstr "Vierç cun %s"
|
||||||
|
|
||||||
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
|
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:295
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Password:"
|
msgstr "Password:"
|
||||||
|
|
||||||
@@ -895,11 +895,11 @@ msgstr "Password di clâf privade:"
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Servizi:"
|
msgstr "Servizi:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "La rêt cence fîl e domande autenticazion"
|
msgstr "La rêt cence fîl e domande autenticazion"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -908,7 +908,7 @@ msgstr ""
|
|||||||
"Si scugne meti une password o une clâf di cifradure par jentrâ te rêt cence "
|
"Si scugne meti une password o une clâf di cifradure par jentrâ te rêt cence "
|
||||||
"fîl \"%s\"."
|
"fîl \"%s\"."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Autenticazion vie fîl 802.1X"
|
msgstr "Autenticazion vie fîl 802.1X"
|
||||||
|
|
||||||
@@ -916,15 +916,15 @@ msgstr "Autenticazion vie fîl 802.1X"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Non rêt:"
|
msgstr "Non rêt:"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "Autenticazion DSL"
|
msgstr "Autenticazion DSL"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Si pretint un codiç PIN"
|
msgstr "Si pretint un codiç PIN"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Si scugne meti un codiç PIN pal dispositîf a bande largje mobil"
|
msgstr "Si scugne meti un codiç PIN pal dispositîf a bande largje mobil"
|
||||||
|
|
||||||
@@ -932,17 +932,17 @@ msgstr "Si scugne meti un codiç PIN pal dispositîf a bande largje mobil"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Passowrd rêt mobil a bande largje"
|
msgstr "Passowrd rêt mobil a bande largje"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "A covente une password par tacâsi a '%s'."
|
msgstr "A covente une password par tacâsi a '%s'."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Ministradôr di rêt"
|
msgstr "Ministradôr di rêt"
|
||||||
|
|
||||||
@@ -962,7 +962,7 @@ msgstr "Autentiche"
|
|||||||
#. * requested authentication was not gained; this can happen
|
#. * requested authentication was not gained; this can happen
|
||||||
#. * because of an authentication error (like invalid password),
|
#. * because of an authentication error (like invalid password),
|
||||||
#. * for instance.
|
#. * for instance.
|
||||||
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
|
#: js/ui/components/polkitAgent.js:281 js/ui/shellMountOperation.js:327
|
||||||
msgid "Sorry, that didn’t work. Please try again."
|
msgid "Sorry, that didn’t work. Please try again."
|
||||||
msgstr "Mi displâs, no je lade drete. Prove di gnûf."
|
msgstr "Mi displâs, no je lade drete. Prove di gnûf."
|
||||||
|
|
||||||
@@ -1294,13 +1294,13 @@ msgid "Leave On"
|
|||||||
msgstr "Lasse ativât"
|
msgstr "Lasse ativât"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:1294
|
#: js/ui/status/network.js:1281
|
||||||
msgid "Turn On"
|
msgid "Turn On"
|
||||||
msgstr "Impie"
|
msgstr "Impie"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
||||||
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
|
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
|
||||||
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
#: js/ui/status/rfkill.js:117
|
#: js/ui/status/rfkill.js:117
|
||||||
msgid "Turn Off"
|
msgid "Turn Off"
|
||||||
@@ -1362,7 +1362,7 @@ msgstr "Viôt sorzint"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Pagjine Web"
|
msgstr "Pagjine Web"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1495
|
#: js/ui/messageTray.js:1493
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Informazion di sisteme"
|
msgstr "Informazion di sisteme"
|
||||||
|
|
||||||
@@ -1374,10 +1374,6 @@ msgstr "Artist no cognossût"
|
|||||||
msgid "Unknown title"
|
msgid "Unknown title"
|
||||||
msgstr "Titul no cognossût"
|
msgstr "Titul no cognossût"
|
||||||
|
|
||||||
#: js/ui/osdWindow.js:32 js/ui/status/volume.js:204
|
|
||||||
msgid "Volume"
|
|
||||||
msgstr "Volum"
|
|
||||||
|
|
||||||
#: js/ui/overview.js:83
|
#: js/ui/overview.js:83
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Anule"
|
msgstr "Anule"
|
||||||
@@ -1420,43 +1416,43 @@ msgstr "Assegne batidure"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Fat"
|
msgstr "Fat"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:742
|
#: js/ui/padOsd.js:740
|
||||||
msgid "Edit…"
|
msgid "Edit…"
|
||||||
msgstr "Modifiche…"
|
msgstr "Modifiche…"
|
||||||
|
|
||||||
# masculin o feminin
|
# masculin o feminin
|
||||||
#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
|
#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Nissune"
|
msgstr "Nissune"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:843
|
#: js/ui/padOsd.js:841
|
||||||
msgid "Press a button to configure"
|
msgid "Press a button to configure"
|
||||||
msgstr "Frache un boton par configurâ"
|
msgstr "Frache un boton par configurâ"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:844
|
#: js/ui/padOsd.js:842
|
||||||
msgid "Press Esc to exit"
|
msgid "Press Esc to exit"
|
||||||
msgstr "Frache Esc par jessî"
|
msgstr "Frache Esc par jessî"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:847
|
#: js/ui/padOsd.js:845
|
||||||
msgid "Press any key to exit"
|
msgid "Press any key to exit"
|
||||||
msgstr "Frache un tast par jessî"
|
msgstr "Frache un tast par jessî"
|
||||||
|
|
||||||
#: js/ui/panel.js:356
|
#: js/ui/panel.js:355
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Jes"
|
msgstr "Jes"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: js/ui/panel.js:412
|
#: js/ui/panel.js:411
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Ativitâts"
|
msgstr "Ativitâts"
|
||||||
|
|
||||||
#: js/ui/panel.js:693
|
#: js/ui/panel.js:692
|
||||||
msgctxt "System menu in the top bar"
|
msgctxt "System menu in the top bar"
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sisteme"
|
msgstr "Sisteme"
|
||||||
|
|
||||||
#: js/ui/panel.js:816
|
#: js/ui/panel.js:811
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Sbare parsore"
|
msgstr "Sbare parsore"
|
||||||
|
|
||||||
@@ -1465,24 +1461,24 @@ msgstr "Sbare parsore"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: js/ui/popupMenu.js:300
|
#: js/ui/popupMenu.js:291
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:74
|
#: js/ui/runDialog.js:70
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Scrîf un comant"
|
msgstr "Scrîf un comant"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
|
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Siere"
|
msgstr "Siere"
|
||||||
|
|
||||||
# torne invie o torne tache
|
# torne invie o torne tache
|
||||||
#: js/ui/runDialog.js:278
|
#: js/ui/runDialog.js:273
|
||||||
msgid "Restart is not available on Wayland"
|
msgid "Restart is not available on Wayland"
|
||||||
msgstr "Il tornâ a tacâ nol è disponibil in Wayland"
|
msgstr "Il tornâ a tacâ nol è disponibil in Wayland"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:283
|
#: js/ui/runDialog.js:278
|
||||||
msgid "Restarting…"
|
msgid "Restarting…"
|
||||||
msgstr "Daûr a tornâ a inviâ…"
|
msgstr "Daûr a tornâ a inviâ…"
|
||||||
|
|
||||||
@@ -1506,7 +1502,7 @@ msgid_plural "%d new notifications"
|
|||||||
msgstr[0] "%d gnove notifiche"
|
msgstr[0] "%d gnove notifiche"
|
||||||
msgstr[1] "%d gnovis modifichis"
|
msgstr[1] "%d gnovis modifichis"
|
||||||
|
|
||||||
#: js/ui/screenShield.js:451 js/ui/status/system.js:294
|
#: js/ui/screenShield.js:451 js/ui/status/system.js:283
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Bloche"
|
msgstr "Bloche"
|
||||||
|
|
||||||
@@ -1690,7 +1686,7 @@ msgid "<unknown>"
|
|||||||
msgstr "<no cognossût>"
|
msgstr "<no cognossût>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
|
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s distudât"
|
msgstr "%s distudât"
|
||||||
@@ -1716,7 +1712,7 @@ msgid "%s Disconnecting"
|
|||||||
msgstr "%s daûr a disconeti"
|
msgstr "%s daûr a disconeti"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
|
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "%s in conession"
|
msgstr "%s in conession"
|
||||||
@@ -1756,7 +1752,7 @@ msgid "Mobile Broadband Settings"
|
|||||||
msgstr "Impostazions bande largje mobil"
|
msgstr "Impostazions bande largje mobil"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s disabilitât vie hardware "
|
msgstr "%s disabilitât vie hardware "
|
||||||
@@ -1812,81 +1808,81 @@ msgstr "Nissune rêt"
|
|||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Dopre interutôr fisic par distudâ"
|
msgstr "Dopre interutôr fisic par distudâ"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1186
|
#: js/ui/status/network.js:1173
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Selezione rêt"
|
msgstr "Selezione rêt"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1192
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Impostazions Wi-Fi"
|
msgstr "Impostazions Wi-Fi"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1311
|
#: js/ui/status/network.js:1298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Hotspot %s atîf"
|
msgstr "Hotspot %s atîf"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1326
|
#: js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "%s distacât"
|
msgstr "%s distacât"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1426
|
#: js/ui/status/network.js:1413
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "daûr a coneti…"
|
msgstr "daûr a coneti…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1429
|
#: js/ui/status/network.js:1416
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "autenticazion necessarie"
|
msgstr "autenticazion necessarie"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1431
|
#: js/ui/status/network.js:1418
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "conession falide"
|
msgstr "conession falide"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1485
|
#: js/ui/status/network.js:1472
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "Impostazions VPN"
|
msgstr "Impostazions VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1485
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1495
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN distudât"
|
msgstr "VPN distudât"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Impostazions rêt"
|
msgstr "Impostazions rêt"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1601
|
#: js/ui/status/network.js:1588
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
msgstr[0] "%s conession cablade"
|
msgstr[0] "%s conession cablade"
|
||||||
msgstr[1] "%s conessions cabladis"
|
msgstr[1] "%s conessions cabladis"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1605
|
#: js/ui/status/network.js:1592
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
msgstr[0] "%s conession cence fîi"
|
msgstr[0] "%s conession cence fîi"
|
||||||
msgstr[1] "%s conessions cence fîi"
|
msgstr[1] "%s conessions cence fîi"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1609
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
msgstr[0] "%s conession modem"
|
msgstr[0] "%s conession modem"
|
||||||
msgstr[1] "%s conessions modem"
|
msgstr[1] "%s conessions modem"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1741
|
#: js/ui/status/network.js:1728
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Conession falide"
|
msgstr "Conession falide"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1742
|
#: js/ui/status/network.js:1729
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Ativazion de conession di rêt falide"
|
msgstr "Ativazion de conession di rêt falide"
|
||||||
|
|
||||||
@@ -1937,14 +1933,6 @@ msgstr "%d∶%02d par jessi plene (%d%%)"
|
|||||||
msgid "%d %%"
|
msgid "%d %%"
|
||||||
msgstr "%d %%"
|
msgstr "%d %%"
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:46
|
|
||||||
msgid "Screen is Being Shared"
|
|
||||||
msgstr "Il schermi al è condividût"
|
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:48
|
|
||||||
msgid "Turn off"
|
|
||||||
msgstr "Distude"
|
|
||||||
|
|
||||||
#. The menu only appears when airplane mode is on, so just
|
#. The menu only appears when airplane mode is on, so just
|
||||||
#. statically build it as if it was on, rather than dynamically
|
#. statically build it as if it was on, rather than dynamically
|
||||||
#. changing the menu contents.
|
#. changing the menu contents.
|
||||||
@@ -1964,28 +1952,28 @@ msgstr "Jes"
|
|||||||
msgid "Account Settings"
|
msgid "Account Settings"
|
||||||
msgstr "Impostazions account"
|
msgstr "Impostazions account"
|
||||||
|
|
||||||
#: js/ui/status/system.js:279
|
#: js/ui/status/system.js:268
|
||||||
msgid "Orientation Lock"
|
msgid "Orientation Lock"
|
||||||
msgstr "Bloc Orientament"
|
msgstr "Bloc Orientament"
|
||||||
|
|
||||||
#: js/ui/status/system.js:305
|
#: js/ui/status/system.js:294
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Sospindi"
|
msgstr "Sospindi"
|
||||||
|
|
||||||
#: js/ui/status/system.js:315
|
#: js/ui/status/system.js:304
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Distude"
|
msgstr "Distude"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:298
|
#: js/ui/status/thunderbolt.js:294
|
||||||
msgid "Thunderbolt"
|
msgid "Thunderbolt"
|
||||||
msgstr "Thunderbolt"
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
#. we are done
|
#. we are done
|
||||||
#: js/ui/status/thunderbolt.js:354
|
#: js/ui/status/thunderbolt.js:350
|
||||||
msgid "Unknown Thunderbolt device"
|
msgid "Unknown Thunderbolt device"
|
||||||
msgstr "Dispositîf Thunderbolt no cognossût"
|
msgstr "Dispositîf Thunderbolt no cognossût"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:355
|
#: js/ui/status/thunderbolt.js:351
|
||||||
msgid ""
|
msgid ""
|
||||||
"New device has been detected while you were away. Please disconnect and "
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
"reconnect the device to start using it."
|
"reconnect the device to start using it."
|
||||||
@@ -1993,19 +1981,23 @@ msgstr ""
|
|||||||
"Un gnûf dispositîf al è stât rilevât intant che tu jeris vie. Par plasê "
|
"Un gnûf dispositîf al è stât rilevât intant che tu jeris vie. Par plasê "
|
||||||
"disconet e torne conet il dispositîf par tacâ a doprâlu."
|
"disconet e torne conet il dispositîf par tacâ a doprâlu."
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:360
|
#: js/ui/status/thunderbolt.js:356
|
||||||
msgid "Thunderbolt authorization error"
|
msgid "Thunderbolt authorization error"
|
||||||
msgstr "Erôr di autorizazion di Thunderbolt"
|
msgstr "Erôr di autorizazion di Thunderbolt"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:361
|
#: js/ui/status/thunderbolt.js:357
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Could not authorize the Thunderbolt device: %s"
|
msgid "Could not authorize the Thunderbolt device: %s"
|
||||||
msgstr "Impussibil autorizâ il dispositîf Thunderbolt: %s"
|
msgstr "Impussibil autorizâ il dispositîf Thunderbolt: %s"
|
||||||
|
|
||||||
#: js/ui/status/volume.js:135
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Volum modificât"
|
msgstr "Volum modificât"
|
||||||
|
|
||||||
|
#: js/ui/status/volume.js:170
|
||||||
|
msgid "Volume"
|
||||||
|
msgstr "Volum"
|
||||||
|
|
||||||
#. Translators: this is for display mirroring i.e. cloning.
|
#. Translators: this is for display mirroring i.e. cloning.
|
||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
@@ -2055,22 +2047,22 @@ msgstr "Cîr"
|
|||||||
msgid "“%s” is ready"
|
msgid "“%s” is ready"
|
||||||
msgstr "“%s” al è pront"
|
msgstr "“%s” al è pront"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:74
|
#: js/ui/windowManager.js:72
|
||||||
msgid "Do you want to keep these display settings?"
|
msgid "Do you want to keep these display settings?"
|
||||||
msgstr "Vûstu tignî chestis impostazions di visôr?"
|
msgstr "Vûstu tignî chestis impostazions di visôr?"
|
||||||
|
|
||||||
#. Translators: this and the following message should be limited in lenght,
|
#. Translators: this and the following message should be limited in lenght,
|
||||||
#. to avoid ellipsizing the labels.
|
#. to avoid ellipsizing the labels.
|
||||||
#.
|
#.
|
||||||
#: js/ui/windowManager.js:86
|
#: js/ui/windowManager.js:84
|
||||||
msgid "Revert Settings"
|
msgid "Revert Settings"
|
||||||
msgstr "Ripristine impostazions"
|
msgstr "Ripristine impostazions"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:89
|
#: js/ui/windowManager.js:87
|
||||||
msgid "Keep Changes"
|
msgid "Keep Changes"
|
||||||
msgstr "Ten lis modifichis"
|
msgstr "Ten lis modifichis"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:107
|
#: js/ui/windowManager.js:105
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Settings changes will revert in %d second"
|
msgid "Settings changes will revert in %d second"
|
||||||
msgid_plural "Settings changes will revert in %d seconds"
|
msgid_plural "Settings changes will revert in %d seconds"
|
||||||
@@ -2081,7 +2073,7 @@ msgstr[1] ""
|
|||||||
|
|
||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#: js/ui/windowManager.js:689
|
#: js/ui/windowManager.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d × %d"
|
msgid "%d × %d"
|
||||||
msgstr "%d × %d"
|
msgstr "%d × %d"
|
||||||
@@ -2134,19 +2126,19 @@ msgstr "Sposte tal spazi di lavôr Parsore"
|
|||||||
msgid "Move to Workspace Down"
|
msgid "Move to Workspace Down"
|
||||||
msgstr "Sposte tal spazi di lavôr Disot"
|
msgstr "Sposte tal spazi di lavôr Disot"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:139
|
#: js/ui/windowMenu.js:140
|
||||||
msgid "Move to Monitor Up"
|
msgid "Move to Monitor Up"
|
||||||
msgstr "Sposte tal visôr parsore"
|
msgstr "Sposte tal visôr parsore"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:148
|
#: js/ui/windowMenu.js:149
|
||||||
msgid "Move to Monitor Down"
|
msgid "Move to Monitor Down"
|
||||||
msgstr "Sposte tal visôr disot"
|
msgstr "Sposte tal visôr disot"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:157
|
#: js/ui/windowMenu.js:158
|
||||||
msgid "Move to Monitor Left"
|
msgid "Move to Monitor Left"
|
||||||
msgstr "Sposte tal visôr a çampe"
|
msgstr "Sposte tal visôr a çampe"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:166
|
#: js/ui/windowMenu.js:167
|
||||||
msgid "Move to Monitor Right"
|
msgid "Move to Monitor Right"
|
||||||
msgstr "Sposte tal visôr a drete"
|
msgstr "Sposte tal visôr a drete"
|
||||||
|
|
||||||
@@ -2159,28 +2151,28 @@ msgstr "Calendari di Evolution"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:410
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Stampe version"
|
msgstr "Stampe version"
|
||||||
|
|
||||||
#: src/main.c:416
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Modalitât doprade da GDM pe videade di acès"
|
msgstr "Modalitât doprade da GDM pe videade di acès"
|
||||||
|
|
||||||
#: src/main.c:422
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr "Dopre une modalitât specifiche, par esempli “gdm” pe videade di acès"
|
msgstr "Dopre une modalitât specifiche, par esempli “gdm” pe videade di acès"
|
||||||
|
|
||||||
#: src/main.c:428
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Liste modalitâts pussibilis"
|
msgstr "Liste modalitâts pussibilis"
|
||||||
|
|
||||||
#: src/shell-app.c:272
|
#: src/shell-app.c:270
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "No cognossût"
|
msgstr "No cognossût"
|
||||||
|
|
||||||
#: src/shell-app.c:523
|
#: src/shell-app.c:511
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "No soi rivât a eseguî '%s'"
|
msgstr "No soi rivât a eseguî '%s'"
|
||||||
|
271
po/lt.po
271
po/lt.po
@@ -10,8 +10,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
|
||||||
"POT-Creation-Date: 2018-08-01 18:08+0000\n"
|
"POT-Creation-Date: 2018-02-26 17:00+0000\n"
|
||||||
"PO-Revision-Date: 2018-08-05 23:20+0300\n"
|
"PO-Revision-Date: 2018-02-28 23:39+0200\n"
|
||||||
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
|
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
|
||||||
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
|
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
|
||||||
"Language: lt\n"
|
"Language: lt\n"
|
||||||
@@ -290,32 +290,32 @@ msgstr ""
|
|||||||
"Jei teigiama, perjungimo lange rodomi tik langai iš dabartinės darbo "
|
"Jei teigiama, perjungimo lange rodomi tik langai iš dabartinės darbo "
|
||||||
"srities. Priešingu atveju įtraukiami visi langai."
|
"srities. Priešingu atveju įtraukiami visi langai."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:198
|
#: data/org.gnome.shell.gschema.xml.in:197
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
|
msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:199
|
#: data/org.gnome.shell.gschema.xml.in:198
|
||||||
#: data/org.gnome.shell.gschema.xml.in:208
|
#: data/org.gnome.shell.gschema.xml.in:207
|
||||||
#: data/org.gnome.shell.gschema.xml.in:216
|
#: data/org.gnome.shell.gschema.xml.in:215
|
||||||
#: data/org.gnome.shell.gschema.xml.in:224
|
#: data/org.gnome.shell.gschema.xml.in:223
|
||||||
#: data/org.gnome.shell.gschema.xml.in:232
|
#: data/org.gnome.shell.gschema.xml.in:231
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr "Šis raktas perrašo org.gnome.mutter raktą, kai vykdoma GNOME Shell."
|
msgstr "Šis raktas perrašo org.gnome.mutter raktą, kai vykdoma GNOME Shell."
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:207
|
#: data/org.gnome.shell.gschema.xml.in:206
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr "Įjungti kraštų išplėtimą, kai langai numetami ekrano kraštuose"
|
msgstr "Įjungti kraštų išplėtimą, kai langai numetami ekrano kraštuose"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:215
|
#: data/org.gnome.shell.gschema.xml.in:214
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Darbo sritys yra tvarkomos dinamiškai"
|
msgstr "Darbo sritys yra tvarkomos dinamiškai"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:223
|
#: data/org.gnome.shell.gschema.xml.in:222
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Darbo sritys tik pagrindiniame monitoriuje"
|
msgstr "Darbo sritys tik pagrindiniame monitoriuje"
|
||||||
|
|
||||||
#: data/org.gnome.shell.gschema.xml.in:231
|
#: data/org.gnome.shell.gschema.xml.in:230
|
||||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||||
msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti"
|
msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti"
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@ msgid "There was an error loading the preferences dialog for %s:"
|
|||||||
msgstr "Kilo klaida įkeliant %s nuostatų dialogą:"
|
msgstr "Kilo klaida įkeliant %s nuostatų dialogą:"
|
||||||
|
|
||||||
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
|
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
|
||||||
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:153
|
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
|
||||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||||
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
|
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
@@ -354,20 +354,20 @@ msgctxt "button"
|
|||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Prisijungti"
|
msgstr "Prisijungti"
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:319
|
#: js/gdm/loginDialog.js:315
|
||||||
msgid "Choose Session"
|
msgid "Choose Session"
|
||||||
msgstr "Pasirinkite seansą"
|
msgstr "Pasirinkite seansą"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: js/gdm/loginDialog.js:462
|
#: js/gdm/loginDialog.js:458
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Nėra sąraše?"
|
msgstr "Nėra sąraše?"
|
||||||
|
|
||||||
#. Translators: this message is shown below the username entry field
|
#. Translators: this message is shown below the username entry field
|
||||||
#. to clue the user in on how to login to the local network realm
|
#. to clue the user in on how to login to the local network realm
|
||||||
#: js/gdm/loginDialog.js:891
|
#: js/gdm/loginDialog.js:887
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(pvz., naudotojas arba %s)"
|
msgstr "(pvz., naudotojas arba %s)"
|
||||||
@@ -375,12 +375,12 @@ msgstr "(pvz., naudotojas arba %s)"
|
|||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. is not visible here since we only care about phase2 authentication
|
||||||
#. (and don't even care of which one)
|
#. (and don't even care of which one)
|
||||||
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
|
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
|
||||||
#: js/ui/components/networkAgent.js:261
|
#: js/ui/components/networkAgent.js:261
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Naudotojo vardas: "
|
msgstr "Naudotojo vardas: "
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:1234
|
#: js/gdm/loginDialog.js:1228
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Prisijungimo langas"
|
msgstr "Prisijungimo langas"
|
||||||
|
|
||||||
@@ -393,7 +393,7 @@ msgstr "Tapatybės patvirtinimo klaida"
|
|||||||
#. as a cue to display our own message.
|
#. as a cue to display our own message.
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: js/gdm/util.js:485
|
#: js/gdm/util.js:482
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(arba perbraukite pirštu)"
|
msgstr "(arba perbraukite pirštu)"
|
||||||
|
|
||||||
@@ -639,32 +639,32 @@ msgstr "Dažnai naudojamos"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Visos"
|
msgstr "Visos"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1890
|
#: js/ui/appDisplay.js:1886
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Naujas langas"
|
msgstr "Naujas langas"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1904
|
#: js/ui/appDisplay.js:1900
|
||||||
msgid "Launch using Dedicated Graphics Card"
|
msgid "Launch using Dedicated Graphics Card"
|
||||||
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
|
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
|
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Pašalinti iš mėgstamų"
|
msgstr "Pašalinti iš mėgstamų"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1937
|
#: js/ui/appDisplay.js:1933
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Pridėti prie mėgstamų"
|
msgstr "Pridėti prie mėgstamų"
|
||||||
|
|
||||||
#: js/ui/appDisplay.js:1947
|
#: js/ui/appDisplay.js:1943
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Rodyti detalią informaciją"
|
msgstr "Rodyti detalią informaciją"
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:140
|
#: js/ui/appFavorites.js:138
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been added to your favorites."
|
msgid "%s has been added to your favorites."
|
||||||
msgstr "%s pridėta prie jūsų mėgstamų."
|
msgstr "%s pridėta prie jūsų mėgstamų."
|
||||||
|
|
||||||
#: js/ui/appFavorites.js:174
|
#: js/ui/appFavorites.js:172
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s pašalinta iš jūsų mėgstamų."
|
msgstr "%s pašalinta iš jūsų mėgstamų."
|
||||||
@@ -685,7 +685,7 @@ msgstr "Ausinės"
|
|||||||
msgid "Headset"
|
msgid "Headset"
|
||||||
msgstr "Ausinės su mikrofonu"
|
msgstr "Ausinės su mikrofonu"
|
||||||
|
|
||||||
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
|
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
|
||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Mikrofonas"
|
msgstr "Mikrofonas"
|
||||||
|
|
||||||
@@ -697,7 +697,7 @@ msgstr "Keisti foną…"
|
|||||||
msgid "Display Settings"
|
msgid "Display Settings"
|
||||||
msgstr "Ekrano nustatymai"
|
msgstr "Ekrano nustatymai"
|
||||||
|
|
||||||
#: js/ui/backgroundMenu.js:22
|
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Nustatymai"
|
msgstr "Nustatymai"
|
||||||
|
|
||||||
@@ -802,35 +802,35 @@ msgctxt "event list time"
|
|||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Visa diena"
|
msgstr "Visa diena"
|
||||||
|
|
||||||
#: js/ui/calendar.js:866
|
#: js/ui/calendar.js:864
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d d."
|
msgstr "%A, %B %d d."
|
||||||
|
|
||||||
#: js/ui/calendar.js:870
|
#: js/ui/calendar.js:868
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %Y m. %B %d d."
|
msgstr "%A, %Y m. %B %d d."
|
||||||
|
|
||||||
#: js/ui/calendar.js:1100
|
#: js/ui/calendar.js:1086
|
||||||
msgid "No Notifications"
|
msgid "No Notifications"
|
||||||
msgstr "Nėra pranešimų"
|
msgstr "Nėra pranešimų"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1103
|
#: js/ui/calendar.js:1089
|
||||||
msgid "No Events"
|
msgid "No Events"
|
||||||
msgstr "Nėra įvykių"
|
msgstr "Nėra įvykių"
|
||||||
|
|
||||||
#: js/ui/calendar.js:1131
|
#: js/ui/calendar.js:1117
|
||||||
msgid "Clear All"
|
msgid "Clear All"
|
||||||
msgstr "Viską išvalyti"
|
msgstr "Viską išvalyti"
|
||||||
|
|
||||||
#. Translators: %s is an application name
|
#. Translators: %s is an application name
|
||||||
#: js/ui/closeDialog.js:47
|
#: js/ui/closeDialog.js:44
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "„%s“ neatsiliepia."
|
msgstr "„%s“ neatsiliepia."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:48
|
#: js/ui/closeDialog.js:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -838,11 +838,11 @@ msgstr ""
|
|||||||
"Galite dar palaukti ir duoti programai laiko arba galite priverstinai "
|
"Galite dar palaukti ir duoti programai laiko arba galite priverstinai "
|
||||||
"išjungti programą."
|
"išjungti programą."
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:64
|
#: js/ui/closeDialog.js:61
|
||||||
msgid "Force Quit"
|
msgid "Force Quit"
|
||||||
msgstr "Priverstinai išjungti"
|
msgstr "Priverstinai išjungti"
|
||||||
|
|
||||||
#: js/ui/closeDialog.js:67
|
#: js/ui/closeDialog.js:64
|
||||||
msgid "Wait"
|
msgid "Wait"
|
||||||
msgstr "Laukti"
|
msgstr "Laukti"
|
||||||
|
|
||||||
@@ -859,7 +859,7 @@ msgstr "Atjungta išorinė laikmena"
|
|||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Atverti su %s"
|
msgstr "Atverti su %s"
|
||||||
|
|
||||||
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
|
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:284
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Slaptažodis:"
|
msgstr "Slaptažodis:"
|
||||||
|
|
||||||
@@ -896,11 +896,11 @@ msgstr "Privataus rakto slaptažodis: "
|
|||||||
msgid "Service: "
|
msgid "Service: "
|
||||||
msgstr "Tarnyba: "
|
msgstr "Tarnyba: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
|
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
|
||||||
msgid "Authentication required by wireless network"
|
msgid "Authentication required by wireless network"
|
||||||
msgstr "Belaidžiam tinklui reikia patvirtinti tapatybę"
|
msgstr "Belaidžiam tinklui reikia patvirtinti tapatybę"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
|
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
@@ -909,7 +909,7 @@ msgstr ""
|
|||||||
"Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio "
|
"Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio "
|
||||||
"tinklo „%s“."
|
"tinklo „%s“."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
|
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
msgstr "Laidinis 802.1X tapatybės patvirtinimas"
|
msgstr "Laidinis 802.1X tapatybės patvirtinimas"
|
||||||
|
|
||||||
@@ -917,15 +917,15 @@ msgstr "Laidinis 802.1X tapatybės patvirtinimas"
|
|||||||
msgid "Network name: "
|
msgid "Network name: "
|
||||||
msgstr "Tinklo vardas: "
|
msgstr "Tinklo vardas: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
|
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
|
||||||
msgid "DSL authentication"
|
msgid "DSL authentication"
|
||||||
msgstr "DSL tapatybės patvirtinimas"
|
msgstr "DSL tapatybės patvirtinimas"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
|
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
|
||||||
msgid "PIN code required"
|
msgid "PIN code required"
|
||||||
msgstr "Reikalingas PIN kodas"
|
msgstr "Reikalingas PIN kodas"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
|
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
|
||||||
msgid "PIN code is needed for the mobile broadband device"
|
msgid "PIN code is needed for the mobile broadband device"
|
||||||
msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui"
|
msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui"
|
||||||
|
|
||||||
@@ -933,29 +933,29 @@ msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui"
|
|||||||
msgid "PIN: "
|
msgid "PIN: "
|
||||||
msgstr "PIN: "
|
msgstr "PIN: "
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
|
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
|
||||||
msgid "Mobile broadband network password"
|
msgid "Mobile broadband network password"
|
||||||
msgstr "Mobiliojo plačiajuosčio tinklo slaptažodis"
|
msgstr "Mobiliojo plačiajuosčio tinklo slaptažodis"
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
|
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
|
||||||
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
|
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "Būtinas slaptažodis norint prisijungti prie „%s“."
|
msgstr "Būtinas slaptažodis norint prisijungti prie „%s“."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
|
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Tinklo tvarkymas"
|
msgstr "Tinklo tvarkymas"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:48
|
#: js/ui/components/polkitAgent.js:43
|
||||||
msgid "Authentication Required"
|
msgid "Authentication Required"
|
||||||
msgstr "Reikia patvirtinti tapatybę"
|
msgstr "Reikia patvirtinti tapatybę"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:76
|
#: js/ui/components/polkitAgent.js:71
|
||||||
msgid "Administrator"
|
msgid "Administrator"
|
||||||
msgstr "Administratorius"
|
msgstr "Administratorius"
|
||||||
|
|
||||||
#: js/ui/components/polkitAgent.js:156
|
#: js/ui/components/polkitAgent.js:151
|
||||||
msgid "Authenticate"
|
msgid "Authenticate"
|
||||||
msgstr "Patvirtinti tapatybę"
|
msgstr "Patvirtinti tapatybę"
|
||||||
|
|
||||||
@@ -963,7 +963,7 @@ msgstr "Patvirtinti tapatybę"
|
|||||||
#. * requested authentication was not gained; this can happen
|
#. * requested authentication was not gained; this can happen
|
||||||
#. * because of an authentication error (like invalid password),
|
#. * because of an authentication error (like invalid password),
|
||||||
#. * for instance.
|
#. * for instance.
|
||||||
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
|
#: js/ui/components/polkitAgent.js:270 js/ui/shellMountOperation.js:327
|
||||||
msgid "Sorry, that didn’t work. Please try again."
|
msgid "Sorry, that didn’t work. Please try again."
|
||||||
msgstr "Atsiprašome, tai nesuveikė. Bandykite dar kartą."
|
msgstr "Atsiprašome, tai nesuveikė. Bandykite dar kartą."
|
||||||
|
|
||||||
@@ -1011,7 +1011,7 @@ msgstr "Pridėti pasaulio laikrodžius…"
|
|||||||
msgid "World Clocks"
|
msgid "World Clocks"
|
||||||
msgstr "Pasaulio laikrodžiai"
|
msgstr "Pasaulio laikrodžiai"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:227
|
#: js/ui/dateMenu.js:225
|
||||||
msgid "Weather"
|
msgid "Weather"
|
||||||
msgstr "Orai"
|
msgstr "Orai"
|
||||||
|
|
||||||
@@ -1019,7 +1019,7 @@ msgstr "Orai"
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:291
|
#: js/ui/dateMenu.js:289
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s all day."
|
msgid "%s all day."
|
||||||
msgstr "%s visą dieną."
|
msgstr "%s visą dieną."
|
||||||
@@ -1028,7 +1028,7 @@ msgstr "%s visą dieną."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:297
|
#: js/ui/dateMenu.js:295
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s later."
|
msgid "%s, then %s later."
|
||||||
msgstr "%s, o vėliau %s."
|
msgstr "%s, o vėliau %s."
|
||||||
@@ -1037,30 +1037,30 @@ msgstr "%s, o vėliau %s."
|
|||||||
#. libgweather for the possible condition strings. If at all
|
#. libgweather for the possible condition strings. If at all
|
||||||
#. possible, the sentence should match the grammatical case etc. of
|
#. possible, the sentence should match the grammatical case etc. of
|
||||||
#. the inserted conditions.
|
#. the inserted conditions.
|
||||||
#: js/ui/dateMenu.js:303
|
#: js/ui/dateMenu.js:301
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s, then %s, followed by %s later."
|
msgid "%s, then %s, followed by %s later."
|
||||||
msgstr "%s, tuomet %s, o po to vėliau %s."
|
msgstr "%s, tuomet %s, o po to vėliau %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:314
|
#: js/ui/dateMenu.js:312
|
||||||
msgid "Select a location…"
|
msgid "Select a location…"
|
||||||
msgstr "Pasirinkite vietą…"
|
msgstr "Pasirinkite vietą…"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:317
|
#: js/ui/dateMenu.js:315
|
||||||
msgid "Loading…"
|
msgid "Loading…"
|
||||||
msgstr "Įkeliama…"
|
msgstr "Įkeliama…"
|
||||||
|
|
||||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||||
#: js/ui/dateMenu.js:323
|
#: js/ui/dateMenu.js:321
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Feels like %s."
|
msgid "Feels like %s."
|
||||||
msgstr "Jaučiama kaip %s."
|
msgstr "Jaučiama kaip %s."
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:326
|
#: js/ui/dateMenu.js:324
|
||||||
msgid "Go online for weather information"
|
msgid "Go online for weather information"
|
||||||
msgstr "Prisijunkite prie tinklo orų informacijai gauti"
|
msgstr "Prisijunkite prie tinklo orų informacijai gauti"
|
||||||
|
|
||||||
#: js/ui/dateMenu.js:328
|
#: js/ui/dateMenu.js:326
|
||||||
msgid "Weather information is currently unavailable"
|
msgid "Weather information is currently unavailable"
|
||||||
msgstr "Orų informacija šiuo metu yra neprieinama"
|
msgstr "Orų informacija šiuo metu yra neprieinama"
|
||||||
|
|
||||||
@@ -1252,10 +1252,12 @@ msgid "Allow"
|
|||||||
msgstr "Leisti"
|
msgstr "Leisti"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:33
|
#: js/ui/kbdA11yDialog.js:33
|
||||||
|
#| msgid "Slow Keys"
|
||||||
msgid "Slow Keys Turned On"
|
msgid "Slow Keys Turned On"
|
||||||
msgstr "Lėtieji klavišai įjungti"
|
msgstr "Lėtieji klavišai įjungti"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:34
|
#: js/ui/kbdA11yDialog.js:34
|
||||||
|
#| msgid "Slow Keys"
|
||||||
msgid "Slow Keys Turned Off"
|
msgid "Slow Keys Turned Off"
|
||||||
msgstr "Lėtieji klavišai išjungti"
|
msgstr "Lėtieji klavišai išjungti"
|
||||||
|
|
||||||
@@ -1268,10 +1270,12 @@ msgstr ""
|
|||||||
"trumpinus, kuris keičia klaviatūros veikseną."
|
"trumpinus, kuris keičia klaviatūros veikseną."
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:42
|
#: js/ui/kbdA11yDialog.js:42
|
||||||
|
#| msgid "Sticky Keys"
|
||||||
msgid "Sticky Keys Turned On"
|
msgid "Sticky Keys Turned On"
|
||||||
msgstr "Kibieji klavišai įjungti"
|
msgstr "Kibieji klavišai įjungti"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:43
|
#: js/ui/kbdA11yDialog.js:43
|
||||||
|
#| msgid "Sticky Keys"
|
||||||
msgid "Sticky Keys Turned Off"
|
msgid "Sticky Keys Turned Off"
|
||||||
msgstr "Kibieji klavišai išjungti"
|
msgstr "Kibieji klavišai išjungti"
|
||||||
|
|
||||||
@@ -1298,13 +1302,13 @@ msgid "Leave On"
|
|||||||
msgstr "Palikti įjungtą"
|
msgstr "Palikti įjungtą"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:1294
|
#: js/ui/status/network.js:1281
|
||||||
msgid "Turn On"
|
msgid "Turn On"
|
||||||
msgstr "Įjungti"
|
msgstr "Įjungti"
|
||||||
|
|
||||||
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
|
||||||
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
#: js/ui/status/network.js:154 js/ui/status/network.js:337
|
||||||
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
|
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
|
||||||
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
|
||||||
#: js/ui/status/rfkill.js:117
|
#: js/ui/status/rfkill.js:117
|
||||||
msgid "Turn Off"
|
msgid "Turn Off"
|
||||||
@@ -1315,6 +1319,7 @@ msgid "Leave Off"
|
|||||||
msgstr "Palikti išjungtą"
|
msgstr "Palikti išjungtą"
|
||||||
|
|
||||||
#: js/ui/keyboard.js:198
|
#: js/ui/keyboard.js:198
|
||||||
|
#| msgid "Date & Time Settings"
|
||||||
msgid "Region & Language Settings"
|
msgid "Region & Language Settings"
|
||||||
msgstr "Regiono ir kalbos nustatymai"
|
msgstr "Regiono ir kalbos nustatymai"
|
||||||
|
|
||||||
@@ -1366,7 +1371,7 @@ msgstr "Žiūrėti šaltinį"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Tinklalapis"
|
msgstr "Tinklalapis"
|
||||||
|
|
||||||
#: js/ui/messageTray.js:1495
|
#: js/ui/messageTray.js:1493
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Sistemos informacija"
|
msgstr "Sistemos informacija"
|
||||||
|
|
||||||
@@ -1378,10 +1383,6 @@ msgstr "Nežinomas atlikėjas"
|
|||||||
msgid "Unknown title"
|
msgid "Unknown title"
|
||||||
msgstr "Nežinomas pavadinimas"
|
msgstr "Nežinomas pavadinimas"
|
||||||
|
|
||||||
#: js/ui/osdWindow.js:32 js/ui/status/volume.js:204
|
|
||||||
msgid "Volume"
|
|
||||||
msgstr "Garsumas"
|
|
||||||
|
|
||||||
#: js/ui/overview.js:83
|
#: js/ui/overview.js:83
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Atšaukti"
|
msgstr "Atšaukti"
|
||||||
@@ -1424,42 +1425,42 @@ msgstr "Priskirti klavišų kombinaciją"
|
|||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Atlikta"
|
msgstr "Atlikta"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:742
|
#: js/ui/padOsd.js:740
|
||||||
msgid "Edit…"
|
msgid "Edit…"
|
||||||
msgstr "Keisti…"
|
msgstr "Keisti…"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
|
#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Nėra"
|
msgstr "Nėra"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:843
|
#: js/ui/padOsd.js:841
|
||||||
msgid "Press a button to configure"
|
msgid "Press a button to configure"
|
||||||
msgstr "Spauskite mygtuką konfigūravimui"
|
msgstr "Spauskite mygtuką konfigūravimui"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:844
|
#: js/ui/padOsd.js:842
|
||||||
msgid "Press Esc to exit"
|
msgid "Press Esc to exit"
|
||||||
msgstr "Spauskit Esc išėjimui"
|
msgstr "Spauskit Esc išėjimui"
|
||||||
|
|
||||||
#: js/ui/padOsd.js:847
|
#: js/ui/padOsd.js:845
|
||||||
msgid "Press any key to exit"
|
msgid "Press any key to exit"
|
||||||
msgstr "Išėjimui spauskite bet kurį klavišą"
|
msgstr "Išėjimui spauskite bet kurį klavišą"
|
||||||
|
|
||||||
#: js/ui/panel.js:356
|
#: js/ui/panel.js:355
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Užverti"
|
msgstr "Užverti"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. Translators: If there is no suitable word for "Activities"
|
||||||
#. in your language, you can use the word for "Overview".
|
#. in your language, you can use the word for "Overview".
|
||||||
#: js/ui/panel.js:412
|
#: js/ui/panel.js:411
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Apžvalga"
|
msgstr "Apžvalga"
|
||||||
|
|
||||||
#: js/ui/panel.js:693
|
#: js/ui/panel.js:692
|
||||||
msgctxt "System menu in the top bar"
|
msgctxt "System menu in the top bar"
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: js/ui/panel.js:816
|
#: js/ui/panel.js:811
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Viršutinė juosta"
|
msgstr "Viršutinė juosta"
|
||||||
|
|
||||||
@@ -1468,23 +1469,23 @@ msgstr "Viršutinė juosta"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: js/ui/popupMenu.js:300
|
#: js/ui/popupMenu.js:291
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:74
|
#: js/ui/runDialog.js:70
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Įveskite komandą"
|
msgstr "Įveskite komandą"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
|
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Užverti"
|
msgstr "Užverti"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:278
|
#: js/ui/runDialog.js:273
|
||||||
msgid "Restart is not available on Wayland"
|
msgid "Restart is not available on Wayland"
|
||||||
msgstr "Perleisti Wayland aplinkoje negalima"
|
msgstr "Perleisti Wayland aplinkoje negalima"
|
||||||
|
|
||||||
#: js/ui/runDialog.js:283
|
#: js/ui/runDialog.js:278
|
||||||
msgid "Restarting…"
|
msgid "Restarting…"
|
||||||
msgstr "Perleidžiama…"
|
msgstr "Perleidžiama…"
|
||||||
|
|
||||||
@@ -1510,7 +1511,7 @@ msgstr[0] "%d naujas pranešimas"
|
|||||||
msgstr[1] "%d nauji pranešimai"
|
msgstr[1] "%d nauji pranešimai"
|
||||||
msgstr[2] "%d naujų pranešimų"
|
msgstr[2] "%d naujų pranešimų"
|
||||||
|
|
||||||
#: js/ui/screenShield.js:451 js/ui/status/system.js:294
|
#: js/ui/screenShield.js:451 js/ui/status/system.js:283
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Užrakinti"
|
msgstr "Užrakinti"
|
||||||
|
|
||||||
@@ -1693,7 +1694,7 @@ msgid "<unknown>"
|
|||||||
msgstr "<nežinoma>"
|
msgstr "<nežinoma>"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
|
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Off"
|
msgid "%s Off"
|
||||||
msgstr "%s išjungtas"
|
msgstr "%s išjungtas"
|
||||||
@@ -1719,7 +1720,7 @@ msgid "%s Disconnecting"
|
|||||||
msgstr "Atsijungiama nuo %s"
|
msgstr "Atsijungiama nuo %s"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
|
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Connecting"
|
msgid "%s Connecting"
|
||||||
msgstr "Jungiamasi prie %s"
|
msgstr "Jungiamasi prie %s"
|
||||||
@@ -1759,7 +1760,7 @@ msgid "Mobile Broadband Settings"
|
|||||||
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
|
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
|
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hardware Disabled"
|
msgid "%s Hardware Disabled"
|
||||||
msgstr "%s aparatinė įranga išjungta"
|
msgstr "%s aparatinė įranga išjungta"
|
||||||
@@ -1815,56 +1816,56 @@ msgstr "Nėra tinklų"
|
|||||||
msgid "Use hardware switch to turn off"
|
msgid "Use hardware switch to turn off"
|
||||||
msgstr "Išjungimui naudoti aparatinį jungiklį"
|
msgstr "Išjungimui naudoti aparatinį jungiklį"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1186
|
#: js/ui/status/network.js:1173
|
||||||
msgid "Select Network"
|
msgid "Select Network"
|
||||||
msgstr "Pasirinkite tinklą"
|
msgstr "Pasirinkite tinklą"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1192
|
#: js/ui/status/network.js:1179
|
||||||
msgid "Wi-Fi Settings"
|
msgid "Wi-Fi Settings"
|
||||||
msgstr "Belaidžio ryšio nustatymai"
|
msgstr "Belaidžio ryšio nustatymai"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1311
|
#: js/ui/status/network.js:1298
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Hotspot Active"
|
msgid "%s Hotspot Active"
|
||||||
msgstr "Prieigos taškas %s aktyvus"
|
msgstr "Prieigos taškas %s aktyvus"
|
||||||
|
|
||||||
#. Translators: %s is a network identifier
|
#. Translators: %s is a network identifier
|
||||||
#: js/ui/status/network.js:1326
|
#: js/ui/status/network.js:1313
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Not Connected"
|
msgid "%s Not Connected"
|
||||||
msgstr "Neprisijungta prie %s"
|
msgstr "Neprisijungta prie %s"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1426
|
#: js/ui/status/network.js:1413
|
||||||
msgid "connecting…"
|
msgid "connecting…"
|
||||||
msgstr "jungiamasi…"
|
msgstr "jungiamasi…"
|
||||||
|
|
||||||
#. Translators: this is for network connections that require some kind of key or password
|
#. Translators: this is for network connections that require some kind of key or password
|
||||||
#: js/ui/status/network.js:1429
|
#: js/ui/status/network.js:1416
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "reikia patvirtinti tapatybę"
|
msgstr "reikia patvirtinti tapatybę"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1431
|
#: js/ui/status/network.js:1418
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "nepavyko prisijungti"
|
msgstr "nepavyko prisijungti"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1485
|
#: js/ui/status/network.js:1472
|
||||||
msgid "VPN Settings"
|
msgid "VPN Settings"
|
||||||
msgstr "VPN nustatymai"
|
msgstr "VPN nustatymai"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1498
|
#: js/ui/status/network.js:1485
|
||||||
msgid "VPN"
|
msgid "VPN"
|
||||||
msgstr "VPN"
|
msgstr "VPN"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1508
|
#: js/ui/status/network.js:1495
|
||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN išjungtas"
|
msgstr "VPN išjungtas"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Tinklo nustatymai"
|
msgstr "Tinklo nustatymai"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1601
|
#: js/ui/status/network.js:1588
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wired Connection"
|
msgid "%s Wired Connection"
|
||||||
msgid_plural "%s Wired Connections"
|
msgid_plural "%s Wired Connections"
|
||||||
@@ -1872,7 +1873,7 @@ msgstr[0] "%s laidinis ryšys"
|
|||||||
msgstr[1] "%s laidiniai ryšiai"
|
msgstr[1] "%s laidiniai ryšiai"
|
||||||
msgstr[2] "%s laidinių ryšių"
|
msgstr[2] "%s laidinių ryšių"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1605
|
#: js/ui/status/network.js:1592
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Wi-Fi Connection"
|
msgid "%s Wi-Fi Connection"
|
||||||
msgid_plural "%s Wi-Fi Connections"
|
msgid_plural "%s Wi-Fi Connections"
|
||||||
@@ -1880,7 +1881,7 @@ msgstr[0] "%s belaidis ryšys"
|
|||||||
msgstr[1] "%s belaidžiai ryšiai"
|
msgstr[1] "%s belaidžiai ryšiai"
|
||||||
msgstr[2] "%s belaidžių ryšių"
|
msgstr[2] "%s belaidžių ryšių"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1609
|
#: js/ui/status/network.js:1596
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s Modem Connection"
|
msgid "%s Modem Connection"
|
||||||
msgid_plural "%s Modem Connections"
|
msgid_plural "%s Modem Connections"
|
||||||
@@ -1888,11 +1889,11 @@ msgstr[0] "%s modemo ryšys"
|
|||||||
msgstr[1] "%s modemo ryšiai"
|
msgstr[1] "%s modemo ryšiai"
|
||||||
msgstr[2] "%s modemo ryšių"
|
msgstr[2] "%s modemo ryšių"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1741
|
#: js/ui/status/network.js:1728
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Nepavyko prisijungti"
|
msgstr "Nepavyko prisijungti"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1742
|
#: js/ui/status/network.js:1729
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Tinklo ryšio nepavyko aktyvuoti"
|
msgstr "Tinklo ryšio nepavyko aktyvuoti"
|
||||||
|
|
||||||
@@ -1943,15 +1944,6 @@ msgstr "%d∶%02d iki pilno (%d %%)"
|
|||||||
msgid "%d %%"
|
msgid "%d %%"
|
||||||
msgstr "%d %%"
|
msgstr "%d %%"
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:46
|
|
||||||
msgid "Screen is Being Shared"
|
|
||||||
msgstr "Ekranas yra bendrinamas"
|
|
||||||
|
|
||||||
#: js/ui/status/remoteAccess.js:48
|
|
||||||
#| msgid "Turn Off"
|
|
||||||
msgid "Turn off"
|
|
||||||
msgstr "Išjungti"
|
|
||||||
|
|
||||||
#. The menu only appears when airplane mode is on, so just
|
#. The menu only appears when airplane mode is on, so just
|
||||||
#. statically build it as if it was on, rather than dynamically
|
#. statically build it as if it was on, rather than dynamically
|
||||||
#. changing the menu contents.
|
#. changing the menu contents.
|
||||||
@@ -1971,28 +1963,28 @@ msgstr "Atsijungti"
|
|||||||
msgid "Account Settings"
|
msgid "Account Settings"
|
||||||
msgstr "Paskyros nustatymai"
|
msgstr "Paskyros nustatymai"
|
||||||
|
|
||||||
#: js/ui/status/system.js:279
|
#: js/ui/status/system.js:268
|
||||||
msgid "Orientation Lock"
|
msgid "Orientation Lock"
|
||||||
msgstr "Padėties užrakinimas"
|
msgstr "Padėties užrakinimas"
|
||||||
|
|
||||||
#: js/ui/status/system.js:305
|
#: js/ui/status/system.js:294
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Pristabdyti"
|
msgstr "Pristabdyti"
|
||||||
|
|
||||||
#: js/ui/status/system.js:315
|
#: js/ui/status/system.js:304
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Išjungti"
|
msgstr "Išjungti"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:298
|
#: js/ui/status/thunderbolt.js:272
|
||||||
msgid "Thunderbolt"
|
msgid "Thunderbolt"
|
||||||
msgstr "Thunderbolt"
|
msgstr "Thunderbolt"
|
||||||
|
|
||||||
#. we are done
|
#. we are done
|
||||||
#: js/ui/status/thunderbolt.js:354
|
#: js/ui/status/thunderbolt.js:328
|
||||||
msgid "Unknown Thunderbolt device"
|
msgid "Unknown Thunderbolt device"
|
||||||
msgstr "Nežinoma Thunderbolt įrenginys"
|
msgstr "Nežinoma Thunderbolt įrenginys"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:355
|
#: js/ui/status/thunderbolt.js:329
|
||||||
msgid ""
|
msgid ""
|
||||||
"New device has been detected while you were away. Please disconnect and "
|
"New device has been detected while you were away. Please disconnect and "
|
||||||
"reconnect the device to start using it."
|
"reconnect the device to start using it."
|
||||||
@@ -2000,20 +1992,23 @@ msgstr ""
|
|||||||
"Jums nesant aptiktas naujas įrenginys. Atjunkite ir vėl prijunkite įrenginį, "
|
"Jums nesant aptiktas naujas įrenginys. Atjunkite ir vėl prijunkite įrenginį, "
|
||||||
"jei norite jį naudoti."
|
"jei norite jį naudoti."
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:360
|
#: js/ui/status/thunderbolt.js:334
|
||||||
msgid "Thunderbolt authorization error"
|
msgid "Thunderbolt authorization error"
|
||||||
msgstr "Thunderbolt autorizacijos klaida"
|
msgstr "Thunderbolt autorizacijos klaida"
|
||||||
|
|
||||||
#: js/ui/status/thunderbolt.js:361
|
#: js/ui/status/thunderbolt.js:335
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
#| msgid "Could not authorize the thunderbolt device: %s"
|
msgid "Could not authorize the thunderbolt device: %s"
|
||||||
msgid "Could not authorize the Thunderbolt device: %s"
|
msgstr "Nepavyko autorizuoti thunderbolt įrenginio: %s"
|
||||||
msgstr "Nepavyko autorizuoti Thunderbolt įrenginio: %s"
|
|
||||||
|
|
||||||
#: js/ui/status/volume.js:135
|
#: js/ui/status/volume.js:128
|
||||||
msgid "Volume changed"
|
msgid "Volume changed"
|
||||||
msgstr "Garsumas pakeistas"
|
msgstr "Garsumas pakeistas"
|
||||||
|
|
||||||
|
#: js/ui/status/volume.js:170
|
||||||
|
msgid "Volume"
|
||||||
|
msgstr "Garsumas"
|
||||||
|
|
||||||
#. Translators: this is for display mirroring i.e. cloning.
|
#. Translators: this is for display mirroring i.e. cloning.
|
||||||
#. * Try to keep it under around 15 characters.
|
#. * Try to keep it under around 15 characters.
|
||||||
#.
|
#.
|
||||||
@@ -2063,22 +2058,22 @@ msgstr "Ieškoti"
|
|||||||
msgid "“%s” is ready"
|
msgid "“%s” is ready"
|
||||||
msgstr "„%s“ yra pasirengusi"
|
msgstr "„%s“ yra pasirengusi"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:74
|
#: js/ui/windowManager.js:72
|
||||||
msgid "Do you want to keep these display settings?"
|
msgid "Do you want to keep these display settings?"
|
||||||
msgstr "Ar norite įrašyti šiuos vaizduoklio nustatymus?"
|
msgstr "Ar norite įrašyti šiuos vaizduoklio nustatymus?"
|
||||||
|
|
||||||
#. Translators: this and the following message should be limited in lenght,
|
#. Translators: this and the following message should be limited in lenght,
|
||||||
#. to avoid ellipsizing the labels.
|
#. to avoid ellipsizing the labels.
|
||||||
#.
|
#.
|
||||||
#: js/ui/windowManager.js:86
|
#: js/ui/windowManager.js:84
|
||||||
msgid "Revert Settings"
|
msgid "Revert Settings"
|
||||||
msgstr "Grąžinti nustatymus"
|
msgstr "Grąžinti nustatymus"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:89
|
#: js/ui/windowManager.js:87
|
||||||
msgid "Keep Changes"
|
msgid "Keep Changes"
|
||||||
msgstr "Įrašyti pakeitimus"
|
msgstr "Įrašyti pakeitimus"
|
||||||
|
|
||||||
#: js/ui/windowManager.js:107
|
#: js/ui/windowManager.js:105
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Settings changes will revert in %d second"
|
msgid "Settings changes will revert in %d second"
|
||||||
msgid_plural "Settings changes will revert in %d seconds"
|
msgid_plural "Settings changes will revert in %d seconds"
|
||||||
@@ -2088,7 +2083,7 @@ msgstr[2] "Pakeitimai bus grąžinti po %d sekundžių"
|
|||||||
|
|
||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#: js/ui/windowManager.js:689
|
#: js/ui/windowManager.js:660
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d × %d"
|
msgid "%d × %d"
|
||||||
msgstr "%d × %d"
|
msgstr "%d × %d"
|
||||||
@@ -2141,19 +2136,19 @@ msgstr "Perkelti į aukščiau esančią darbo sritį"
|
|||||||
msgid "Move to Workspace Down"
|
msgid "Move to Workspace Down"
|
||||||
msgstr "Perkelti į žemiau esančią darbo sritį"
|
msgstr "Perkelti į žemiau esančią darbo sritį"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:139
|
#: js/ui/windowMenu.js:140
|
||||||
msgid "Move to Monitor Up"
|
msgid "Move to Monitor Up"
|
||||||
msgstr "Perkelti į aukščiau esantį monitorių"
|
msgstr "Perkelti į aukščiau esantį monitorių"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:148
|
#: js/ui/windowMenu.js:149
|
||||||
msgid "Move to Monitor Down"
|
msgid "Move to Monitor Down"
|
||||||
msgstr "Perkelti į žemiau esantį monitorių"
|
msgstr "Perkelti į žemiau esantį monitorių"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:157
|
#: js/ui/windowMenu.js:158
|
||||||
msgid "Move to Monitor Left"
|
msgid "Move to Monitor Left"
|
||||||
msgstr "Perkelti į kairiau esantį monitorių"
|
msgstr "Perkelti į kairiau esantį monitorių"
|
||||||
|
|
||||||
#: js/ui/windowMenu.js:166
|
#: js/ui/windowMenu.js:167
|
||||||
msgid "Move to Monitor Right"
|
msgid "Move to Monitor Right"
|
||||||
msgstr "Perkelti į dešiniau esantį monitorių"
|
msgstr "Perkelti į dešiniau esantį monitorių"
|
||||||
|
|
||||||
@@ -2166,28 +2161,28 @@ msgstr "Evolution kalendorius"
|
|||||||
msgid "evolution"
|
msgid "evolution"
|
||||||
msgstr "evolution"
|
msgstr "evolution"
|
||||||
|
|
||||||
#: src/main.c:410
|
#: src/main.c:432
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Išvesti versijos numerį"
|
msgstr "Išvesti versijos numerį"
|
||||||
|
|
||||||
#: src/main.c:416
|
#: src/main.c:438
|
||||||
msgid "Mode used by GDM for login screen"
|
msgid "Mode used by GDM for login screen"
|
||||||
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
|
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
|
||||||
|
|
||||||
#: src/main.c:422
|
#: src/main.c:444
|
||||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||||
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
|
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
|
||||||
|
|
||||||
#: src/main.c:428
|
#: src/main.c:450
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Išvardinti galimas veiksenas"
|
msgstr "Išvardinti galimas veiksenas"
|
||||||
|
|
||||||
#: src/shell-app.c:272
|
#: src/shell-app.c:270
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Nežinoma"
|
msgstr "Nežinoma"
|
||||||
|
|
||||||
#: src/shell-app.c:523
|
#: src/shell-app.c:511
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "Nepavyko paleisti „%s“"
|
msgstr "Nepavyko paleisti „%s“"
|
||||||
|
703
po/pt_BR.po
703
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user