Compare commits

..

1 Commits

Author SHA1 Message Date
Florian Müllner
38c05d91a8 workspacesView: Enable keynav between all monitors
Instead of using one focus group for each (per-monitor) workspacesView,
use a single one that is shared between all of them.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/412
2018-08-01 16:18:06 +02:00
8 changed files with 153 additions and 132 deletions

View File

@@ -1,5 +1,5 @@
[Desktop Entry]
Type=Application
Name=GNOME settings overrides migration
NoDisplay=true
NoDisplay=True
Exec=@libexecdir@/gnome-shell-overrides-migration.sh

View File

@@ -190,7 +190,7 @@
</key>
</schema>
<!-- unused, change 00_org.gnome.shell.gschema.override instead -->
<!-- unused, change 00_org.gnome.shell.gschema.override instead --!>
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
gettext-domain="@GETTEXT_PACKAGE@">
<key name="attach-modal-dialogs" type="b">

View File

@@ -492,18 +492,13 @@ var FocusTracker = new Lang.Class({
_init() {
this._currentWindow = null;
this._currentWindowPositionId = 0;
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() };
@@ -525,7 +520,18 @@ var FocusTracker = new Lang.Class({
},
_setCurrentWindow(window) {
if (this._currentWindow)
this._currentWindow.disconnect(this._currentWindowPositionId);
this._currentWindow = window;
if (window) {
this._currentWindowPositionId = this._currentWindow.connect('position-changed', () => {
if (global.display.get_grab_op() == Meta.GrabOp.NONE)
this.emit('position-changed');
else
this.emit('reset');
});
}
},
_setCurrentRect(rect) {

View File

@@ -145,18 +145,14 @@ var GnomeShell = new Lang.Class({
for (let param in params)
params[param] = params[param].deep_unpack();
let { monitor: monitorIndex,
label,
level,
max_level: maxLevel,
icon: serializedIcon } = params;
if (monitorIndex === undefined)
monitorIndex = -1;
let monitorIndex = params['monitor'] || -1;
let label = params['label'] || undefined;
let level = params['level'] || undefined;
let maxLevel = params['max_level'] || undefined;
let icon = null;
if (serializedIcon)
icon = Gio.Icon.new_for_string(serializedIcon);
if (params['icon'])
icon = Gio.Icon.new_for_string(params['icon']);
Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel);
},

View File

@@ -179,7 +179,6 @@ var WindowClone = new Lang.Class({
this.inDrag = false;
this._selected = false;
this._closeRequested = false;
},
set slot(slot) {
@@ -195,6 +194,7 @@ var WindowClone = new Lang.Class({
deleteAll() {
// Delete all windows, starting from the bottom-most (most-modal) one
let windows = this.actor.get_children();
for (let i = windows.length - 1; i >= 1; i--) {
let realWindow = windows[i].source;
@@ -204,24 +204,11 @@ var WindowClone = new Lang.Class({
}
this.metaWindow.delete(global.get_current_time());
this._closeRequested = true;
},
addDialog(win) {
let parent = win.get_transient_for();
while (parent.is_attached_dialog())
parent = parent.get_transient_for();
// 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();
addAttachedDialog(win) {
this._doAddAttachedDialog(win, win.get_compositor_private());
this._onMetaWindowSizeChanged();
},
hasAttachedDialogs() {
@@ -475,12 +462,14 @@ var WindowOverlay = new Lang.Class({
button._overlap = 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.connect('show-chrome', this._onShowChrome.bind(this));
windowClone.connect('hide-chrome', this._onHideChrome.bind(this));
this._windowAddedId = 0;
button.hide();
title.hide();
@@ -601,12 +590,43 @@ var WindowOverlay = new Lang.Class({
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() {
return this._windowClone.metaWindow.can_close() &&
!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() {
if (this._windowAddedId > 0) {
this._workspace.disconnect(this._windowAddedId);
this._windowAddedId = 0;
}
if (this._idleToggleCloseId > 0) {
Mainloop.source_remove(this._idleToggleCloseId);
this._idleToggleCloseId = 0;
@@ -1496,17 +1516,21 @@ var Workspace = new Lang.Class({
return;
if (!this._isOverviewWindow(win)) {
if (metaWin.get_transient_for() == null)
return;
if (metaWin.is_attached_dialog()) {
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 parent = metaWin.find_root_ancestor();
let clone = this._windows.find(c => c.metaWindow == parent);
let idx = this._lookupIndex (parent);
if (idx < 0) {
// 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
// and will take care of the dialog when added
if (clone)
clone.addDialog(metaWin);
let clone = this._windows[idx];
clone.addAttachedDialog(metaWin);
}
return;
}

View File

@@ -416,7 +416,7 @@ var WorkspaceThumbnail = new Lang.Class({
} else if (metaWin.is_attached_dialog()) {
let parent = metaWin.get_transient_for();
while (parent.is_attached_dialog())
parent = parent.get_transient_for();
parent = metaWin.get_transient_for();
let idx = this._lookupIndex (parent);
if (idx < 0) {

View File

@@ -33,7 +33,6 @@ var WorkspacesViewBase = new Lang.Class({
this.actor = new St.Widget({ style_class: 'workspaces-view',
reactive: true });
this.actor.connect('destroy', this._onDestroy.bind(this));
global.focus_manager.add_group(this.actor);
// The actor itself isn't a drop target, so we don't want to pick on its area
this.actor.set_size(0, 0);
@@ -428,6 +427,10 @@ var WorkspacesDisplay = new Lang.Class({
this.actor.connect('notify::allocation', this._updateWorkspacesActualGeometry.bind(this));
this.actor.connect('parent-set', this._parentSet.bind(this));
this._viewsContainer = new St.Widget();
Main.layoutManager.overviewGroup.add_actor(this._viewsContainer);
global.focus_manager.add_group(this._viewsContainer);
let clickAction = new Clutter.ClickAction();
clickAction.connect('clicked', action => {
// Only switch to the workspace when there's no application
@@ -579,7 +582,7 @@ var WorkspacesDisplay = new Lang.Class({
}
this._workspacesViews.push(view);
Main.layoutManager.overviewGroup.add_actor(view.actor);
this._viewsContainer.add_actor(view.actor);
}
this._updateWorkspacesFullGeometry();

160
po/sl.po
View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2018-07-30 17:00+0000\n"
"PO-Revision-Date: 2018-07-30 22:14+0200\n"
"POT-Creation-Date: 2018-04-17 15:11+0000\n"
"PO-Revision-Date: 2018-04-17 18:32+0200\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl\n"
@@ -352,20 +352,20 @@ msgctxt "button"
msgid "Sign In"
msgstr "Prijava"
#: js/gdm/loginDialog.js:319
#: js/gdm/loginDialog.js:315
msgid "Choose Session"
msgstr "Izbor seje"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: js/gdm/loginDialog.js:462
#: js/gdm/loginDialog.js:458
msgid "Not listed?"
msgstr "Ali uporabniškega imena ni na seznamu?"
#. Translators: this message is shown below the username entry field
#. 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
msgid "(e.g., user or %s)"
msgstr "(na primer, uporabnika ali %s)"
@@ -373,12 +373,12 @@ msgstr "(na primer, uporabnika ali %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (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
msgid "Username: "
msgstr "Uporabniško ime: "
#: js/gdm/loginDialog.js:1234
#: js/gdm/loginDialog.js:1228
msgid "Login Window"
msgstr "Prijavno okno"
@@ -391,7 +391,7 @@ msgstr "Napaka overitve"
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: js/gdm/util.js:485
#: js/gdm/util.js:482
msgid "(or swipe finger)"
msgstr "(ali pa povlecite prst)"
@@ -643,23 +643,23 @@ msgstr "Pogosti"
msgid "All"
msgstr "Vsi"
#: js/ui/appDisplay.js:1890
#: js/ui/appDisplay.js:1886
msgid "New Window"
msgstr "Novo okno"
#: js/ui/appDisplay.js:1904
#: js/ui/appDisplay.js:1900
msgid "Launch using Dedicated Graphics Card"
msgstr "Zaženi z uporabo določene grafične kartice"
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
msgid "Remove from Favorites"
msgstr "Odstrani iz priljubljenih"
#: js/ui/appDisplay.js:1937
#: js/ui/appDisplay.js:1933
msgid "Add to Favorites"
msgstr "Dodaj med priljubljene"
#: js/ui/appDisplay.js:1947
#: js/ui/appDisplay.js:1943
msgid "Show Details"
msgstr "Pokaži besedilo"
@@ -806,35 +806,35 @@ msgctxt "event list time"
msgid "All Day"
msgstr "Celodnevno"
#: js/ui/calendar.js:866
#: js/ui/calendar.js:864
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d. %m."
#: js/ui/calendar.js:870
#: js/ui/calendar.js:868
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y"
#: js/ui/calendar.js:1100
#: js/ui/calendar.js:1086
msgid "No Notifications"
msgstr "Ni obvestil"
#: js/ui/calendar.js:1103
#: js/ui/calendar.js:1089
msgid "No Events"
msgstr "Ni dogodkov"
#: js/ui/calendar.js:1131
#: js/ui/calendar.js:1117
msgid "Clear All"
msgstr "Počisti vse"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:47
#: js/ui/closeDialog.js:44
#, javascript-format
msgid "“%s” is not responding."
msgstr "Program »%s« se ne odziva."
#: js/ui/closeDialog.js:48
#: js/ui/closeDialog.js:45
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@@ -842,11 +842,11 @@ msgstr ""
"Lahko počakate, če se program morda začne spet odzivati, lahko pa vsilite "
"končanje delovanja."
#: js/ui/closeDialog.js:64
#: js/ui/closeDialog.js:61
msgid "Force Quit"
msgstr "Vsili končanje"
#: js/ui/closeDialog.js:67
#: js/ui/closeDialog.js:64
msgid "Wait"
msgstr "Počakaj"
@@ -863,7 +863,7 @@ msgstr "Zunanji pogon je odklopljen"
msgid "Open with %s"
msgstr "Odpri s programom %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:"
msgstr "Geslo:"
@@ -900,11 +900,11 @@ msgstr "Geslo zasebnega ključa: "
msgid "Service: "
msgstr "Storitev: "
#: 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"
msgstr "Zahtevana overitev za brezžično omrežje"
#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -913,7 +913,7 @@ msgstr ""
"Za povezavo v brezžično omrežje »%s« je zahtevano geslo oziroma šifrirni "
"ključ."
#: 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"
msgstr "Žična overitev 802.1X"
@@ -921,15 +921,15 @@ msgstr "Žična overitev 802.1X"
msgid "Network name: "
msgstr "Naziv omrežja: "
#: 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"
msgstr "Overitev 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"
msgstr "Zahtevana koda 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"
msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
@@ -937,17 +937,17 @@ msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
msgid "PIN: "
msgstr "Koda 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"
msgstr "Geslo mobilnega širokopasovnega dostopa"
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Za povezavo z omrežjem »%s« je zahtevano geslo."
#: 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"
msgstr "Upravljalnik omrežij"
@@ -967,7 +967,7 @@ msgstr "Overi"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * 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 didnt work. Please try again."
msgstr "Overitev je spodletela.. Poskusite znova."
@@ -1309,13 +1309,13 @@ msgid "Leave On"
msgstr "Pusti omogočeno"
#: 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"
msgstr "Omogoči"
#: 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: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/rfkill.js:117
msgid "Turn Off"
@@ -1377,7 +1377,7 @@ msgstr "Poglej vir"
msgid "Web Page"
msgstr "Spletna stran"
#: js/ui/messageTray.js:1495
#: js/ui/messageTray.js:1493
msgid "System Information"
msgstr "Podrobnosti sistema"
@@ -1451,22 +1451,22 @@ msgstr "Pritisnite tipko Esc za končanje"
msgid "Press any key to exit"
msgstr "Pritisnite katerokoli tipko za končanje"
#: js/ui/panel.js:356
#: js/ui/panel.js:355
msgid "Quit"
msgstr "Končaj"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:412
#: js/ui/panel.js:411
msgid "Activities"
msgstr "Dejavnosti"
#: js/ui/panel.js:693
#: js/ui/panel.js:692
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: js/ui/panel.js:816
#: js/ui/panel.js:811
msgid "Top Bar"
msgstr "Vrhnja vrstica"
@@ -1475,7 +1475,7 @@ msgstr "Vrhnja vrstica"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:300
#: js/ui/popupMenu.js:291
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@@ -1483,15 +1483,15 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Vnos ukaza"
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:174
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
msgid "Close"
msgstr "Zapri"
#: js/ui/runDialog.js:274
#: js/ui/runDialog.js:273
msgid "Restart is not available on Wayland"
msgstr "Na sistemu Wayland je na voljo ponovni zagon"
#: js/ui/runDialog.js:279
#: js/ui/runDialog.js:278
msgid "Restarting…"
msgstr "Ponovno zaganjanje ...."
@@ -1706,7 +1706,7 @@ msgid "<unknown>"
msgstr "<neznano>"
#. 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
msgid "%s Off"
msgstr "%s izklopljeno"
@@ -1732,7 +1732,7 @@ msgid "%s Disconnecting"
msgstr "%s poteka prekinjanje povezave"
#. 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
msgid "%s Connecting"
msgstr "%s poteka vzpostavljanje povezave"
@@ -1772,7 +1772,7 @@ msgid "Mobile Broadband Settings"
msgstr "Nastavitve mobilnega širokopasovnega dostopa"
#. 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
msgid "%s Hardware Disabled"
msgstr "%s strojno onemogočeno"
@@ -1828,56 +1828,56 @@ msgstr "Ni zaznanih omrežij"
msgid "Use hardware switch to turn off"
msgstr "Uporabite strojni gumb za izklop"
#: js/ui/status/network.js:1186
#: js/ui/status/network.js:1173
msgid "Select Network"
msgstr "Izbor omrežja"
#: js/ui/status/network.js:1192
#: js/ui/status/network.js:1179
msgid "Wi-Fi Settings"
msgstr "Nastavitve Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1311
#: js/ui/status/network.js:1298
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s vroča točka je dejavna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1326
#: js/ui/status/network.js:1313
#, javascript-format
msgid "%s Not Connected"
msgstr "%s brez povezave"
#: js/ui/status/network.js:1426
#: js/ui/status/network.js:1413
msgid "connecting…"
msgstr "vzpostavljanje povezave …"
#. 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"
msgstr "zahtevana je overitev"
#: js/ui/status/network.js:1431
#: js/ui/status/network.js:1418
msgid "connection failed"
msgstr "povezovanje je spodletelo"
#: js/ui/status/network.js:1485
#: js/ui/status/network.js:1472
msgid "VPN Settings"
msgstr "Nastavitve VPN"
#: js/ui/status/network.js:1498
#: js/ui/status/network.js:1485
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
#: js/ui/status/network.js:1495
msgid "VPN Off"
msgstr "Onemogočen VPN"
#: 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"
msgstr "Omrežne nastavitve"
#: js/ui/status/network.js:1601
#: js/ui/status/network.js:1588
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -1886,7 +1886,7 @@ msgstr[1] "%s žična povezava"
msgstr[2] "%s žični povezavi"
msgstr[3] "%s žične povezave"
#: js/ui/status/network.js:1605
#: js/ui/status/network.js:1592
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -1895,7 +1895,7 @@ msgstr[1] "%s povezava Wi-Fi"
msgstr[2] "%s povezavi Wi-Fi"
msgstr[3] "%s povezave Wi-Fi"
#: js/ui/status/network.js:1609
#: js/ui/status/network.js:1596
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -1904,11 +1904,11 @@ msgstr[1] "%s modemska povezava"
msgstr[2] "%s modemski povezavi"
msgstr[3] "%s modemske povezave"
#: js/ui/status/network.js:1741
#: js/ui/status/network.js:1728
msgid "Connection failed"
msgstr "Povezovanje je spodletelo"
#: js/ui/status/network.js:1742
#: js/ui/status/network.js:1729
msgid "Activation of network connection failed"
msgstr "Omogočanje omrežne povezave je spodletelo."
@@ -1959,14 +1959,6 @@ msgstr "%d%02d do polnosti (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:46
msgid "Screen is Being Shared"
msgstr "Zaslon je v načinu souporabe"
#: js/ui/status/remoteAccess.js:48
msgid "Turn off"
msgstr "Izklopi"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
@@ -1998,16 +1990,16 @@ msgstr "V pripravljenost"
msgid "Power Off"
msgstr "Izklop"
#: js/ui/status/thunderbolt.js:298
#: js/ui/status/thunderbolt.js:294
msgid "Thunderbolt"
msgstr "Thunderbolt"
#. we are done
#: js/ui/status/thunderbolt.js:354
#: js/ui/status/thunderbolt.js:350
msgid "Unknown Thunderbolt device"
msgstr "Neznana naprava Thunderbolt"
#: js/ui/status/thunderbolt.js:355
#: js/ui/status/thunderbolt.js:351
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2015,11 +2007,11 @@ msgstr ""
"Med nedejavnostjo je bila zaznana nova. Odklopite napravo in jo znova "
"priklopite za uporabo."
#: js/ui/status/thunderbolt.js:360
#: js/ui/status/thunderbolt.js:356
msgid "Thunderbolt authorization error"
msgstr "Napaka overitve naprave Thunderbolt"
#: js/ui/status/thunderbolt.js:361
#: js/ui/status/thunderbolt.js:357
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Naprave Thunderbolt ni mogoče overiti: %s"
@@ -2107,7 +2099,7 @@ msgstr[3] "Spremembe nastavitev bodo povrnjene v %d sekundah."
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:668
#: js/ui/windowManager.js:660
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2160,19 +2152,19 @@ msgstr "Premakni na zgornjo delovno površino"
msgid "Move to Workspace Down"
msgstr "Premakni na spodnjo delovno površino"
#: js/ui/windowMenu.js:139
#: js/ui/windowMenu.js:140
msgid "Move to Monitor Up"
msgstr "Premakni na zaslon zgoraj"
#: js/ui/windowMenu.js:148
#: js/ui/windowMenu.js:149
msgid "Move to Monitor Down"
msgstr "Premakni na zaslon spodaj"
#: js/ui/windowMenu.js:157
#: js/ui/windowMenu.js:158
msgid "Move to Monitor Left"
msgstr "Premakni na zaslon levo"
#: js/ui/windowMenu.js:166
#: js/ui/windowMenu.js:167
msgid "Move to Monitor Right"
msgstr "Premakni na zaslon desno"
@@ -2201,12 +2193,12 @@ msgstr "Uporabi poseben način, na primer »gdm« za prijavni zaslon"
msgid "List possible modes"
msgstr "Seznam mogočih načinov"
#: src/shell-app.c:272
#: src/shell-app.c:270
msgctxt "program"
msgid "Unknown"
msgstr "Neznano"
#: src/shell-app.c:523
#: src/shell-app.c:511
#, c-format
msgid "Failed to launch “%s”"
msgstr "Zaganjanje »%s« je spodletelo"