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 157 additions and 145 deletions

View File

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

View File

@@ -190,7 +190,7 @@
</key> </key>
</schema> </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/" <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">

View File

@@ -492,18 +492,13 @@ var FocusTracker = new Lang.Class({
_init() { _init() {
this._currentWindow = null; this._currentWindow = null;
this._currentWindowPositionId = 0;
global.display.connect('notify::focus-window', () => { global.display.connect('notify::focus-window', () => {
this._setCurrentWindow(global.display.focus_window); this._setCurrentWindow(global.display.focus_window);
this.emit('window-changed', this._currentWindow); 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 */ /* Valid for wayland clients */
Main.inputMethod.connect('cursor-location-changed', (o, rect) => { 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() }; 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) { _setCurrentWindow(window) {
if (this._currentWindow)
this._currentWindow.disconnect(this._currentWindowPositionId);
this._currentWindow = window; 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) { _setCurrentRect(rect) {

View File

@@ -145,18 +145,14 @@ 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, let maxLevel = params['max_level'] || undefined;
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, maxLevel);
}, },

View File

@@ -110,7 +110,6 @@ var WindowClone = new Lang.Class({
this.metaWindow = realWindow.meta_window; this.metaWindow = realWindow.meta_window;
this.metaWindow._delegate = this; this.metaWindow._delegate = this;
this._workspace = workspace; this._workspace = workspace;
this._attachedDialogs = [];
this._windowClone = new Clutter.Clone({ source: realWindow }); this._windowClone = new Clutter.Clone({ source: realWindow });
// We expect this.actor to be used for all interaction rather than // We expect this.actor to be used for all interaction rather than
@@ -180,7 +179,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) {
@@ -196,6 +194,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;
@@ -205,34 +204,15 @@ 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 realWin = win.get_compositor_private(); this._doAddAttachedDialog(win, win.get_compositor_private());
if (this._attachedDialogs.includes(realWin)) this._onMetaWindowSizeChanged();
return;
this._attachedDialogs.push(realWin);
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();
}, },
hasAttachedDialogs() { hasAttachedDialogs() {
return this._attachedDialogs.length > 1; return this.actor.get_n_children() > 1;
}, },
_doAddAttachedDialog(metaWin, realWin) { _doAddAttachedDialog(metaWin, realWin) {
@@ -242,9 +222,6 @@ var WindowClone = new Lang.Class({
clone._posChangedId = metaWin.connect('position-changed', clone._posChangedId = metaWin.connect('position-changed',
this._onMetaWindowSizeChanged.bind(this)); this._onMetaWindowSizeChanged.bind(this));
clone._destroyId = realWin.connect('destroy', () => { clone._destroyId = realWin.connect('destroy', () => {
let idx = this._attachedDialogs.indexOf(realWin);
this._attachedDialogs.splice(idx, 1);
clone.destroy(); clone.destroy();
this._onMetaWindowSizeChanged(); this._onMetaWindowSizeChanged();
@@ -485,12 +462,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();
@@ -611,12 +590,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;
@@ -1506,17 +1516,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;
} }

View File

@@ -151,7 +151,7 @@ var WindowClone = new Lang.Class({
_doAddAttachedDialog(metaDialog, realDialog) { _doAddAttachedDialog(metaDialog, realDialog) {
let clone = new Clutter.Clone({ source: realDialog }); let clone = new Clutter.Clone({ source: realDialog });
this._updateDialogPosition(metaDialog, clone); this._updateDialogPosition(realDialog, clone);
clone._updateId = realDialog.connect('notify::position', dialog => { clone._updateId = realDialog.connect('notify::position', dialog => {
this._updateDialogPosition(dialog, clone); this._updateDialogPosition(dialog, clone);
@@ -162,7 +162,8 @@ var WindowClone = new Lang.Class({
this.actor.add_child(clone); this.actor.add_child(clone);
}, },
_updateDialogPosition(metaDialog, cloneDialog) { _updateDialogPosition(realDialog, cloneDialog) {
let metaDialog = realDialog.meta_window;
let dialogRect = metaDialog.get_frame_rect(); let dialogRect = metaDialog.get_frame_rect();
let rect = this.metaWindow.get_frame_rect(); let rect = this.metaWindow.get_frame_rect();
@@ -415,7 +416,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) {

View File

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

160
po/sl.po
View File

@@ -8,8 +8,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-30 17:00+0000\n" "POT-Creation-Date: 2018-04-17 15:11+0000\n"
"PO-Revision-Date: 2018-07-30 22:14+0200\n" "PO-Revision-Date: 2018-04-17 18:32+0200\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n" "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl\n" "Language: sl\n"
@@ -352,20 +352,20 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Prijava" msgstr "Prijava"
#: js/gdm/loginDialog.js:319 #: js/gdm/loginDialog.js:315
msgid "Choose Session" msgid "Choose Session"
msgstr "Izbor seje" msgstr "Izbor seje"
#. 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 "Ali uporabniškega imena ni na seznamu?" msgstr "Ali uporabniškega imena ni na seznamu?"
#. 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 "(na primer, uporabnika ali %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 #. 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 "Uporabniško ime: " msgstr "Uporabniško ime: "
#: js/gdm/loginDialog.js:1234 #: js/gdm/loginDialog.js:1228
msgid "Login Window" msgid "Login Window"
msgstr "Prijavno okno" msgstr "Prijavno okno"
@@ -391,7 +391,7 @@ msgstr "Napaka overitve"
#. 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 "(ali pa povlecite prst)" msgstr "(ali pa povlecite prst)"
@@ -643,23 +643,23 @@ msgstr "Pogosti"
msgid "All" msgid "All"
msgstr "Vsi" msgstr "Vsi"
#: js/ui/appDisplay.js:1890 #: js/ui/appDisplay.js:1886
msgid "New Window" msgid "New Window"
msgstr "Novo okno" msgstr "Novo okno"
#: js/ui/appDisplay.js:1904 #: js/ui/appDisplay.js:1900
msgid "Launch using Dedicated Graphics Card" msgid "Launch using Dedicated Graphics Card"
msgstr "Zaženi z uporabo določene grafične kartice" 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" msgid "Remove from Favorites"
msgstr "Odstrani iz priljubljenih" msgstr "Odstrani iz priljubljenih"
#: js/ui/appDisplay.js:1937 #: js/ui/appDisplay.js:1933
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Dodaj med priljubljene" msgstr "Dodaj med priljubljene"
#: js/ui/appDisplay.js:1947 #: js/ui/appDisplay.js:1943
msgid "Show Details" msgid "Show Details"
msgstr "Pokaži besedilo" msgstr "Pokaži besedilo"
@@ -806,35 +806,35 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Celodnevno" msgstr "Celodnevno"
#: 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. %m." msgstr "%A, %d. %m."
#: 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 "Ni obvestil" msgstr "Ni obvestil"
#: js/ui/calendar.js:1103 #: js/ui/calendar.js:1089
msgid "No Events" msgid "No Events"
msgstr "Ni dogodkov" msgstr "Ni dogodkov"
#: js/ui/calendar.js:1131 #: js/ui/calendar.js:1117
msgid "Clear All" msgid "Clear All"
msgstr "Počisti vse" msgstr "Počisti vse"
#. 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 "Program »%s« se ne odziva." msgstr "Program »%s« se ne odziva."
#: 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."
@@ -842,11 +842,11 @@ msgstr ""
"Lahko počakate, če se program morda začne spet odzivati, lahko pa vsilite " "Lahko počakate, če se program morda začne spet odzivati, lahko pa vsilite "
"končanje delovanja." "končanje delovanja."
#: js/ui/closeDialog.js:64 #: js/ui/closeDialog.js:61
msgid "Force Quit" msgid "Force Quit"
msgstr "Vsili končanje" msgstr "Vsili končanje"
#: js/ui/closeDialog.js:67 #: js/ui/closeDialog.js:64
msgid "Wait" msgid "Wait"
msgstr "Počakaj" msgstr "Počakaj"
@@ -863,7 +863,7 @@ msgstr "Zunanji pogon je odklopljen"
msgid "Open with %s" msgid "Open with %s"
msgstr "Odpri s programom %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:" msgid "Password:"
msgstr "Geslo:" msgstr "Geslo:"
@@ -900,11 +900,11 @@ msgstr "Geslo zasebnega ključa: "
msgid "Service: " msgid "Service: "
msgstr "Storitev: " 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" msgid "Authentication required by wireless network"
msgstr "Zahtevana overitev za brezžično omrežje" 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 #, 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 "
@@ -913,7 +913,7 @@ msgstr ""
"Za povezavo v brezžično omrežje »%s« je zahtevano geslo oziroma šifrirni " "Za povezavo v brezžično omrežje »%s« je zahtevano geslo oziroma šifrirni "
"ključ." "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" msgid "Wired 802.1X authentication"
msgstr "Žična overitev 802.1X" msgstr "Žična overitev 802.1X"
@@ -921,15 +921,15 @@ msgstr "Žična overitev 802.1X"
msgid "Network name: " msgid "Network name: "
msgstr "Naziv omrežja: " 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" msgid "DSL authentication"
msgstr "Overitev DSL" 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" msgid "PIN code required"
msgstr "Zahtevana koda PIN" 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" msgid "PIN code is needed for the mobile broadband device"
msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN." 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: " msgid "PIN: "
msgstr "Koda 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" msgid "Mobile broadband network password"
msgstr "Geslo mobilnega širokopasovnega dostopa" msgstr "Geslo mobilnega širokopasovnega dostopa"
#: 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 "Za povezavo z omrežjem »%s« je zahtevano geslo." 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" msgid "Network Manager"
msgstr "Upravljalnik omrežij" msgstr "Upravljalnik omrežij"
@@ -967,7 +967,7 @@ msgstr "Overi"
#. * 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 didnt work. Please try again." msgid "Sorry, that didnt work. Please try again."
msgstr "Overitev je spodletela.. Poskusite znova." msgstr "Overitev je spodletela.. Poskusite znova."
@@ -1309,13 +1309,13 @@ msgid "Leave On"
msgstr "Pusti omogočeno" msgstr "Pusti omogočeno"
#: 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 "Omogoči" msgstr "Omogoči"
#: 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"
@@ -1377,7 +1377,7 @@ msgstr "Poglej vir"
msgid "Web Page" msgid "Web Page"
msgstr "Spletna stran" msgstr "Spletna stran"
#: js/ui/messageTray.js:1495 #: js/ui/messageTray.js:1493
msgid "System Information" msgid "System Information"
msgstr "Podrobnosti sistema" msgstr "Podrobnosti sistema"
@@ -1451,22 +1451,22 @@ msgstr "Pritisnite tipko Esc za končanje"
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Pritisnite katerokoli tipko za končanje" msgstr "Pritisnite katerokoli tipko za končanje"
#: js/ui/panel.js:356 #: js/ui/panel.js:355
msgid "Quit" msgid "Quit"
msgstr "Končaj" msgstr "Končaj"
#. 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 "Dejavnosti" msgstr "Dejavnosti"
#: 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 "Sistem" msgstr "Sistem"
#: js/ui/panel.js:816 #: js/ui/panel.js:811
msgid "Top Bar" msgid "Top Bar"
msgstr "Vrhnja vrstica" msgstr "Vrhnja vrstica"
@@ -1475,7 +1475,7 @@ msgstr "Vrhnja vrstica"
#. "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"
@@ -1483,15 +1483,15 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Vnos ukaza" 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" msgid "Close"
msgstr "Zapri" msgstr "Zapri"
#: 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 "Na sistemu Wayland je na voljo ponovni zagon" msgstr "Na sistemu Wayland je na voljo ponovni zagon"
#: js/ui/runDialog.js:279 #: js/ui/runDialog.js:278
msgid "Restarting…" msgid "Restarting…"
msgstr "Ponovno zaganjanje ...." msgstr "Ponovno zaganjanje ...."
@@ -1706,7 +1706,7 @@ msgid "<unknown>"
msgstr "<neznano>" msgstr "<neznano>"
#. 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 izklopljeno" msgstr "%s izklopljeno"
@@ -1732,7 +1732,7 @@ msgid "%s Disconnecting"
msgstr "%s poteka prekinjanje povezave" msgstr "%s poteka prekinjanje povezave"
#. 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 poteka vzpostavljanje povezave" msgstr "%s poteka vzpostavljanje povezave"
@@ -1772,7 +1772,7 @@ msgid "Mobile Broadband Settings"
msgstr "Nastavitve mobilnega širokopasovnega dostopa" msgstr "Nastavitve mobilnega širokopasovnega dostopa"
#. 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 strojno onemogočeno" msgstr "%s strojno onemogočeno"
@@ -1828,56 +1828,56 @@ msgstr "Ni zaznanih omrežij"
msgid "Use hardware switch to turn off" msgid "Use hardware switch to turn off"
msgstr "Uporabite strojni gumb za izklop" msgstr "Uporabite strojni gumb za izklop"
#: js/ui/status/network.js:1186 #: js/ui/status/network.js:1173
msgid "Select Network" msgid "Select Network"
msgstr "Izbor omrežja" msgstr "Izbor omrežja"
#: js/ui/status/network.js:1192 #: js/ui/status/network.js:1179
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Nastavitve Wi-Fi" msgstr "Nastavitve 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 "%s vroča točka je dejavna" msgstr "%s vroča točka je dejavna"
#. 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 brez povezave" msgstr "%s brez povezave"
#: js/ui/status/network.js:1426 #: js/ui/status/network.js:1413
msgid "connecting…" msgid "connecting…"
msgstr "vzpostavljanje povezave …" msgstr "vzpostavljanje povezave …"
#. 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 "zahtevana je overitev" msgstr "zahtevana je overitev"
#: js/ui/status/network.js:1431 #: js/ui/status/network.js:1418
msgid "connection failed" msgid "connection failed"
msgstr "povezovanje je spodletelo" msgstr "povezovanje je spodletelo"
#: js/ui/status/network.js:1485 #: js/ui/status/network.js:1472
msgid "VPN Settings" msgid "VPN Settings"
msgstr "Nastavitve VPN" msgstr "Nastavitve 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 "Onemogočen VPN" 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" msgid "Network Settings"
msgstr "Omrežne nastavitve" msgstr "Omrežne nastavitve"
#: 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"
@@ -1886,7 +1886,7 @@ msgstr[1] "%s žična povezava"
msgstr[2] "%s žični povezavi" msgstr[2] "%s žični povezavi"
msgstr[3] "%s žične povezave" msgstr[3] "%s žične povezave"
#: 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"
@@ -1895,7 +1895,7 @@ msgstr[1] "%s povezava Wi-Fi"
msgstr[2] "%s povezavi Wi-Fi" msgstr[2] "%s povezavi Wi-Fi"
msgstr[3] "%s povezave Wi-Fi" msgstr[3] "%s povezave 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"
@@ -1904,11 +1904,11 @@ msgstr[1] "%s modemska povezava"
msgstr[2] "%s modemski povezavi" msgstr[2] "%s modemski povezavi"
msgstr[3] "%s modemske povezave" msgstr[3] "%s modemske povezave"
#: js/ui/status/network.js:1741 #: js/ui/status/network.js:1728
msgid "Connection failed" msgid "Connection failed"
msgstr "Povezovanje je spodletelo" msgstr "Povezovanje je spodletelo"
#: 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 "Omogočanje omrežne povezave je spodletelo." msgstr "Omogočanje omrežne povezave je spodletelo."
@@ -1959,14 +1959,6 @@ msgstr "%d%02d do polnosti (%d%%)"
msgid "%d%%" msgid "%d%%"
msgstr "%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 #. 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.
@@ -1998,16 +1990,16 @@ msgstr "V pripravljenost"
msgid "Power Off" msgid "Power Off"
msgstr "Izklop" msgstr "Izklop"
#: 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 "Neznana naprava Thunderbolt" msgstr "Neznana naprava Thunderbolt"
#: 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."
@@ -2015,11 +2007,11 @@ msgstr ""
"Med nedejavnostjo je bila zaznana nova. Odklopite napravo in jo znova " "Med nedejavnostjo je bila zaznana nova. Odklopite napravo in jo znova "
"priklopite za uporabo." "priklopite za uporabo."
#: js/ui/status/thunderbolt.js:360 #: js/ui/status/thunderbolt.js:356
msgid "Thunderbolt authorization error" msgid "Thunderbolt authorization error"
msgstr "Napaka overitve naprave Thunderbolt" msgstr "Napaka overitve naprave 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 "Naprave Thunderbolt ni mogoče overiti: %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 #. 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"
@@ -2160,19 +2152,19 @@ msgstr "Premakni na zgornjo delovno površino"
msgid "Move to Workspace Down" msgid "Move to Workspace Down"
msgstr "Premakni na spodnjo delovno površino" msgstr "Premakni na spodnjo delovno površino"
#: js/ui/windowMenu.js:139 #: js/ui/windowMenu.js:140
msgid "Move to Monitor Up" msgid "Move to Monitor Up"
msgstr "Premakni na zaslon zgoraj" msgstr "Premakni na zaslon zgoraj"
#: js/ui/windowMenu.js:148 #: js/ui/windowMenu.js:149
msgid "Move to Monitor Down" msgid "Move to Monitor Down"
msgstr "Premakni na zaslon spodaj" msgstr "Premakni na zaslon spodaj"
#: js/ui/windowMenu.js:157 #: js/ui/windowMenu.js:158
msgid "Move to Monitor Left" msgid "Move to Monitor Left"
msgstr "Premakni na zaslon levo" msgstr "Premakni na zaslon levo"
#: js/ui/windowMenu.js:166 #: js/ui/windowMenu.js:167
msgid "Move to Monitor Right" msgid "Move to Monitor Right"
msgstr "Premakni na zaslon desno" msgstr "Premakni na zaslon desno"
@@ -2201,12 +2193,12 @@ msgstr "Uporabi poseben način, na primer »gdm« za prijavni zaslon"
msgid "List possible modes" msgid "List possible modes"
msgstr "Seznam mogočih načinov" msgstr "Seznam mogočih načinov"
#: src/shell-app.c:272 #: src/shell-app.c:270
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Neznano" msgstr "Neznano"
#: 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 "Zaganjanje »%s« je spodletelo" msgstr "Zaganjanje »%s« je spodletelo"