Compare commits
44 Commits
citadel
...
gnome-3-14
Author | SHA1 | Date | |
---|---|---|---|
|
687a2daed8 | ||
|
9c5d51cce2 | ||
|
b8ee69fac7 | ||
|
3169142c78 | ||
|
e8df2d3f8b | ||
|
256b8e0a50 | ||
|
0241ec7f13 | ||
|
71daa39349 | ||
|
92e0cc1008 | ||
|
d19e78af24 | ||
|
4b0cbafdcd | ||
|
c01ec075ab | ||
|
c4b2968f9f | ||
|
eab8ea9a1e | ||
|
6ecaf0e0fc | ||
|
840482c750 | ||
|
681e1b2075 | ||
|
bff6f71488 | ||
|
0adf3b84a7 | ||
|
fd635ba933 | ||
|
fd4f2f405f | ||
|
1a30f1b2f0 | ||
|
412d40f844 | ||
|
3dff544396 | ||
|
7e7eab2bea | ||
|
c568b44997 | ||
|
ce818c0ae5 | ||
|
ef2e301c08 | ||
|
ba274f42b2 | ||
|
2ceaa05a5a | ||
|
047e454a7c | ||
|
86618ce1f9 | ||
|
59724c5dd5 | ||
|
3bb500fed4 | ||
|
dcd3945bb7 | ||
|
f414f616c4 | ||
|
e21e90c5e6 | ||
|
1e7b2ef51f | ||
|
c291de7479 | ||
|
aee1a18270 | ||
|
6c67f26e7d | ||
|
deb651acbf | ||
|
d2011f6d7f | ||
|
416adec904 |
50
NEWS
50
NEWS
@ -1,3 +1,53 @@
|
|||||||
|
3.14.4
|
||||||
|
======
|
||||||
|
* Fix erroneous week numbers in calendar [Florian; #736722]
|
||||||
|
* Make slider scrolling smoother [Adel; #742648]
|
||||||
|
* Fix current day highlight on day change [Sebastian; #742492]
|
||||||
|
* Do not wake up the screen for disabled notifications [Florian; #744114]
|
||||||
|
* gdm: Fix user list accessibility [Florian; #729603]
|
||||||
|
* Work around background corruption with NVIDIA driver [Rui; #739178]
|
||||||
|
* Misc. bug fixes [Florian, Rui, Michele; #744575, #743993, #745245, #745570,
|
||||||
|
#737502]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Michele, Adel Gadllah, Sebastian Keller, Rui Matos, Florian Müllner
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Matej Urbančič [sl], Samir Ribic [bs]
|
||||||
|
|
||||||
|
3.14.3
|
||||||
|
======
|
||||||
|
* Properly remove network connections from list [Ryan; #740227]
|
||||||
|
* Fix handling of cancel button on login screen [Ray; #740141]
|
||||||
|
* Fix build when using dash as default shell [Alexander; #739241]
|
||||||
|
* Make event list in calendar scrollable [Stalin; #705115]
|
||||||
|
* Fix calendar-server crash on DBus timeout [Giovanni; #735308]
|
||||||
|
* Fix gestures triggering erroneously [Florian; #740237]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Ryan Lortie, Florian Müllner, Stalin Pereira, Ray Strode,
|
||||||
|
Alexander Tsoy
|
||||||
|
|
||||||
|
3.14.2
|
||||||
|
======
|
||||||
|
* Do not hard-depend on latest NetworkManager [Florian; #738485]
|
||||||
|
* Fix check for isToday in calendar [Darcy; #738725]
|
||||||
|
* Fix workspace changes from app picker [Yuki; #737534]
|
||||||
|
* Misc. bug fixes [Yuki; #739497]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Darcy, Florian Müllner, Yuki
|
||||||
|
|
||||||
|
3.14.1.5
|
||||||
|
========
|
||||||
|
* Fix handing of SystemBackground [Owen; #738652]
|
||||||
|
* Summarize queued up notifications [Devyani; #702460]
|
||||||
|
* Plug an animation object leak [Rui; #739252]
|
||||||
|
* Improve handling of multi-day events [Andreas; #727302]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Andreas Brauchli, Devyani Kota, Rui Matos, Owen W. Taylor
|
||||||
|
|
||||||
3.14.1
|
3.14.1
|
||||||
======
|
======
|
||||||
* Fix pulse animation for scrolled app folders [Florian; #736885]
|
* Fix pulse animation for scrolled app folders [Florian; #736885]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.63)
|
AC_PREREQ(2.63)
|
||||||
AC_INIT([gnome-shell],[3.14.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
AC_INIT([gnome-shell],[3.14.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_SRCDIR([src/shell-global.c])
|
AC_CONFIG_SRCDIR([src/shell-global.c])
|
||||||
@ -76,7 +76,7 @@ AC_MSG_RESULT($enable_systemd)
|
|||||||
CLUTTER_MIN_VERSION=1.15.90
|
CLUTTER_MIN_VERSION=1.15.90
|
||||||
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
||||||
GJS_MIN_VERSION=1.39.0
|
GJS_MIN_VERSION=1.39.0
|
||||||
MUTTER_MIN_VERSION=3.14.1
|
MUTTER_MIN_VERSION=3.14.4
|
||||||
GTK_MIN_VERSION=3.13.2
|
GTK_MIN_VERSION=3.13.2
|
||||||
GIO_MIN_VERSION=2.37.0
|
GIO_MIN_VERSION=2.37.0
|
||||||
LIBECAL_MIN_VERSION=3.5.3
|
LIBECAL_MIN_VERSION=3.5.3
|
||||||
@ -232,7 +232,9 @@ esac
|
|||||||
AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
|
AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
|
||||||
AC_SUBST(AM_CFLAGS)
|
AC_SUBST(AM_CFLAGS)
|
||||||
|
|
||||||
BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
|
if test -z "${BROWSER_PLUGIN_DIR}"; then
|
||||||
|
BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
|
||||||
|
fi
|
||||||
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
|
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
|
@ -1494,6 +1494,10 @@ StScrollBar StButton#vhandle:active {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.events-day-time-ellipses {
|
||||||
|
color: rgba(153, 153, 153, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
.events-day-time:rtl {
|
.events-day-time:rtl {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
@ -193,17 +193,15 @@ const AuthPrompt = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onAskQuestion: function(verifier, serviceName, question, passwordChar) {
|
_onAskQuestion: function(verifier, serviceName, question, passwordChar) {
|
||||||
if (this._preemptiveAnswer) {
|
|
||||||
if (this._queryingService)
|
|
||||||
this._userVerifier.answerQuery(this._queryingService, this._preemptiveAnswer);
|
|
||||||
this._preemptiveAnswer = null;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._queryingService)
|
if (this._queryingService)
|
||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
this._queryingService = serviceName;
|
this._queryingService = serviceName;
|
||||||
|
if (this._preemptiveAnswer) {
|
||||||
|
this._userVerifier.answerQuery(this._queryingService, this._preemptiveAnswer);
|
||||||
|
this._preemptiveAnswer = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.setPasswordChar(passwordChar);
|
this.setPasswordChar(passwordChar);
|
||||||
this.setQuestion(question);
|
this.setQuestion(question);
|
||||||
|
|
||||||
@ -260,6 +258,7 @@ const AuthPrompt = new Lang.Class({
|
|||||||
|
|
||||||
_onVerificationComplete: function() {
|
_onVerificationComplete: function() {
|
||||||
this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
|
this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
|
||||||
|
this.cancelButton.reactive = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
_onReset: function() {
|
_onReset: function() {
|
||||||
@ -431,6 +430,7 @@ const AuthPrompt = new Lang.Class({
|
|||||||
reset: function() {
|
reset: function() {
|
||||||
let oldStatus = this.verificationStatus;
|
let oldStatus = this.verificationStatus;
|
||||||
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
|
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
|
||||||
|
this.cancelButton.reactive = true;
|
||||||
|
|
||||||
if (oldStatus == AuthPromptStatus.VERIFYING)
|
if (oldStatus == AuthPromptStatus.VERIFYING)
|
||||||
this._userVerifier.cancel();
|
this._userVerifier.cancel();
|
||||||
@ -499,6 +499,9 @@ const AuthPrompt = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
cancel: function() {
|
cancel: function() {
|
||||||
|
if (this.verificationStatus == AuthPromptStatus.NOT_VERIFYING || this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.reset();
|
this.reset();
|
||||||
this.emit('cancelled');
|
this.emit('cancelled');
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ const Clutter = imports.gi.Clutter;
|
|||||||
const Gdm = imports.gi.Gdm;
|
const Gdm = imports.gi.Gdm;
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
|
const GObject = imports.gi.GObject;
|
||||||
const Gtk = imports.gi.Gtk;
|
const Gtk = imports.gi.Gtk;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Mainloop = imports.mainloop;
|
const Mainloop = imports.mainloop;
|
||||||
@ -70,6 +71,9 @@ const UserListItem = new Lang.Class({
|
|||||||
this._userWidget = new UserWidget.UserWidget(this.user);
|
this._userWidget = new UserWidget.UserWidget(this.user);
|
||||||
layout.add(this._userWidget.actor);
|
layout.add(this._userWidget.actor);
|
||||||
|
|
||||||
|
this._userWidget.actor.bind_property('label-actor', this.actor, 'label-actor',
|
||||||
|
GObject.BindingFlags.SYNC_CREATE);
|
||||||
|
|
||||||
this._timedLoginIndicator = new St.Bin({ style_class: 'login-dialog-timed-login-indicator',
|
this._timedLoginIndicator = new St.Bin({ style_class: 'login-dialog-timed-login-indicator',
|
||||||
scale_x: 0 });
|
scale_x: 0 });
|
||||||
layout.add(this._timedLoginIndicator);
|
layout.add(this._timedLoginIndicator);
|
||||||
@ -643,6 +647,8 @@ const LoginDialog = new Lang.Class({
|
|||||||
realmManager.release();
|
realmManager.release();
|
||||||
}));
|
}));
|
||||||
this._updateCancelButton();
|
this._updateCancelButton();
|
||||||
|
|
||||||
|
this._authPrompt.updateSensitivity(true);
|
||||||
this._showPrompt();
|
this._showPrompt();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1564,10 +1564,11 @@ const AppIcon = new Lang.Class({
|
|||||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
|
|
||||||
this._menuTimeoutId = 0;
|
this._menuTimeoutId = 0;
|
||||||
this._stateChangedId = this.app.connect('notify::state',
|
this._stateChangedId = this.app.connect('notify::state', Lang.bind(this,
|
||||||
Lang.bind(this,
|
function () {
|
||||||
this._onStateChanged));
|
this._updateRunningStyle();
|
||||||
this._onStateChanged();
|
}));
|
||||||
|
this._updateRunningStyle();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDestroy: function() {
|
_onDestroy: function() {
|
||||||
@ -1588,7 +1589,7 @@ const AppIcon = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_onStateChanged: function() {
|
_updateRunningStyle: function() {
|
||||||
if (this.app.state != Shell.AppState.STOPPED)
|
if (this.app.state != Shell.AppState.STOPPED)
|
||||||
this.actor.add_style_class_name('running');
|
this.actor.add_style_class_name('running');
|
||||||
else
|
else
|
||||||
@ -1657,7 +1658,10 @@ const AppIcon = new Lang.Class({
|
|||||||
if (!isPoppedUp)
|
if (!isPoppedUp)
|
||||||
this._onMenuPoppedDown();
|
this._onMenuPoppedDown();
|
||||||
}));
|
}));
|
||||||
Main.overview.connect('hiding', Lang.bind(this, function () { this._menu.close(); }));
|
let id = Main.overview.connect('hiding', Lang.bind(this, function () { this._menu.close(); }));
|
||||||
|
this.actor.connect('destroy', function() {
|
||||||
|
Main.overview.disconnect(id);
|
||||||
|
});
|
||||||
|
|
||||||
this._menuManager.addMenu(this._menu);
|
this._menuManager.addMenu(this._menu);
|
||||||
}
|
}
|
||||||
|
@ -106,6 +106,8 @@ const Main = imports.ui.main;
|
|||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
const Tweener = imports.ui.tweener;
|
const Tweener = imports.ui.tweener;
|
||||||
|
|
||||||
|
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
|
||||||
|
|
||||||
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
|
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
|
||||||
const PRIMARY_COLOR_KEY = 'primary-color';
|
const PRIMARY_COLOR_KEY = 'primary-color';
|
||||||
const SECONDARY_COLOR_KEY = 'secondary-color';
|
const SECONDARY_COLOR_KEY = 'secondary-color';
|
||||||
@ -160,6 +162,7 @@ const BackgroundCache = new Lang.Class({
|
|||||||
}));
|
}));
|
||||||
GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
|
GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let animation = new Animation({ filename: params.filename });
|
let animation = new Animation({ filename: params.filename });
|
||||||
@ -452,6 +455,7 @@ const SystemBackground = new Lang.Class({
|
|||||||
|
|
||||||
if (_systemBackground == null) {
|
if (_systemBackground == null) {
|
||||||
_systemBackground = new Meta.Background({ meta_screen: global.screen });
|
_systemBackground = new Meta.Background({ meta_screen: global.screen });
|
||||||
|
_systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
|
||||||
_systemBackground.set_filename(filename, GDesktopEnums.BackgroundStyle.WALLPAPER);
|
_systemBackground.set_filename(filename, GDesktopEnums.BackgroundStyle.WALLPAPER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
|
const Gtk = imports.gi.Gtk;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
@ -13,6 +14,7 @@ const Shell = imports.gi.Shell;
|
|||||||
|
|
||||||
const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
|
const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
|
||||||
const SHOW_WEEKDATE_KEY = 'show-weekdate';
|
const SHOW_WEEKDATE_KEY = 'show-weekdate';
|
||||||
|
const ELLIPSIS_CHAR = '\u2026';
|
||||||
|
|
||||||
// alias to prevent xgettext from picking up strings translated in GTK+
|
// alias to prevent xgettext from picking up strings translated in GTK+
|
||||||
const gtk30_ = Gettext_gtk30.gettext;
|
const gtk30_ = Gettext_gtk30.gettext;
|
||||||
@ -58,19 +60,21 @@ function _getEndOfDay(date) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _formatEventTime(event, clockFormat) {
|
function _formatEventTime(event, clockFormat, periodBegin, periodEnd) {
|
||||||
let ret;
|
let ret;
|
||||||
if (event.allDay) {
|
let allDay = (event.allDay || (event.date <= periodBegin && event.end >= periodEnd));
|
||||||
|
if (allDay) {
|
||||||
/* 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
|
||||||
*/
|
*/
|
||||||
ret = C_("event list time", "All Day");
|
ret = C_("event list time", "All Day");
|
||||||
} else {
|
} else {
|
||||||
|
let date = event.date >= periodBegin ? event.date : event.end;
|
||||||
switch (clockFormat) {
|
switch (clockFormat) {
|
||||||
case '24h':
|
case '24h':
|
||||||
/* Translators: Shown in calendar event list, if 24h format,
|
/* Translators: Shown in calendar event list, if 24h format,
|
||||||
\u2236 is a ratio character, similar to : */
|
\u2236 is a ratio character, similar to : */
|
||||||
ret = event.date.toLocaleFormat(C_("event list time", "%H\u2236%M"));
|
ret = date.toLocaleFormat(C_("event list time", "%H\u2236%M"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -79,30 +83,13 @@ function _formatEventTime(event, clockFormat) {
|
|||||||
/* Translators: Shown in calendar event list, if 12h format,
|
/* Translators: Shown in calendar event list, if 12h format,
|
||||||
\u2236 is a ratio character, similar to : and \u2009 is
|
\u2236 is a ratio character, similar to : and \u2009 is
|
||||||
a thin space */
|
a thin space */
|
||||||
ret = event.date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
|
ret = date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _getCalendarWeekForDate(date) {
|
|
||||||
// Based on the algorithms found here:
|
|
||||||
// http://en.wikipedia.org/wiki/Talk:ISO_week_date
|
|
||||||
let midnightDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
||||||
// Need to get Monday to be 1 ... Sunday to be 7
|
|
||||||
let dayOfWeek = 1 + ((midnightDate.getDay() + 6) % 7);
|
|
||||||
let nearestThursday = new Date(midnightDate.getFullYear(), midnightDate.getMonth(),
|
|
||||||
midnightDate.getDate() + (4 - dayOfWeek));
|
|
||||||
|
|
||||||
let jan1st = new Date(nearestThursday.getFullYear(), 0, 1);
|
|
||||||
let diffDate = nearestThursday - jan1st;
|
|
||||||
let dayNumber = Math.floor(Math.abs(diffDate) / MSECS_IN_DAY);
|
|
||||||
let weekNumber = Math.floor(dayNumber / 7) + 1;
|
|
||||||
|
|
||||||
return weekNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _getCalendarDayAbbreviation(dayNumber) {
|
function _getCalendarDayAbbreviation(dayNumber) {
|
||||||
let abbreviations = [
|
let abbreviations = [
|
||||||
/* Translators: Calendar grid abbreviation for Sunday.
|
/* Translators: Calendar grid abbreviation for Sunday.
|
||||||
@ -248,11 +235,24 @@ const DBusEventSource = new Lang.Class({
|
|||||||
this._initialized = false;
|
this._initialized = false;
|
||||||
this._dbusProxy = new CalendarServer();
|
this._dbusProxy = new CalendarServer();
|
||||||
this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) {
|
this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) {
|
||||||
|
let loaded = false;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this._dbusProxy.init_finish(result);
|
this._dbusProxy.init_finish(result);
|
||||||
|
loaded = true;
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
log('Error loading calendars: ' + e.message);
|
if (e.matches(Gio.DBusError, Gio.DBusError.TIMED_OUT)) {
|
||||||
return;
|
// Ignore timeouts and install signals as normal, because with high
|
||||||
|
// probability the service will appear later on, and we will get a
|
||||||
|
// NameOwnerChanged which will finish loading
|
||||||
|
//
|
||||||
|
// (But still _initialized to false, because the proxy does not know
|
||||||
|
// about the HasCalendars property and would cause an exception trying
|
||||||
|
// to read it)
|
||||||
|
} else {
|
||||||
|
log('Error loading calendars: ' + e.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged));
|
this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged));
|
||||||
@ -268,9 +268,11 @@ const DBusEventSource = new Lang.Class({
|
|||||||
this.emit('notify::has-calendars');
|
this.emit('notify::has-calendars');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this._initialized = true;
|
this._initialized = loaded;
|
||||||
this.emit('notify::has-calendars');
|
if (loaded) {
|
||||||
this._onNameAppeared();
|
this.emit('notify::has-calendars');
|
||||||
|
this._onNameAppeared();
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -292,6 +294,7 @@ const DBusEventSource = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onNameAppeared: function(owner) {
|
_onNameAppeared: function(owner) {
|
||||||
|
this._initialized = true;
|
||||||
this._resetCache();
|
this._resetCache();
|
||||||
this._loadEvents(true);
|
this._loadEvents(true);
|
||||||
},
|
},
|
||||||
@ -361,6 +364,12 @@ const DBusEventSource = new Lang.Class({
|
|||||||
result.push(event);
|
result.push(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
result.sort(function(event1, event2) {
|
||||||
|
// sort events by end time on ending day
|
||||||
|
let d1 = event1.date < begin && event1.end <= end ? event1.end : event1.date;
|
||||||
|
let d2 = event2.date < begin && event2.end <= end ? event2.end : event2.date;
|
||||||
|
return d1.getTime() - d2.getTime();
|
||||||
|
});
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -594,6 +603,7 @@ const Calendar = new Lang.Class({
|
|||||||
beginDate.setHours(12);
|
beginDate.setHours(12);
|
||||||
|
|
||||||
this._calendarBegin = new Date(beginDate);
|
this._calendarBegin = new Date(beginDate);
|
||||||
|
this._markedAsToday = now;
|
||||||
|
|
||||||
let year = beginDate.getYear();
|
let year = beginDate.getYear();
|
||||||
|
|
||||||
@ -661,7 +671,7 @@ const Calendar = new Lang.Class({
|
|||||||
this._buttons.push(button);
|
this._buttons.push(button);
|
||||||
|
|
||||||
if (this._useWeekdate && iter.getDay() == 4) {
|
if (this._useWeekdate && iter.getDay() == 4) {
|
||||||
let label = new St.Label({ text: _getCalendarWeekForDate(iter).toString(),
|
let label = new St.Label({ text: iter.toLocaleFormat('%V'),
|
||||||
style_class: 'calendar-day-base calendar-week-number'});
|
style_class: 'calendar-day-base calendar-week-number'});
|
||||||
layout.attach(label, rtl ? 7 : 0, row, 1, 1);
|
layout.attach(label, rtl ? 7 : 0, row, 1, 1);
|
||||||
}
|
}
|
||||||
@ -685,7 +695,7 @@ const Calendar = new Lang.Class({
|
|||||||
else
|
else
|
||||||
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
|
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
|
||||||
|
|
||||||
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin))
|
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin) || !_sameDay(now, this._markedAsToday))
|
||||||
this._rebuildCalendar();
|
this._rebuildCalendar();
|
||||||
|
|
||||||
this._buttons.forEach(Lang.bind(this, function(button) {
|
this._buttons.forEach(Lang.bind(this, function(button) {
|
||||||
@ -721,12 +731,18 @@ const EventsList = new Lang.Class({
|
|||||||
this._eventSource.connect('changed', Lang.bind(this, this._update));
|
this._eventSource.connect('changed', Lang.bind(this, this._update));
|
||||||
},
|
},
|
||||||
|
|
||||||
_addEvent: function(event, index, includeDayName) {
|
_addEvent: function(event, index, includeDayName, periodBegin, periodEnd) {
|
||||||
|
let eventBox = new St.BoxLayout();
|
||||||
|
eventBox.set_vertical(false);
|
||||||
let dayString;
|
let dayString;
|
||||||
if (includeDayName)
|
if (includeDayName) {
|
||||||
dayString = _getEventDayAbbreviation(event.date.getDay());
|
if (event.date >= periodBegin)
|
||||||
else
|
dayString = _getEventDayAbbreviation(event.date.getDay());
|
||||||
|
else /* show event end day if it began earlier */
|
||||||
|
dayString = _getEventDayAbbreviation(event.end.getDay());
|
||||||
|
} else {
|
||||||
dayString = '';
|
dayString = '';
|
||||||
|
}
|
||||||
|
|
||||||
let dayLabel = new St.Label({ style_class: 'events-day-dayname',
|
let dayLabel = new St.Label({ style_class: 'events-day-dayname',
|
||||||
text: dayString,
|
text: dayString,
|
||||||
@ -738,17 +754,32 @@ const EventsList = new Lang.Class({
|
|||||||
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
|
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
|
||||||
|
|
||||||
let layout = this.actor.layout_manager;
|
let layout = this.actor.layout_manager;
|
||||||
layout.attach(dayLabel, rtl ? 2 : 0, index, 1, 1);
|
eventBox.add_actor(dayLabel);
|
||||||
|
|
||||||
let clockFormat = this._desktopSettings.get_string(CLOCK_FORMAT_KEY);
|
let clockFormat = this._desktopSettings.get_string(CLOCK_FORMAT_KEY);
|
||||||
let timeString = _formatEventTime(event, clockFormat);
|
let timeString = _formatEventTime(event, clockFormat, periodBegin, periodEnd);
|
||||||
let timeLabel = new St.Label({ style_class: 'events-day-time',
|
let timeLabel = new St.Label({ style_class: 'events-day-time',
|
||||||
text: timeString,
|
text: timeString,
|
||||||
y_align: Clutter.ActorAlign.START });
|
y_align: Clutter.ActorAlign.START });
|
||||||
timeLabel.clutter_text.line_wrap = false;
|
timeLabel.clutter_text.line_wrap = false;
|
||||||
timeLabel.clutter_text.ellipsize = false;
|
timeLabel.clutter_text.ellipsize = false;
|
||||||
|
|
||||||
layout.attach(timeLabel, 1, index, 1, 1);
|
let preEllipsisLabel = new St.Label({ style_class: 'events-day-time-ellipses',
|
||||||
|
text: ELLIPSIS_CHAR,
|
||||||
|
y_align: Clutter.ActorAlign.START });
|
||||||
|
let postEllipsisLabel = new St.Label({ style_class: 'events-day-time-ellipses',
|
||||||
|
text: ELLIPSIS_CHAR,
|
||||||
|
y_align: Clutter.ActorAlign.START });
|
||||||
|
if (event.allDay || event.date >= periodBegin)
|
||||||
|
preEllipsisLabel.opacity = 0;
|
||||||
|
if (event.allDay || event.end <= periodEnd)
|
||||||
|
postEllipsisLabel.opacity = 0;
|
||||||
|
|
||||||
|
let timeLabelBoxLayout = new St.BoxLayout({ x_align: Clutter.ActorAlign.START });
|
||||||
|
timeLabelBoxLayout.add(preEllipsisLabel);
|
||||||
|
timeLabelBoxLayout.add(timeLabel);
|
||||||
|
timeLabelBoxLayout.add(postEllipsisLabel);
|
||||||
|
timeLabelBoxLayout.set_size(50, 1);
|
||||||
|
eventBox.add_actor(timeLabelBoxLayout);
|
||||||
|
|
||||||
let titleLabel = new St.Label({ style_class: 'events-day-task',
|
let titleLabel = new St.Label({ style_class: 'events-day-task',
|
||||||
text: event.summary,
|
text: event.summary,
|
||||||
@ -756,30 +787,29 @@ const EventsList = new Lang.Class({
|
|||||||
titleLabel.clutter_text.line_wrap = true;
|
titleLabel.clutter_text.line_wrap = true;
|
||||||
titleLabel.clutter_text.ellipsize = false;
|
titleLabel.clutter_text.ellipsize = false;
|
||||||
|
|
||||||
layout.attach(titleLabel, rtl ? 0 : 2, index, 1, 1);
|
eventBox.add_actor(titleLabel);
|
||||||
|
this._eventListBox.add_actor(eventBox);
|
||||||
},
|
},
|
||||||
|
|
||||||
_addPeriod: function(header, index, begin, end, includeDayName, showNothingScheduled) {
|
_addPeriod: function(header, index, periodBegin, periodEnd, includeDayName, showNothingScheduled) {
|
||||||
let events = this._eventSource.getEvents(begin, end);
|
let events = this._eventSource.getEvents(periodBegin, periodEnd);
|
||||||
|
|
||||||
if (events.length == 0 && !showNothingScheduled)
|
if (events.length == 0 && !showNothingScheduled)
|
||||||
return index;
|
return index;
|
||||||
|
|
||||||
let label = new St.Label({ style_class: 'events-day-header', text: header });
|
let label = new St.Label({ style_class: 'events-day-header', text: header });
|
||||||
let layout = this.actor.layout_manager;
|
this._eventListBox.add_actor(label);
|
||||||
layout.attach(label, 0, index, 3, 1);
|
|
||||||
index++;
|
index++;
|
||||||
|
|
||||||
for (let n = 0; n < events.length; n++) {
|
for (let n = 0; n < events.length; n++) {
|
||||||
this._addEvent(events[n], index, includeDayName);
|
this._addEvent(events[n], index, includeDayName, periodBegin, periodEnd);
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (events.length == 0 && showNothingScheduled) {
|
if (events.length == 0 && showNothingScheduled) {
|
||||||
let now = new Date();
|
|
||||||
/* Translators: Text to show if there are no events */
|
/* Translators: Text to show if there are no events */
|
||||||
let nothingEvent = new CalendarEvent(now, now, _("Nothing Scheduled"), true);
|
let nothingEvent = new CalendarEvent(periodBegin, periodBegin, _("Nothing Scheduled"), true);
|
||||||
this._addEvent(nothingEvent, index, false);
|
this._addEvent(nothingEvent, index, false, periodBegin, periodEnd);
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -787,8 +817,6 @@ const EventsList = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_showOtherDay: function(day) {
|
_showOtherDay: function(day) {
|
||||||
this.actor.destroy_all_children();
|
|
||||||
|
|
||||||
let dayBegin = _getBeginningOfDay(day);
|
let dayBegin = _getBeginningOfDay(day);
|
||||||
let dayEnd = _getEndOfDay(day);
|
let dayEnd = _getEndOfDay(day);
|
||||||
|
|
||||||
@ -804,7 +832,6 @@ const EventsList = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_showToday: function() {
|
_showToday: function() {
|
||||||
this.actor.destroy_all_children();
|
|
||||||
let index = 0;
|
let index = 0;
|
||||||
|
|
||||||
let now = new Date();
|
let now = new Date();
|
||||||
@ -849,6 +876,24 @@ const EventsList = new Lang.Class({
|
|||||||
if (this._eventSource.isLoading)
|
if (this._eventSource.isLoading)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
this.actor.destroy_all_children();
|
||||||
|
|
||||||
|
let layout = this.actor.layout_manager;
|
||||||
|
|
||||||
|
this._eventListContainer = new St.BoxLayout({ x_expand: true, y_expand: true });
|
||||||
|
this._eventListContainer.set_vertical(true);
|
||||||
|
|
||||||
|
this._eventListBox = new St.BoxLayout();
|
||||||
|
this._eventListBox.set_vertical(true);
|
||||||
|
|
||||||
|
let eventScrollView = new St.ScrollView({style_class: 'vfade',
|
||||||
|
hscrollbar_policy: Gtk.PolicyType.NEVER,
|
||||||
|
vscrollbar_policy: Gtk.PolicyType.AUTOMATIC});
|
||||||
|
eventScrollView.add_actor(this._eventListBox);
|
||||||
|
this._eventListContainer.add_actor(eventScrollView);
|
||||||
|
|
||||||
|
layout.attach(this._eventListContainer, 0, 0, 1, 1);
|
||||||
|
|
||||||
let today = new Date();
|
let today = new Date();
|
||||||
if (_sameDay (this._date, today)) {
|
if (_sameDay (this._date, today)) {
|
||||||
this._showToday();
|
this._showToday();
|
||||||
|
@ -604,9 +604,15 @@ const NetworkAgent = new Lang.Class({
|
|||||||
Name: 'NetworkAgent',
|
Name: 'NetworkAgent',
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
|
try {
|
||||||
capabilities: NMClient.SecretAgentCapabilities.VPN_HINTS
|
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
|
||||||
});
|
capabilities: NMClient.SecretAgentCapabilities.VPN_HINTS
|
||||||
|
});
|
||||||
|
} catch(e) {
|
||||||
|
// Support older versions without NetworkAgent:capabilities
|
||||||
|
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this._dialogs = { };
|
this._dialogs = { };
|
||||||
this._vpnRequests = { };
|
this._vpnRequests = { };
|
||||||
|
@ -513,10 +513,13 @@ const Dash = new Lang.Class({
|
|||||||
this._syncLabel(item, appIcon);
|
this._syncLabel(item, appIcon);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Main.overview.connect('hiding', Lang.bind(this, function() {
|
let id = Main.overview.connect('hiding', Lang.bind(this, function() {
|
||||||
this._labelShowing = false;
|
this._labelShowing = false;
|
||||||
item.hideLabel();
|
item.hideLabel();
|
||||||
}));
|
}));
|
||||||
|
item.child.connect('destroy', function() {
|
||||||
|
Main.overview.disconnect(id);
|
||||||
|
});
|
||||||
|
|
||||||
if (appIcon) {
|
if (appIcon) {
|
||||||
appIcon.connect('sync-tooltip', Lang.bind(this, function() {
|
appIcon.connect('sync-tooltip', Lang.bind(this, function() {
|
||||||
|
@ -59,7 +59,7 @@ const DateMenuButton = new Lang.Class({
|
|||||||
|
|
||||||
// Fill up the first column
|
// Fill up the first column
|
||||||
|
|
||||||
vbox = new St.BoxLayout({vertical: true});
|
vbox = new St.BoxLayout({vertical: true, x_expand: true, y_expand: true });
|
||||||
hbox.add(vbox);
|
hbox.add(vbox);
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
@ -96,11 +96,11 @@ const DateMenuButton = new Lang.Class({
|
|||||||
|
|
||||||
this._openCalendarItem = new PopupMenu.PopupMenuItem(_("Open Calendar"));
|
this._openCalendarItem = new PopupMenu.PopupMenuItem(_("Open Calendar"));
|
||||||
this._openCalendarItem.connect('activate', Lang.bind(this, this._onOpenCalendarActivate));
|
this._openCalendarItem.connect('activate', Lang.bind(this, this._onOpenCalendarActivate));
|
||||||
vbox.add(this._openCalendarItem.actor, {y_align: St.Align.END, expand: true, y_fill: false});
|
vbox.add(this._openCalendarItem.actor, {y_align: St.Align.END, expand: false, y_fill: false});
|
||||||
|
|
||||||
this._openClocksItem = new PopupMenu.PopupMenuItem(_("Open Clocks"));
|
this._openClocksItem = new PopupMenu.PopupMenuItem(_("Open Clocks"));
|
||||||
this._openClocksItem.connect('activate', Lang.bind(this, this._onOpenClocksActivate));
|
this._openClocksItem.connect('activate', Lang.bind(this, this._onOpenClocksActivate));
|
||||||
vbox.add(this._openClocksItem.actor, {y_align: St.Align.END, expand: true, y_fill: false});
|
vbox.add(this._openClocksItem.actor, {y_align: St.Align.END, expand: false, y_fill: false});
|
||||||
|
|
||||||
Shell.AppSystem.get_default().connect('installed-changed',
|
Shell.AppSystem.get_default().connect('installed-changed',
|
||||||
Lang.bind(this, this._appInstalledChanged));
|
Lang.bind(this, this._appInstalledChanged));
|
||||||
@ -147,7 +147,7 @@ const DateMenuButton = new Lang.Class({
|
|||||||
let now = new Date();
|
let now = new Date();
|
||||||
return now.getYear() == date.getYear() &&
|
return now.getYear() == date.getYear() &&
|
||||||
now.getMonth() == date.getMonth() &&
|
now.getMonth() == date.getMonth() &&
|
||||||
now.getDay() == date.getDay();
|
now.getDate() == date.getDate();
|
||||||
},
|
},
|
||||||
|
|
||||||
_appInstalledChanged: function() {
|
_appInstalledChanged: function() {
|
||||||
|
@ -6,6 +6,8 @@ const Meta = imports.gi.Meta;
|
|||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
|
|
||||||
|
const Main = imports.ui.main;
|
||||||
|
|
||||||
const EDGE_THRESHOLD = 20;
|
const EDGE_THRESHOLD = 20;
|
||||||
const DRAG_DISTANCE = 80;
|
const DRAG_DISTANCE = 80;
|
||||||
|
|
||||||
@ -13,9 +15,10 @@ const EdgeDragAction = new Lang.Class({
|
|||||||
Name: 'EdgeDragAction',
|
Name: 'EdgeDragAction',
|
||||||
Extends: Clutter.GestureAction,
|
Extends: Clutter.GestureAction,
|
||||||
|
|
||||||
_init : function(side) {
|
_init : function(side, allowedModes) {
|
||||||
this.parent();
|
this.parent();
|
||||||
this._side = side;
|
this._side = side;
|
||||||
|
this._allowedModes = allowedModes;
|
||||||
this.set_n_touch_points(1);
|
this.set_n_touch_points(1);
|
||||||
|
|
||||||
global.display.connect('grab-op-begin', Lang.bind(this, function() {
|
global.display.connect('grab-op-begin', Lang.bind(this, function() {
|
||||||
@ -34,6 +37,9 @@ const EdgeDragAction = new Lang.Class({
|
|||||||
if (this.get_n_current_points() == 0)
|
if (this.get_n_current_points() == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (!(this._allowedModes & Main.keybindingMode))
|
||||||
|
return false;
|
||||||
|
|
||||||
let [x, y] = this.get_press_coords(0);
|
let [x, y] = this.get_press_coords(0);
|
||||||
let monitorRect = this._getMonitorRect(x, y);
|
let monitorRect = this._getMonitorRect(x, y);
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ const St = imports.gi.St;
|
|||||||
|
|
||||||
const Background = imports.ui.background;
|
const Background = imports.ui.background;
|
||||||
const BackgroundMenu = imports.ui.backgroundMenu;
|
const BackgroundMenu = imports.ui.backgroundMenu;
|
||||||
|
const LoginManager = imports.misc.loginManager;
|
||||||
|
|
||||||
const DND = imports.ui.dnd;
|
const DND = imports.ui.dnd;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
@ -20,7 +21,6 @@ const Tweener = imports.ui.tweener;
|
|||||||
const STARTUP_ANIMATION_TIME = 0.5;
|
const STARTUP_ANIMATION_TIME = 0.5;
|
||||||
const KEYBOARD_ANIMATION_TIME = 0.15;
|
const KEYBOARD_ANIMATION_TIME = 0.15;
|
||||||
const BACKGROUND_FADE_ANIMATION_TIME = 1.0;
|
const BACKGROUND_FADE_ANIMATION_TIME = 1.0;
|
||||||
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
|
|
||||||
|
|
||||||
// The message tray takes this much pressure
|
// The message tray takes this much pressure
|
||||||
// in the pressure barrier at once to release it.
|
// in the pressure barrier at once to release it.
|
||||||
@ -160,10 +160,10 @@ const LayoutManager = new Lang.Class({
|
|||||||
this._isPopupWindowVisible = false;
|
this._isPopupWindowVisible = false;
|
||||||
this._startingUp = true;
|
this._startingUp = true;
|
||||||
|
|
||||||
// Normally, the stage is always covered so Clutter doesn't need to clear
|
// We don't want to paint the stage background color because either
|
||||||
// it; however it becomes visible during the startup animation
|
// the SystemBackground we create or the MetaBackgroundActor inside
|
||||||
// See the comment below for a longer explanation
|
// global.window_group covers the entirety of the screen.
|
||||||
global.stage.background_color = DEFAULT_BACKGROUND_COLOR;
|
global.stage.no_clear_hint = true;
|
||||||
|
|
||||||
// Set up stage hierarchy to group all UI actors under one container.
|
// Set up stage hierarchy to group all UI actors under one container.
|
||||||
this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
|
this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
|
||||||
@ -249,6 +249,18 @@ const LayoutManager = new Lang.Class({
|
|||||||
global.screen.connect('in-fullscreen-changed',
|
global.screen.connect('in-fullscreen-changed',
|
||||||
Lang.bind(this, this._updateFullscreen));
|
Lang.bind(this, this._updateFullscreen));
|
||||||
this._monitorsChanged();
|
this._monitorsChanged();
|
||||||
|
|
||||||
|
// NVIDIA drivers don't preserve FBO contents across
|
||||||
|
// suspend/resume, see
|
||||||
|
// https://bugzilla.gnome.org/show_bug.cgi?id=739178
|
||||||
|
if (Shell.util_need_background_refresh()) {
|
||||||
|
LoginManager.getLoginManager().connect('prepare-for-sleep',
|
||||||
|
function(lm, suspending) {
|
||||||
|
if (suspending)
|
||||||
|
return;
|
||||||
|
Meta.Background.refresh_all();
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// This is called by Main after everything else is constructed
|
// This is called by Main after everything else is constructed
|
||||||
@ -591,10 +603,6 @@ const LayoutManager = new Lang.Class({
|
|||||||
//
|
//
|
||||||
// When starting a normal user session, we want to grow it out of the middle
|
// When starting a normal user session, we want to grow it out of the middle
|
||||||
// of the screen.
|
// of the screen.
|
||||||
//
|
|
||||||
// Usually, we don't want to paint the stage background color because the
|
|
||||||
// MetaBackgroundActor inside global.window_group covers the entirety of the
|
|
||||||
// screen. So, we set no_clear_hint at the end of the animation.
|
|
||||||
|
|
||||||
_prepareStartupAnimation: function() {
|
_prepareStartupAnimation: function() {
|
||||||
// During the initial transition, add a simple actor to block all events,
|
// During the initial transition, add a simple actor to block all events,
|
||||||
@ -675,10 +683,6 @@ const LayoutManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_startupAnimationComplete: function() {
|
_startupAnimationComplete: function() {
|
||||||
// At this point, the UI group is covering everything, so
|
|
||||||
// we no longer need to clear the stage
|
|
||||||
global.stage.no_clear_hint = true;
|
|
||||||
|
|
||||||
this._coverPane.destroy();
|
this._coverPane.destroy();
|
||||||
this._coverPane = null;
|
this._coverPane = null;
|
||||||
|
|
||||||
|
@ -1198,12 +1198,7 @@ const ZoomRegion = new Lang.Class({
|
|||||||
|
|
||||||
// Add a background for when the magnified uiGroup is scrolled
|
// Add a background for when the magnified uiGroup is scrolled
|
||||||
// out of view (don't want to see desktop showing through).
|
// out of view (don't want to see desktop showing through).
|
||||||
this._background = new Clutter.Actor({ background_color: Main.DEFAULT_BACKGROUND_COLOR,
|
this._background = (new Background.SystemBackground()).actor;
|
||||||
layout_manager: new Clutter.BinLayout(),
|
|
||||||
width: global.screen_width,
|
|
||||||
height: global.screen_height });
|
|
||||||
let noiseTexture = (new Background.SystemBackground()).actor;
|
|
||||||
this._background.add_actor(noiseTexture);
|
|
||||||
mainGroup.add_actor(this._background);
|
mainGroup.add_actor(this._background);
|
||||||
|
|
||||||
// Clone the group that contains all of UI on the screen. This is the
|
// Clone the group that contains all of UI on the screen. This is the
|
||||||
|
@ -40,8 +40,6 @@ const Magnifier = imports.ui.magnifier;
|
|||||||
const XdndHandler = imports.ui.xdndHandler;
|
const XdndHandler = imports.ui.xdndHandler;
|
||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
|
|
||||||
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
|
|
||||||
|
|
||||||
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
||||||
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
|
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
|
||||||
const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a';
|
const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a';
|
||||||
|
@ -1951,7 +1951,9 @@ const MessageTray = new Lang.Class({
|
|||||||
this._messageTrayMenuButton.actor.connect('key-press-event',
|
this._messageTrayMenuButton.actor.connect('key-press-event',
|
||||||
Lang.bind(this, this._onTrayButtonKeyPress));
|
Lang.bind(this, this._onTrayButtonKeyPress));
|
||||||
|
|
||||||
let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM);
|
let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM,
|
||||||
|
Shell.KeyBindingMode.NORMAL |
|
||||||
|
Shell.KeyBindingMode.OVERVIEW);
|
||||||
gesture.connect('activated', Lang.bind(this, this.toggle));
|
gesture.connect('activated', Lang.bind(this, this.toggle));
|
||||||
global.stage.add_action(gesture);
|
global.stage.add_action(gesture);
|
||||||
},
|
},
|
||||||
@ -2432,8 +2434,22 @@ const MessageTray = new Lang.Class({
|
|||||||
if (shouldShowNotification && nextNotification) {
|
if (shouldShowNotification && nextNotification) {
|
||||||
let limited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
|
let limited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
|
||||||
let showNextNotification = (!limited || nextNotification.forFeedback || nextNotification.urgency == Urgency.CRITICAL);
|
let showNextNotification = (!limited || nextNotification.forFeedback || nextNotification.urgency == Urgency.CRITICAL);
|
||||||
if (showNextNotification)
|
if (showNextNotification) {
|
||||||
this._showNotification();
|
let len = this._notificationQueue.length;
|
||||||
|
if (len > 1) {
|
||||||
|
this._notificationQueue.length = 0;
|
||||||
|
let source = new SystemNotificationSource();
|
||||||
|
this.add(source);
|
||||||
|
let notification = new Notification(source, ngettext("%d new message", "%d new messages", len).format(len));
|
||||||
|
notification.setTransient(true);
|
||||||
|
notification.connect('clicked', Lang.bind(this, function() {
|
||||||
|
this.openTray();
|
||||||
|
}));
|
||||||
|
source.notify(notification);
|
||||||
|
} else {
|
||||||
|
this._showNotification();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (this._notificationState == State.SHOWN) {
|
} else if (this._notificationState == State.SHOWN) {
|
||||||
let expired = (this._userActiveWhileNotificationShown &&
|
let expired = (this._userActiveWhileNotificationShown &&
|
||||||
|
@ -301,7 +301,8 @@ const NotificationsBox = new Lang.Class({
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
this.emit('wake-up-screen');
|
if (obj.sourceBox.visible)
|
||||||
|
this.emit('wake-up-screen');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -411,6 +411,7 @@ const SearchResults = new Lang.Class({
|
|||||||
|
|
||||||
this._searchSettings = new Gio.Settings({ schema_id: SEARCH_PROVIDERS_SCHEMA });
|
this._searchSettings = new Gio.Settings({ schema_id: SEARCH_PROVIDERS_SCHEMA });
|
||||||
this._searchSettings.connect('changed::disabled', Lang.bind(this, this._reloadRemoteProviders));
|
this._searchSettings.connect('changed::disabled', Lang.bind(this, this._reloadRemoteProviders));
|
||||||
|
this._searchSettings.connect('changed::enabled', Lang.bind(this, this._reloadRemoteProviders));
|
||||||
this._searchSettings.connect('changed::disable-external', Lang.bind(this, this._reloadRemoteProviders));
|
this._searchSettings.connect('changed::disable-external', Lang.bind(this, this._reloadRemoteProviders));
|
||||||
this._searchSettings.connect('changed::sort-order', Lang.bind(this, this._reloadRemoteProviders));
|
this._searchSettings.connect('changed::sort-order', Lang.bind(this, this._reloadRemoteProviders));
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ const Slider = new Lang.Class({
|
|||||||
let [dx, dy] = event.get_scroll_delta();
|
let [dx, dy] = event.get_scroll_delta();
|
||||||
// Even though the slider is horizontal, use dy to match
|
// Even though the slider is horizontal, use dy to match
|
||||||
// the UP/DOWN above.
|
// the UP/DOWN above.
|
||||||
delta = -dy / 10;
|
delta = -dy * SLIDER_SCROLL_STEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._value = Math.min(Math.max(0, this._value + delta), 1);
|
this._value = Math.min(Math.max(0, this._value + delta), 1);
|
||||||
|
@ -1866,7 +1866,7 @@ const NMApplet = new Lang.Class({
|
|||||||
_connectionRemoved: function(connection) {
|
_connectionRemoved: function(connection) {
|
||||||
let pos = this._connections.indexOf(connection);
|
let pos = this._connections.indexOf(connection);
|
||||||
if (pos != -1)
|
if (pos != -1)
|
||||||
this._connections.splice(connection, 1);
|
this._connections.splice(pos, 1);
|
||||||
|
|
||||||
let section = connection._section;
|
let section = connection._section;
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ const Indicator = new Lang.Class({
|
|||||||
let disabled = Main.sessionMode.isLocked ||
|
let disabled = Main.sessionMode.isLocked ||
|
||||||
(Main.sessionMode.isGreeter &&
|
(Main.sessionMode.isGreeter &&
|
||||||
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
|
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
|
||||||
this._suspendAction.visible = this._haveShutdown && !disabled;
|
this._suspendAction.visible = this._haveSuspend && !disabled;
|
||||||
this._updateActionsVisibility();
|
this._updateActionsVisibility();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ const Clutter = imports.gi.Clutter;
|
|||||||
const AccountsService = imports.gi.AccountsService;
|
const AccountsService = imports.gi.AccountsService;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
|
const GObject = imports.gi.GObject;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
|
|
||||||
@ -117,6 +118,7 @@ const UserWidgetLabel = new Lang.Class({
|
|||||||
this._currentLabel = this._realNameLabel;
|
this._currentLabel = this._realNameLabel;
|
||||||
else
|
else
|
||||||
this._currentLabel = this._userNameLabel;
|
this._currentLabel = this._userNameLabel;
|
||||||
|
this.label_actor = this._currentLabel;
|
||||||
|
|
||||||
let childBox = new Clutter.ActorBox();
|
let childBox = new Clutter.ActorBox();
|
||||||
childBox.x1 = 0;
|
childBox.x1 = 0;
|
||||||
@ -158,6 +160,9 @@ const UserWidget = new Lang.Class({
|
|||||||
this._label = new UserWidgetLabel(user);
|
this._label = new UserWidgetLabel(user);
|
||||||
this.actor.add_child(this._label);
|
this.actor.add_child(this._label);
|
||||||
|
|
||||||
|
this._label.bind_property('label-actor', this.actor, 'label-actor',
|
||||||
|
GObject.BindingFlags.SYNC_CREATE);
|
||||||
|
|
||||||
this._userLoadedId = this._user.connect('notify::is-loaded', Lang.bind(this, this._updateUser));
|
this._userLoadedId = this._user.connect('notify::is-loaded', Lang.bind(this, this._updateUser));
|
||||||
this._userChangedId = this._user.connect('changed', Lang.bind(this, this._updateUser));
|
this._userChangedId = this._user.connect('changed', Lang.bind(this, this._updateUser));
|
||||||
this._updateUser();
|
this._updateUser();
|
||||||
|
@ -65,7 +65,8 @@ const ShowOverviewAction = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
vfunc_gesture_prepare : function(action, actor) {
|
vfunc_gesture_prepare : function(action, actor) {
|
||||||
return this.get_n_current_points() == this.get_n_touch_points();
|
return Main.keybindingMode == Shell.KeyBindingMode.NORMAL &&
|
||||||
|
this.get_n_current_points() == this.get_n_touch_points();
|
||||||
},
|
},
|
||||||
|
|
||||||
_getBoundingRect : function(motion) {
|
_getBoundingRect : function(motion) {
|
||||||
@ -193,8 +194,10 @@ const ViewSelector = new Lang.Class({
|
|||||||
// the windows to animate, but now we no longer want to
|
// the windows to animate, but now we no longer want to
|
||||||
// show it given that we are now on the apps page or
|
// show it given that we are now on the apps page or
|
||||||
// search page.
|
// search page.
|
||||||
if (this._activePage != this._workspacesPage)
|
if (this._activePage != this._workspacesPage) {
|
||||||
this._workspacesPage.opacity = 0;
|
this._workspacesPage.opacity = 0;
|
||||||
|
this._workspacesPage.hide();
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Main.wm.addKeybinding('toggle-application-view',
|
Main.wm.addKeybinding('toggle-application-view',
|
||||||
@ -211,9 +214,13 @@ const ViewSelector = new Lang.Class({
|
|||||||
Shell.KeyBindingMode.OVERVIEW,
|
Shell.KeyBindingMode.OVERVIEW,
|
||||||
Lang.bind(Main.overview, Main.overview.toggle));
|
Lang.bind(Main.overview, Main.overview.toggle));
|
||||||
|
|
||||||
let gesture;
|
let side;
|
||||||
|
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
|
||||||
gesture = new EdgeDragAction.EdgeDragAction(St.Side.LEFT);
|
side = St.Side.RIGHT;
|
||||||
|
else
|
||||||
|
side = St.Side.LEFT;
|
||||||
|
let gesture = new EdgeDragAction.EdgeDragAction(side,
|
||||||
|
Shell.KeyBindingMode.NORMAL);
|
||||||
gesture.connect('activated', Lang.bind(this, function() {
|
gesture.connect('activated', Lang.bind(this, function() {
|
||||||
if (Main.overview.visible)
|
if (Main.overview.visible)
|
||||||
Main.overview.hide();
|
Main.overview.hide();
|
||||||
|
@ -478,7 +478,9 @@ const WorkspaceSwitchAction = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
vfunc_gesture_prepare : function(action, actor) {
|
vfunc_gesture_prepare : function(action, actor) {
|
||||||
return this.get_n_current_points() == this.get_n_touch_points();
|
let allowedModes = Shell.KeyBindingMode.NORMAL | Shell.KeyBindingMode.OVERVIEW;
|
||||||
|
return this.get_n_current_points() == this.get_n_touch_points() &&
|
||||||
|
(allowedModes & Main.keybindingMode);
|
||||||
},
|
},
|
||||||
|
|
||||||
vfunc_gesture_end : function(action, actor) {
|
vfunc_gesture_end : function(action, actor) {
|
||||||
@ -526,7 +528,7 @@ const AppSwitchAction = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
vfunc_gesture_prepare : function(action, actor) {
|
vfunc_gesture_prepare : function(action, actor) {
|
||||||
if (Main.overview.visible) {
|
if (Main.keybindingMode != Shell.KeyBindingMode.NORMAL) {
|
||||||
this.cancel();
|
this.cancel();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,6 @@ const WindowClone = new Lang.Class({
|
|||||||
this.actor.add_action(clickAction);
|
this.actor.add_action(clickAction);
|
||||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPress));
|
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPress));
|
||||||
this.actor.connect('enter-event', Lang.bind(this, this._onEnter));
|
|
||||||
|
|
||||||
this._draggable = DND.makeDraggable(this.actor,
|
this._draggable = DND.makeDraggable(this.actor,
|
||||||
{ restoreOnSuccess: true,
|
{ restoreOnSuccess: true,
|
||||||
@ -353,10 +352,6 @@ const WindowClone = new Lang.Class({
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
_onEnter: function() {
|
|
||||||
this.actor.grab_key_focus();
|
|
||||||
},
|
|
||||||
|
|
||||||
_onClicked: function(action, actor) {
|
_onClicked: function(action, actor) {
|
||||||
this._activate();
|
this._activate();
|
||||||
},
|
},
|
||||||
|
@ -538,6 +538,7 @@ const WorkspacesDisplay = new Lang.Class({
|
|||||||
for (let i = 0; i < this._workspacesViews.length; i++)
|
for (let i = 0; i < this._workspacesViews.length; i++)
|
||||||
this._workspacesViews[i].destroy();
|
this._workspacesViews[i].destroy();
|
||||||
|
|
||||||
|
this._primaryIndex = Main.layoutManager.primaryIndex;
|
||||||
this._workspacesViews = [];
|
this._workspacesViews = [];
|
||||||
let monitors = Main.layoutManager.monitors;
|
let monitors = Main.layoutManager.monitors;
|
||||||
for (let i = 0; i < monitors.length; i++) {
|
for (let i = 0; i < monitors.length; i++) {
|
||||||
|
@ -7,6 +7,7 @@ be
|
|||||||
bg
|
bg
|
||||||
bn
|
bn
|
||||||
bn_IN
|
bn_IN
|
||||||
|
bs
|
||||||
ca
|
ca
|
||||||
ca@valencia
|
ca@valencia
|
||||||
cs
|
cs
|
||||||
@ -30,6 +31,7 @@ hi
|
|||||||
hu
|
hu
|
||||||
ia
|
ia
|
||||||
id
|
id
|
||||||
|
is
|
||||||
it
|
it
|
||||||
ja
|
ja
|
||||||
kk
|
kk
|
||||||
@ -48,6 +50,7 @@ nb
|
|||||||
ne
|
ne
|
||||||
nl
|
nl
|
||||||
nn
|
nn
|
||||||
|
oc
|
||||||
or
|
or
|
||||||
pa
|
pa
|
||||||
pl
|
pl
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
data/org.gnome.shell.evolution.calendar.gschema.xml.in
|
data/org.gnome.shell.evolution.calendar.gschema.xml.in
|
||||||
src/calendar-server/evolution-calendar.desktop.in
|
src/calendar-server/evolution-calendar.desktop.in
|
||||||
|
# Meh, autofools :-(
|
||||||
|
sub/src/calendar-server/evolution-calendar.desktop.in
|
||||||
|
166
po/sl.po
166
po/sl.po
@ -9,8 +9,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://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: 2014-09-13 16:14+0000\n"
|
"POT-Creation-Date: 2014-12-19 16:26+0000\n"
|
||||||
"PO-Revision-Date: 2014-09-13 21:02+0100\n"
|
"PO-Revision-Date: 2014-12-25 19:18+0100\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: Slovenian\n"
|
"Language: Slovenian\n"
|
||||||
@ -125,11 +125,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
|
||||||
msgid "App Picker View"
|
msgid "App Picker View"
|
||||||
msgstr ""
|
msgstr "Pogled izbirnika programov"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
|
||||||
msgid "Index of the currently selected view in the application picker."
|
msgid "Index of the currently selected view in the application picker."
|
||||||
msgstr ""
|
msgstr "Kazalo trenutno izbranega pogleda v izbirniku programa."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
@ -224,6 +224,8 @@ msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila."
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Tipkovna bližnjica, ki omogoča ustavljanje in ponovni zagon vseh zagnanih "
|
||||||
|
"programov za razhroščevanje."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||||
msgid "Which keyboard to use"
|
msgid "Which keyboard to use"
|
||||||
@ -242,6 +244,9 @@ msgid ""
|
|||||||
"If true, only applications that have windows on the current workspace are "
|
"If true, only applications that have windows on the current workspace are "
|
||||||
"shown in the switcher. Otherwise, all applications are included."
|
"shown in the switcher. Otherwise, all applications are included."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna, ki so "
|
||||||
|
"v izbrani delovni površini v preklopniku. V nasprotnem primeru so prikazana "
|
||||||
|
"vsa okna."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||||
msgid "The application icon mode."
|
msgid "The application icon mode."
|
||||||
@ -262,6 +267,8 @@ msgid ""
|
|||||||
"If true, only windows from the current workspace are shown in the switcher. "
|
"If true, only windows from the current workspace are shown in the switcher. "
|
||||||
"Otherwise, all windows are included."
|
"Otherwise, all windows are included."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna v "
|
||||||
|
"preklopniku. V nasprotnem primeru so prikazana vsa okna."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
@ -293,7 +300,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
|
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
|
||||||
msgid "Captive Portal"
|
msgid "Captive Portal"
|
||||||
msgstr ""
|
msgstr "Združen pogled"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:123
|
#: ../js/extensionPrefs/main.js:123
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
@ -304,54 +311,54 @@ msgstr "Prišlo je do napake med nalaganjem pogovornega okna z možnosti za %s:"
|
|||||||
msgid "GNOME Shell Extensions"
|
msgid "GNOME Shell Extensions"
|
||||||
msgstr "Razširitve lupine Gnome"
|
msgstr "Razširitve lupine Gnome"
|
||||||
|
|
||||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
|
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:143
|
||||||
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
|
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/network.js:915
|
#: ../js/ui/status/network.js:915
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Prekliči"
|
msgstr "Prekliči"
|
||||||
|
|
||||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:217
|
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Naslednji"
|
msgstr "Naslednji"
|
||||||
|
|
||||||
#: ../js/gdm/authPrompt.js:213 ../js/ui/shellMountOperation.js:403
|
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||||
#: ../js/ui/unlockDialog.js:59
|
#: ../js/ui/unlockDialog.js:59
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Odkleni"
|
msgstr "Odkleni"
|
||||||
|
|
||||||
#: ../js/gdm/authPrompt.js:215
|
#: ../js/gdm/authPrompt.js:214
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Prijava"
|
msgstr "Prijava"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:269
|
#: ../js/gdm/loginDialog.js:275
|
||||||
msgid "Choose Session"
|
msgid "Choose Session"
|
||||||
msgstr "Izbor seje"
|
msgstr "Izbor seje"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:429
|
#: ../js/gdm/loginDialog.js:434
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Ali je ni na seznamu?"
|
msgstr "Ali je ni na seznamu?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:614
|
#: ../js/gdm/loginDialog.js:619
|
||||||
#, 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)"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
|
#: ../js/gdm/loginDialog.js:624 ../js/ui/components/networkAgent.js:269
|
||||||
#: ../js/ui/components/networkAgent.js:287
|
#: ../js/ui/components/networkAgent.js:287
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Uporabniško ime: "
|
msgstr "Uporabniško ime: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:922
|
#: ../js/gdm/loginDialog.js:955
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Prijavno okno"
|
msgstr "Prijavno okno"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:323
|
#: ../js/gdm/util.js:341
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Napaka overitve"
|
msgstr "Napaka overitve"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:453
|
#: ../js/gdm/util.js:473
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(ali pa povlecite prst)"
|
msgstr "(ali pa povlecite prst)"
|
||||||
|
|
||||||
@ -384,28 +391,28 @@ msgstr "Pogosto"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Vse"
|
msgstr "Vse"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:1789
|
#: ../js/ui/appDisplay.js:1791
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Novo okno"
|
msgstr "Novo okno"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285
|
#: ../js/ui/appDisplay.js:1817 ../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:1821
|
#: ../js/ui/appDisplay.js:1823
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Dodaj med priljubljene"
|
msgstr "Dodaj med priljubljene"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:1830
|
#: ../js/ui/appDisplay.js:1832
|
||||||
msgid "Show Details"
|
msgid "Show Details"
|
||||||
msgstr "Pokaži besedilo"
|
msgstr "Pokaži besedilo"
|
||||||
|
|
||||||
#: ../js/ui/appFavorites.js:124
|
#: ../js/ui/appFavorites.js:132
|
||||||
#, 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:158
|
#: ../js/ui/appFavorites.js:166
|
||||||
#, 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."
|
||||||
@ -422,14 +429,14 @@ msgstr "Spremeni ozadje ..."
|
|||||||
#. 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:67
|
#: ../js/ui/calendar.js:70
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "All Day"
|
msgid "All Day"
|
||||||
msgstr "Celodnevno"
|
msgstr "Celodnevno"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list, if 24h format,
|
#. Translators: Shown in calendar event list, if 24h format,
|
||||||
#. \u2236 is a ratio character, similar to : */
|
#. \u2236 is a ratio character, similar to : */
|
||||||
#: ../js/ui/calendar.js:73
|
#: ../js/ui/calendar.js:77
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "%H∶%M"
|
msgid "%H∶%M"
|
||||||
msgstr "%H∶%M"
|
msgstr "%H∶%M"
|
||||||
@ -437,7 +444,7 @@ msgstr "%H∶%M"
|
|||||||
#. Translators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space */
|
#. a thin space */
|
||||||
#: ../js/ui/calendar.js:82
|
#: ../js/ui/calendar.js:86
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "%l∶%M %p"
|
msgid "%l∶%M %p"
|
||||||
msgstr "%l∶%M %p"
|
msgstr "%l∶%M %p"
|
||||||
@ -447,43 +454,43 @@ msgstr "%l∶%M %p"
|
|||||||
#. * NOTE: These grid abbreviations are always shown together
|
#. * NOTE: These grid abbreviations are always shown together
|
||||||
#. * and in order, e.g. "S M T W T F S".
|
#. * and in order, e.g. "S M T W T F S".
|
||||||
#. */
|
#. */
|
||||||
#: ../js/ui/calendar.js:113
|
#: ../js/ui/calendar.js:100
|
||||||
msgctxt "grid sunday"
|
msgctxt "grid sunday"
|
||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "N"
|
msgstr "N"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Monday */
|
#. Translators: Calendar grid abbreviation for Monday */
|
||||||
#: ../js/ui/calendar.js:115
|
#: ../js/ui/calendar.js:102
|
||||||
msgctxt "grid monday"
|
msgctxt "grid monday"
|
||||||
msgid "M"
|
msgid "M"
|
||||||
msgstr "P"
|
msgstr "P"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Tuesday */
|
#. Translators: Calendar grid abbreviation for Tuesday */
|
||||||
#: ../js/ui/calendar.js:117
|
#: ../js/ui/calendar.js:104
|
||||||
msgctxt "grid tuesday"
|
msgctxt "grid tuesday"
|
||||||
msgid "T"
|
msgid "T"
|
||||||
msgstr "T"
|
msgstr "T"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Wednesday */
|
#. Translators: Calendar grid abbreviation for Wednesday */
|
||||||
#: ../js/ui/calendar.js:119
|
#: ../js/ui/calendar.js:106
|
||||||
msgctxt "grid wednesday"
|
msgctxt "grid wednesday"
|
||||||
msgid "W"
|
msgid "W"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Thursday */
|
#. Translators: Calendar grid abbreviation for Thursday */
|
||||||
#: ../js/ui/calendar.js:121
|
#: ../js/ui/calendar.js:108
|
||||||
msgctxt "grid thursday"
|
msgctxt "grid thursday"
|
||||||
msgid "T"
|
msgid "T"
|
||||||
msgstr "Č"
|
msgstr "Č"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Friday */
|
#. Translators: Calendar grid abbreviation for Friday */
|
||||||
#: ../js/ui/calendar.js:123
|
#: ../js/ui/calendar.js:110
|
||||||
msgctxt "grid friday"
|
msgctxt "grid friday"
|
||||||
msgid "F"
|
msgid "F"
|
||||||
msgstr "P"
|
msgstr "P"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Saturday */
|
#. Translators: Calendar grid abbreviation for Saturday */
|
||||||
#: ../js/ui/calendar.js:125
|
#: ../js/ui/calendar.js:112
|
||||||
msgctxt "grid saturday"
|
msgctxt "grid saturday"
|
||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
@ -494,85 +501,85 @@ msgstr "S"
|
|||||||
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
|
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
|
||||||
#. * both be 'T').
|
#. * both be 'T').
|
||||||
#. */
|
#. */
|
||||||
#: ../js/ui/calendar.js:138
|
#: ../js/ui/calendar.js:125
|
||||||
msgctxt "list sunday"
|
msgctxt "list sunday"
|
||||||
msgid "Su"
|
msgid "Su"
|
||||||
msgstr "Ne"
|
msgstr "Ne"
|
||||||
|
|
||||||
#. Translators: Event list abbreviation for Monday */
|
#. Translators: Event list abbreviation for Monday */
|
||||||
#: ../js/ui/calendar.js:140
|
#: ../js/ui/calendar.js:127
|
||||||
msgctxt "list monday"
|
msgctxt "list monday"
|
||||||
msgid "M"
|
msgid "M"
|
||||||
msgstr "P"
|
msgstr "P"
|
||||||
|
|
||||||
#. Translators: Event list abbreviation for Tuesday */
|
#. Translators: Event list abbreviation for Tuesday */
|
||||||
#: ../js/ui/calendar.js:142
|
#: ../js/ui/calendar.js:129
|
||||||
msgctxt "list tuesday"
|
msgctxt "list tuesday"
|
||||||
msgid "T"
|
msgid "T"
|
||||||
msgstr "T"
|
msgstr "T"
|
||||||
|
|
||||||
#. Translators: Event list abbreviation for Wednesday */
|
#. Translators: Event list abbreviation for Wednesday */
|
||||||
#: ../js/ui/calendar.js:144
|
#: ../js/ui/calendar.js:131
|
||||||
msgctxt "list wednesday"
|
msgctxt "list wednesday"
|
||||||
msgid "W"
|
msgid "W"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#. Translators: Event list abbreviation for Thursday */
|
#. Translators: Event list abbreviation for Thursday */
|
||||||
#: ../js/ui/calendar.js:146
|
#: ../js/ui/calendar.js:133
|
||||||
msgctxt "list thursday"
|
msgctxt "list thursday"
|
||||||
msgid "Th"
|
msgid "Th"
|
||||||
msgstr "Če"
|
msgstr "Če"
|
||||||
|
|
||||||
#. Translators: Event list abbreviation for Friday */
|
#. Translators: Event list abbreviation for Friday */
|
||||||
#: ../js/ui/calendar.js:148
|
#: ../js/ui/calendar.js:135
|
||||||
msgctxt "list friday"
|
msgctxt "list friday"
|
||||||
msgid "F"
|
msgid "F"
|
||||||
msgstr "Pe"
|
msgstr "Pe"
|
||||||
|
|
||||||
#. Translators: Event list abbreviation for Saturday */
|
#. Translators: Event list abbreviation for Saturday */
|
||||||
#: ../js/ui/calendar.js:150
|
#: ../js/ui/calendar.js:137
|
||||||
msgctxt "list saturday"
|
msgctxt "list saturday"
|
||||||
msgid "S"
|
msgid "S"
|
||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:453
|
#: ../js/ui/calendar.js:462
|
||||||
msgid "Previous month"
|
msgid "Previous month"
|
||||||
msgstr "Predhodni mesec"
|
msgstr "Predhodni mesec"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:463
|
#: ../js/ui/calendar.js:472
|
||||||
msgid "Next month"
|
msgid "Next month"
|
||||||
msgstr "Naslednji mesec"
|
msgstr "Naslednji mesec"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events */
|
#. Translators: Text to show if there are no events */
|
||||||
#: ../js/ui/calendar.js:781
|
#: ../js/ui/calendar.js:810
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Nič ni razporejeno"
|
msgstr "Nič ni razporejeno"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year */
|
#. Translators: Shown on calendar heading when selected day occurs on current year */
|
||||||
#: ../js/ui/calendar.js:799
|
#: ../js/ui/calendar.js:826
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d. %m."
|
msgstr "%A, %d. %m."
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year */
|
#. Translators: Shown on calendar heading when selected day occurs on different year */
|
||||||
#: ../js/ui/calendar.js:802
|
#: ../js/ui/calendar.js:829
|
||||||
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:813
|
#: ../js/ui/calendar.js:839
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Danes"
|
msgstr "Danes"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:817
|
#: ../js/ui/calendar.js:843
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Jutri"
|
msgstr "Jutri"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:828
|
#: ../js/ui/calendar.js:854
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Ta teden"
|
msgstr "Ta teden"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:836
|
#: ../js/ui/calendar.js:862
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Naslednji teden"
|
msgstr "Naslednji teden"
|
||||||
|
|
||||||
@ -972,7 +979,7 @@ msgstr "Poglej račun"
|
|||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Neznan vzrok"
|
msgstr "Neznan vzrok"
|
||||||
|
|
||||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
|
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Okna"
|
msgstr "Okna"
|
||||||
|
|
||||||
@ -984,22 +991,22 @@ msgstr "Pokaži programe"
|
|||||||
msgid "Dash"
|
msgid "Dash"
|
||||||
msgstr "Pregledna plošča"
|
msgstr "Pregledna plošča"
|
||||||
|
|
||||||
#: ../js/ui/dateMenu.js:96
|
#: ../js/ui/dateMenu.js:97
|
||||||
msgid "Open Calendar"
|
msgid "Open Calendar"
|
||||||
msgstr "Odpri koledar"
|
msgstr "Odpri koledar"
|
||||||
|
|
||||||
#: ../js/ui/dateMenu.js:100
|
#: ../js/ui/dateMenu.js:101
|
||||||
msgid "Open Clocks"
|
msgid "Open Clocks"
|
||||||
msgstr "Odpri ure"
|
msgstr "Odpri ure"
|
||||||
|
|
||||||
#: ../js/ui/dateMenu.js:107
|
#: ../js/ui/dateMenu.js:108
|
||||||
msgid "Date & Time Settings"
|
msgid "Date & Time Settings"
|
||||||
msgstr "Nastavitve časa in datuma"
|
msgstr "Nastavitve časa in datuma"
|
||||||
|
|
||||||
#. 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:204
|
#: ../js/ui/dateMenu.js:132
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%a, %e. %b., %R"
|
msgstr "%a, %e. %b., %R"
|
||||||
|
|
||||||
@ -1155,7 +1162,7 @@ msgstr "Namesti"
|
|||||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||||
msgstr "Prejmi in namesti “%s” preko povezave na extensions.gnome.org?"
|
msgstr "Prejmi in namesti “%s” preko povezave na extensions.gnome.org?"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
|
#: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:535
|
||||||
msgid "Keyboard"
|
msgid "Keyboard"
|
||||||
msgstr "Tipkovnica"
|
msgstr "Tipkovnica"
|
||||||
|
|
||||||
@ -1211,48 +1218,40 @@ msgstr "Poglej vir"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Spletna stran"
|
msgstr "Spletna stran"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1326
|
#: ../js/ui/messageTray.js:1332
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Odpri"
|
msgstr "Odpri"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1333
|
#: ../js/ui/messageTray.js:1339
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Odstrani"
|
msgstr "Odstrani"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1630
|
#: ../js/ui/messageTray.js:1636
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Obvestila"
|
msgstr "Obvestila"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1637
|
#: ../js/ui/messageTray.js:1643
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Počisti sporočila"
|
msgstr "Počisti sporočila"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1656
|
#: ../js/ui/messageTray.js:1662
|
||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Nastavitve obvestil"
|
msgstr "Nastavitve obvestil"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1709
|
#: ../js/ui/messageTray.js:1715
|
||||||
msgid "Tray Menu"
|
msgid "Tray Menu"
|
||||||
msgstr "Meni sistemske vrstice"
|
msgstr "Meni sistemske vrstice"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1926
|
#: ../js/ui/messageTray.js:1939
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Ni sporočil"
|
msgstr "Ni sporočil"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1968
|
#: ../js/ui/messageTray.js:1986
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Sporočilna vrstica"
|
msgstr "Sporočilna vrstica"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2971
|
#: ../js/ui/messageTray.js:2443 ../js/ui/overviewControls.js:483
|
||||||
msgid "System Information"
|
#: ../js/ui/screenShield.js:151
|
||||||
msgstr "Podrobnosti sistema"
|
|
||||||
|
|
||||||
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:425
|
|
||||||
msgctxt "program"
|
|
||||||
msgid "Unknown"
|
|
||||||
msgstr "Neznano"
|
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
@ -1261,6 +1260,15 @@ msgstr[1] "%d novo sporočilo"
|
|||||||
msgstr[2] "%d novi sporočili"
|
msgstr[2] "%d novi sporočili"
|
||||||
msgstr[3] "%d nova sporočila"
|
msgstr[3] "%d nova sporočila"
|
||||||
|
|
||||||
|
#: ../js/ui/messageTray.js:3013
|
||||||
|
msgid "System Information"
|
||||||
|
msgstr "Podrobnosti sistema"
|
||||||
|
|
||||||
|
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:425
|
||||||
|
msgctxt "program"
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr "Neznano"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:84
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Razveljavi"
|
msgstr "Razveljavi"
|
||||||
@ -1330,19 +1338,19 @@ msgstr "Zakleni"
|
|||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "Zakleniti je treba zaslon"
|
msgstr "Zakleniti je treba zaslon"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
|
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1309
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Zaklep ni mogoč"
|
msgstr "Zaklep ni mogoč"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
|
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1310
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Zaklep je preprečil program"
|
msgstr "Zaklep je preprečil program"
|
||||||
|
|
||||||
#: ../js/ui/search.js:594
|
#: ../js/ui/search.js:611
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Iskanje ..."
|
msgstr "Iskanje ..."
|
||||||
|
|
||||||
#: ../js/ui/search.js:596
|
#: ../js/ui/search.js:613
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Ni najdenih zadetkov."
|
msgstr "Ni najdenih zadetkov."
|
||||||
|
|
||||||
@ -1446,7 +1454,7 @@ msgstr "Ni vzpostavljene povezave"
|
|||||||
msgid "Brightness"
|
msgid "Brightness"
|
||||||
msgstr "Svetlost"
|
msgstr "Svetlost"
|
||||||
|
|
||||||
#: ../js/ui/status/keyboard.js:547
|
#: ../js/ui/status/keyboard.js:559
|
||||||
msgid "Show Keyboard Layout"
|
msgid "Show Keyboard Layout"
|
||||||
msgstr "Pokaži razporeditev tipkovnice"
|
msgstr "Pokaži razporeditev tipkovnice"
|
||||||
|
|
||||||
@ -1701,11 +1709,11 @@ msgstr "Prijava kot drug uporabnik"
|
|||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Odkleni okno"
|
msgstr "Odkleni okno"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:158
|
#: ../js/ui/viewSelector.js:159
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Programi"
|
msgstr "Programi"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:162
|
#: ../js/ui/viewSelector.js:163
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Poišči"
|
msgstr "Poišči"
|
||||||
|
|
||||||
|
@ -176,18 +176,54 @@ static void
|
|||||||
calendar_sources_init (CalendarSources *sources)
|
calendar_sources_init (CalendarSources *sources)
|
||||||
{
|
{
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
|
GDBusConnection *session_bus;
|
||||||
|
GVariant *result;
|
||||||
|
|
||||||
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
|
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
|
||||||
|
|
||||||
/* XXX Not sure what to do if this fails.
|
/* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
|
||||||
* Should this class implement GInitable or pass the
|
(and other library calls that eventually call g_dbus_proxy_new[_sync]())
|
||||||
* registry in as a G_PARAM_CONSTRUCT_ONLY property? */
|
is 25 seconds. This has been shown to be too small for
|
||||||
sources->priv->registry = e_source_registry_new_sync (NULL, &error);
|
evolution-source-registry in certain cases (slow disk, concurrent IO,
|
||||||
|
many configured sources), so we first ensure that the service
|
||||||
|
starts with a manual call and a higher timeout.
|
||||||
|
|
||||||
|
HACK: every time the DBus API is bumped in e-d-s we need
|
||||||
|
to update this!
|
||||||
|
*/
|
||||||
|
session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
|
||||||
|
if (session_bus == NULL)
|
||||||
|
{
|
||||||
|
g_error ("Failed to connect to the session bus: %s", error->message);
|
||||||
|
}
|
||||||
|
|
||||||
|
result = g_dbus_connection_call_sync (session_bus, "org.freedesktop.DBus",
|
||||||
|
"/", "org.freedesktop.DBus",
|
||||||
|
"StartServiceByName",
|
||||||
|
g_variant_new ("(su)",
|
||||||
|
"org.gnome.evolution.dataserver.Sources3",
|
||||||
|
0),
|
||||||
|
NULL,
|
||||||
|
G_DBUS_CALL_FLAGS_NONE,
|
||||||
|
60 * 1000,
|
||||||
|
NULL, &error);
|
||||||
|
if (result != NULL)
|
||||||
|
{
|
||||||
|
g_variant_unref (result);
|
||||||
|
sources->priv->registry = e_source_registry_new_sync (NULL, &error);
|
||||||
|
}
|
||||||
|
|
||||||
if (error != NULL)
|
if (error != NULL)
|
||||||
{
|
{
|
||||||
g_error ("%s: %s", G_STRFUNC, error->message);
|
/* Any error is fatal, but we don't want to crash gnome-shell-calendar-server
|
||||||
|
because of e-d-s problems. So just exit here.
|
||||||
|
*/
|
||||||
|
g_warning ("Failed to start evolution-source-registry: %s", error->message);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_object_unref (session_bus);
|
||||||
|
|
||||||
sources->priv->source_added_id = g_signal_connect (sources->priv->registry,
|
sources->priv->source_added_id = g_signal_connect (sources->priv->registry,
|
||||||
"source-added",
|
"source-added",
|
||||||
G_CALLBACK (calendar_sources_registry_source_changed_cb),
|
G_CALLBACK (calendar_sources_registry_source_changed_cb),
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
#include <GL/gl.h>
|
||||||
|
#include <cogl/cogl.h>
|
||||||
|
|
||||||
#include "shell-util.h"
|
#include "shell-util.h"
|
||||||
#include <glib/gi18n-lib.h>
|
#include <glib/gi18n-lib.h>
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
@ -330,3 +333,33 @@ shell_util_cursor_tracker_to_clutter (MetaCursorTracker *tracker,
|
|||||||
clutter_actor_hide (CLUTTER_ACTOR (texture));
|
clutter_actor_hide (CLUTTER_ACTOR (texture));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef const gchar *(*ShellGLGetString) (GLenum);
|
||||||
|
|
||||||
|
static const gchar *
|
||||||
|
get_gl_vendor (void)
|
||||||
|
{
|
||||||
|
static const gchar *vendor = NULL;
|
||||||
|
|
||||||
|
if (!vendor)
|
||||||
|
{
|
||||||
|
ShellGLGetString gl_get_string;
|
||||||
|
gl_get_string = (ShellGLGetString) cogl_get_proc_address ("glGetString");
|
||||||
|
if (gl_get_string)
|
||||||
|
vendor = gl_get_string (GL_VENDOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
return vendor;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
shell_util_need_background_refresh (void)
|
||||||
|
{
|
||||||
|
if (!clutter_check_windowing_backend (CLUTTER_WINDOWING_X11))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (g_strcmp0 (get_gl_vendor (), "NVIDIA Corporation") == 0)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
@ -44,6 +44,8 @@ GdkPixbuf *shell_util_create_pixbuf_from_data (const guchar *data,
|
|||||||
void shell_util_cursor_tracker_to_clutter (MetaCursorTracker *tracker,
|
void shell_util_cursor_tracker_to_clutter (MetaCursorTracker *tracker,
|
||||||
ClutterTexture *texture);
|
ClutterTexture *texture);
|
||||||
|
|
||||||
|
gboolean shell_util_need_background_refresh (void);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __SHELL_UTIL_H__ */
|
#endif /* __SHELL_UTIL_H__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user