Compare commits

...

13 Commits

Author SHA1 Message Date
6dd973be12 Bump version to 3.26.2
Update NEWS.
2017-11-02 17:01:38 +01:00
98be314e64 style: Fix left tile preview
Windows that are tiled to the left/right only use rounded corners
where they are attached to the edge, the preview should follow that.
2017-11-02 16:56:31 +01:00
c0ef30d416 theme: Restore drag effect between workspaces
When dragging a window between two workspaces a light effect used
to be present. The effect was lost probably during the theme revamp
in version 3.16.

https://bugzilla.gnome.org/show_bug.cgi?id=789103
2017-11-02 16:56:19 +01:00
fd103ff703 dialog: Reset initial focus on destroy
Since 0b02f757f8 we track the button that should have key focus
when the dialog is opened. However when the dialog is reused, the
button may get destroyed - clear the initial focus in that case to
allow setButton() to set a new one.

https://bugzilla.gnome.org/show_bug.cgi?id=788542
2017-10-27 14:46:30 +02:00
49c144a64c Update Dutch translation 2017-10-25 09:03:41 +00:00
2c2479581a main: use SA_NODEFER to track signals to being able to raise from alarm
After we receive one of the tracked signals, in case we get stuck inside
the gjs_dumpstack () call, we use an alarm to raise the previously emitted
signal, however without using SA_NODEFER, the raise inside the alarm handler
will be ignored.

To avoid to handle new signals caused by the handler calls, once we get the
first signal, we just ignore them all as they could only lead to dirty traces.

Also, cleaning up a bit the code, and disabling the shell log handler
in dump_gjs_stack_alarm_sigaction since this might lead to a new
gjs_dumpstack () request.

https://bugzilla.gnome.org/show_bug.cgi?id=789237
2017-10-24 01:22:16 -05:00
f15650e060 main: call gjs_dumpstack on aborts and traps and optionally on segfaults
In order to debug issues triggered by JS code we might need to
see the stack of it, this is not normally visible in static stack traces,
thus we need to call gjs_dumpstack () before dying the process.

Intercepting signals SIGABRT, SIGTRAP (needed for catching fatal glib
errors) SIGFPE and SIGIOT by default, while introducing a new
'backtrace-segfaults' flag for the SHELL_DEBUG environment variable to
do the same on SIGSEGV and SIGBUS (this is a precaution to avoid that we
corrupt the stack for automatic errors trackers).

In any case after dumping the stack we raise the signal again, in order
to make the system aware of it.

https://bugzilla.gnome.org/show_bug.cgi?id=789237
2017-10-23 05:12:28 -05:00
78d58deb5a network: Spawn wifi panel for further WPA enterprise configuration
Settings recently split Wi-Fi configuration from the Network panel,
so launch that instead.

https://bugzilla.gnome.org/show_bug.cgi?id=789231
2017-10-20 18:05:10 +02:00
f4237a4ae7 popupMenu: Fix setting ImageMenuItem's icons via strings
Commit 28ca96064b added support for setting PopupImageMenuItem's icons
via GIcons as well as via strings. However as the check whether an object
implements the GIcon interface only works on GObjects, specifying an icon
name was broken. Fix that to actually allow both strings and GIcons.

https://bugzilla.gnome.org/show_bug.cgi?id=789018
2017-10-16 20:54:57 +02:00
40616015e5 Updated Slovenian translation 2017-10-15 09:51:49 +02:00
43ec5280b4 Update Friulian translation 2017-10-11 06:35:27 +00:00
5f8a511483 layout: Unset primary and bottom monitor when headless
We were handling being initially headless by only setting the primary
and bottom monitor if there was any primary monitor, then checking the
primary monitor reference before making calls assuming there was any
monitors.

What we didn't do was unset the primary and bottom monitor when going
headless, meaning that temporarly disconnecting a monitor while having
windows open caused an assert to be triggered due to various code paths
taking the path assuming there are valid monitors.

Unsetting both the primary and bottom monitor when going headless avoids
the code paths in the same way as they were avoided when starting
headless.

https://bugzilla.gnome.org/show_bug.cgi?id=788607
2017-10-07 00:38:16 -04:00
f036786d4a [l10n] Updated Catalan (Valencian) translation 2017-10-05 13:59:55 +02:00
14 changed files with 1788 additions and 1129 deletions

13
NEWS
View File

@ -1,3 +1,16 @@
3.26.2
======
* Dump javascript stack on aborts, traps and segfaults [Marco; #789237]
* Misc. bug fixes [Jonas, Florian, Alessandro; #788607, #789018, #789231,
#788542, #789103]
Contributors:
Jonas Ådahl, Alessandro Bono, Florian Müllner, Marco Trevisan (Treviño)
Translations:
Xavi Ivars [ca@valencia], Fabio Tomat [fur], Matej Urbančič [sl],
Hannie Dumoleyn [nl]
3.26.1 3.26.1
====== ======
* Don't detach launched apps to not break pkexec and friends [Florian; #763531] * Don't detach launched apps to not break pkexec and friends [Florian; #763531]

View File

@ -647,7 +647,7 @@ StScrollBar {
border: 1px solid #215d9c; } border: 1px solid #215d9c; }
.tile-preview-left.on-primary { .tile-preview-left.on-primary {
border-radius: 6px 6px 0 0; } border-radius: 6px 0 0 0; }
.tile-preview-right.on-primary { .tile-preview-right.on-primary {
border-radius: 0 6px 0 0; } border-radius: 0 6px 0 0; }
@ -1339,6 +1339,10 @@ StScrollBar {
border-radius: 9px 0 0 9px; } border-radius: 9px 0 0 9px; }
.workspace-thumbnails:rtl { .workspace-thumbnails:rtl {
border-radius: 0 9px 9px 0; } border-radius: 0 9px 9px 0; }
.workspace-thumbnails .placeholder {
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
background-size: contain;
height: 24px; }
.workspace-thumbnail-indicator { .workspace-thumbnail-indicator {
border: 4px solid #215d9c; border: 4px solid #215d9c;

View File

@ -647,7 +647,7 @@ StScrollBar {
border: 1px solid #215d9c; } border: 1px solid #215d9c; }
.tile-preview-left.on-primary { .tile-preview-left.on-primary {
border-radius: 6px 6px 0 0; } border-radius: 6px 0 0 0; }
.tile-preview-right.on-primary { .tile-preview-right.on-primary {
border-radius: 0 6px 0 0; } border-radius: 0 6px 0 0; }
@ -1339,6 +1339,10 @@ StScrollBar {
border-radius: 9px 0 0 9px; } border-radius: 9px 0 0 9px; }
.workspace-thumbnails:rtl { .workspace-thumbnails:rtl {
border-radius: 0 9px 9px 0; } border-radius: 0 9px 9px 0; }
.workspace-thumbnails .placeholder {
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
background-size: contain;
height: 24px; }
.workspace-thumbnail-indicator { .workspace-thumbnail-indicator {
border: 4px solid #215d9c; border: 4px solid #215d9c;

View File

@ -16,6 +16,7 @@ var Dialog = new Lang.Class({
this.connect('destroy', Lang.bind(this, this._onDestroy)); this.connect('destroy', Lang.bind(this, this._onDestroy));
this._initialKeyFocus = null; this._initialKeyFocus = null;
this._initialKeyFocusDestroyId = 0;
this._pressedKey = null; this._pressedKey = null;
this._buttonKeys = {}; this._buttonKeys = {};
this._createDialog(); this._createDialog();
@ -87,6 +88,18 @@ var Dialog = new Lang.Class({
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
}, },
_setInitialKeyFocus: function(actor) {
if (this._initialKeyFocus)
this._initialKeyFocus.disconnect(this._initialKeyFocusDestroyId);
this._initialKeyFocus = actor;
this._initialKeyFocusDestroyId = actor.connect('destroy', () => {
this._initialKeyFocus = null;
this._initialKeyFocusDestroyId = 0;
});
},
get initialKeyFocus() { get initialKeyFocus() {
return this._initialKeyFocus || this; return this._initialKeyFocus || this;
}, },
@ -122,7 +135,7 @@ var Dialog = new Lang.Class({
button.add_style_pseudo_class('default'); button.add_style_pseudo_class('default');
if (this._initialKeyFocus == null || isDefault) if (this._initialKeyFocus == null || isDefault)
this._initialKeyFocus = button; this._setInitialKeyFocus(button);
for (let i in keys) for (let i in keys)
this._buttonKeys[keys[i]] = buttonInfo; this._buttonKeys[keys[i]] = buttonInfo;

View File

@ -351,6 +351,9 @@ var LayoutManager = new Lang.Class({
this._loadBackground(); this._loadBackground();
this._pendingLoadBackground = false; this._pendingLoadBackground = false;
} }
} else {
this.primaryMonitor = null;
this.bottomMonitor = null;
} }
}, },

View File

@ -405,7 +405,7 @@ var PopupImageMenuItem = new Lang.Class({
setIcon: function(icon) { setIcon: function(icon) {
// The 'icon' parameter can be either a Gio.Icon or a string. // The 'icon' parameter can be either a Gio.Icon or a string.
if (GObject.type_is_a(icon, Gio.Icon)) if (icon instanceof GObject.Object && GObject.type_is_a(icon, Gio.Icon))
this._icon.gicon = icon; this._icon.gicon = icon;
else else
this._icon.icon_name = icon; this._icon.icon_name = icon;

View File

@ -951,7 +951,7 @@ var NMWirelessDialog = new Lang.Class({
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) { || (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
// 802.1x-enabled APs require further configuration, so they're // 802.1x-enabled APs require further configuration, so they're
// handled in gnome-control-center // handled in gnome-control-center
Util.spawn(['gnome-control-center', 'network', 'connect-8021x-wifi', Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
this._device.get_path(), accessPoints[0].dbus_path]); this._device.get_path(), accessPoints[0].dbus_path]);
} else { } else {
let connection = new NetworkManager.Connection(); let connection = new NetworkManager.Connection();

View File

@ -1,5 +1,5 @@
project('gnome-shell', 'c', project('gnome-shell', 'c',
version: '3.26.1', version: '3.26.2',
meson_version: '>= 0.42.0', meson_version: '>= 0.42.0',
license: 'GPLv2+' license: 'GPLv2+'
) )

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: video-subtitles master\n" "Project-Id-Version: video-subtitles master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n" "POT-Creation-Date: 2017-10-04 18:03+0000\n"
"PO-Revision-Date: 2017-08-23 17:01+0200\n" "PO-Revision-Date: 2017-10-11 08:34+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"
@ -659,12 +659,12 @@ msgstr "Zonte tai preferîts"
msgid "Show Details" msgid "Show Details"
msgstr "Mostre Detais" msgstr "Mostre Detais"
#: js/ui/appFavorites.js:140 #: js/ui/appFavorites.js:141
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s al è stât zontât tai tiei preferîts." msgstr "%s al è stât zontât tai tiei preferîts."
#: js/ui/appFavorites.js:174 #: js/ui/appFavorites.js:175
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s al è stât gjavât dai tiei preferîts." msgstr "%s al è stât gjavât dai tiei preferîts."
@ -753,51 +753,51 @@ msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: js/ui/calendar.js:442 #: js/ui/calendar.js:449
msgid "Previous month" msgid "Previous month"
msgstr "Mês indaûr" msgstr "Mês indaûr"
#: js/ui/calendar.js:452 #: js/ui/calendar.js:459
msgid "Next month" msgid "Next month"
msgstr "Prossim mês" msgstr "Prossim mês"
#: js/ui/calendar.js:605 #: js/ui/calendar.js:612
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: js/ui/calendar.js:660 #: js/ui/calendar.js:667
msgid "Week %V" msgid "Week %V"
msgstr "Setemane %V" msgstr "Setemane %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: js/ui/calendar.js:729 #: js/ui/calendar.js:736
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Dut il dì" msgstr "Dut il dì"
#: js/ui/calendar.js:862 #: js/ui/calendar.js:869
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:866 #: js/ui/calendar.js:873
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:1086 #: js/ui/calendar.js:1093
msgid "No Notifications" msgid "No Notifications"
msgstr "Nissune notifiche" msgstr "Nissune notifiche"
#: js/ui/calendar.js:1089 #: js/ui/calendar.js:1096
msgid "No Events" msgid "No Events"
msgstr "Nissun event" msgstr "Nissun event"
#: js/ui/calendar.js:1117 #: js/ui/calendar.js:1124
msgid "Clear All" msgid "Clear All"
msgstr "Nete dut" msgstr "Nete dut"
@ -831,7 +831,7 @@ msgstr "Dispositîf esterni tacât"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Dispositîf esterni distacât" msgstr "Dispositîf esterni distacât"
#: js/ui/components/autorunManager.js:354 #: js/ui/components/autorunManager.js:358
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Vierç cun %s" msgstr "Vierç cun %s"
@ -968,7 +968,7 @@ msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. #.
#: js/ui/dateMenu.js:75 #: js/ui/dateMenu.js:76
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%e di %B dal %Y" msgstr "%e di %B dal %Y"
@ -976,19 +976,19 @@ msgstr "%e di %B dal %Y"
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. #.
#: js/ui/dateMenu.js:82 #: js/ui/dateMenu.js:83
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e di %B dal %Y" msgstr "%A %e di %B dal %Y"
#: js/ui/dateMenu.js:144 #: js/ui/dateMenu.js:145
msgid "Add world clocks…" msgid "Add world clocks…"
msgstr "Zonte orlois mondiâi..." msgstr "Zonte orlois mondiâi..."
#: js/ui/dateMenu.js:145 #: js/ui/dateMenu.js:146
msgid "World Clocks" msgid "World Clocks"
msgstr "Orlois mondiâi" msgstr "Orlois mondiâi"
#: js/ui/dateMenu.js:224 #: js/ui/dateMenu.js:225
msgid "Weather" msgid "Weather"
msgstr "Timp" msgstr "Timp"
@ -996,7 +996,7 @@ msgstr "Timp"
#. 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:286 #: js/ui/dateMenu.js:289
#, javascript-format #, javascript-format
msgid "%s all day." msgid "%s all day."
msgstr "%s dut il dì." msgstr "%s dut il dì."
@ -1005,7 +1005,7 @@ msgstr "%s dut il dì."
#. 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:292 #: js/ui/dateMenu.js:295
#, javascript-format #, javascript-format
msgid "%s, then %s later." msgid "%s, then %s later."
msgstr "%s, plui tart %s." msgstr "%s, plui tart %s."
@ -1014,30 +1014,30 @@ msgstr "%s, plui tart %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:298 #: 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, chi di un pôc %s, e plui tart %s." msgstr "%s, chi di un pôc %s, e plui tart %s."
#: js/ui/dateMenu.js:309 #: js/ui/dateMenu.js:312
msgid "Select a location…" msgid "Select a location…"
msgstr "Selezione une posizion..." msgstr "Selezione une posizion..."
#: js/ui/dateMenu.js:312 #: js/ui/dateMenu.js:315
msgid "Loading…" msgid "Loading…"
msgstr "Daûr a cjariâ..." msgstr "Daûr a cjariâ..."
#. Translators: %s is a temperature with unit, e.g. "23℃" #. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318 #: js/ui/dateMenu.js:321
#, javascript-format #, javascript-format
msgid "Feels like %s." msgid "Feels like %s."
msgstr "Si sint %s." msgstr "Si sint %s."
#: js/ui/dateMenu.js:321 #: js/ui/dateMenu.js:324
msgid "Go online for weather information" msgid "Go online for weather information"
msgstr "Va in rêt pes informazions sul timp" msgstr "Va in rêt pes informazions sul timp"
#: js/ui/dateMenu.js:323 #: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable" msgid "Weather information is currently unavailable"
msgstr "Lis informazions sul timp al moment no son disponibilis" msgstr "Lis informazions sul timp al moment no son disponibilis"
@ -1276,7 +1276,7 @@ msgstr "Viôt sorzint"
msgid "Web Page" msgid "Web Page"
msgstr "Pagjine Web" msgstr "Pagjine Web"
#: js/ui/messageTray.js:1493 #: js/ui/messageTray.js:1494
msgid "System Information" msgid "System Information"
msgstr "Informazion di sisteme" msgstr "Informazion di sisteme"
@ -1449,12 +1449,11 @@ msgstr "Nissun risultât."
# o ancjemò %d # o ancjemò %d
#: js/ui/search.js:777 #: js/ui/search.js:777
#, fuzzy, javascript-format #, javascript-format
#| msgid "%d more"
msgid "%d more" msgid "%d more"
msgid_plural "%d more" msgid_plural "%d more"
msgstr[0] "Ancjemò %d" msgstr[0] "%d altri"
msgstr[1] "Ancjemò %d" msgstr[1] "%d altris"
#: js/ui/shellEntry.js:25 #: js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"

View File

@ -15,8 +15,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-s" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-s"
"hell&keywords=I18N+L10N&component=general\n" "hell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-31 02:16+0000\n" "POT-Creation-Date: 2017-10-23 10:13+0000\n"
"PO-Revision-Date: 2017-09-01 10:25+0100\n" "PO-Revision-Date: 2017-10-25 10:55+0100\n"
"Last-Translator: Hannie Dumoleyn <hannie@ubuntu-nl.org>\n" "Last-Translator: Hannie Dumoleyn <hannie@ubuntu-nl.org>\n"
"Language-Team: Dutch <gnome-nl-list@gnome.org>\n" "Language-Team: Dutch <gnome-nl-list@gnome.org>\n"
"Language: nl\n" "Language: nl\n"
@ -71,16 +71,16 @@ msgstr "Vensterbeheer en toepassingen starten"
#: data/org.gnome.shell.gschema.xml.in:6 #: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "" msgstr ""
"Interne hulpprogramma's inschakelen die nuttig zijn voor ontwikkwlaars en" "Interne hulpprogramma's inschakelen die nuttig zijn voor ontwikkwlaars en "
" testers via Alt-F2" "testers via Alt-F2"
#: data/org.gnome.shell.gschema.xml.in:9 #: data/org.gnome.shell.gschema.xml.in:9
msgid "" msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 " "Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog." "dialog."
msgstr "" msgstr ""
"Geeft toegang tot interne debugging- en observatieprogramma's met behulp van" "Geeft toegang tot interne debugging- en observatieprogramma's met behulp van "
" het Alt-F2-dialoogvenster." "het Alt-F2-dialoogvenster."
#: data/org.gnome.shell.gschema.xml.in:16 #: data/org.gnome.shell.gschema.xml.in:16
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
@ -107,8 +107,8 @@ msgid ""
"Disable all extensions the user has enabled without affecting the “enabled-" "Disable all extensions the user has enabled without affecting the “enabled-"
"extension” setting." "extension” setting."
msgstr "" msgstr ""
"Schakel alle door de gebruiker ingeschakelde uitbreidingen uit, zonder de" "Schakel alle door de gebruiker ingeschakelde uitbreidingen uit, zonder de "
" instelling enabled-extension te wijzigen." "instelling enabled-extension te wijzigen."
#: data/org.gnome.shell.gschema.xml.in:34 #: data/org.gnome.shell.gschema.xml.in:34
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
@ -122,8 +122,8 @@ msgid ""
msgstr "" msgstr ""
"Gnome Shell zal alleen uitbreidingen laden die aangeven de huidige versie te " "Gnome Shell zal alleen uitbreidingen laden die aangeven de huidige versie te "
"ondersteunen. Door deze optie in te schakelen wordt deze controle " "ondersteunen. Door deze optie in te schakelen wordt deze controle "
"overgeslagen en worden alle uitbreidingen geladen, ongeacht de versies die ze" "overgeslagen en worden alle uitbreidingen geladen, ongeacht de versies die "
" zouden moeten ondersteunen." "ze zouden moeten ondersteunen."
#: data/org.gnome.shell.gschema.xml.in:43 #: data/org.gnome.shell.gschema.xml.in:43
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@ -134,8 +134,8 @@ msgid ""
"The applications corresponding to these identifiers will be displayed in the " "The applications corresponding to these identifiers will be displayed in the "
"favorites area." "favorites area."
msgstr "" msgstr ""
"De toepassingen die aan deze identifiers voldoen worden in het" "De toepassingen die aan deze identifiers voldoen worden in het "
" favorietengebied weergegeven." "favorietengebied weergegeven."
#: data/org.gnome.shell.gschema.xml.in:51 #: data/org.gnome.shell.gschema.xml.in:51
msgid "App Picker View" msgid "App Picker View"
@ -171,8 +171,8 @@ msgstr ""
msgid "" msgid ""
"Whether to remember password for mounting encrypted or remote filesystems" "Whether to remember password for mounting encrypted or remote filesystems"
msgstr "" msgstr ""
"Of wachtwoorden voor versleutelde bestandssystemen of bestandssystemen op" "Of wachtwoorden voor versleutelde bestandssystemen of bestandssystemen op "
" afstand onthouden moeten worden" "afstand onthouden moeten worden"
#: data/org.gnome.shell.gschema.xml.in:76 #: data/org.gnome.shell.gschema.xml.in:76
msgid "" msgid ""
@ -310,8 +310,8 @@ msgstr "Deze waarde overschrijft de waarde in org.gnome.mutter in Gnome Shell."
#: data/org.gnome.shell.gschema.xml.in:206 #: 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 ""
"Vensters langs de randen positioneren bij verslepen naar de rand van het" "Vensters langs de randen positioneren bij verslepen naar de rand van het "
" scherm" "scherm"
#: data/org.gnome.shell.gschema.xml.in:214 #: data/org.gnome.shell.gschema.xml.in:214
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
@ -755,51 +755,51 @@ msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "Z" msgstr "Z"
#: js/ui/calendar.js:442 #: js/ui/calendar.js:449
msgid "Previous month" msgid "Previous month"
msgstr "Vorige maand" msgstr "Vorige maand"
#: js/ui/calendar.js:452 #: js/ui/calendar.js:459
msgid "Next month" msgid "Next month"
msgstr "Volgende maand" msgstr "Volgende maand"
#: js/ui/calendar.js:605 #: js/ui/calendar.js:612
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: js/ui/calendar.js:660 #: js/ui/calendar.js:667
msgid "Week %V" msgid "Week %V"
msgstr "Week %V" msgstr "Week %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: js/ui/calendar.js:729 #: js/ui/calendar.js:736
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Gehele dag" msgstr "Gehele dag"
#: js/ui/calendar.js:862 #: js/ui/calendar.js:869
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:866 #: js/ui/calendar.js:873
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:1086 #: js/ui/calendar.js:1093
msgid "No Notifications" msgid "No Notifications"
msgstr "Geen notificaties" msgstr "Geen notificaties"
#: js/ui/calendar.js:1089 #: js/ui/calendar.js:1096
msgid "No Events" msgid "No Events"
msgstr "Geen gebeurtenissen" msgstr "Geen gebeurtenissen"
#: js/ui/calendar.js:1117 #: js/ui/calendar.js:1124
msgid "Clear All" msgid "Clear All"
msgstr "Alles wissen" msgstr "Alles wissen"
@ -814,8 +814,8 @@ 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."
msgstr "" msgstr ""
"U kan even wachten tot de toepassing weer reageert, of ze dwingen" "U kan even wachten tot de toepassing weer reageert, of ze dwingen "
" onmiddellijk af te sluiten." "onmiddellijk af te sluiten."
#: js/ui/closeDialog.js:61 #: js/ui/closeDialog.js:61
msgid "Force Quit" msgid "Force Quit"
@ -833,7 +833,7 @@ msgstr "Verbinding met externe schijf gemaakt"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Verbinding met externe schijf verbroken" msgstr "Verbinding met externe schijf verbroken"
#: js/ui/components/autorunManager.js:354 #: js/ui/components/autorunManager.js:358
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Openen met %s" msgstr "Openen met %s"
@ -972,7 +972,7 @@ msgstr "Zijbalk"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. #.
#: js/ui/dateMenu.js:75 #: js/ui/dateMenu.js:76
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%e %B %Y" msgstr "%e %B %Y"
@ -980,19 +980,19 @@ msgstr "%e %B %Y"
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. #.
#: js/ui/dateMenu.js:82 #: js/ui/dateMenu.js:83
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
#: js/ui/dateMenu.js:144 #: js/ui/dateMenu.js:145
msgid "Add world clocks…" msgid "Add world clocks…"
msgstr "Wereldklokken toevoegen…" msgstr "Wereldklokken toevoegen…"
#: js/ui/dateMenu.js:145 #: js/ui/dateMenu.js:146
msgid "World Clocks" msgid "World Clocks"
msgstr "Wereldklokken" msgstr "Wereldklokken"
#: js/ui/dateMenu.js:224 #: js/ui/dateMenu.js:225
msgid "Weather" msgid "Weather"
msgstr "Weer" msgstr "Weer"
@ -1000,7 +1000,7 @@ msgstr "Weer"
#. 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:286 #: js/ui/dateMenu.js:289
#, javascript-format #, javascript-format
msgid "%s all day." msgid "%s all day."
msgstr "De hele dag %s." msgstr "De hele dag %s."
@ -1009,7 +1009,7 @@ msgstr "De hele dag %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:292 #: js/ui/dateMenu.js:295
#, javascript-format #, javascript-format
msgid "%s, then %s later." msgid "%s, then %s later."
msgstr "%s, daarna %s." msgstr "%s, daarna %s."
@ -1018,30 +1018,30 @@ msgstr "%s, daarna %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:298 #: 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, daarna %s, gevolgd door %s." msgstr "%s, daarna %s, gevolgd door %s."
#: js/ui/dateMenu.js:309 #: js/ui/dateMenu.js:312
msgid "Select a location…" msgid "Select a location…"
msgstr "Selecteer een locatie…" msgstr "Selecteer een locatie…"
#: js/ui/dateMenu.js:312 #: js/ui/dateMenu.js:315
msgid "Loading…" msgid "Loading…"
msgstr "Laden…" msgstr "Laden…"
#. Translators: %s is a temperature with unit, e.g. "23℃" #. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318 #: js/ui/dateMenu.js:321
#, javascript-format #, javascript-format
msgid "Feels like %s." msgid "Feels like %s."
msgstr "Voelt aan als %s." msgstr "Voelt aan als %s."
#: js/ui/dateMenu.js:321 #: js/ui/dateMenu.js:324
msgid "Go online for weather information" msgid "Go online for weather information"
msgstr "Ga online voor informatie over het weer" msgstr "Ga online voor informatie over het weer"
#: js/ui/dateMenu.js:323 #: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable" msgid "Weather information is currently unavailable"
msgstr "Informatie over het weer is momenteel niet beschikbaar" msgstr "Informatie over het weer is momenteel niet beschikbaar"
@ -1278,7 +1278,7 @@ msgstr "Broncode weergeven"
msgid "Web Page" msgid "Web Page"
msgstr "Webpagina" msgstr "Webpagina"
#: js/ui/messageTray.js:1493 #: js/ui/messageTray.js:1494
msgid "System Information" msgid "System Information"
msgstr "Systeeminformatie" msgstr "Systeeminformatie"
@ -1369,7 +1369,7 @@ msgstr "Systeem"
#: js/ui/panel.js:812 #: js/ui/panel.js:812
msgid "Top Bar" msgid "Top Bar"
msgstr "Bovenbalk" msgstr "Menubalk"
#. Translators: this MUST be either "toggle-switch-us" #. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words #. (for toggle switches containing the English words
@ -2042,19 +2042,19 @@ msgstr "Evolution-agenda"
msgid "evolution" msgid "evolution"
msgstr "evolution" msgstr "evolution"
#: src/main.c:380 #: src/main.c:429
msgid "Print version" msgid "Print version"
msgstr "Versie weergeven" msgstr "Versie weergeven"
#: src/main.c:386 #: src/main.c:435
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "De modus die door GDM voor het aanmeldscherm gebruikt wordt" msgstr "De modus die door GDM voor het aanmeldscherm gebruikt wordt"
#: src/main.c:392 #: src/main.c:441
msgid "Use a specific mode, e.g. “gdm” for login screen" msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Specifieke modus gebruiken, bijv. “gdm” voor het aanmeldscherm" msgstr "Specifieke modus gebruiken, bijv. “gdm” voor het aanmeldscherm"
#: src/main.c:398 #: src/main.c:447
msgid "List possible modes" msgid "List possible modes"
msgstr "Mogelijke modi tonen" msgstr "Mogelijke modi tonen"

View File

@ -10,7 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-28 19:35+0200\n" "POT-Creation-Date: 2017-08-28 19:35+0200\n"
"PO-Revision-Date: 2017-08-28 19:38+0200\n" "PO-Revision-Date: 2017-10-14 20:09+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"
@ -20,7 +20,7 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n" "%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.0.1\n" "X-Generator: Poedit 2.0.4\n"
#: data/50-gnome-shell-system.xml:6 #: data/50-gnome-shell-system.xml:6
msgid "System" msgid "System"
@ -363,7 +363,7 @@ msgstr "Izbor seje"
#. manually entering the username. #. manually entering the username.
#: js/gdm/loginDialog.js:458 #: js/gdm/loginDialog.js:458
msgid "Not listed?" msgid "Not listed?"
msgstr "Ali je 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
@ -665,12 +665,12 @@ msgstr "Dodaj med priljubljene"
msgid "Show Details" msgid "Show Details"
msgstr "Pokaži besedilo" msgstr "Pokaži besedilo"
#: js/ui/appFavorites.js:140 #: js/ui/appFavorites.js:141
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "Program »%s« je dodan med priljubljeno." msgstr "Program »%s« je dodan med priljubljeno."
#: js/ui/appFavorites.js:174 #: js/ui/appFavorites.js:175
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "Program »%s« je odstranjen iz priljubljenih." msgstr "Program »%s« je odstranjen iz priljubljenih."
@ -759,51 +759,51 @@ msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: js/ui/calendar.js:442 #: js/ui/calendar.js:449
msgid "Previous month" msgid "Previous month"
msgstr "Predhodni mesec" msgstr "Predhodni mesec"
#: js/ui/calendar.js:452 #: js/ui/calendar.js:459
msgid "Next month" msgid "Next month"
msgstr "Naslednji mesec" msgstr "Naslednji mesec"
#: js/ui/calendar.js:605 #: js/ui/calendar.js:612
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: js/ui/calendar.js:660 #: js/ui/calendar.js:667
msgid "Week %V" msgid "Week %V"
msgstr "Teden %V" msgstr "Teden %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: js/ui/calendar.js:729 #: js/ui/calendar.js:736
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Celodnevno" msgstr "Celodnevno"
#: js/ui/calendar.js:862 #: js/ui/calendar.js:869
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:866 #: js/ui/calendar.js:873
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:1086 #: js/ui/calendar.js:1093
msgid "No Notifications" msgid "No Notifications"
msgstr "Ni obvestil" msgstr "Ni obvestil"
#: js/ui/calendar.js:1089 #: js/ui/calendar.js:1096
msgid "No Events" msgid "No Events"
msgstr "Ni dogodkov" msgstr "Ni dogodkov"
#: js/ui/calendar.js:1117 #: js/ui/calendar.js:1124
msgid "Clear All" msgid "Clear All"
msgstr "Počisti vse" msgstr "Počisti vse"
@ -837,7 +837,7 @@ msgstr "Zunanji pogon je priklopljen"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Zunanji pogon je odklopljen" msgstr "Zunanji pogon je odklopljen"
#: js/ui/components/autorunManager.js:354 #: js/ui/components/autorunManager.js:358
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Odpri s programom %s" msgstr "Odpri s programom %s"
@ -914,7 +914,7 @@ msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
#: js/ui/components/networkAgent.js:313 #: js/ui/components/networkAgent.js:313
msgid "PIN: " msgid "PIN: "
msgstr "PIN: " msgstr "Koda PIN: "
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659 #: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
msgid "Mobile broadband network password" msgid "Mobile broadband network password"
@ -974,7 +974,7 @@ msgstr "Pregledna plošča"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. #.
#: js/ui/dateMenu.js:75 #: js/ui/dateMenu.js:76
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%B %e %Y" msgstr "%B %e %Y"
@ -982,19 +982,19 @@ msgstr "%B %e %Y"
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. #.
#: js/ui/dateMenu.js:82 #: js/ui/dateMenu.js:83
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %B %e %Y" msgstr "%A %B %e %Y"
#: js/ui/dateMenu.js:144 #: js/ui/dateMenu.js:145
msgid "Add world clocks…" msgid "Add world clocks…"
msgstr "Dodaj svetovni čas ..." msgstr "Dodaj svetovni čas ..."
#: js/ui/dateMenu.js:145 #: js/ui/dateMenu.js:146
msgid "World Clocks" msgid "World Clocks"
msgstr "Svetovni časi" msgstr "Svetovni časi"
#: js/ui/dateMenu.js:224 #: js/ui/dateMenu.js:225
msgid "Weather" msgid "Weather"
msgstr "Vreme" msgstr "Vreme"
@ -1002,7 +1002,7 @@ msgstr "Vreme"
#. 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:286 #: js/ui/dateMenu.js:289
#, javascript-format #, javascript-format
msgid "%s all day." msgid "%s all day."
msgstr "%s ves dan." msgstr "%s ves dan."
@ -1011,7 +1011,7 @@ msgstr "%s ves dan."
#. 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:292 #: js/ui/dateMenu.js:295
#, javascript-format #, javascript-format
msgid "%s, then %s later." msgid "%s, then %s later."
msgstr "%s, sledi %s." msgstr "%s, sledi %s."
@ -1020,30 +1020,30 @@ msgstr "%s, sledi %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:298 #: 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, sledi %s, kasneje tudi %s." msgstr "%s, sledi %s, kasneje tudi %s."
#: js/ui/dateMenu.js:309 #: js/ui/dateMenu.js:312
msgid "Select a location…" msgid "Select a location…"
msgstr "Izbor mesta ..." msgstr "Izbor mesta ..."
#: js/ui/dateMenu.js:312 #: js/ui/dateMenu.js:315
msgid "Loading…" msgid "Loading…"
msgstr "Poteka nalaganje ..." msgstr "Poteka nalaganje ..."
#. Translators: %s is a temperature with unit, e.g. "23℃" #. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318 #: js/ui/dateMenu.js:321
#, javascript-format #, javascript-format
msgid "Feels like %s." msgid "Feels like %s."
msgstr "Občuti se kot %s." msgstr "Občuti se kot %s."
#: js/ui/dateMenu.js:321 #: js/ui/dateMenu.js:324
msgid "Go online for weather information" msgid "Go online for weather information"
msgstr "Preglej splet za podrobnosti o vremenu." msgstr "Preglej splet za podrobnosti o vremenu."
#: js/ui/dateMenu.js:323 #: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable" msgid "Weather information is currently unavailable"
msgstr "Podatki o vremenu trenutno niso na voljo." msgstr "Podatki o vremenu trenutno niso na voljo."
@ -1293,7 +1293,7 @@ msgstr "Poglej vir"
msgid "Web Page" msgid "Web Page"
msgstr "Spletna stran" msgstr "Spletna stran"
#: js/ui/messageTray.js:1493 #: js/ui/messageTray.js:1494
msgid "System Information" msgid "System Information"
msgstr "Podrobnosti sistema" msgstr "Podrobnosti sistema"
@ -1951,7 +1951,7 @@ msgstr "Le vgrajeno"
#: js/ui/unlockDialog.js:67 #: js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Prijava kot drug uporabnik" msgstr "Prijavi z drugim uporabniškim imenom"
#: js/ui/unlockDialog.js:84 #: js/ui/unlockDialog.js:84
msgid "Unlock Window" msgid "Unlock Window"

View File

@ -38,14 +38,17 @@ extern GType gnome_shell_plugin_get_type (void);
static gboolean is_gdm_mode = FALSE; static gboolean is_gdm_mode = FALSE;
static char *session_mode = NULL; static char *session_mode = NULL;
static int caught_signal = 0;
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 #define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 #define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4
enum { enum {
SHELL_DEBUG_BACKTRACE_WARNINGS = 1, SHELL_DEBUG_BACKTRACE_WARNINGS = 1,
SHELL_DEBUG_BACKTRACE_SEGFAULTS = 2,
}; };
static int _shell_debug; static int _shell_debug;
static gboolean _tracked_signals[NSIG] = { 0 };
static void static void
shell_dbus_acquire_name (GDBusProxy *bus, shell_dbus_acquire_name (GDBusProxy *bus,
@ -290,7 +293,8 @@ static void
shell_init_debug (const char *debug_env) shell_init_debug (const char *debug_env)
{ {
static const GDebugKey keys[] = { static const GDebugKey keys[] = {
{ "backtrace-warnings", SHELL_DEBUG_BACKTRACE_WARNINGS } { "backtrace-warnings", SHELL_DEBUG_BACKTRACE_WARNINGS },
{ "backtrace-segfaults", SHELL_DEBUG_BACKTRACE_SEGFAULTS },
}; };
_shell_debug = g_parse_debug_string (debug_env, keys, _shell_debug = g_parse_debug_string (debug_env, keys,
@ -328,6 +332,59 @@ shut_up (const char *domain,
{ {
} }
static void
dump_gjs_stack_alarm_sigaction (int signo)
{
g_log_set_default_handler (g_log_default_handler, NULL);
g_warning ("Failed to dump Javascript stack, got stuck");
g_log_set_default_handler (default_log_handler, NULL);
raise (caught_signal);
}
static void
dump_gjs_stack_on_signal_handler (int signo)
{
struct sigaction sa = { 0 };
gsize i;
/* Ignore all the signals starting this point, a part the one we'll raise
* (which is implicitly ignored here through SA_RESETHAND), this is needed
* not to get this handler being called by other signals that we were
* tracking and that might be emitted by code called starting from now.
*/
for (i = 0; i < G_N_ELEMENTS (_tracked_signals); ++i)
{
if (_tracked_signals[i] && i != signo)
signal (i, SIG_IGN);
}
/* Waiting at least 5 seconds for the dumpstack, if it fails, we raise the error */
caught_signal = signo;
sa.sa_handler = dump_gjs_stack_alarm_sigaction;
sigemptyset (&sa.sa_mask);
sigaction (SIGALRM, &sa, NULL);
alarm (5);
gjs_dumpstack ();
alarm (0);
raise (signo);
}
static void
dump_gjs_stack_on_signal (int signo)
{
struct sigaction sa = { 0 };
sa.sa_flags = SA_RESETHAND | SA_NODEFER;
sa.sa_handler = dump_gjs_stack_on_signal_handler;
sigemptyset (&sa.sa_mask);
sigaction (signo, &sa, NULL);
_tracked_signals[signo] = TRUE;
}
static gboolean static gboolean
list_modes (const char *option_name, list_modes (const char *option_name,
const char *value, const char *value,
@ -459,6 +516,17 @@ main (int argc, char **argv)
shell_prefs_init (); shell_prefs_init ();
dump_gjs_stack_on_signal (SIGABRT);
dump_gjs_stack_on_signal (SIGFPE);
dump_gjs_stack_on_signal (SIGIOT);
dump_gjs_stack_on_signal (SIGTRAP);
if ((_shell_debug & SHELL_DEBUG_BACKTRACE_SEGFAULTS))
{
dump_gjs_stack_on_signal (SIGBUS);
dump_gjs_stack_on_signal (SIGSEGV);
}
ecode = meta_run (); ecode = meta_run ();
g_debug ("Doing final cleanup"); g_debug ("Doing final cleanup");