Compare commits

...

28 Commits

Author SHA1 Message Date
Zephaniah E. Loss-Cutler-Hull
6b20eb8eea unlockDialog: Defend against absence of blur effect
widget.get_effect(...) can return null while locking the screen, resulting
in a TypeError. In this situation the screen ends up black with a cursor
but never going to sleep, and moving the mouse brings the old screen
contents up but does not allow unlocking.

unlockDialog.js assumes that widget.get_effect will return non-null,
but other places such as getWindowDimmer in windowManager.js go out of
their way to be more careful.

[smcv: Add commit message, remove hard tabs, add missing semicolon]

Resolves: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3071
Bug-Debian: https://bugs.debian.org/968440
2020-08-24 17:29:56 +02:00
Goran Vidović
407abf527f Update Croatian translation 2020-08-19 22:35:31 +00:00
Florian Müllner
5d1c241f53 Bump version to 3.36.5
Update NEWS.
2020-08-11 22:26:17 +02:00
Jonas Dreßler
cb9bb62a21 st/private: Multiply position in fb coordinates with resource scale
The framebuffer we use for rendering shadows is scaled by the resource
scale, that means we also need to offset coordinates when translating
them to the framebuffers coordinate system.

So far we forgot to do that when translating the framebuffer using the
position of the actor, which lead to small rendering bugs of
text-shadows for actors allocated at non-zero origins. To fix that,
simply multiply those positions with the actors resource scale.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1390
2020-08-11 21:53:57 +02:00
Andre Moreira Magalhaes
bde127b893 rfkill: Always sync state on construction
This fixes an issue where the indicator can be out of sync until the
RfkillManager (used by it) properties change.

The problem is that multiple instances of the indicator will use
the same RfkillManager instance (getRfkillManager() returns a singleton)
that only guarantees to emit the changed signal in two scenarios:
when the D-Bus proxy connects and when the proxy properties change.

If by the time an indicator is instantiated the RfkillManager's D-Bus
proxy is already connected, that indicator would only sync its state
when the RfkillManager properties change.

Let's fix that by always syncing the state on construction - in the worst
case scenario the RfkillManager's D-Bus proxy won't have connected yet
and the indicator state will be temporarily out of sync but once it gets
connected the indicator will sync again with the correct state.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1386
2020-08-11 21:53:20 +02:00
Florian Müllner
51537cf31c panelMenu: Destroy menu before chaining up
This avoid some (harmless but annoying) warnings, and is closer to
the original code prior to commit fc342fe8c5 and 557b232c89.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3022
2020-08-11 21:52:38 +02:00
Florian Müllner
a3d2cfa503 popupMenu: Ungrab when removing active menu
While we do have some handling for removing the active menu, it has
been a no-op for years. The bit that we really care about from the
PopupMenuManager's point of view is the existing grab though. Drop
that instead of calling _closeMenu() directly; ungrabbing will still
call the method indirectly, and it will still be a no-op :-)

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3022
2020-08-11 21:52:38 +02:00
Florian Müllner
f36e4b6ed5 layout: Only show ripple animation when overview was toggled
On X11, clients can grab keyboard on pointer (for example for popup
menus), and as a result the pushModal() call when opening the overview
fails.

However when the hot corner was used to toggle the overview, we still
show the ripple animation in that case, which is confusing as the action
did not actually happen.

Fix this by only showing the ripples if the overview is animating after
calling toggle(), as that should be a reliable indication of whether
the call was successful.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3005
2020-08-11 21:51:59 +02:00
Emre Uyguroglu
40a003e5ac keyboard: Fix missing icons in Keypad
This is more fallout from commit 57669bca1b.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3007


(cherry picked from commit 6b78f58a75)
2020-08-09 14:06:31 +00:00
Sebastian Keller
5fa6996210 appDisplay: Schedule relayout after adaptToSize on app folder icon grid
AppFolderDialog was calling adaptToSize from its alloc vfunc, which
changed the spacing of the icon grid after its size used to calculate
the adjustment for scrolling had already been determined. This was
resulting in the app folder not being able to scroll all the way to the
end the first time it has been opened.

Fix this by scheduling a relayout. This however can not be done
immediately after the adaptToSize call on the iconGrid, because this is
called from within an alloc vfunc. So instead use Meta.later_add to
ensure it gets called after the alloc, but before the next redraw.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2535
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1378
2020-08-08 11:31:06 +00:00
Sebastian Keller
5dba928154 theme: Reduce icon grid spacing
Now that the icons are correctly scaled down and don't cause overlaps
with the spacing anymore, the spacing between icons causes them to be
smaller than they were before. This only affects low resolutions,
because the spacing property is used as a minimum spacing for the app
grid. On higher resolutions the spacing is always larger than this
minimum.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1375
2020-08-06 15:36:26 +00:00
Florian Müllner
ab9fb0f351 style: Swap text-align in RTL locales
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3037


(cherry picked from commit d0dab5a6d1)
2020-08-03 16:47:14 +00:00
Carlos Garnacho
c2ba11425c background: Mark pattern backgrounds as loaded
Otherwise we don't let GNOME Shell startup to proceed. Noticed
by accidentally running on the memory GSettings backend.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1381
2020-07-30 16:52:39 +02:00
Ray Strode
98ab6ae70d loginDialog: Reset auth prompt on vt switch before fade in
At the moment, if a user switches to the login screen vt,
the login screen fades in whatever was on screen prior, and
then does a reset.

It makes more sense to reset first, so we fade in what the
user is going to interact with instead of what they interacted
with before.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2997
(cherry picked from commit 13137aad9d)
2020-07-27 16:52:49 -04:00
Robert Mader
2bf544e272 Revert "workspacesView: Avoid setting invalid geometries on views"
This reverts commit 67b9386b4b.

For not yet known reasons this caused a regression on the stable branch. Further
more it appears not to be needed, as no work depending on it has been backported
so far.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2971
2020-07-22 20:07:49 +02:00
Robert Mader
8f6c64f607 Revert "workspacesView: Only animate on show() when geometries are already set"
This reverts commit bda8ba5ed1.

For not yet known reasons this caused a regression on the stable branch. Further
more it appears not to be needed, as no work depending on it has been backported
so far.
2020-07-22 20:01:25 +02:00
Florian Müllner
5f509855e2 backgroundManager: Always emit 'loaded' signal
As backgrounds are cached, it is possible that we never emit the
'loaded' signal added in commit f386103bc1. We are relying on the
signal though, so do the same as Background and emit the signal
from an idle if the background was already loaded.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1371


(cherry picked from commit 5c550daecb)
2020-07-22 12:25:17 +00:00
Michael Catanzaro
7097796c3f Delay login animation until after wallpaper has loaded
Currently, the login animation can occur before the user's wallpaper has
been loaded. When this happens, we wind up displaying a solid blue
background for half a second or so before the proper background is
displayed. This looks jarring and bad. It's great that we can start
GNOME quickly, but starting up before the wallpaper is ready is *too*
quickly.

I've been meaning to fix this since 2014. Better late than never! We can
just have BackgroundManager emit a loaded signal the first time it loads
its first background, and have the startup animation code wait for that
before proceeding.

Some of this code is by Florian, who helped with promisifying. Thanks!

https://bugzilla.gnome.org/show_bug.cgi?id=734996
2020-07-22 03:57:25 +02:00
Olivier Fourdan
1e87315554 popupMenu: Handle keypress if numlock is enabled
On Wayland, navigating menus with the keyboard would not open drop-down
menus when NumLock is enabled.

That's old issue (gnome-shell#550) that was not completely fixed with
commit 88556226 because the lock mask needs to be filtered out in
_onKeyPress() as well.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/550
2020-07-21 17:42:52 +02:00
Sebastian Keller
6b86b6a3e2 iconGrid: Account for non-icon content and padding/spacing when scaling
_updateIconSizes() was assuming that the icon is the only content of
an item when scaling the icon size to ensure the item size matches
_fixedHItemSize/_fixedVItemSize. However the icon may have padding and
there might be a label and spacing between the icon and the label. This
resulted in items being larger than their slots.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2234
2020-07-20 18:11:09 +00:00
Sebastian Keller
ab59b74124 calendar-server: Remove delay before event emission
The timeout seems to have been carried over from the old code that
relied on gnome-shell calling 'GetEvents' after every 'Changed' signal
where it was used to throttle the signal. In the new code where
calendar-server is sending the changes themselves via signals this is no
longer necessary and actually causes a delay when switching between
months.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2992
2020-07-20 14:09:30 +02:00
Emre Uyguroglu
2f61d9e94b keyboard: Fix missing key icons in numeric level
Those were missed in commit 57669bca1b.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2631
2020-07-20 01:37:55 +02:00
Emre Uyguroglu
b8a7291e1d keyboard: Move named icons into subdirectories
While GtkIconTheme does look up icons in the toplevel icons resource
path, it will only use them as ultimate fallback. That is, if the
icon theme (or the hicolor fallback) include a "keyboard" icon, it
will be used over the "keyboard-enter-symbolic" icon in the resource.

Moving the icons to appropriate subdirectories gives them higher
priority than the fallback names, and thus fixes the issue.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2631
2020-07-20 01:37:53 +02:00
Rafael Fontenelle
222919cfc1 Update Brazilian Portuguese translation 2020-07-18 13:43:51 +00:00
Rafael Fontenelle
db30fbe3e9 Update Brazilian Portuguese translation 2020-07-17 21:36:10 +00:00
Jeremias Ortega
03062d0d9d extensionDownloader: Fix check for updates with several extensions
When having several extensions installed checking for updates fails.
This is because we are using GET and query params and since we are
sending all the metadata of the extension the server returns 502
when the URL is too long. This error code is ignored safely.

It is only needed to send the version of the extension to check if it
has updates.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2962
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1363


(cherry picked from commit f0d2509dc3)
2020-07-16 00:33:27 +00:00
Boyuan Yang
ac2066673f Update Chinese (China) translation 2020-07-12 02:34:36 +00:00
Florian Müllner
19f6281f84 shell/window-tracker: Tighten sandbox ID prefix check
Since commit b60836932 we only allow WM_CLASS matches for sandboxed
applications if the found app's ID is prefixed by the sandbox ID.

The existing check still has a hole in it though: "org.example.Foo"
and "org.example.FooDevel" are different applications, yet the former
is a prefix of the latter.

So tighten the check by including a trailing "." in the checked prefix;
this excludes cases like the above, while still working for the regular
case of a single .desktop file because our app IDs include the ".desktop"
suffix.

Spotted by wjt.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1357
2020-07-08 19:45:43 +02:00
30 changed files with 1733 additions and 1079 deletions

23
NEWS
View File

@@ -1,3 +1,26 @@
3.36.5
======
* Fix extension updates when many extensions are installed [Jeremias; !1363]
* Fix missing icons in on-screen keyboard [Emre; #2631, #3007]
* Fix delay when showing calendar events [Sebastian; #2992]
* Fix app picker regressions on small displays [Sebastian; #2234, !1375, !1378]
* Fix top bar navigation when NumLock is active [Olivier; #550]
* Delay login animation until wallpaper has loaded [Michael; #734996]
* Revert changes that caused mispositioning in overview in multi-monitor setups
[Robert; #2971]
* Reset auth prompt on login screen on VT switch before fade in [Ray; #2997]
* Fix stuck grab when destroying open popup menu [Florian; #3022]
* Misc. bug fixes and cleanups [Florian, Carlos, Andre, Jonas; !1357, !1371,
!1381, #3037, #3005, !1386, !1390]
Contributors:
Michael Catanzaro, Jonas Dreßler, Olivier Fourdan, Carlos Garnacho,
Sebastian Keller, Robert Mader, Andre Moreira Magalhaes, Florian Müllner,
Jeremias Ortega, Ray Strode, Emre Uyguroglu
Translators:
Boyuan Yang [zh_CN], Rafael Fontenelle [pt_BR]
3.36.4
======
* Hide switch-user button on lock screen if unsupported [Chingkai; #2687]

View File

@@ -9,21 +9,21 @@
<file>dash-placeholder.svg</file>
<file>gnome-shell.css</file>
<file>gnome-shell-high-contrast.css</file>
<file alias="icons/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
<file alias="icons/scalable/status/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
<file>no-events.svg</file>
<file>no-notifications.svg</file>
<file>pad-osd.css</file>
<file alias="icons/eye-open-negative-filled-symbolic.svg">eye-open-negative-filled-symbolic.svg</file>
<file alias="icons/eye-not-looking-symbolic.svg">eye-not-looking-symbolic.svg</file>
<file alias="icons/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
<file alias="icons/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
<file alias="icons/pointer-primary-click-symbolic.svg">pointer-primary-click-symbolic.svg</file>
<file alias="icons/pointer-secondary-click-symbolic.svg">pointer-secondary-click-symbolic.svg</file>
<file alias="icons/keyboard-caps-lock-filled-symbolic.svg">keyboard-caps-lock-filled-symbolic.svg</file>
<file alias="icons/keyboard-enter-symbolic.svg">keyboard-enter-symbolic.svg</file>
<file alias="icons/keyboard-hide-symbolic.svg">keyboard-hide-symbolic.svg</file>
<file alias="icons/keyboard-layout-filled-symbolic.svg">keyboard-layout-filled-symbolic.svg</file>
<file alias="icons/keyboard-shift-filled-symbolic.svg">keyboard-shift-filled-symbolic.svg</file>
<file alias="icons/scalable/status/eye-open-negative-filled-symbolic.svg">eye-open-negative-filled-symbolic.svg</file>
<file alias="icons/scalable/status/eye-not-looking-symbolic.svg">eye-not-looking-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-primary-click-symbolic.svg">pointer-primary-click-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-secondary-click-symbolic.svg">pointer-secondary-click-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-caps-lock-filled-symbolic.svg">keyboard-caps-lock-filled-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-enter-symbolic.svg">keyboard-enter-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-hide-symbolic.svg">keyboard-hide-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-layout-filled-symbolic.svg">keyboard-layout-filled-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-shift-filled-symbolic.svg">keyboard-shift-filled-symbolic.svg</file>
<file>process-working.svg</file>
<file>toggle-off.svg</file>
<file>toggle-off-dark.svg</file>

View File

@@ -7,7 +7,7 @@ $app_icon_padding: 24px;
.icon-grid {
-shell-grid-horizontal-item-size: $app_icon_size + $app_icon_padding * 2;
-shell-grid-vertical-item-size: $app_icon_size + $app_icon_padding * 2;
spacing: $base_spacing * 6;
spacing: $base_spacing * 4;
.overview-icon {
icon-size: $app_icon_size;

View File

@@ -206,7 +206,9 @@
color: $fg_color;
font-feature-settings: "tnum";
@include fontsize($base_font_size);
text-align: right;
&:ltr { text-align: right; }
&:rtl { text-align: left; }
}
// timezone offset label

View File

@@ -138,11 +138,10 @@
.user-widget.horizontal .user-widget-label {
@include fontsize($base_font_size + 2);
font-weight: bold;
text-align: left;
padding-left: 15px;
&:ltr { padding-left: 14px; }
&:rtl { padding-right: 14px; }
&:ltr { padding-left: 14px; text-align: left; }
&:rtl { padding-right: 14px; text-align: right; }
}
.user-widget.vertical .user-widget-label {

View File

@@ -71,9 +71,11 @@
> .event-time {
color: transparentize($fg_color, 0.5);
@include fontsize($base_font_size - 2);
text-align: right;
/* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
padding-bottom: 0.13em;
&:ltr { text-align: right };
&:rtl { text-align: left };
}
}

View File

@@ -76,8 +76,10 @@ $popover_arrow_height: 12px;
// container for radio and check boxes
.popup-menu-ornament {
text-align: right;
width: 1.2em;
&:ltr { text-align: right };
&:rtl { text-align: left };
}
// separator

View File

@@ -952,16 +952,15 @@ var LoginDialog = GObject.registerClass({
if (this.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
return;
if (this._authPrompt.verificationStatus !== AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
this._authPrompt.reset();
this._bindOpacity();
this.ease({
opacity: 255,
duration: _FADE_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
this._authPrompt.reset();
this._unbindOpacity();
},
onComplete: () => this._unbindOpacity(),
});
}

View File

@@ -1336,6 +1336,10 @@ class FolderView extends BaseAppView {
this._parentView = parentView;
this._grid._delegate = this;
this._relayoutLaterId = 0;
this._oldWidth = null;
this._oldHeight = null;
this._scrollView = new St.ScrollView({
overlay_scrollbars: true,
x_expand: true,
@@ -1357,6 +1361,8 @@ class FolderView extends BaseAppView {
action.connect('pan', this._onPan.bind(this));
this._scrollView.add_action(action);
this.connect('destroy', this._onDestroy.bind(this));
this._redisplay();
}
@@ -1399,6 +1405,18 @@ class FolderView extends BaseAppView {
return false;
}
_onDestroy() {
if (this._relayoutLaterId) {
Meta.later_remove(this._relayoutLaterId);
this._relayoutLaterId = 0;
}
}
_relayoutLater() {
this._relayoutLaterId = 0;
this._grid.queue_relayout();
}
adaptToSize(width, height) {
this._parentAvailableWidth = width;
this._parentAvailableHeight = height;
@@ -1418,6 +1436,16 @@ class FolderView extends BaseAppView {
this._grid.bottomPadding = Math.max(this._grid.bottomPadding, 0);
this._grid.leftPadding = Math.max(this._grid.leftPadding, 0);
this._grid.rightPadding = Math.max(this._grid.rightPadding, 0);
if (width !== this._oldWidth || height !== this._oldHeight) {
this._oldWidth = width;
this._oldHeight = height;
if (!this._relayoutLaterId) {
this._relayoutLaterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
this._relayoutLater.bind(this));
}
}
}
_loadApps() {

View File

@@ -347,6 +347,8 @@ var Background = GObject.registerClass({
this.set_color(color);
else
this.set_gradient(shadingType, color, secondColor);
this._setLoaded();
}
_watchFile(file) {
@@ -758,10 +760,27 @@ var BackgroundManager = class BackgroundManager {
this._updateBackgroundActor();
});
let loadedSignalId;
if (background.isLoaded) {
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
this.emit('loaded');
return GLib.SOURCE_REMOVE;
});
} else {
loadedSignalId = background.connect('loaded', () => {
background.disconnect(loadedSignalId);
loadedSignalId = null;
this.emit('loaded');
});
}
backgroundActor.connect('destroy', () => {
if (changeSignalId)
background.disconnect(changeSignalId);
if (loadedSignalId)
background.disconnect(loadedSignalId);
if (backgroundActor.loadedSignalId)
background.disconnect(backgroundActor.loadedSignalId);
});

View File

@@ -139,7 +139,9 @@ function checkForUpdates() {
return;
if (extension.hasUpdate)
return;
metadatas[uuid] = extension.metadata;
metadatas[uuid] = {
version: extension.metadata.version,
};
});
if (Object.keys(metadatas).length === 0)

View File

@@ -845,8 +845,10 @@ var IconGrid = GObject.registerClass({
// Note that this is ICON_SIZE as used by BaseIcon, not elsewhere in IconGrid; it's a bit messed up
_updateIconSizes() {
this._updateIconSizesLaterId = 0;
let scale = Math.min(this._fixedHItemSize, this._fixedVItemSize) / Math.max(this._hItemSize, this._vItemSize);
let newIconSize = Math.floor(ICON_SIZE * scale);
let extraWidth = Math.max(0, this._hItemSize - ICON_SIZE);
let extraHeight = Math.max(0, this._vItemSize - ICON_SIZE);
let newIconSize = Math.min(this._fixedHItemSize - extraWidth,
this._fixedVItemSize - extraHeight);
for (let i in this._items)
this._items[i].icon.setIconSize(newIconSize);

View File

@@ -42,7 +42,7 @@ const defaultKeysPost = [
[[{ width: 1.5, keyval: Clutter.KEY_BackSpace, icon: 'edit-clear-symbolic' }],
[{ width: 2, keyval: Clutter.KEY_Return, extraClassName: 'enter-key', icon: 'keyboard-enter-symbolic' }],
[{ label: '=/<', width: 3, level: 3, right: true }],
[{ action: 'emoji', icon: 'face-smile-symbolic' }, { action: 'languageMenu', extraClassName: 'layout-key' }, { action: 'hide', extraClassName: 'hide-key' }]],
[{ action: 'emoji', icon: 'face-smile-symbolic' }, { action: 'languageMenu', extraClassName: 'layout-key', icon: 'keyboard-layout-filled-symbolic' }, { action: 'hide', extraClassName: 'hide-key', icon: 'go-down-symbolic' }]],
[[{ width: 1.5, keyval: Clutter.KEY_BackSpace, icon: 'edit-clear-symbolic' }],
[{ width: 2, keyval: Clutter.KEY_Return, extraClassName: 'enter-key', icon: 'keyboard-enter-symbolic' }],
[{ label: '?123', width: 3, level: 2, right: true }],
@@ -1092,8 +1092,8 @@ var Keypad = GObject.registerClass({
{ label: '8', keyval: Clutter.KEY_8, left: 1, top: 2 },
{ label: '9', keyval: Clutter.KEY_9, left: 2, top: 2 },
{ label: '0', keyval: Clutter.KEY_0, left: 1, top: 3 },
{ label: '⌫', keyval: Clutter.KEY_BackSpace, left: 3, top: 0 },
{ keyval: Clutter.KEY_Return, extraClassName: 'enter-key', left: 3, top: 1, height: 2 },
{ keyval: Clutter.KEY_BackSpace, icon: 'edit-clear-symbolic', left: 3, top: 0 },
{ keyval: Clutter.KEY_Return, extraClassName: 'enter-key', icon: 'keyboard-enter-symbolic', left: 3, top: 1, height: 2 },
];
super._init({
@@ -1110,7 +1110,7 @@ var Keypad = GObject.registerClass({
for (let i = 0; i < keys.length; i++) {
let cur = keys[i];
let key = new Key(cur.label || "", []);
let key = new Key(cur.label || "", [], cur.icon);
if (keys[i].extraClassName)
key.keyButton.add_style_class_name(cur.extraClassName);

View File

@@ -470,6 +470,15 @@ var LayoutManager = GObject.registerClass({
}
}
_waitLoaded(bgManager) {
return new Promise(resolve => {
const id = bgManager.connect('loaded', () => {
bgManager.disconnect(id);
resolve();
});
});
}
_updateBackgrounds() {
for (let i = 0; i < this._bgManagers.length; i++)
this._bgManagers[i].destroy();
@@ -477,7 +486,7 @@ var LayoutManager = GObject.registerClass({
this._bgManagers = [];
if (Main.sessionMode.isGreeter)
return;
return Promise.resolve();
for (let i = 0; i < this.monitors.length; i++) {
let bgManager = this._createBackgroundManager(i);
@@ -486,6 +495,8 @@ var LayoutManager = GObject.registerClass({
if (i != this.primaryIndex && this._startingUp)
bgManager.backgroundActor.hide();
}
return Promise.all(this._bgManagers.map(this._waitLoaded));
}
_updateKeyboardBox() {
@@ -644,7 +655,7 @@ var LayoutManager = GObject.registerClass({
// When starting a normal user session, we want to grow it out of the middle
// of the screen.
_prepareStartupAnimation() {
async _prepareStartupAnimation() {
// During the initial transition, add a simple actor to block all events,
// so they don't get delivered to X11 windows that have been transformed.
this._coverPane = new Clutter.Actor({ opacity: 0,
@@ -661,8 +672,6 @@ var LayoutManager = GObject.registerClass({
} else if (Main.sessionMode.isGreeter) {
this.panelBox.translation_y = -this.panelBox.height;
} else {
this._updateBackgrounds();
// We need to force an update of the regions now before we scale
// the UI group to get the correct allocation for the struts.
this._updateRegions();
@@ -678,6 +687,8 @@ var LayoutManager = GObject.registerClass({
this.uiGroup.scale_x = this.uiGroup.scale_y = 0.75;
this.uiGroup.opacity = 0;
global.window_group.set_clip(monitor.x, monitor.y, monitor.width, monitor.height);
await this._updateBackgrounds();
}
this.emit('startup-prepared');
@@ -1229,8 +1240,9 @@ class HotCorner extends Clutter.Actor {
return;
if (Main.overview.shouldToggleByCornerOrButton()) {
this._ripples.playAnimation(this._x, this._y);
Main.overview.toggle();
if (Main.overview.animationInProgress)
this._ripples.playAnimation(this._x, this._y);
}
}

View File

@@ -183,10 +183,9 @@ var Button = GObject.registerClass({
}
_onDestroy() {
super._onDestroy();
if (this.menu)
this.menu.destroy();
super._onDestroy();
}
});

View File

@@ -881,9 +881,10 @@ var PopupMenu = class extends PopupMenuBase {
let state = event.get_state();
// if user has a modifier down (except capslock)
// if user has a modifier down (except capslock and numlock)
// then don't handle the key press here
state &= ~Clutter.ModifierType.LOCK_MASK;
state &= ~Clutter.ModifierType.MOD2_MASK;
state &= Clutter.ModifierType.MODIFIER_MASK;
if (state)
@@ -1324,7 +1325,7 @@ var PopupMenuManager = class {
removeMenu(menu) {
if (menu == this.activeMenu)
this._closeMenu(false, menu);
this._grabHelper.ungrab({ actor: menu.actor });
let position = this._findMenu(menu);
if (position == -1) // not a menu we manage

View File

@@ -86,6 +86,8 @@ class Indicator extends PanelMenu.SystemIndicator {
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
this._sessionUpdated();
this._sync();
}
_sessionUpdated() {

View File

@@ -648,10 +648,14 @@ var UnlockDialog = GObject.registerClass({
const themeContext = St.ThemeContext.get_for_stage(global.stage);
for (const widget of this._backgroundGroup.get_children()) {
widget.get_effect('blur').set({
brightness: BLUR_BRIGHTNESS,
sigma: BLUR_SIGMA * themeContext.scale_factor,
});
const effect = widget.get_effect('blur');
if (effect) {
effect.set({
brightness: BLUR_BRIGHTNESS,
sigma: BLUR_SIGMA * themeContext.scale_factor,
});
}
}
}

View File

@@ -450,7 +450,6 @@ class WorkspacesDisplay extends St.Widget {
this._keyPressEventId = 0;
this._scrollTimeoutId = 0;
this._actualGeometry = null;
this._fullGeometry = null;
this._inWindowDrag = false;
@@ -611,16 +610,13 @@ class WorkspacesDisplay extends St.Widget {
show(fadeOnPrimary) {
this._updateWorkspacesViews();
if (this._actualGeometry && this._fullGeometry) {
for (let i = 0; i < this._workspacesViews.length; i++) {
let animationType;
if (fadeOnPrimary && i == this._primaryIndex)
animationType = AnimationType.FADE;
else
animationType = AnimationType.ZOOM;
this._workspacesViews[i].animateToOverview(animationType);
}
for (let i = 0; i < this._workspacesViews.length; i++) {
let animationType;
if (fadeOnPrimary && i == this._primaryIndex)
animationType = AnimationType.FADE;
else
animationType = AnimationType.ZOOM;
this._workspacesViews[i].animateToOverview(animationType);
}
this._restackedNotifyId =
@@ -694,10 +690,8 @@ class WorkspacesDisplay extends St.Widget {
this._workspacesViews.forEach(v => v.show());
if (this._fullGeometry)
this._syncWorkspacesFullGeometry();
if (this._actualGeometry)
this._syncWorkspacesActualGeometry();
this._updateWorkspacesFullGeometry();
this._updateWorkspacesActualGeometry();
}
_getMonitorIndexForEvent(event) {
@@ -749,10 +743,10 @@ class WorkspacesDisplay extends St.Widget {
// the sliding controls were never slid in at all.
setWorkspacesFullGeometry(geom) {
this._fullGeometry = geom;
this._syncWorkspacesFullGeometry();
this._updateWorkspacesFullGeometry();
}
_syncWorkspacesFullGeometry() {
_updateWorkspacesFullGeometry() {
if (!this._workspacesViews.length)
return;
@@ -764,21 +758,18 @@ class WorkspacesDisplay extends St.Widget {
}
_updateWorkspacesActualGeometry() {
const [x, y] = this.get_transformed_position();
const width = this.allocation.get_width();
const height = this.allocation.get_height();
this._actualGeometry = { x, y, width, height };
this._syncWorkspacesActualGeometry();
}
_syncWorkspacesActualGeometry() {
if (!this._workspacesViews.length)
return;
let [x, y] = this.get_transformed_position();
let allocation = this.allocation;
let width = allocation.x2 - allocation.x1;
let height = allocation.y2 - allocation.y1;
let primaryGeometry = { x, y, width, height };
let monitors = Main.layoutManager.monitors;
for (let i = 0; i < monitors.length; i++) {
let geometry = i === this._primaryIndex ? this._actualGeometry : monitors[i];
let geometry = i == this._primaryIndex ? primaryGeometry : monitors[i];
this._workspacesViews[i].setActualGeometry(geometry);
}
}

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.36.4',
version: '3.36.5',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)

469
po/hr.po
View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-21 18:07+0000\n"
"PO-Revision-Date: 2020-03-21 22:46+0100\n"
"POT-Creation-Date: 2020-06-01 20:11+0000\n"
"PO-Revision-Date: 2020-08-20 00:34+0200\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.4.1\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -391,76 +391,12 @@ msgstr ""
msgid "Network Login"
msgstr "Mrežna prijava"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:241
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Proširenja"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:242
msgid "Manage your GNOME Extensions"
msgstr "Upravljajte svojim GNOME proširenjima"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME Proširenja rukuje nadopunama proširenja, podešavanjem osobitostima "
"proširenja i uklanjanjem ili onemogućavanjem neželjenih proširenja."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Podesi proširenja GNOME ljuske"
#: js/extensionPrefs/js/main.js:163
#, javascript-format
msgid "Remove “%s”?"
msgstr "Ukloni “%s”?"
#: js/extensionPrefs/js/main.js:164
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Ako uklonite ovo proširenje, morate se vratiti kako bi ga preuzeli i ponovno "
"omogućili"
#: js/extensionPrefs/js/main.js:167 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Odustani"
#: js/extensionPrefs/js/main.js:168
msgid "Remove"
msgstr "Ukloni"
#: js/extensionPrefs/js/main.js:240
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" ACT Hacklab https://launchpad.net/~stjepan-amajk\n"
" Ante Karamatić https://launchpad.net/~ivoks\n"
" Dražen Odobašić https://launchpad.net/~dodobas\n"
" Frane https://launchpad.net/~kob4lt\n"
" Miro Glavić https://launchpad.net/~klek\n"
" Miroslav Matejaš https://launchpad.net/~silverspace+amd64\n"
" Saša Teković https://launchpad.net/~hseagle2015\n"
" Senko Rasic https://launchpad.net/~senko\n"
" Tomislav Krznar https://launchpad.net/~tomislav-krznar\n"
" gogo https://launchpad.net/~trebelnik-stefina"
#: js/extensionPrefs/js/main.js:284
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Nešto je pošlo po krivu"
#: js/extensionPrefs/js/main.js:291
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -469,106 +405,25 @@ msgstr ""
"Nažalost došlo je do problema: postavke za ovo proširenje se ne mogu "
"prikazati. Preporučljivo je da problem prijavite autoru proširenja."
#: js/extensionPrefs/js/main.js:298
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Tehničke pojedinosti"
#: js/extensionPrefs/js/main.js:333
msgid "Copy Error"
msgstr "Kopiraj grešku"
#: js/extensionPrefs/js/main.js:360
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Naslovnica"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Posjetite naslovnicu proširenja"
#: js/extensionPrefs/js/main.js:478
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d proširenje će se nadopuniti pri sljedećoj prijavi."
msgstr[1] "%d proširenja će se nadopuniti pri sljedećoj prijavi."
msgstr[2] "%d proširenja će se nadopuniti pri sljedećoj prijavi."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Opis"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Inačica"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autor"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Web stranica"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Ukloni…"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Pomoć"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "O proširenju"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Kako bi pronašli i dodali proširenja, posjetite <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Upozorenje"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Proširenja mogu prouzrokovati probleme u radu sustava, uključujući probleme "
"s performansama. Ako se pojave problemi sa sustavom, preporučljivo je "
"onemogućavanje svih proširenja."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Ručno instalirana"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Ugrađena"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Nema instaliranih proširenja"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
msgstr ""
"Nažalost, nije moguće dobiti popis instaliranih proširenja. Pobrinite se da "
"ste prijavljeni u GNOME i pokušajte ponovno."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Odjava…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Odustani"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@@ -620,73 +475,73 @@ msgid "(or swipe finger)"
msgstr "(ili pomakni prst)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Isključivanje"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr ""
"isključi;isključivanje;ponovno pokreni;ponovno pokretanje;zaustavi;"
"zaustavljanje"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Zaključavanje zaslona"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "zaključavanje zaslona"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Odjava"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "odjava;odjavljivanje"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspenzija"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspendiraj;spavaj"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Zamijeni korisnika"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "zamjena korisnika"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "zaključavanje orjentacije;otključaj orjentaciju;zaslon;zakretanje"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Zakretanje otključanog zaslona"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Zakretanje zaključanog zaslona"
@@ -858,53 +713,53 @@ msgstr "Zabrani pristup"
msgid "Grant Access"
msgstr "Dopusti pristup"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Neimenovana mapa"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Najčešće korištene aplikacije će se pojaviti ovdje"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Najčešće"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Sve"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Otvaranje prozora"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Novi prozor"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Pokreni pomoću namjenske grafičke kartice"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Ukloni iz omiljenih"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Dodaj u omiljene"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Prikaži pojedinosti"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s je dodan u omiljene."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s je uklonjen iz omiljenih."
@@ -925,7 +780,7 @@ msgstr "Slušalice"
msgid "Headset"
msgstr "Slušalice s mikrofonom"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Mikrofon"
@@ -1066,7 +921,7 @@ msgstr "Nema događaja"
msgid "Do Not Disturb"
msgstr "Ne ometaj"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Obriši"
@@ -1214,7 +1069,7 @@ msgstr "Nažalost, to ne radi. Pokušajte ponovno."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s je poznat kao %s"
@@ -1250,31 +1105,31 @@ msgstr "%-e %b, %Y"
msgid "%A %B %e %Y"
msgstr "%A %e %B %Y"
#: js/ui/dateMenu.js:161
#: js/ui/dateMenu.js:162
msgid "Add world clocks…"
msgstr "Dodaj satove iz svijeta…"
#: js/ui/dateMenu.js:162
#: js/ui/dateMenu.js:163
msgid "World Clocks"
msgstr "Svjetski satovi"
#: js/ui/dateMenu.js:289
#: js/ui/dateMenu.js:308
msgid "Weather"
msgstr "Vrijeme"
#: js/ui/dateMenu.js:404
#: js/ui/dateMenu.js:437
msgid "Select a location…"
msgstr "Odaberi lokaciju…"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:445
msgid "Loading…"
msgstr "Pretraživanje…"
#: js/ui/dateMenu.js:427
#: js/ui/dateMenu.js:455
msgid "Go online for weather information"
msgstr "Posjetite za opširnije vremenske informacije"
#: js/ui/dateMenu.js:429
#: js/ui/dateMenu.js:457
msgid "Weather information is currently unavailable"
msgstr "Vremenske informacije su trenutno nedostupne"
@@ -1424,35 +1279,35 @@ msgid "Other users are logged in"
msgstr "Drugi korisnici su prijavljeni"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (udaljeno)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (konzola)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Instaliraj"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Instaliraj proširenje"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Preuzmi i instaliraj “%s” sa extensions.gnome.org?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Nadopuna proširenja je dostupna"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Nadopune proširenja su spremne za instalaciju."
@@ -1599,11 +1454,11 @@ msgstr "Pogledaj izvor"
msgid "Web Page"
msgstr "Web stranica"
#: js/ui/main.js:274
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Prijavljeni ste kao administratorski korisnik"
#: js/ui/main.js:275
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1612,23 +1467,23 @@ msgstr ""
"izbjegavati iz sigurnosnih razloga. Ako je moguće, trebate se prijaviti kao "
"normalan korisnik."
#: js/ui/main.js:281
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Zaključavanje zaslona je onemogućeno"
#: js/ui/main.js:282
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "Zaključavanje zaslona zahtijeva GNOME upravitelja zaslona."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Informacije sustava"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Nepoznat izvođač"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Nepoznat naslov"
@@ -1674,23 +1529,23 @@ msgstr "Pošalji pritisak tipke"
msgid "Done"
msgstr "Završeno"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:732
msgid "Edit…"
msgstr "Uredi…"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:774 js/ui/padOsd.js:891
msgid "None"
msgstr "Nedodjeljeno"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:845
msgid "Press a button to configure"
msgstr "Pritisni tipku za podešavanje"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:846
msgid "Press Esc to exit"
msgstr "Pritisni Esc za zatvaranje"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:849
msgid "Press any key to exit"
msgstr "Pritisni bilo koju tipku za prekidanje"
@@ -1700,16 +1555,16 @@ msgstr "Zatvori"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Aktivnosti"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sustav"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Gornja traka"
@@ -1740,11 +1595,11 @@ msgstr "GNOME treba zaključati zaslon"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Nemoguće zaključavanje"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Zaključavanje je blokirala aplikacija"
@@ -1828,13 +1683,13 @@ msgid "The PIM must be a number or empty."
msgstr "PIM mora biti broj ili prazan."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Nemoguće pokretanje %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Nemoguć pronalazak %s aplikacije"
@@ -2311,11 +2166,11 @@ msgstr "Greška Thunderbolt odobravanja"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Nemoguće odobravanje Thunderbolt uređaja: %s"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Glasnoća zvuka promijenjena"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Glasnoća zvuka"
@@ -2349,23 +2204,23 @@ msgstr "Samo ugrađeni"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A, %-d. %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Povuci za otključavanje"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Klikni ili pritisni tipku za otključavanje"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Otključaj prozor"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Prijavi se kao drugi korisnik"
@@ -2398,7 +2253,7 @@ msgstr "Vrati postavke"
msgid "Keep Changes"
msgstr "Zadrži promjene"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2408,7 +2263,7 @@ msgstr[2] "Promjene postavka će se vratiti za %d sekundi"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2501,12 +2356,12 @@ msgstr "Koristi određen način, npr. \"gdm\" za zaslon prijave"
msgid "List possible modes"
msgstr "Popis mogućih načina"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Nepoznat"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Neuspješno pokretanje “%s”"
@@ -2523,6 +2378,151 @@ msgstr "Lozinka ne može biti prazna"
msgid "Authentication dialog was dismissed by the user"
msgstr "Dijalog ovjere je prekinut od strane korisnika"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Proširenja"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Upravljajte svojim GNOME proširenjima"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME Proširenja rukuje nadopunama proširenja, podešavanjem osobitostima "
"proširenja i uklanjanjem ili onemogućavanjem neželjenih proširenja."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Podesi proširenja GNOME ljuske"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Ukloni “%s”?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Ako uklonite ovo proširenje, morate se vratiti kako bi ga preuzeli i ponovno "
"omogućili"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Ukloni"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" ACT Hacklab https://launchpad.net/~stjepan-amajk\n"
" Ante Karamatić https://launchpad.net/~ivoks\n"
" Dražen Odobašić https://launchpad.net/~dodobas\n"
" Frane https://launchpad.net/~kob4lt\n"
" Miro Glavić https://launchpad.net/~klek\n"
" Miroslav Matejaš https://launchpad.net/~silverspace+amd64\n"
" Saša Teković https://launchpad.net/~hseagle2015\n"
" Senko Rasic https://launchpad.net/~senko\n"
" Tomislav Krznar https://launchpad.net/~tomislav-krznar\n"
" gogo https://launchpad.net/~trebelnik-stefina"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d proširenje će se nadopuniti pri sljedećoj prijavi."
msgstr[1] "%d proširenja će se nadopuniti pri sljedećoj prijavi."
msgstr[2] "%d proširenja će se nadopuniti pri sljedećoj prijavi."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Opis"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Inačica"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autor"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Web stranica"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Ukloni…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Pomoć"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "O proširenju"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Kako bi pronašli i dodali proširenja, posjetite <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Upozorenje"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Proširenja mogu prouzrokovati probleme u radu sustava, uključujući probleme "
"s performansama. Ako se pojave problemi sa sustavom, preporučljivo je "
"onemogućavanje svih proširenja."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Ručno instalirana"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Ugrađena"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Nema instaliranih proširenja"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
msgstr ""
"Nažalost, nije moguće dobiti popis instaliranih proširenja. Pobrinite se da "
"ste prijavljeni u GNOME i pokušajte ponovno."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Nadopune proširenja su spremne"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Odjava…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@@ -2861,6 +2861,9 @@ msgstr[2] "%u ulaza"
msgid "System Sounds"
msgstr "Zvukovi sustava"
#~ msgid "Copy Error"
#~ msgstr "Kopiraj grešku"
#~ msgid "Browse in Software"
#~ msgstr "Pregledaj u Softveru"

View File

@@ -24,8 +24,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-31 07:15+0000\n"
"PO-Revision-Date: 2020-04-22 09:30-0300\n"
"POT-Creation-Date: 2020-07-17 21:36+0000\n"
"PO-Revision-Date: 2020-07-18 10:42-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n"
@@ -42,11 +42,11 @@ msgstr "Sistema"
#: data/50-gnome-shell-system.xml:9
msgid "Show the notification list"
msgstr "Mostra a lista de notificação"
msgstr "Mostrar a lista de notificação"
#: data/50-gnome-shell-system.xml:12
msgid "Focus the active notification"
msgstr "Ativar as notificação ativas"
msgstr "Focar na notificação ativa"
#: data/50-gnome-shell-system.xml:15
msgid "Show the overview"
@@ -58,7 +58,7 @@ msgstr "Mostrar todos os aplicativos"
#: data/50-gnome-shell-system.xml:21
msgid "Open the application menu"
msgstr "Abre o menu do aplicativo"
msgstr "Abrir o menu do aplicativo"
#: data/org.gnome.Shell.desktop.in.in:4
msgid "GNOME Shell"
@@ -414,7 +414,7 @@ msgid "Network Login"
msgstr "Sessão de Rede"
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:223
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Algo deu errado"
@@ -442,7 +442,7 @@ msgstr "Visita a página web da extensão"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:181
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:183
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
@@ -498,71 +498,71 @@ msgid "(or swipe finger)"
msgstr "(ou deslize o dedo)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Desligar"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "desligar;desligamento;reinicialização;reiniciar"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Bloquear tela"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "tela de bloqueio"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Encerrar sessão"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "encerrar sessão;desconectar;sair"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspender"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspender;dormir"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Alternar usuário"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "alternar usuário;trocar de usuário"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "bloqueio de orientação;desbloqueio de orientação;tela;rotação"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Desbloquear rotação de tela"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bloquear rotação de tela"
@@ -728,53 +728,53 @@ msgstr "Negar acesso"
msgid "Grant Access"
msgstr "Conceder acesso"
#: js/ui/appDisplay.js:932
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Pasta sem nome"
#: js/ui/appDisplay.js:955
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Aplicativos usados frequentemente vão aparecer aqui"
#: js/ui/appDisplay.js:1090
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Frequente"
#: js/ui/appDisplay.js:1097
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Todos"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2473 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Janelas abertas"
#: js/ui/appDisplay.js:2493 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Nova janela"
#: js/ui/appDisplay.js:2504
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Inicia usando placa de vídeo dedicada"
#: js/ui/appDisplay.js:2532 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Remover dos favoritos"
#: js/ui/appDisplay.js:2538
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Adicionar aos favoritos"
#: js/ui/appDisplay.js:2548 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostrar detalhes"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s foi adicionado aos seus favoritos."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s foi removido dos seus favoritos."
@@ -795,7 +795,7 @@ msgstr "Fones de ouvido"
msgid "Headset"
msgstr "Fone de ouvido com microfone"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:273
msgid "Microphone"
msgstr "Microfone"
@@ -869,7 +869,7 @@ msgstr "S"
#. * "%OB" is the new format specifier introduced in glibc 2.27,
#. * in most cases you should not change it.
#.
#: js/ui/calendar.js:371
#: js/ui/calendar.js:396
msgid "%OB"
msgstr "%OB"
@@ -882,61 +882,61 @@ msgstr "%OB"
#. * in most cases you should not use the old "%B" here unless you
#. * absolutely know what you are doing.
#.
#: js/ui/calendar.js:381
#: js/ui/calendar.js:406
msgid "%OB %Y"
msgstr "%OB de %Y"
#: js/ui/calendar.js:440
#: js/ui/calendar.js:465
msgid "Previous month"
msgstr "Mês anterior"
#: js/ui/calendar.js:455
#: js/ui/calendar.js:480
msgid "Next month"
msgstr "Próximo mês"
#: js/ui/calendar.js:605
#: js/ui/calendar.js:630
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:661
#: js/ui/calendar.js:686
msgid "Week %V"
msgstr "Semana %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:730
#: js/ui/calendar.js:761
msgctxt "event list time"
msgid "All Day"
msgstr "Dia todo"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:868
#: js/ui/calendar.js:899
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A, %-d de %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:871
#: js/ui/calendar.js:902
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A, %-d de %B de %Y"
#: js/ui/calendar.js:1100
#: js/ui/calendar.js:1132
msgid "No Notifications"
msgstr "Nenhuma notificação"
#: js/ui/calendar.js:1103
#: js/ui/calendar.js:1135
msgid "No Events"
msgstr "Nenhum evento"
#: js/ui/calendar.js:1157
#: js/ui/calendar.js:1189
msgid "Do Not Disturb"
msgstr "Não perturbe"
#: js/ui/calendar.js:1176
#: js/ui/calendar.js:1208
msgid "Clear"
msgstr "Limpar"
@@ -1122,114 +1122,114 @@ msgstr "%-d de %B de %Y"
msgid "%A %B %e %Y"
msgstr "%A, %e de %B de %Y"
#: js/ui/dateMenu.js:161
#: js/ui/dateMenu.js:162
msgid "Add world clocks…"
msgstr "Adicionar relógios mundiais…"
#: js/ui/dateMenu.js:162
#: js/ui/dateMenu.js:163
msgid "World Clocks"
msgstr "Relógios mundiais"
#: js/ui/dateMenu.js:289
#: js/ui/dateMenu.js:308
msgid "Weather"
msgstr "Meteorologia"
#: js/ui/dateMenu.js:418
#: js/ui/dateMenu.js:437
msgid "Select a location…"
msgstr "Selecione uma localização…"
#: js/ui/dateMenu.js:426
#: js/ui/dateMenu.js:445
msgid "Loading…"
msgstr "Carregando…"
#: js/ui/dateMenu.js:436
#: js/ui/dateMenu.js:455
msgid "Go online for weather information"
msgstr "Conecte-se à internet para obter as informações meteorológicas"
#: js/ui/dateMenu.js:438
#: js/ui/dateMenu.js:457
msgid "Weather information is currently unavailable"
msgstr "No momento as informações meteorológicas não estão disponíveis"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Encerrar sessão de %s"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Encerrar sessão"
#: js/ui/endSessionDialog.js:42
#: js/ui/endSessionDialog.js:40
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s encerrará a sessão automaticamente em %d segundo."
msgstr[1] "%s encerrará a sessão automaticamente em %d segundos."
#: js/ui/endSessionDialog.js:47
#: js/ui/endSessionDialog.js:45
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "Sua sessão será encerrada automaticamente em %d segundo."
msgstr[1] "Sua sessão será encerrada automaticamente em %d segundos."
#: js/ui/endSessionDialog.js:53
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Encerrar sessão"
#: js/ui/endSessionDialog.js:58
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Desligar"
#: js/ui/endSessionDialog.js:59
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Instalar atualizações & desligar"
#: js/ui/endSessionDialog.js:61
#: js/ui/endSessionDialog.js:59
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "O sistema será desligado automaticamente em %d segundo."
msgstr[1] "O sistema será desligado automaticamente em %d segundos."
#: js/ui/endSessionDialog.js:65
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Instalar atualizações de software pendentes"
#: js/ui/endSessionDialog.js:68 js/ui/endSessionDialog.js:84
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Reiniciar"
#: js/ui/endSessionDialog.js:70
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Desligar"
#: js/ui/endSessionDialog.js:76
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Reiniciar"
#: js/ui/endSessionDialog.js:78
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "O sistema irá reiniciar automaticamente em %d segundo."
msgstr[1] "O sistema irá reiniciar automaticamente em %d segundos."
#: js/ui/endSessionDialog.js:91
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Reiniciar & instalar atualizações"
#: js/ui/endSessionDialog.js:93
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@@ -1241,22 +1241,22 @@ msgstr[1] ""
"O sistema irá reiniciar e instalar atualizações automaticamente em %d "
"segundos."
#: js/ui/endSessionDialog.js:99 js/ui/endSessionDialog.js:118
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Reiniciar &amp; instalar"
#: js/ui/endSessionDialog.js:100
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Instalar &amp; desligar"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Desligar após atualizações serem instaladas"
#: js/ui/endSessionDialog.js:108
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Reiniciar & instalar atualizações"
@@ -1264,7 +1264,7 @@ msgstr "Reiniciar & instalar atualizações"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@@ -1274,49 +1274,49 @@ msgstr ""
"pode levar um longo tempo: certifique-se de que fez cópia de segurança (back "
"up) e que o computador esteja ligado na tomada."
#: js/ui/endSessionDialog.js:261
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Funcionando na bateria: conecte na tomada antes de instalar atualizações."
#: js/ui/endSessionDialog.js:270
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Alguns aplicativos estão ocupados ou possuem trabalhos não salvos"
#: js/ui/endSessionDialog.js:275
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Outros usuários estão com sessão aberta"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (console)"
#: js/ui/extensionDownloader.js:185
#: js/ui/extensionDownloader.js:187
msgid "Install"
msgstr "Instalar"
#: js/ui/extensionDownloader.js:191
#: js/ui/extensionDownloader.js:193
msgid "Install Extension"
msgstr "Instalar extensão"
#: js/ui/extensionDownloader.js:192
#: js/ui/extensionDownloader.js:194
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Baixar e instalar “%s” de extensions.gnome.org?"
#: js/ui/extensionSystem.js:233
#: js/ui/extensionSystem.js:253
msgid "Extension Updates Available"
msgstr "Atualizações de extensões disponíveis"
#: js/ui/extensionSystem.js:234
#: js/ui/extensionSystem.js:254
msgid "Extension updates are ready to be installed."
msgstr "Atualizações de extensões estão prontas para serem instaladas."
@@ -1340,11 +1340,11 @@ msgstr "Um aplicativo deseja inibir atalhos"
msgid "You can restore shortcuts by pressing %s."
msgstr "Você pode restaurar os atalhos pressionando %s."
#: js/ui/inhibitShortcutsDialog.js:98
#: js/ui/inhibitShortcutsDialog.js:100
msgid "Deny"
msgstr "Negar"
#: js/ui/inhibitShortcutsDialog.js:105
#: js/ui/inhibitShortcutsDialog.js:107
msgid "Allow"
msgstr "Permitir"
@@ -1413,7 +1413,7 @@ msgstr "Desligar"
msgid "Leave Off"
msgstr "Deixar desativado"
#: js/ui/keyboard.js:207
#: js/ui/keyboard.js:225
msgid "Region & Language Settings"
msgstr "Configurações regionais e de idioma"
@@ -1465,11 +1465,11 @@ msgstr "Ver fonte"
msgid "Web Page"
msgstr "Página web"
#: js/ui/main.js:277
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Sessão aberta como um usuário privilegiado"
#: js/ui/main.js:278
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1477,33 +1477,33 @@ msgstr ""
"Usar uma sessão como um usuário privilegiado deve ser evitado por motivos de "
"segurança. Se possível, você deve abrir uma sessão como um usuário normal."
#: js/ui/main.js:317
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Bloqueio de tela desabilitado"
#: js/ui/main.js:318
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "O bloqueio de tela requer o gerenciador de exibição do GNOME."
#: js/ui/messageTray.js:1551
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Informações do sistema"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Artista desconhecido"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Título desconhecido"
#: js/ui/overview.js:73
#: js/ui/overview.js:74
msgid "Undo"
msgstr "Desfazer"
#. Translators: This is the main view to select
#. activities. See also note for "Activities" string.
#: js/ui/overview.js:86
#: js/ui/overview.js:87
msgid "Overview"
msgstr "Panorama"
@@ -1511,7 +1511,7 @@ msgstr "Panorama"
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: js/ui/overview.js:107
#: js/ui/overview.js:108
msgid "Type to search"
msgstr "Digite para pesquisar"
@@ -1539,23 +1539,23 @@ msgstr "Atribuir atalho"
msgid "Done"
msgstr "Concluído"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:732
msgid "Edit…"
msgstr "Editar…"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:774 js/ui/padOsd.js:891
msgid "None"
msgstr "Nenhum"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:845
msgid "Press a button to configure"
msgstr "Pressione um botão para configurar"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:846
msgid "Press Esc to exit"
msgstr "Pressione Esc para sair"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:849
msgid "Press any key to exit"
msgstr "Pressione qualquer tecla para sair"
@@ -1565,16 +1565,16 @@ msgstr "Sair"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Atividades"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Barra superior"
@@ -1605,11 +1605,11 @@ msgstr "GNOME precisa bloquear a tela"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Não foi possível bloquear"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "O bloqueio foi impedido por um aplicativo"
@@ -2175,11 +2175,11 @@ msgstr "Erro de autorização de thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Não foi possível autorizar o dispositivo Thunderbolt: %s"
#: js/ui/status/volume.js:151
#: js/ui/status/volume.js:154
msgid "Volume changed"
msgstr "Volume alterado"
#: js/ui/status/volume.js:222
#: js/ui/status/volume.js:225
msgid "Volume"
msgstr "Volume"
@@ -2225,11 +2225,11 @@ msgstr "Deslize para desbloquear"
msgid "Click or press a key to unlock"
msgstr "Clique ou pressione uma tecla para desbloquear"
#: js/ui/unlockDialog.js:550
#: js/ui/unlockDialog.js:554
msgid "Unlock Window"
msgstr "Desbloquear janela"
#: js/ui/unlockDialog.js:559
#: js/ui/unlockDialog.js:563
msgid "Log in as another user"
msgstr "Iniciar sessão como outro usuário"
@@ -2264,7 +2264,7 @@ msgstr "Reverter configurações"
msgid "Keep Changes"
msgstr "Manter alterações"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2273,7 +2273,7 @@ msgstr[1] "Alterações nas configurações serão revertidas em %d segundos"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2367,12 +2367,12 @@ msgstr ""
msgid "List possible modes"
msgstr "Listar modos possíveis"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Desconhecido"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Erro ao lançar “%s”"
@@ -2412,7 +2412,7 @@ msgstr ""
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configurar extensões do Shell do GNOME"
msgstr "Configure extensões do Shell do GNOME"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
@@ -2443,7 +2443,7 @@ msgstr[0] "%d extensão será atualizada na próxima sessão."
msgstr[1] "%d extensões serão atualizadas na próxima sessão."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/command-create.c:235
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Descrição"
@@ -2495,19 +2495,19 @@ msgstr ""
"desempenho. Se você encontrar problemas com o seu sistema, é recomendável "
"desativar todas as extensões."
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Instalada manualmente"
#: subprojects/extensions-app/data/ui/extensions-window.ui:158
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Interna"
#: subprojects/extensions-app/data/ui/extensions-window.ui:199
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Nenhuma extensão instalada"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -2515,17 +2515,21 @@ msgstr ""
"Sentimos muito, mas não foi possível obter a lista de extensões instaladas. "
"Certifique-se de estar em uma sessão do GNOME e tente novamente."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Atualizações de extensões prontas"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Encerrar sessão…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#: subprojects/extensions-tool/src/command-create.c:149
#, c-format
msgid "The new extension was successfully created in %s.\n"
msgstr "A nova extensão foi criada com sucesso em %s.\n"
#: subprojects/extensions-tool/src/command-create.c:194
#: subprojects/extensions-tool/src/command-create.c:218
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
@@ -2534,12 +2538,12 @@ msgstr ""
"O nome deve ser uma string muito curta (idealmente descritiva.\n"
"Exemplos são: %s"
#: subprojects/extensions-tool/src/command-create.c:197
#: subprojects/extensions-tool/src/command-create.c:221
#: subprojects/extensions-tool/src/main.c:170
msgid "Name"
msgstr "Nome"
#: subprojects/extensions-tool/src/command-create.c:208
#: subprojects/extensions-tool/src/command-create.c:232
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
@@ -2548,7 +2552,7 @@ msgstr ""
"Descrição é uma explicação uma só frase do que sua extensão faz.\n"
"Exemplos são: %s"
#: subprojects/extensions-tool/src/command-create.c:222
#: subprojects/extensions-tool/src/command-create.c:246
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
@@ -2558,40 +2562,40 @@ msgstr ""
"Deve estar no formato de um endereço de e-mail (cliqueparafoco@janedoe."
"example.com)\n"
#: subprojects/extensions-tool/src/command-create.c:244
#: subprojects/extensions-tool/src/command-create.c:268
msgid "The unique identifier of the new extension"
msgstr "O identificador único para a nova extensão"
#: subprojects/extensions-tool/src/command-create.c:247
#: subprojects/extensions-tool/src/command-create.c:271
msgid "NAME"
msgstr "NOME"
#: subprojects/extensions-tool/src/command-create.c:248
#: subprojects/extensions-tool/src/command-create.c:272
msgid "The user-visible name of the new extension"
msgstr "O nome visível do usuário da nova extensão"
#: subprojects/extensions-tool/src/command-create.c:250
#: subprojects/extensions-tool/src/command-create.c:274
msgid "DESCRIPTION"
msgstr "DESCRIÇÃO"
#: subprojects/extensions-tool/src/command-create.c:252
#: subprojects/extensions-tool/src/command-create.c:276
msgid "A short description of what the extension does"
msgstr "Uma descrição curta do que a extensão faz"
#: subprojects/extensions-tool/src/command-create.c:255
#: subprojects/extensions-tool/src/command-create.c:279
msgid "Enter extension information interactively"
msgstr "Insira as informações da extensão interativamente"
#: subprojects/extensions-tool/src/command-create.c:263
#: subprojects/extensions-tool/src/command-create.c:287
msgid "Create a new extension"
msgstr "Cria uma nova extensão"
#: subprojects/extensions-tool/src/command-create.c:280
#: subprojects/extensions-tool/src/command-create.c:304
#: subprojects/extensions-tool/src/command-list.c:168
msgid "Unknown arguments"
msgstr "Argumentos desconhecidos"
#: subprojects/extensions-tool/src/command-create.c:289
#: subprojects/extensions-tool/src/command-create.c:313
msgid "UUID, name and description are required"
msgstr "UUID, nome e descrição são necessários"

File diff suppressed because it is too large Load Diff

View File

@@ -346,8 +346,6 @@ struct _App
GSList *notify_appointments; /* CalendarAppointment *, for EventsAdded */
GSList *notify_ids; /* gchar *, for EventsRemoved */
guint events_added_timeout_id;
guint events_removed_timeout_id;
GSList *live_views;
};
@@ -370,24 +368,19 @@ app_update_timezone (App *app)
}
}
static gboolean
on_app_schedule_events_added_cb (gpointer user_data)
static void
app_notify_events_added (App *app)
{
App *app = user_data;
GVariantBuilder builder, extras_builder;
GSList *events, *link;
if (g_source_is_destroyed (g_main_current_source ()))
return FALSE;
events = g_slist_reverse (app->notify_appointments);
app->notify_appointments = NULL;
app->events_added_timeout_id = 0;
print_debug ("Emitting EventsAddedOrUpdated with %d events", g_slist_length (events));
if (!events)
return FALSE;
return;
/* The a{sv} is used as an escape hatch in case we want to provide more
* information in the future without breaking ABI
@@ -428,41 +421,21 @@ on_app_schedule_events_added_cb (gpointer user_data)
g_variant_builder_clear (&builder);
g_slist_free_full (events, calendar_appointment_free);
return FALSE;
}
static void
app_schedule_events_added (App *app)
app_notify_events_removed (App *app)
{
print_debug ("Scheduling EventsAddedOrUpdated");
if (app->events_added_timeout_id == 0)
{
app->events_added_timeout_id = g_timeout_add_seconds (2,
on_app_schedule_events_added_cb,
app);
g_source_set_name_by_id (app->events_added_timeout_id, "[gnome-shell] on_app_schedule_events_added_cb");
}
}
static gboolean
on_app_schedule_events_removed_cb (gpointer user_data)
{
App *app = user_data;
GVariantBuilder builder;
GSList *ids, *link;
if (g_source_is_destroyed (g_main_current_source ()))
return FALSE;
ids = app->notify_ids;
app->notify_ids = NULL;
app->events_removed_timeout_id = 0;
print_debug ("Emitting EventsRemoved with %d ids", g_slist_length (ids));
if (!ids)
return FALSE;
return;
g_variant_builder_init (&builder, G_VARIANT_TYPE ("as"));
for (link = ids; link; link = g_slist_next (link))
@@ -483,20 +456,7 @@ on_app_schedule_events_removed_cb (gpointer user_data)
g_slist_free_full (ids, g_free);
return FALSE;
}
static void
app_schedule_events_removed (App *app)
{
print_debug ("Scheduling EventsRemoved");
if (app->events_removed_timeout_id == 0)
{
app->events_removed_timeout_id = g_timeout_add_seconds (2,
on_app_schedule_events_removed_cb,
app);
g_source_set_name_by_id (app->events_removed_timeout_id, "[gnome-shell] on_app_schedule_events_removed_cb");
}
return;
}
static void
@@ -546,7 +506,7 @@ app_process_added_modified_objects (App *app,
g_clear_object (&cal_client);
if (app->notify_appointments)
app_schedule_events_added (app);
app_notify_events_added (app);
}
static void
@@ -610,7 +570,7 @@ on_objects_removed (ECalClientView *view,
g_clear_object (&client);
if (app->notify_ids)
app_schedule_events_removed (app);
app_notify_events_removed (app);
}
static gboolean
@@ -866,9 +826,6 @@ app_free (App *app)
{
GSList *ll;
g_clear_handle_id (&app->events_added_timeout_id, g_source_remove);
g_clear_handle_id (&app->events_removed_timeout_id, g_source_remove);
for (ll = app->live_views; ll != NULL; ll = g_slist_next (ll))
{
ECalClientView *view = E_CAL_CLIENT_VIEW (ll->data);

View File

@@ -146,9 +146,13 @@ get_app_from_window_wmclass (MetaWindow *window)
const char *wm_class;
const char *wm_instance;
const char *sandbox_id;
g_autofree char *app_prefix = NULL;
appsys = shell_app_system_get_default ();
sandbox_id = meta_window_get_sandboxed_app_id (window);
if (sandbox_id)
app_prefix = g_strdup_printf ("%s.", sandbox_id);
/* Notes on the heuristics used here:
much of the complexity here comes from the desire to support
@@ -188,23 +192,23 @@ get_app_from_window_wmclass (MetaWindow *window)
/* first try a match from WM_CLASS (instance part) to StartupWMClass */
wm_instance = meta_window_get_wm_class_instance (window);
app = shell_app_system_lookup_startup_wmclass (appsys, wm_instance);
if (app != NULL && check_app_id_prefix (app, sandbox_id))
if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app);
/* then try a match from WM_CLASS to StartupWMClass */
wm_class = meta_window_get_wm_class (window);
app = shell_app_system_lookup_startup_wmclass (appsys, wm_class);
if (app != NULL && check_app_id_prefix (app, sandbox_id))
if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app);
/* then try a match from WM_CLASS (instance part) to .desktop */
app = shell_app_system_lookup_desktop_wmclass (appsys, wm_instance);
if (app != NULL && check_app_id_prefix (app, sandbox_id))
if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app);
/* finally, try a match from WM_CLASS to .desktop */
app = shell_app_system_lookup_desktop_wmclass (appsys, wm_class);
if (app != NULL && check_app_id_prefix (app, sandbox_id))
if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app);
return NULL;

View File

@@ -509,6 +509,8 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec,
cogl_color_init_from_4ub (&clear_color, 0, 0, 0, 0);
clutter_actor_get_position (actor, &x, &y);
x *= resource_scale;
y *= resource_scale;
cogl_framebuffer_clear (fb, COGL_BUFFER_BIT_COLOR, &clear_color);
cogl_framebuffer_translate (fb, -x, -y, 0);

View File

@@ -38,6 +38,7 @@
</description>
<releases>
<release version="3.36.5" date="2020-08-11"/>
<release version="3.36.4" date="2020-07-07"/>
<release version="3.36.3" date="2020-06-03"/>
<release version="3.36.2" date="2020-04-29"/>

View File

@@ -1,5 +1,5 @@
project('gnome-extensions-app',
version: '3.36.4',
version: '3.36.5',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)

View File

@@ -1,5 +1,5 @@
project('gnome-extensions-tool', 'c',
version: '3.36.4',
version: '3.36.5',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)

View File

@@ -1,5 +1,5 @@
project('shew', 'c',
version: '3.36.4',
version: '3.36.5',
meson_version: '>= 0.47.0',
license: 'LGPLv2+',
)