Compare commits

...

18 Commits

Author SHA1 Message Date
598cf48973 Bump version to 3.18.5
Update NEWS.
2016-04-21 12:04:11 +02:00
ce811ec063 st: Don't assert when corner texture creation fails 2016-04-20 19:32:32 +02:00
535fb0e2a0 Do not skip CoglError parameters
While CoglError is a define to GError, it doesn't follow the convention
of ignoring errors when NULL is passed, but rather treats the error as
fatal :-(
That's clearly unwanted for a compositor, so make sure to always pass
an error parameter where a runtime error is possible

https://bugzilla.gnome.org/show_bug.cgi?id=765061
2016-04-20 19:32:32 +02:00
281101d942 st: Do not try to unref NULL CoglObjects
https://bugzilla.gnome.org/show_bug.cgi?id=765061
2016-04-20 19:32:31 +02:00
045e1f01af st: Fix offscreen leak if cogl_framebuffer_allocate fails
If cogl_framebuffer_allocate fails in _st_create_shadow_pipeline_from_actor, the
CoglOffscreen* that was allocated earlier in the function is leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=735705

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
2016-04-03 11:56:39 +02:00
db252a65f8 Updated Czech translation 2016-03-30 08:29:07 +02:00
358ee88e1c NetworkAgent: Fix double-unref in get_secrets_keyring_cb()
In get_secrets_keyring_cb, we own a ref on the 'attributes' hash table
from secret_item_get_attributes), and a ref on the 'secret' object (from
secret_item_get_secret(), but in the SHELL_KEYRING_SK_TAG case, we unref
these once before breaking out of the loop, and the second time after
breaking out of the loop.

https://bugzilla.gnome.org/show_bug.cgi?id=759708

Note: This is needed to avoid crashes with libsecret 0.18.4 -- Michael
2016-03-21 17:56:15 -05:00
cdc9652f5b telepathyClient: Acknowledge messages before closing
While a channel has pending messages, it will pop up again when
dismissed. That is clearly not what users expect, so clear them
out first before closing a channel.

https://bugzilla.gnome.org/show_bug.cgi?id=747991
2016-03-16 17:45:52 -05:00
fcfa752fbd Updated Slovenian translation 2016-03-05 20:44:53 +01:00
4651b7adcc Bump version to 3.18.4
Update NEWS.
2016-02-22 16:45:15 +01:00
4562a431ad NetworkAgent: correctly identify the VPN secret requests
The non-interactive requests for 'vpn' settings are forwarded to the UI because
it is able to talk to the auth helpers. However, the VPN requests are identified
by the connection type instead of setting type. That is incorrect and the UI
is not prepared to handle such requests; tries to construct a dialog and fails
miserably:

  Gjs-Message: JS LOG: Invalid connection type: vpn

  (gnome-shell:13133): Gjs-WARNING **: JS ERROR: Error: No property 'text' in property list (or its value was undefined)
  NetworkSecretDialog<._init@resource:///org/gnome/shell/ui/components/networkAgent.js:60
  wrapper@resource:///org/gnome/gjs/modules/lang.js:169
  _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110
  Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204
  NetworkAgent<._handleRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:724
  wrapper@resource:///org/gnome/gjs/modules/lang.js:169
  NetworkAgent<._newRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:715
  wrapper@resource:///org/gnome/gjs/modules/lang.js:169

https://bugzilla.gnome.org/show_bug.cgi?id=760999
2016-01-27 13:42:05 +01:00
f5d9d188a7 authPrompt: Do not allow bypassing disabled Sign In button
The Next and Sign In buttons are disabled when the username/password
field is empty. However, the user can still bypass this button by
pressing the enter key, leading to some odd glitches with the log in
for 'Not Listed?' users.

This is easy to fix by simply not progressing to the next screen when
the button is disabled.

https://bugzilla.gnome.org/show_bug.cgi?id=746180
2016-01-07 17:19:24 -06:00
cca01e3f02 Updated Indonesian translation 2016-01-02 12:12:44 +00:00
1874f3605d Updated Ukrainian translation 2015-12-05 17:00:22 +02:00
3001f3376c loginDialog: Reconsider user for user list when user changes
Generally a user-changed operation will be uninteresting, but if the
user is currently in the user list and the account changes to locked, we
want to remove it from the list, or if the user is not in the list and
the account changed to unlocked, we want to add it to the list. This
fixes the case where a new user account created in gnome-control-center
does not appear in the user list. The password mode is set in the new
account immediately after it is created, but the operations are not
atomic, so the login dialog considers the new user account when it is
still locked and rejects it from being displayed, then immediately
afterwards the account is unlocked. This commit causes the login dialog
to show the account when this occurs.

The containsUser() check here is not strictly necessary, but reduces
spurious calls to addUser() and removeUser(), since there's no easy way
to check if the locked status of the account has changed (as it's much
easier to connect to one signal on the UserManager than to
notify::locked on each User object).

https://bugzilla.gnome.org/show_bug.cgi?id=758568
2015-12-02 18:25:25 +01:00
491e511a96 altTab: Fix window-switcher on HiDPI displays
We need to take the scale factor into account to avoid tiny window
previews on HiDPI.

https://bugzilla.gnome.org/show_bug.cgi?id=758676
2015-12-02 10:35:52 +01:00
293bc98394 loginDialog: Fix TypeError when user is deleted
LoginDialog has a private _user, but UserListItem has a public user.
Easy to get wrong since _user would be the right thing to type in 90% of
this file.
2015-11-23 17:48:18 -06:00
2ed3482d54 Updated Esperanto translation 2015-11-23 00:40:00 +01:00
15 changed files with 1825 additions and 1369 deletions

26
NEWS
View File

@ -1,3 +1,29 @@
3.18.5
======
* Fix deleting chat notifications in calendar [Florian; #747991]
* Fix recount issue in network agent component [Christophe; #759708]
* Plug a memory leak [Aaron; #735705]
* Do not assert on non-fatal runtime errors [Florian; #765061]
Contributors:
Christophe Fergeau, Florian Müllner, Aaron Plattner
Translations:
Matej Urbančič [sl], Marek Černocký [cs]
3.18.4
======
* Fix thumbnail scaling in window switcher on HiDPI [Florian; #758676]
* loginDialog: Update user list on user changes [Michael; #758568]
* gdm: Do not allow bypassing disabled Sign In button [Michael; #746180]
* Correctly identify VPN secret requests [Lubomir; #760999]
Contributors:
Michael Catanzaro, Florian Müllner, Lubomir Rintel
Translations:
Kristjan SCHMIDT [eo], Daniel Korostil [uk], Andika Triwidada [id]
3.18.3
======
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.18.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.18.5],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])

View File

@ -189,7 +189,8 @@ const AuthPrompt = new Lang.Class({
this._updateNextButtonSensitivity(this._entry.text.length > 0);
}));
this._entry.clutter_text.connect('activate', Lang.bind(this, function() {
this.emit('next');
if (this.nextButton.reactive)
this.emit('next');
}));
},

View File

@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({
},
_onDestroy: function() {
this._user.disconnect(this._userChangedId);
this.user.disconnect(this._userChangedId);
},
_onClicked: function() {
@ -212,6 +212,10 @@ const UserList = new Lang.Class({
return item;
},
containsUser: function(user) {
return this._items[user.get_user_name()] != null;
},
addUser: function(user) {
if (!user.is_loaded)
return;
@ -1126,6 +1130,10 @@ const LoginDialog = new Lang.Class({
this._userManager.disconnect(this._userRemovedId);
this._userRemovedId = 0;
}
if (this._userChangedId) {
this._userManager.disconnect(this._userChangedId);
this._userChangedId = 0;
}
this._textureCache.disconnect(this._updateLogoTextureId);
Main.layoutManager.disconnect(this._startupCompleteId);
if (this._settings) {
@ -1172,6 +1180,14 @@ const LoginDialog = new Lang.Class({
this._userList.removeUser(user);
}));
this._userChangedId = this._userManager.connect('user-changed',
Lang.bind(this, function(userManager, user) {
if (this._userList.containsUser(user) && user.locked)
this._userList.removeUser(user);
else if (!this._userList.containsUser(user) && !user.locked)
this._userList.addUser(user);
}));
return GLib.SOURCE_REMOVE;
},

View File

@ -685,15 +685,17 @@ const WindowIcon = new Lang.Class({
this._icon.destroy_all_children();
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
switch (mode) {
case AppIconMode.THUMBNAIL_ONLY:
size = WINDOW_PREVIEW_SIZE;
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
break;
case AppIconMode.BOTH:
size = WINDOW_PREVIEW_SIZE;
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
if (this.app)
this._icon.add_actor(this._createAppIcon(this.app,
@ -705,7 +707,7 @@ const WindowIcon = new Lang.Class({
this._icon.add_actor(this._createAppIcon(this.app, size));
}
this._icon.set_size(size, size);
this._icon.set_size(size * scaleFactor, size * scaleFactor);
},
_createAppIcon: function(app, size) {

View File

@ -469,6 +469,7 @@ const ChatSource = new Lang.Class({
destroy: function(reason) {
if (this._client.is_handling_channel(this._channel)) {
this._ackMessages();
// The chat box has been destroyed so it can't
// handle the channel any more.
this._channel.close_async(function(channel, result) {

View File

@ -1222,7 +1222,7 @@ msgstr "Zjišťování polohy je povoleno"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Zakázáno"
msgstr "Zakázat"
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
@ -1238,7 +1238,7 @@ msgstr "Zjišťování polohy je zakázáno"
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Povoleno"
msgstr "Povolit"
#: ../js/ui/status/network.js:101
msgid "<unknown>"

1591
po/eo.po

File diff suppressed because it is too large Load Diff

210
po/id.po
View File

@ -7,11 +7,11 @@
# Wibiharto <wibinem@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Project-Id-Version: gnome-shell gnome-3-18\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-19 08:21+0000\n"
"PO-Revision-Date: 2015-09-19 19:34+0700\n"
"POT-Creation-Date: 2016-01-02 10:15+0000\n"
"PO-Revision-Date: 2016-01-02 19:12+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 1.6.10\n"
"X-Generator: Poedit 1.8.4\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -336,25 +336,33 @@ msgctxt "button"
msgid "Sign In"
msgstr "Masuk"
#: ../js/gdm/loginDialog.js:281
#: ../js/gdm/loginDialog.js:285
msgid "Choose Session"
msgstr "Pilih Sesi"
#: ../js/gdm/loginDialog.js:431
#. 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:435
msgid "Not listed?"
msgstr "Tak masuk daftar?"
#: ../js/gdm/loginDialog.js:850
#. 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:854
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(cth., pengguna dari %s)"
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#. 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:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Nama pengguna: "
#: ../js/gdm/loginDialog.js:1184
#: ../js/gdm/loginDialog.js:1196
msgid "Login Window"
msgstr "Jendela Log Masuk"
@ -362,6 +370,11 @@ msgstr "Jendela Log Masuk"
msgid "Authentication error"
msgstr "Galat otentikasi"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. 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:473
msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)"
@ -370,6 +383,8 @@ msgstr "(atau gesekkan jari)"
msgid "Command not found"
msgstr "Perintah tidak ditemukan"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152
msgid "Could not parse command:"
msgstr "Tak dapat mengurai perintah:"
@ -379,70 +394,78 @@ msgstr "Tak dapat mengurai perintah:"
msgid "Execution of “%s” failed:"
msgstr "Eksekusi \"%s\" gagal:"
#. Translators: Time in 24h format */
#. Translators: Time in 24h format
#: ../js/misc/util.js:191
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "Kemarin, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */
#. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */
#. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */
#. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format */
#. Translators: Time in 12h format
#: ../js/misc/util.js:220
msgid "%l%M %p"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "Kemarin, %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */
#. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/
#. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */
#. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "Pengalihan Otentikasi Web"
@ -493,12 +516,11 @@ msgstr "Ubah Latar…"
msgid "Display Settings"
msgstr "Pengaturan Tampilan"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Pengaturan"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
@ -508,43 +530,43 @@ msgstr "06"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#.
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "M"
#. Translators: Calendar grid abbreviation for Monday */
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday */
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday */
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "R"
#. Translators: Calendar grid abbreviation for Thursday */
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "K"
#. Translators: Calendar grid abbreviation for Friday */
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "J"
#. Translators: Calendar grid abbreviation for Saturday */
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
@ -564,39 +586,39 @@ msgstr "Minggu %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#. */
#.
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Sepanjang Hari"
#: ../js/ui/calendar.js:1291
#: ../js/ui/calendar.js:1295
msgid "Clear section"
msgstr "Bersihkan seksi"
#: ../js/ui/calendar.js:1518
#: ../js/ui/calendar.js:1522
msgid "Events"
msgstr "Kejadian"
#: ../js/ui/calendar.js:1527
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:1535
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y"
#: ../js/ui/calendar.js:1616
#: ../js/ui/calendar.js:1620
msgid "Notifications"
msgstr "Pemberitahuan"
#: ../js/ui/calendar.js:1767
#: ../js/ui/calendar.js:1771
msgid "No Notifications"
msgstr "Tak Ada Pemberitahuan"
#: ../js/ui/calendar.js:1770
#: ../js/ui/calendar.js:1774
msgid "No Events"
msgstr "Tak Ada Kejadian"
@ -608,7 +630,7 @@ msgstr "Drive eksternal tersambung"
msgid "External drive disconnected"
msgstr "Drive eksternal terputus"
#: ../js/ui/components/autorunManager.js:354
#: ../js/ui/components/autorunManager.js:351
#, javascript-format
msgid "Open with %s"
msgstr "Buka dengan %s"
@ -626,6 +648,7 @@ msgstr "Ketik lagi:"
msgid "Connect"
msgstr "Sambung"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273
@ -634,6 +657,7 @@ msgstr "Sambung"
msgid "Password: "
msgstr "Sandi: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "Tombol: "
@ -725,13 +749,13 @@ msgstr "Otentikasi"
#. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance. */
#. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#. IM name.
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
@ -745,13 +769,15 @@ msgstr "Jendela"
msgid "Show Applications"
msgstr "Tampilkan Aplikasi"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "Dash"
#. 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").
#. */
#.
#: ../js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%e %B %Y"
@ -759,7 +785,7 @@ msgstr "%e %B %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#. */
#.
#: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%A %e %B %Y"
@ -884,13 +910,13 @@ msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
msgid "Other users are logged in."
msgstr "Pengguna lain sedang log masuk."
#. Translators: Remote here refers to a remote session, like a ssh login */
#. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (jarak jauh)"
#. Translators: Console here refers to a tty like a VT console */
#. Translators: Console here refers to a tty like a VT console
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
@ -909,7 +935,7 @@ msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
msgid "Keyboard"
msgstr "Papan Ketik"
#. translators: 'Hide' is a verb */
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Sembunyikan baki"
@ -922,7 +948,7 @@ msgstr "Ikon Status"
msgid "No extensions installed"
msgstr "Tak ada ekstensi terpasang"
#. Translators: argument is an extension UUID. */
#. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
@ -942,7 +968,7 @@ msgstr "Diaktifkan"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled"
msgstr "Dinonaktifkan"
@ -981,26 +1007,36 @@ msgstr "Gambaran"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters. */
#. characters.
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Ketik untuk mencari…"
#: ../js/ui/panel.js:352
#: ../js/ui/panel.js:358
msgid "Quit"
msgstr "Keluar"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:404
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:414
msgid "Activities"
msgstr "Aktivitas"
#: ../js/ui/panel.js:754
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: ../js/ui/panel.js:807
msgid "Top Bar"
msgstr "Bar Atas"
# Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "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:289
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1018,7 +1054,7 @@ msgid "Restarting…"
msgstr "Memulai ulang..."
#. Translators: This is a time format for a date in
#. long format */
#. long format
#: ../js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%A, %d %B"
@ -1043,6 +1079,13 @@ msgstr "Kunci"
msgid "GNOME needs to lock the screen"
msgstr "GNOME perlu mengunci layar"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "Tak bisa mengunci"
@ -1138,7 +1181,7 @@ msgstr "Matikan"
msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth"
#. Translators: this is the number of connected bluetooth devices */
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected"
@ -1185,13 +1228,13 @@ msgstr "Fungsikan"
msgid "<unknown>"
msgstr "<tak dikenal>"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s Mati"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
@ -1199,45 +1242,45 @@ msgstr "%s Tersambung"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */
#. %s is a network identifier
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s Tak Dikelola"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s Memutus"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "%s Menyambung"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s Memerlukan Otentikasi"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */
#. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Firmware Hilang Untuk %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s Tak tersedia"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
@ -1251,14 +1294,14 @@ msgstr "Pengaturan Kabel"
msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Perangkat Keras Dinonaktifkan"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
@ -1320,13 +1363,13 @@ msgstr "Pengaturan Wi-Fi"
msgid "Turn On"
msgstr "Nyalakan"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Hotspot Aktif"
#. Translators: %s is a network identifier */
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
@ -1336,7 +1379,7 @@ msgstr "%s Tak Tersambung"
msgid "connecting..."
msgstr "menghubungi..."
#. 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:1414
msgid "authentication required"
msgstr "diperlukan otentikasi"
@ -1377,20 +1420,27 @@ msgstr "Pengaturan Daya"
msgid "Fully Charged"
msgstr "Terisi Penuh"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…"
msgstr "Memperkirakan…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d Tersisa (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d Sampai Penuh (%d%%)"
#. 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.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif"
@ -1458,7 +1508,7 @@ msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#. */
#.
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Balikkan Tatanan"
@ -1474,7 +1524,7 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. 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:658
#, javascript-format
msgid "%d x %d"
@ -1550,7 +1600,7 @@ msgstr "Evolution Kalender"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837
#: ../src/gvc/gvc-mixer-control.c:1835
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@ -1558,38 +1608,38 @@ msgstr[0] "%u Keluaran"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847
#: ../src/gvc/gvc-mixer-control.c:1845
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u Masukan"
#: ../src/gvc/gvc-mixer-control.c:2373
#: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds"
msgstr "Suara Sistem"
#: ../src/main.c:373
#: ../src/main.c:381
msgid "Print version"
msgstr "Versi Cetak"
#: ../src/main.c:379
#: ../src/main.c:387
msgid "Mode used by GDM for login screen"
msgstr "Mode yang dipakai oleh layar log masuk GDM"
#: ../src/main.c:385
#: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
#: ../src/main.c:391
#: ../src/main.c:399
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"
#: ../src/shell-app.c:239
#: ../src/shell-app.c:246
msgctxt "program"
msgid "Unknown"
msgstr "Tak dikenal"
#: ../src/shell-app.c:480
#: ../src/shell-app.c:487
#, c-format
msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\""

609
po/sl.po

File diff suppressed because it is too large Load Diff

627
po/uk.po

File diff suppressed because it is too large Load Diff

View File

@ -315,8 +315,6 @@ get_secrets_keyring_cb (GObject *source,
secrets_found = TRUE;
g_hash_table_unref (attributes);
secret_value_unref (secret);
break;
}
}
@ -366,8 +364,6 @@ shell_network_agent_get_secrets (NMSecretAgent *agent,
{
ShellNetworkAgent *self = SHELL_NETWORK_AGENT (agent);
ShellAgentRequest *request;
NMSettingConnection *setting_connection;
const char *connection_type;
GHashTable *attributes;
char *request_id;
@ -381,9 +377,6 @@ shell_network_agent_get_secrets (NMSecretAgent *agent,
shell_agent_request_cancel (request);
}
setting_connection = nm_connection_get_setting_connection (connection);
connection_type = nm_setting_connection_get_connection_type (setting_connection);
request = g_slice_new (ShellAgentRequest);
request->self = g_object_ref (self);
request->cancellable = g_cancellable_new ();
@ -393,7 +386,7 @@ shell_network_agent_get_secrets (NMSecretAgent *agent,
request->flags = flags;
request->callback = callback;
request->callback_data = callback_data;
request->is_vpn = !strcmp(connection_type, NM_SETTING_VPN_SETTING_NAME);
request->is_vpn = !strcmp(setting_name, NM_SETTING_VPN_SETTING_NAME);
request->entries = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, gvalue_destroy_notify);
if (request->is_vpn)

View File

@ -347,6 +347,7 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
static CoglPipeline *shadow_pipeline_template = NULL;
@ -377,7 +378,13 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
COGL_PIXEL_FORMAT_A_8,
rowstride_out,
pixels_out,
NULL));
&error));
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
g_free (pixels_out);
@ -395,7 +402,10 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
pipeline = cogl_pipeline_copy (shadow_pipeline_template);
cogl_pipeline_set_layer_texture (pipeline, 0, texture);
cogl_object_unref (texture);
if (texture)
cogl_object_unref (texture);
return pipeline;
}
@ -442,6 +452,7 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec,
if (!cogl_framebuffer_allocate (fb, &catch_error))
{
cogl_error_free (catch_error);
cogl_object_unref (offscreen);
cogl_object_unref (buffer);
return NULL;
}

View File

@ -469,14 +469,24 @@ pixbuf_to_cogl_texture (GdkPixbuf *pixbuf)
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
CoglTexture2D *texture;
return COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf),
gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
gdk_pixbuf_get_rowstride (pixbuf),
gdk_pixbuf_get_pixels (pixbuf),
NULL));
texture = cogl_texture_2d_new_from_data (ctx,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf),
gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
gdk_pixbuf_get_rowstride (pixbuf),
gdk_pixbuf_get_pixels (pixbuf),
&error);
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
return texture ? COGL_TEXTURE (texture) : NULL;
}
static cairo_surface_t *
@ -640,6 +650,8 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
(cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32 ||
cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24))
{
CoglError *error = NULL;
texdata = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx,
cairo_image_surface_get_width (surface),
cairo_image_surface_get_height (surface),
@ -647,9 +659,18 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
COGL_PIXEL_FORMAT_BGRA_8888 : COGL_PIXEL_FORMAT_BGR_888,
cairo_image_surface_get_stride (surface),
cairo_image_surface_get_data (surface),
NULL));
clutter_texture_set_cogl_texture (bind->texture, texdata);
cogl_object_unref (texdata);
&error));
if (texdata)
{
clutter_texture_set_cogl_texture (bind->texture, texdata);
cogl_object_unref (texdata);
}
else if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
clutter_actor_set_opacity (CLUTTER_ACTOR (bind->texture), 255);
}

View File

@ -71,6 +71,7 @@ create_corner_material (StCornerSpec *corner)
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
CoglHandle texture;
cairo_t *cr;
cairo_surface_t *surface;
@ -172,9 +173,15 @@ create_corner_material (StCornerSpec *corner)
CLUTTER_CAIRO_FORMAT_ARGB32,
rowstride,
data,
NULL));
&error));
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
g_free (data);
g_assert (texture != COGL_INVALID_HANDLE);
return texture;
}
@ -347,7 +354,7 @@ st_theme_node_lookup_corner (StThemeNode *node,
float height,
StCorner corner_id)
{
CoglHandle texture, material;
CoglHandle texture, material = COGL_INVALID_HANDLE;
char *key;
StTextureCache *cache;
StCornerSpec corner;
@ -396,8 +403,12 @@ st_theme_node_lookup_corner (StThemeNode *node,
key = corner_to_string (&corner);
texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_NONE, load_corner, &corner, NULL);
material = _st_create_texture_pipeline (texture);
cogl_handle_unref (texture);
if (texture)
{
material = _st_create_texture_pipeline (texture);
cogl_handle_unref (texture);
}
g_free (key);
@ -958,6 +969,7 @@ st_theme_node_prerender_background (StThemeNode *node,
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
StBorderImage *border_image;
CoglHandle texture;
guint radius[4];
@ -1277,7 +1289,13 @@ st_theme_node_prerender_background (StThemeNode *node,
CLUTTER_CAIRO_FORMAT_ARGB32,
rowstride,
data,
NULL));
&error));
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
cairo_destroy (cr);
cairo_surface_destroy (surface);