Compare commits

...

176 Commits

Author SHA1 Message Date
90b7710834 Bump version to 3.18.1
Update NEWS.
2015-10-15 19:56:47 +02:00
f8cc8f1dc1 theme: Use font-relative sizes for menu widths
For menus, it makes more sense to pick a width that fits a reasonable amount
of content rather than a fixed amount of screen estate, so use font-relative
sizes instead of pixel values.

https://bugzilla.gnome.org/show_bug.cgi?id=754581
2015-10-15 19:56:44 +02:00
f8e5e3e435 aggregateMenu: Ignore ellipsizable items in width-request
Some labels in the system status menu - namely network names - are out
of our control, and may thus grow the width "infinitively" unless we
restrict the menu width. So far we have been doing this by setting a
fixed width or max-width, but any value we put there might end up
being too restrictive in some locales. Instead, request a width that
fits all the labels we want to show unellipsized and use that instead
of an arbitrary limit.

https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-10-15 19:56:03 +02:00
508e751ffd box-layout: Support replacing layout manager
There is nothing preventing callers from replacing the internal
layout manager, and as long as the replacement is a (or derives
from) ClutterBoxLayout, everything should work fine except for
losing a bit of automatic property mapping - and the latter is
easily fixable by moving the setup out of the constructor.

https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-10-15 19:21:15 +02:00
207c847762 windowManager: add animations for fullscreen and unfullscreen
We use the newly introduced feature from Mutter to hook up our own
fullscreen and unfullscreen animations.
To give the illusion of a transition as smooth as possible, we create a
snapshot of the current contents of the actor before its state is
changed, and crossfade between the two states while the size changes.

https://bugzilla.gnome.org/show_bug.cgi?id=707248
2015-10-14 12:10:58 -04:00
3c980566d3 Updated Basque language 2015-10-14 12:26:29 +02:00
50b59e0ca6 batch: Add old commit message as comment at top of file
This is a lightly-edited version of Ray's commit message in
4902a600d5.
2015-10-13 14:43:39 -05:00
14c52bb00a dash: Ensure style for icon size computation
StIcon will skip loading the texture when its theme node is unset (which
may happen on style changes while the widget is hidden). While our size
request to compute the dash icon size will create the icon's theme node
if necessary (and of all its parents), a missing texture can still throw
off our computation.
Make sure this doesn't happen by ensuring the icon's style first, so the
texture is updated in response to StWidget::style-changed if necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=745649
2015-10-13 20:21:44 +02:00
9720b32987 dash: Revert mislead cleanup
When adjusting dash icon sizes, we compute the icon padding by subtracting
the configured icon size from the first icon actor's preferred size. To
make sure that the preferred size correctly corresponds to the current
dash icon size even while the icon is animating, we enforce the size
before the size request. For that we used to temporarily manipulate
the icon texture size directly, but commit e92d204d42 cleaned this
up to use the setIconSize() method instead.
This does not work however, as the icon actor's iconSize property will
always match the dash iconSize property, making the method a noop. So
go back to the original approach of enforcing the texture size to make
sure we always base our computations on correct values.

https://bugzilla.gnome.org/show_bug.cgi?id=745649
2015-10-13 20:21:44 +02:00
674ae262c8 Change incorrect parameter names
These were renamed a while ago.
2015-10-12 15:38:44 -04:00
db297e7fdb Don't crash on accesses to stale window-backed apps
The JS code could still be holding on to a reference to a window-backed app
after all windows have vanished. (For example, the dash queues an idle to
refetch apps and display them.) Avoid dying with an error message if we
attempt to activate or otherwise manipulate such a window.

https://bugzilla.gnome.org/show_bug.cgi?id=674799
2015-10-11 15:31:39 -04:00
d57c146514 Updated Danish translation by scootergrisen 2015-10-11 18:34:51 +02:00
ec5a4328e3 Updated Danish translation 2015-10-11 16:30:56 +00:00
e4ee72c481 Update Arabic translation 2015-10-10 15:27:42 +04:00
31f1e9ff0a autorunManager: Do not mark the notification CRITICAL
There is nothing particularly critical about this notification, it
was only marked as such to get certain behavior like auto-expanding
and sticking-around to be acknowledged by the user (as it offers
more actions than the summary notification, so it is frustrating
when it goes away because it was missed).
As all notifications will now stay visible until we are sure the
users has seen them, the latter reasoning no longer applies.
Auto-expansion doesn't appear too important and may even be considered
annoying by users, so remove the CRITICAL hint now.

https://bugzilla.gnome.org/show_bug.cgi?id=657923
2015-10-09 15:55:40 +02:00
d6c049a8c9 altTab: Don't error out if we don't have windows for an app
We are currently erroring out when the tab chain doesn't contain at
least one window for an app which might happen for windows that don't
take focus like xeyes. This leaves us in a state where we can't show
the switcher at all. Let's just ignore these apps instead of looking
broken.
2015-10-08 18:27:07 +02:00
44047ac881 shell-glsl-quad: Set the pipeline blend string explicitly
The default pipeline color is opaque white and blending is turned
off. If we only draw with that color (e.g. because animations are
disabled and we're always drawn with opacity == 255), blending is kept
disabled since cogl_pipeline_set_color() returns early if the color
doesn't change from what was there before.

In our case we always want blending to be enabled which we can achieve
by setting the blending string ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=755827
2015-10-08 18:27:07 +02:00
464d5d8a13 st-button: Don't rely on hover to accept clicks
Since commit 4f1f226828 we only consider buttons clicked when the
release event had a corresponding press event. However as we use
the hover state to check whether a release event actually occurred
on the button, we dismiss any clicks in cases where we missed the
enter event - most likely due to some other actor holding a grab.
Instead, check whether the button contains the event's source, which
should be less error-prone.

https://bugzilla.gnome.org/show_bug.cgi?id=748919
2015-10-07 15:05:36 +02:00
29811a85dc Updated Portuguese translation 2015-10-07 06:07:27 +00:00
36ee4e6c3b panel: Hide app menu when disabled by settings
While the GtkSettings::gtk-shell-shows-app-menu property is meant to
reflect a desktop capability (i.e. in the GNOME case: the app menu is
shown in the top bar), it is possible for users to overwrite it.
Respect the setting and actually hide the menu in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=745919
2015-10-05 14:08:20 +02:00
2036e4c85c st: Remove wrong indentation
GObject-Introspection started warning for wrong annotations, and
StGenericAccessible::set-current-value has a return value annotation
even if it returns nothing. This generates the warning:

src/st/st-generic-accessible.c:146: Warning: St:
StGenericAccessible::set-current-value: invalid return annotation

Which, coupled with fatal warnings, breaks the Shell build.
2015-10-05 12:04:55 +01:00
f24034de84 Updated Czech translation 2015-10-05 11:56:30 +02:00
522ff86081 Updated Spanish translation 2015-10-05 07:46:19 +00:00
669e3c8ed9 Updated Spanish translation 2015-10-05 07:41:45 +00:00
ce850f464c Updated Kazakh translation 2015-10-04 12:00:33 +00:00
03eaa61cef Updated Portuguese translation 2015-10-04 07:34:03 +00:00
e10e953d24 Updated Finnish translation 2015-10-04 07:22:29 +00:00
2b47bb3d82 Updated Serbian Latin translation 2015-10-01 23:39:29 +00:00
73d819116c Updated Serbian translation 2015-10-01 23:38:05 +00:00
c8dd984663 Updated German translation 2015-10-01 20:43:16 +00:00
6087eb6d0e Updated Irish translation 2015-09-30 22:30:18 -06:00
97b43d1d36 Updated Vietnamese translation
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2015-10-01 07:22:35 +07:00
57ebadbaf8 Updated Lithuanian translation 2015-09-30 22:17:38 +03:00
cad7bb1151 Updated Greek translation 2015-09-30 10:38:28 +03:00
9a376d47c5 Updated Brazilian Portuguese translation 2015-09-29 19:09:31 +00:00
b79adc05f4 Updated Russian translation 2015-09-29 19:07:25 +00:00
f765c5e319 Updated Korean translation 2015-09-29 19:14:47 +09:00
edc445c0c9 Updated Italian translation 2015-09-29 07:03:06 +00:00
ab6b0f3f7f Updated Slovak translation 2015-09-29 05:32:58 +00:00
5e7902e733 Updated Polish translation 2015-09-29 00:53:38 +02:00
f9f821aa55 Updated Swedish translation 2015-09-28 22:40:28 +00:00
9ed4b2a5ae Updated Galician translation 2015-09-28 22:34:41 +00:00
0130ced790 Updated French translation 2015-09-28 21:39:48 +00:00
8dab07af82 Update Czech translation
Fixes #737598.
2015-09-28 17:10:10 -04:00
f6cd3fa5ed panel: improve string for system menu, bug 755755
Refer to the system menu in the top bar as "System" rather than "Settings" as
it contains more than just settings and "Settings" is already used for the
settings panel. "System" is also used elsewhere, so include context for
translators.
2015-09-28 16:29:12 -04:00
faae1a028e browser-plugin: try to avoid a crash
Quite tempted to delete this unmaintained and unreliable plugin, but I
can stand it not working so long as it at least stops crashing, so let's
try this first.

Hopefully mitigates bug #737932.
2015-09-27 13:14:08 -05:00
f5e32184fe theme: Update sass submodule to pick up menu size changes
https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-09-25 20:24:32 +02:00
18c7138237 Check error of g_dbus_proxy_new_sync call
Otherwise errors pile up and we crash later on.
2015-09-24 13:33:47 -04:00
3f0fbae7e2 shell_dbus_acquire_name: Don't leak the result
The GVariant returned by g_dbus_proxy_call_sync must be
freed with g_variant_unref, to prevent a leak.
2015-09-24 13:33:47 -04:00
7f1a258ff9 shell_dbus_acquire_name: Don't leak error
If fatal is not set, we return from this function in the error
case. Don't leak the GError if that happens.
2015-09-24 13:33:45 -04:00
35b38d5cb2 Updated Vietnamese translation
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2015-09-24 15:16:45 +07:00
09e8a437d4 Update Arabic translation 2015-09-23 23:53:04 +02:00
d2bedcc182 build: Replace deprecated GNOME_COMPILE_WARNINGS macro 2015-09-23 21:32:50 +02:00
84eda6e459 st: Don't avoid parameter list
Meh, C ...
2015-09-23 21:32:50 +02:00
f5e7530fc7 st: Add default case to switch statements 2015-09-23 21:32:50 +02:00
f983b34784 st: Handle all possible enum values in switch statements 2015-09-23 21:32:50 +02:00
36bbe64898 st: Fix constness in assignment 2015-09-23 21:32:50 +02:00
627a393ed6 st: Don't mix declarations and code 2015-09-23 21:32:50 +02:00
a025b151ef st: Don't shadow existing variables 2015-09-23 21:32:50 +02:00
18b6f13395 st: Fix signed-unsigned comparisons 2015-09-23 21:32:50 +02:00
051413550f st: Don't duplicate declarations from G_DEFINE_TYPE 2015-09-23 21:32:50 +02:00
3e10574736 shell: Add default case to switch statements
... to shut up a compiler warning.
2015-09-23 21:32:50 +02:00
9a3041004b shell: Don't shadow existing variables 2015-09-23 21:32:50 +02:00
87f71b8ce1 shell: Don't mix declarations and code 2015-09-23 21:32:50 +02:00
825146f1e3 shell: Fix signed-unsigned comparisons 2015-09-23 21:32:50 +02:00
52995416fd shell: Don't avoid parameter list
Meh, C ...
2015-09-23 21:32:50 +02:00
6c43d0247a main: Fix constness mismatches 2015-09-23 21:32:49 +02:00
9aa98d9f0c menutracker: Don't shadow existing variables 2015-09-23 21:32:49 +02:00
c3a29d6df1 theme-node: Rewrite switch statement
Some compilers warn about unhandled enum values in switch statements,
so don't use one where only two out of 21 possible values make sense.
2015-09-23 21:32:49 +02:00
82f84416a9 recorder: Rewrite switch statement
Avoid compiler warnings about unhandled enum values by using a
regular if-else statement.
2015-09-23 21:32:49 +02:00
9dd3162dbe recorder-src: Rewrite switch statement
Avoid compiler warnings about unhandled enum values by using a
regular if-else statement.
2015-09-23 21:32:49 +02:00
7ef519756a Update gvc submodule 2015-09-23 21:32:49 +02:00
3bbe74d1c1 popupMenu: Set ImageMenuItem's label-actor
While we don't use image menu items ourselves, extensions might,
so make sure they are accessible out of the box.
Spotted by Jay Strict.
2015-09-23 14:20:38 +02:00
409f6718b8 calendar: Disconnect all Notification signals on NotificationMessage destruction
The destroy signal handler is kept connected despite the NotificationMessage
being destroyed, which leaves dangling NotificationMessage objects that will
be mass destroyed when the Notification object these depend upon is finally
destroyed.

Depending on the amount of accumulated NotificationMessages, this may lead
to temporary freezes or other more funky issues when recursion limits are
hit.

https://bugzilla.gnome.org/show_bug.cgi?id=755425
2015-09-22 18:16:16 +02:00
9c0e179080 Updated Serbian Latin translation 2015-09-22 11:49:36 +00:00
b3b278d41f Updated Serbian translation 2015-09-22 11:48:55 +00:00
0f466dbafb Bump version to 3.18.0
Update NEWS.
2015-09-21 22:22:18 +02:00
fbb4a9a3a6 Updated Latvian translation 2015-09-20 22:01:15 +03:00
8ddae5cd71 Updated Swedish translation 2015-09-20 17:28:59 +00:00
b0915c7b60 Updated Brazilian Portuguese translation 2015-09-20 14:01:58 +00:00
831bb4e334 Updated Indonesian translation 2015-09-19 12:35:20 +00:00
4e025506fa Updated Irish translation 2015-09-18 10:43:04 -06:00
abccf451bf Updated Danish translation 2015-09-18 17:05:37 +02:00
14954117c0 Updated Indonesian translation 2015-09-17 01:19:59 +00:00
629f408fe5 Bump version to 3.17.92
Update NEWS.
2015-09-16 17:20:30 +02:00
86c6ab3c01 Updated Italian translation 2015-09-15 11:34:41 +00:00
4a6ff94701 Updated Czech translation 2015-09-14 16:04:24 +02:00
e480b08d58 Updated Japanese translation 2015-09-14 00:20:39 +09:00
caf53861d1 Updated Kazakh translation 2015-09-12 16:08:38 +00:00
d0480648ba Updated Persian translation 2015-09-11 23:55:57 +04:30
eb8cfe799f Finnish translation update 2015-09-10 18:46:33 +03:00
b9f2541880 Updated Norwegian bokmål translation. 2015-09-07 19:31:59 +02:00
bde9b08bfe Updated Norwegian bokmål translation. 2015-09-07 19:29:28 +02:00
8a4c862633 background: fix a race condition when loading several animations
When loading several animations at the same time, the last call
overrides the result for all of them.

This commit caches all animations separately based on the source's
schemas.

https://bugzilla.gnome.org/show_bug.cgi?id=741453
2015-09-07 06:51:42 +02:00
785c90f4b8 background: fix indentation 2015-09-07 06:49:55 +02:00
dd6a11e4c7 Updated German translation 2015-09-05 19:42:18 +00:00
64e9503adb Updated Korean translation 2015-09-06 02:06:45 +09:00
36c885bf34 style: Update from sass 2015-09-04 19:15:42 +02:00
ad7cde805d style: Update high-contrast theme
This was missed in fa0e54edbb ...
2015-09-04 18:56:11 +02:00
2c2c67f4dc Fix accidental gnome-shell-sass downgrade
... from commit 030a22d795.
2015-09-04 18:46:11 +02:00
cc4f8dfab0 Updated Kazakh translation 2015-09-04 15:51:16 +00:00
0fb13608c5 Bump version to 3.17.91
Update NEWS.
2015-09-03 15:54:26 +02:00
09dbe17da0 loginDialog: Limit user list to the available height
We currently will always allocate the user list's preferred size, so it
will grow indefinitely and never scroll; limit the height instead to
get the desired scrolling behavior when necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=754525
2015-09-03 15:45:39 +02:00
fdd347c9aa po: Update French translation (remove "à large bande") 2015-09-01 11:11:38 +02:00
572095515b Updated French translation 2015-09-01 08:17:16 +00:00
f2d4aa0822 authPrompt: hide/stop spinner after verfiication completes
When the user successfully types their password, we should hide
the spinner from the button well right away, so it doesn't
consume resources until reset (which may happen significantly later
if the user is vt switched away)

https://bugzilla.gnome.org/show_bug.cgi?id=753891
2015-08-31 15:24:27 -04:00
030a22d795 authPrompt: stop spinner after its hidden
The code previously tried to stop spinner after it was hidden, but
due to an incorrect check was only stoppig it after it was shown.

Also, it was only stopping after hiding due to an animation, and
failing to stop it in the non-animated case.

This left the spinner hidden and running while VT switched away
from the login screen, only stopping when the auth prompt was
reset when switching back.

https://bugzilla.gnome.org/show_bug.cgi?id=753891
2015-08-31 15:19:26 -04:00
c70afcdb44 Updated Hungarian translation 2015-08-31 17:42:42 +00:00
526d6c03b8 Updated Hebrew translation 2015-08-30 21:17:10 +03:00
261b55300d Punjabi Translation updated 2015-08-30 09:28:47 -05:00
e13bfd9a17 Updated Greek translation 2015-08-30 12:04:22 +03:00
e096d18bac Updated Hebrew translation 2015-08-27 23:49:12 +03:00
9460f0e4f3 Updated Dutch translation Master 3.18 2015-08-26 16:45:43 +02:00
e6591f52ac Updated Galician translations 2015-08-26 00:34:43 +02:00
07e3d1fd5c Updated Galician translations 2015-08-26 00:10:39 +02:00
1fbc6b24c8 Updated Turkish translation 2015-08-25 20:05:27 +00:00
982777be94 Updated Chinese (Taiwan) translation 2015-08-25 13:00:33 +00:00
6610a34ad0 Updated Spanish translation 2015-08-25 11:30:58 +02:00
bfa8a0441a Updated Spanish translation 2015-08-25 11:05:27 +02:00
7723622ec7 Updated Portuguese translation 2015-08-25 05:18:36 +00:00
6bcc8c70ef Updated Polish translation 2015-08-24 15:32:49 +02:00
d114d5f95a Fixes to Catalan translation 2015-08-21 18:25:30 +02:00
b5c734da42 Updated Slovak translation 2015-08-21 08:43:23 +00:00
2077bb94c1 Updated Russian translation 2015-08-20 19:58:12 +00:00
65a4ee7fb4 Updated Lithuanian translation 2015-08-20 22:37:07 +03:00
debf293298 Update Catalan translation 2015-08-20 19:25:14 +02:00
a0df3e7d1e network: Unify capitalization in newly changed strings
After fa0e54edbb some strings were inconsistent.
2015-08-20 17:07:46 +02:00
0d67c2d164 Updated Slovak translation 2015-08-20 12:29:10 +00:00
682bd7b622 Bump version to 3.17.90
Update NEWS.
2015-08-20 13:53:36 +02:00
fa0e54edbb status: Refine system status menu
* switch to a one-column layout (and adjust strings/widths
   accordingly
 * remove separator before system menu
 * add link to account settings to user submenu for consistency

https://bugzilla.gnome.org/show_bug.cgi?id=751377
2015-08-20 13:53:36 +02:00
5a0b209663 build: Bump EDS requirement to 3.17.2
In conjunction with 444fa2e0ab
2015-08-11 16:58:22 +02:00
7e8859fd0e Updated Brazilian Portuguese translation 2015-08-10 23:32:43 +00:00
444fa2e0ab calendar-server: Adjust to EDS service version bump 2015-08-10 17:30:38 +02:00
a31455b921 Updated Turkish translation 2015-08-09 17:03:20 +00:00
ac0213a516 viewSelector: Make the compose key focus the search entry
This way composed characters can be used to start searches.

https://bugzilla.gnome.org/show_bug.cgi?id=753320
2015-08-07 15:34:34 +02:00
45a6e2c305 viewSelector: Make backspace focus the search entry
Commit fb0cf64536 regressed this because
there's no unicode character for backspace.

https://bugzilla.gnome.org/show_bug.cgi?id=753319
2015-08-07 15:34:34 +02:00
11cbd396c0 calendar: Tweak message list style
* make icons smaller
 * use small font size in body
 * add some spacing between secondary item and title

https://bugzilla.gnome.org/show_bug.cgi?id=749958
2015-08-05 17:34:11 +02:00
a343445cd2 calendar: Vertically center message icon rather than top-align it
... as requested by the designers.

https://bugzilla.gnome.org/show_bug.cgi?id=749958
2015-08-05 17:33:19 +02:00
be3d62487c calendar: Minor cleanup
Add a constant for the icon size used in message list entries rather
than hardcoding it twice.

https://bugzilla.gnome.org/show_bug.cgi?id=749958
2015-08-05 17:33:19 +02:00
58905bd01a telepathyClient: Use protocol-specific policy
Since commit 79c04c93e4, we launch Polari instead of Empathy when
activating a chat notification for an IRC channel. It therefore makes
sense to follow Polari's notification policy for those notifications
rather than Empathy's.

https://bugzilla.gnome.org/show_bug.cgi?id=752881
2015-08-05 17:22:10 +02:00
08506eac2d gdm: clear user verifier when finished with it
We only need the user verifier for the purpose of user verification.
Once it's complete we should clear it so it doesn't get in the way
later.

This fixes a bug introduced in commit 3c8c5a5570 that leads to the
user session crashing when the login screen is reactivated.

https://bugzilla.gnome.org/show_bug.cgi?id=753181
2015-08-05 09:40:17 -04:00
02c6b0374d gdm: make user list fade-in on vt switch more reliable
We fade out the authentication prompt when a user successfully
logs into a user session. We reset it and fade it back in when
the user switches back to the login screen VT.

The problem is, we only fade it back in if the auth prompt status is
VERIFICATION_SUCCEEDED.  It's possible for it to be NOT_VERIFYING
if the authprompt gets reset for some other reason in the interim.

This commit changes the check to be more precise. We now only skip
the fade-in, if we're already faded in, and we only skip the reset if
we're already reset.

https://bugzilla.gnome.org/show_bug.cgi?id=753181
2015-08-05 09:40:15 -04:00
0722c06275 modalDialog: Match gtk+ buttons style
Follow the design we have in gtk+ for buttons dialogs,
which are at the bottom and they expand full width, having
the same amount of space for each one.

Also, since this removes any space for non-button widgets
in the button area, move the spinner present in the auth prompt
dialog next to the password entry.

https://bugzilla.gnome.org/show_bug.cgi?id=746108
2015-08-05 14:44:47 +02:00
17a4044d97 data: Revert accidental submodule change 2015-08-05 14:24:42 +02:00
27a7194634 spinner: use a 60fps spinner
- sync with gtk+ and provide a fluid spinner

https://bugzilla.gnome.org/show_bug.cgi?id=753064
2015-08-05 13:44:32 +02:00
d73f560bcc Update Catalan translation 2015-08-02 22:43:05 +02:00
e92f43b83e shell: Fix C99'ism 2015-07-31 20:26:47 +02:00
fed79ce4e6 appDisplay: Handle non-UTF8 filename encodings more gracefully
It may be 2015, but users still stumble upon the occasional .desktop
file that uses a filename encoding other than UTF-8. We currently
fail quite spectacularly in that case by not displaying any apps at
all - handle this case more gracefully, by only filtering out the
offending apps.

https://bugzilla.gnome.org/show_bug.cgi?id=651503
2015-07-31 16:52:42 +02:00
fc45cf03bf windowMenu: Use CHECK ornament rather than DOT
The dot suggests a radio action, while the items are actually toggles;
in the app menu we use checkmarks in that case, so do the same here.
2015-07-30 18:11:43 +02:00
efde11a0f3 theme: Make menu ornament slightly wider
The existing width works well enough for a narrow character like the dot,
but doesn't leave any whitespace for a wider one like the checkmark.

https://bugzilla.gnome.org/show_bug.cgi?id=741366
2015-07-30 17:31:33 +02:00
fb951ff9b5 Updated Norwegian bokmål translation. 2015-07-30 11:36:32 +02:00
f5865e895e magnifier: Avoid caret/focus viewport changes while the pointer moves
If there's a caret or focus move we should delay it until the pointer
is stationary for a little while so as to avoid jittery and spurious
viewport movements.

https://bugzilla.gnome.org/show_bug.cgi?id=752138
2015-07-27 18:04:44 +02:00
b8c2d4c6c7 Updated Czech translation 2015-07-24 22:04:34 +02:00
778ad49ab4 authPrompt: allow cancellation before verification starts
The user should be allowed to cancel if verification hasn't
started yet and they're typing in their username. This
commit changes the authPrompt cancel function to not
ignore such requests.

https://bugzilla.gnome.org/show_bug.cgi?id=752739
2015-07-24 09:44:24 -04:00
fe7dd1305f authPrompt: don't allow next if entry is empty
Normally the user isn't allowed to proceed passed
the username question until they've filled it in.
To ensure this, the authprompt code desensitizes
the next button when the number of characters change to
zero.

Unfortunately it fails to desensitize the next button
up front when the entry starts out empty.

This commit addresses that bug.

https://bugzilla.gnome.org/show_bug.cgi?id=752739
2015-07-24 09:44:23 -04:00
378a3df5ea authPrompt: set next button to next when asking for username
If the next button ever gets set to Sign In, it won't
get reset to next until the next question asked by pam.

This commit ensures it gets reset to Next when asking
for the username.

https://bugzilla.gnome.org/show_bug.cgi?id=752739
2015-07-24 09:44:21 -04:00
e63b81d69c keyboard: Don't watch D-Bus services we won't use
ff1b76f4c7 made gnome-shell stop looking
at the org.gnome.SettingsDaemon.Cursor service's property values, but we
still monitored the service itself.

https://bugzilla.gnome.org/show_bug.cgi?id=752779
2015-07-23 15:07:10 +02:00
c2fa2cdd8a Bump version to 3.17.4
Update NEWS.
2015-07-23 12:48:58 +02:00
6f215427f8 overview: Move comment 2015-07-23 12:43:28 +02:00
67ed4e0570 overview: Remove unused variable 2015-07-23 12:42:45 +02:00
8a15178557 Update Aragonese translation 2015-07-23 12:16:58 +02:00
f3ecfab378 windowManager: Add TouchpadWorkspaceSwitchAction
This object (not really a Clutter.GestureAction) sets up a captured-event
handler, which exclusively looks for 4 finger touchpad swipes, emitting
an ::activated signal under the same terms than WorkspaceSwitchAction.

https://bugzilla.gnome.org/show_bug.cgi?id=752250
2015-07-22 21:19:51 +02:00
804563d5b2 windowManager: refactor WorkspaceSwitchAction callback into separate function
This will be used by the touchpad-specific "action" too, so put it in a
shared place.

https://bugzilla.gnome.org/show_bug.cgi?id=752250
2015-07-22 21:19:33 +02:00
c3e5d983b9 st: Replace deprecated key symbols 2015-07-22 16:00:56 +02:00
d21edcfed5 st: Replace deprecated macros 2015-07-22 16:00:55 +02:00
9b69a45eee Update gvc submodule to the latest commit from master
This avoids unnecessary calls to match_card_port_with_existing_device()
when connecting to a bluetooth device from the shell's top panel.

https://bugzilla.gnome.org/show_bug.cgi?id=752675
2015-07-21 16:11:01 +01:00
7424ee755a shell-app: Stay consistent about application states
When the last interesting window of an app-backed window is removed,
we'll transition it back to STOPPED, but we transition the state and
send out the signal before we clear the running state.

This means that any listeners to the state-changed signal might
encounter a window-backed app that has a running state, but no
windows. If they call, e.g. shell_app_get_name, while in this state,
they'll encounter an assertion fail.
2015-07-16 17:09:39 -07:00
ff664fd1d8 shell-app: Track the starting state correctly
Apps that are starting might have uninteresting windows like splash
screens pop up and then go away (like LibreOffice), even when
startup-notification hasn't completed yet. In those cases, we don't
want to transition the app back to stopped -- it should remain in
the running state.
2015-07-16 15:21:57 -07:00
fd3f03580d gdm: unconditionally cancel auth user verifier on reset
We currently only cancel the user verifier on reset if
verifying, but that means we don't properly cancel it when
asking for a username at the Not Listed screen.

The object already handles getting called when there is
nothing to cancel, so just cancel it unconditionally.

https://bugzilla.gnome.org/show_bug.cgi?id=752438
2015-07-16 09:41:39 -04:00
a09150846a Updated Hebrew translation 2015-07-16 13:29:05 +03:00
f2a9c55637 Fix translator comment
https://bugzilla.gnome.org/show_bug.cgi?id=659969
2015-07-15 22:43:23 +02:00
eaa3f83e46 Add translator comment
https://bugzilla.gnome.org/show_bug.cgi?id=659969
2015-07-15 12:37:37 +02:00
e786cc1454 Updated Spanish translation 2015-07-13 10:35:40 +02:00
cd0c632fcb theme: make app icons less fuzzy
- force 16x16px
- re-render SASS brings in some changes from
  gnome-shell-sass

https://bugzilla.gnome.org/show_bug.cgi?id=747932
2015-07-08 18:09:46 +02:00
d5f248cb82 Updated Slovenian translation 2015-07-08 15:47:02 +02:00
6a800abe06 Updated Friulian translation 2015-07-06 13:13:04 +00:00
112 changed files with 17682 additions and 12042 deletions

96
NEWS
View File

@ -1,3 +1,99 @@
3.18.1
======
* Fix screen freezes when a notification is pushed [Carlos; #755425]
* Fix overzealous ellipsization in system status menu [Adel, Florian; #708472]
* Hide app menu when disabled by setting [Florian; #745919]
* Fix lightbox effect when animations are disabled [Rui; #755827]
* Do not mark hotplug notifications as critical [Florian; #657923]
* Fix icons getting cut off in dash [Florian; #745649]
* Animate fullscreen/unfullscreen operations [Cosimo; #707248]
* Misc. bug fixes [Florian, Owen; #748919, #674799, #754581]
Contributors:
Emmanuele Bassi, Michael Catanzaro, Cosimo Cecchi, Matthias Clasen,
Adel Gadllah, Carlos Garnacho, Ekaterina Gerasimova, Rui Matos,
Florian Müllner, Owen W. Taylor
Translations:
Марко Костић [sr], Милош Поповић [sr@latin], Khaled Hosny [ar],
Trần Ngọc Quân [vi], Petr Kovar [cs], Alexandre Franke [fr],
Fran Dieguez [gl], Anders Jonsson [sv], Piotr Drąg [pl], Dušan Kazik [sk],
Milo Casagrande [it], Changwoo Ryu [ko], Stas Solovey [ru],
Rafael Fontenelle [pt_BR], Tom Tryfonidis [el], Aurimas Černius [lt],
Seán de Búrca [ga], Christian Kirbach [de], Jiri Grönroos [fi],
Pedro Albuquerque [pt], Baurzhan Muftakhidinov [kk], Daniel Mustieles [es],
Marek Černocký [cs], Ask Hjorth Larsen [da], Inaki Larranaga Murgoitio [eu]
3.18.0
======
Translations:
Sendy Aditya Suryana [id], Kris Thomsen [da], Seán de Búrca [ga],
Andika Triwidada [id], Enrico Nicoletto [pt_BR], Anders Jonsson [sv],
Rūdolfs Mazurs [lv]
3.17.92
=======
* Fix race when loading multiple background animations [Josselin; #741453]
Contributors:
Michael Biebl, Josselin Mouette, Florian Müllner
Translations:
Baurzhan Muftakhidinov [kk], Changwoo Ryu [ko], Christian Kirbach [de],
Kjartan Maraas [nb], Jiri Grönroos [fi], Arash Mousavi [fa],
Jiro Matsuzawa [ja], Marek Černocký [cs], Milo Casagrande [it]
3.17.91
=======
* Fix login screen spinner causing wakeups while VT-switched away
[Ray, Rui; #753891]
* Fix scrolling of user list on login screen [Florian; #754525]
Contributors:
Piotr Drąg, Rui Matos, Florian Müllner, Ray Strode
Translations:
Dušan Kazik [sk], Jordi Mas [ca], Aurimas Černius [lt], Stas Solovey [ru],
Piotr Drąg [pl], Pedro Albuquerque [pt], Daniel Mustieles [es],
Chao-Hsiung Liao [zh_TW], Muhammet Kara [tr], Fran Dieguez [gl],
Hannie Dumoleyn [nl], Yosef Or Boczko [he], Tom Tryfonidis [el],
A S Alam [pa], Balázs Úr [hu], Alexandre Franke [fr], Frédéric Péters [fr]
3.17.90
=======
* Avoid caret/focus viewport changes during pointer movement [Rui; #752138]
* Match GTK+'s modal dialogs for system modal dialogs [Carlos; #746108]
* Refine message list style [Florian; #749958]
* Fix type-ahead behavior for backspace and compose key [Rui; #753319, #753320]
* Refine the system status menu [Florian; #751377]
* Misc. bug fixes and cleanups [Bastien, Ray, Florian, Jakub; #752779, #752739,
#741366, #651503, #753064, #753181, #752881]
Contributors:
Rui Matos, Florian Müllner, Bastien Nocera, Carlos Soriano, Jakub Steiner,
Ray Strode, Rico Tzschichholz
Translations:
Marek Černocký [cs], Kjartan Maraas [nb], Jordi Mas [ca], Muhammet Kara [tr],
Enrico Nicoletto [pt_BR]
3.17.4
======
* Fix fuzziness of app menu icon [Jakub; #747932]
* Implement 4 finger swipe gesture for touchpads [Carlos; #752250]
* Misc. bug fixes [Florian, Alexandre, Piotr, Ray, Mario; #751921, #659969,
#752438, #752675]
Contributors:
Piotr Drąg, Alexandre Franke, Carlos Garnacho, Florian Müllner,
Mario Sanchez Prada, Jakub Steiner, Jasper St. Pierre, Ray Strode
Translations:
Benjamin Steinwender [de], Pedro Albuquerque [pt], Fabio Tomat [fur],
Matej Urbančič [sl], Daniel Mustieles [es], Yosef Or Boczko [he],
Daniel Martinez [an]
3.17.3
======
* Handle touch events in OSK on wayland [Rui; #750287]

View File

@ -282,6 +282,14 @@ on_shell_signal (GDBusProxy *proxy,
{
PluginObject *obj = user_data;
/* FIXME: We have half a dozen bug reports in which this function crashes in
* WebKit due to a null NPObject. This should never happen, but since it is
* happening, let's turn the crash into a critical.
*
* https://bugzilla.gnome.org/show_bug.cgi?id=737932
*/
g_return_if_fail (obj->instance);
if (strcmp (signal_name, "ExtensionStatusChanged") == 0)
{
gchar *uuid;
@ -312,6 +320,12 @@ on_shell_appeared (GDBusConnection *connection,
{
PluginObject *obj = (PluginObject*) user_data;
/* FIXME: Not sure if this is ever hit or not, but let's play it safe.
*
* https://bugzilla.gnome.org/show_bug.cgi?id=737932
*/
g_return_if_fail (obj->instance);
if (obj->restart_listener)
{
NPVariant result = { NPVariantType_Void };

View File

@ -1,5 +1,6 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.17.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.18.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
@ -74,13 +75,13 @@ AS_IF([test x$enable_systemd != xno], [
AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.21.5
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.17.3
MUTTER_MIN_VERSION=3.18.1
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3
LIBEDATASERVER_MIN_VERSION=3.13.90
LIBEDATASERVER_MIN_VERSION=3.17.2
TELEPATHY_GLIB_MIN_VERSION=0.17.5
POLKIT_MIN_VERSION=0.100
STARTUP_NOTIFICATION_MIN_VERSION=0.11
@ -220,7 +221,7 @@ if test "$enable_man" != no; then
fi
AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
GNOME_COMPILE_WARNINGS([error])
AX_COMPILER_FLAGS()
case "$WARN_CFLAGS" in
*-Werror*)
WARN_CFLAGS="$WARN_CFLAGS -Wno-error=deprecated-declarations"
@ -269,7 +270,7 @@ Build configuration:
Prefix: ${prefix}
Source code location: ${srcdir}
Compiler: ${CC}
Compiler Warnings: $enable_compile_warnings
Compiler Warnings: $ax_enable_compile_warnings
Support for NetworkManager: $have_networkmanager
Support for GStreamer recording: $build_recorder

View File

@ -51,6 +51,7 @@
</key>
<key name="looking-glass-history" type="as">
<default>[]</default>
<!-- Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass -->
<_summary>History for the looking glass dialog</_summary>
</key>
<key name="always-show-log-out" type="b">

View File

@ -37,10 +37,9 @@ stage {
icon-shadow: 0 1px black; }
.button:focus {
color: #eeeeec;
border-color: #215d9c;
box-shadow: inset 0 1px #454f52;
text-shadow: 0 1px black;
icon-shadow: 0 1px black; }
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px #215d9c; }
.button:insensitive {
color: #7f7f7f;
border-color: rgba(0, 0, 0, 0.7);
@ -52,9 +51,46 @@ stage {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.modal-dialog-linked-button {
border-right-width: 1px;
color: #eeeeec;
background-color: #2e3436;
border-color: rgba(0, 0, 0, 0.7);
box-shadow: inset 0 1px #454f52;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
padding: 12px; }
.modal-dialog-linked-button:insensitive {
color: #7f7f7f;
border-color: rgba(0, 0, 0, 0.7);
background-color: rgba(62, 67, 68, 0.7);
box-shadow: none;
text-shadow: none;
icon-shadow: none; }
.modal-dialog-linked-button:active {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.modal-dialog-linked-button:focus {
color: #eeeeec;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px #215d9c; }
.modal-dialog-linked-button:first-child {
border-radius: 0px 0px 0px 6px; }
.modal-dialog-linked-button:last-child {
border-right-width: 0px;
border-radius: 0px 0px 6px 0px; }
.modal-dialog-linked-button:first-child:last-child {
border-right-width: 0px;
border-radius: 0px 0px 6px 6px; }
/* Entries */
StEntry {
@ -95,10 +131,10 @@ StScrollBar {
background-color: transparent; }
StScrollBar StButton#vhandle, StScrollBar StButton#hhandle {
border-radius: 8px;
background-color: #000;
background-color: #999999;
margin: 3px; }
StScrollBar StButton#vhandle:hover, StScrollBar StButton#hhandle:hover {
background-color: #1a1a1a; }
background-color: #cccccc; }
StScrollBar StButton#vhandle:active, StScrollBar StButton#hhandle:active {
background-color: #215d9c; }
@ -160,11 +196,12 @@ StScrollBar {
background-color: white; }
.modal-dialog {
border-radius: 5px;
border-radius: 9px;
color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95);
border: 3px solid rgba(238, 238, 236, 0.5);
padding: 24px; }
border: 3px solid rgba(238, 238, 236, 0.5); }
.modal-dialog .modal-dialog-content-box {
padding: 24px; }
.modal-dialog .run-dialog-entry {
width: 20em;
margin-bottom: 6px; }
@ -179,10 +216,6 @@ StScrollBar {
color: #d6d6d1;
padding-bottom: .4em; }
.button-dialog-button-box {
spacing: 18px;
padding-top: 48px; }
.show-processes-dialog-subject,
.mount-question-dialog-subject,
.end-session-dialog-subject {
@ -375,9 +408,9 @@ StScrollBar {
spacing-rows: 15px;
spacing-columns: 1em; }
/* Popvers/Menus */
/* Popovers/Menus */
.popup-menu {
min-width: 200px; }
min-width: 15em; }
.popup-menu .popup-sub-menu {
background-color: black;
box-shadow: inset 0 -1px 0px #0d0d0d; }
@ -411,7 +444,7 @@ StScrollBar {
.popup-menu-ornament {
text-align: right;
width: 1em; }
width: 1.2em; }
.popup-menu-boxpointer,
.candidate-popup-boxpointer {
@ -719,7 +752,7 @@ StScrollBar {
/* Message list */
.message-list {
width: 420px; }
width: 31.5em; }
.message-list-sections {
spacing: 1.5em; }
@ -754,7 +787,12 @@ StScrollBar {
padding: 8px 8px 8px 0px; }
.message-icon-bin > StIcon {
icon-size: 48px; }
icon-size: 32px; }
.message-secondary-bin:ltr {
padding-left: 8px; }
.message-secondary-bin:rtl {
padding-right: 8px; }
.message-secondary-bin {
color: #999999; }
@ -763,14 +801,20 @@ StScrollBar {
icon-size: 16px; }
.message-title {
font-weight: bold; }
font-weight: bold;
font-size: 1.1em; }
.message-content {
padding: 8px; }
padding: 8px;
font-size: .9em; }
.system-switch-user-submenu-icon {
icon-size: 24px;
border: 1px solid rgba(255, 255, 255, 0.4); }
.system-switch-user-submenu-icon.user-icon {
icon-size: 20px;
padding: 0 2px; }
.system-switch-user-submenu-icon.default-icon {
icon-size: 16px;
padding: 0 4px; }
#appMenu {
spinner-image: url("resource:///org/gnome/shell/theme/process-working.svg");
@ -779,7 +823,7 @@ StScrollBar {
color: transparent; }
.aggregate-menu {
width: 360px; }
min-width: 21em; }
.aggregate-menu .popup-menu-icon {
padding: 0 4px; }
@ -834,7 +878,8 @@ StScrollBar {
min-width: 470px; }
.nm-dialog-content {
spacing: 20px; }
spacing: 20px;
padding: 24px; }
.nm-dialog-header-hbox {
spacing: 10px; }
@ -1016,7 +1061,7 @@ StScrollBar {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: none;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.app-view-control:first-child {
@ -1335,10 +1380,9 @@ StScrollBar {
color: white; }
.keyboard-key:focus {
color: #eeeeec;
border-color: #215d9c;
box-shadow: inset 0 1px #454f52;
text-shadow: 0 1px black;
icon-shadow: 0 1px black; }
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px #215d9c; }
.keyboard-key:hover, .keyboard-key:checked {
color: white;
border-color: rgba(0, 0, 0, 0.7);
@ -1350,7 +1394,7 @@ StScrollBar {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: none;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.keyboard-key:grayed {
@ -1443,7 +1487,7 @@ StScrollBar {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #1c5187;
box-shadow: none;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.login-dialog .modal-dialog-button:default:insensitive {

View File

@ -37,10 +37,9 @@ stage {
icon-shadow: 0 1px black; }
.button:focus {
color: #eeeeec;
border-color: #215d9c;
box-shadow: inset 0 1px #454f52;
text-shadow: 0 1px black;
icon-shadow: 0 1px black; }
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px #215d9c; }
.button:insensitive {
color: #939695;
border-color: rgba(0, 0, 0, 0.7);
@ -52,9 +51,46 @@ stage {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.modal-dialog-linked-button {
border-right-width: 1px;
color: #eeeeec;
background-color: #2e3436;
border-color: rgba(0, 0, 0, 0.7);
box-shadow: inset 0 1px #454f52;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
padding: 12px; }
.modal-dialog-linked-button:insensitive {
color: #939695;
border-color: rgba(0, 0, 0, 0.7);
background-color: rgba(66, 71, 73, 0.7);
box-shadow: none;
text-shadow: none;
icon-shadow: none; }
.modal-dialog-linked-button:active {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.modal-dialog-linked-button:focus {
color: #eeeeec;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px #215d9c; }
.modal-dialog-linked-button:first-child {
border-radius: 0px 0px 0px 6px; }
.modal-dialog-linked-button:last-child {
border-right-width: 0px;
border-radius: 0px 0px 6px 0px; }
.modal-dialog-linked-button:first-child:last-child {
border-right-width: 0px;
border-radius: 0px 0px 6px 6px; }
/* Entries */
StEntry {
@ -95,10 +131,10 @@ StScrollBar {
background-color: transparent; }
StScrollBar StButton#vhandle, StScrollBar StButton#hhandle {
border-radius: 8px;
background-color: #393f3f;
background-color: #a5a8a6;
margin: 3px; }
StScrollBar StButton#vhandle:hover, StScrollBar StButton#hhandle:hover {
background-color: #515a5a; }
background-color: #c9cbc9; }
StScrollBar StButton#vhandle:active, StScrollBar StButton#hhandle:active {
background-color: #215d9c; }
@ -160,11 +196,12 @@ StScrollBar {
background-color: white; }
.modal-dialog {
border-radius: 5px;
border-radius: 9px;
color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95);
border: 3px solid rgba(238, 238, 236, 0.5);
padding: 24px; }
border: 3px solid rgba(238, 238, 236, 0.5); }
.modal-dialog .modal-dialog-content-box {
padding: 24px; }
.modal-dialog .run-dialog-entry {
width: 20em;
margin-bottom: 6px; }
@ -179,10 +216,6 @@ StScrollBar {
color: #d6d6d1;
padding-bottom: .4em; }
.button-dialog-button-box {
spacing: 18px;
padding-top: 48px; }
.show-processes-dialog-subject,
.mount-question-dialog-subject,
.end-session-dialog-subject {
@ -375,9 +408,9 @@ StScrollBar {
spacing-rows: 15px;
spacing-columns: 1em; }
/* Popvers/Menus */
/* Popovers/Menus */
.popup-menu {
min-width: 200px; }
min-width: 15em; }
.popup-menu .popup-sub-menu {
background-color: #343a3a;
box-shadow: inset 0 -1px 0px #282c2c; }
@ -411,7 +444,7 @@ StScrollBar {
.popup-menu-ornament {
text-align: right;
width: 1em; }
width: 1.2em; }
.popup-menu-boxpointer,
.candidate-popup-boxpointer {
@ -719,7 +752,7 @@ StScrollBar {
/* Message list */
.message-list {
width: 420px; }
width: 31.5em; }
.message-list-sections {
spacing: 1.5em; }
@ -754,7 +787,12 @@ StScrollBar {
padding: 8px 8px 8px 0px; }
.message-icon-bin > StIcon {
icon-size: 48px; }
icon-size: 32px; }
.message-secondary-bin:ltr {
padding-left: 8px; }
.message-secondary-bin:rtl {
padding-right: 8px; }
.message-secondary-bin {
color: #8e8e80; }
@ -763,14 +801,20 @@ StScrollBar {
icon-size: 16px; }
.message-title {
font-weight: bold; }
font-weight: bold;
font-size: 1.1em; }
.message-content {
padding: 8px; }
padding: 8px;
font-size: .9em; }
.system-switch-user-submenu-icon {
icon-size: 24px;
border: 1px solid rgba(238, 238, 236, 0.4); }
.system-switch-user-submenu-icon.user-icon {
icon-size: 20px;
padding: 0 2px; }
.system-switch-user-submenu-icon.default-icon {
icon-size: 16px;
padding: 0 4px; }
#appMenu {
spinner-image: url("resource:///org/gnome/shell/theme/process-working.svg");
@ -779,7 +823,7 @@ StScrollBar {
color: transparent; }
.aggregate-menu {
width: 360px; }
min-width: 21em; }
.aggregate-menu .popup-menu-icon {
padding: 0 4px; }
@ -834,7 +878,8 @@ StScrollBar {
min-width: 470px; }
.nm-dialog-content {
spacing: 20px; }
spacing: 20px;
padding: 24px; }
.nm-dialog-header-hbox {
spacing: 10px; }
@ -1016,7 +1061,7 @@ StScrollBar {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: none;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.app-view-control:first-child {
@ -1335,10 +1380,9 @@ StScrollBar {
color: white; }
.keyboard-key:focus {
color: #eeeeec;
border-color: #215d9c;
box-shadow: inset 0 1px #454f52;
text-shadow: 0 1px black;
icon-shadow: 0 1px black; }
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px #215d9c; }
.keyboard-key:hover, .keyboard-key:checked {
color: white;
border-color: rgba(0, 0, 0, 0.7);
@ -1350,7 +1394,7 @@ StScrollBar {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #222728;
box-shadow: none;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.keyboard-key:grayed {
@ -1443,7 +1487,7 @@ StScrollBar {
color: white;
border-color: rgba(0, 0, 0, 0.7);
background-color: #1c5187;
box-shadow: none;
box-shadow: inset 0 0 black;
text-shadow: none;
icon-shadow: none; }
.login-dialog .modal-dialog-button:default:insensitive {

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View File

@ -14,7 +14,7 @@ const ShellEntry = imports.ui.shellEntry;
const Tweener = imports.ui.tweener;
const UserWidget = imports.ui.userWidget;
const DEFAULT_BUTTON_WELL_ICON_SIZE = 24;
const DEFAULT_BUTTON_WELL_ICON_SIZE = 16;
const DEFAULT_BUTTON_WELL_ANIMATION_DELAY = 1.0;
const DEFAULT_BUTTON_WELL_ANIMATION_TIME = 0.3;
@ -258,6 +258,7 @@ const AuthPrompt = new Lang.Class({
},
_onVerificationComplete: function() {
this.setActorInDefaultButtonWell(null);
this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
this.cancelButton.reactive = false;
},
@ -281,6 +282,12 @@ const AuthPrompt = new Lang.Class({
if (oldActor)
Tweener.removeTweens(oldActor);
let wasSpinner;
if (oldActor == this._spinner.actor)
wasSpinner = true;
else
wasSpinner = false;
let isSpinner;
if (actor == this._spinner.actor)
isSpinner = true;
@ -290,6 +297,11 @@ const AuthPrompt = new Lang.Class({
if (this._defaultButtonWellActor != actor && oldActor) {
if (!animate) {
oldActor.opacity = 0;
if (wasSpinner) {
if (this._spinner)
this._spinner.stop();
}
} else {
Tweener.addTween(oldActor,
{ opacity: 0,
@ -298,7 +310,7 @@ const AuthPrompt = new Lang.Class({
transition: 'linear',
onCompleteScope: this,
onComplete: function() {
if (isSpinner) {
if (wasSpinner) {
if (this._spinner)
this._spinner.stop();
}
@ -401,7 +413,7 @@ const AuthPrompt = new Lang.Class({
},
updateSensitivity: function(sensitive) {
this._updateNextButtonSensitivity(sensitive);
this._updateNextButtonSensitivity(sensitive && this._entry.text.length > 0);
this._entry.reactive = sensitive;
this._entry.clutter_text.editable = sensitive;
},
@ -432,8 +444,9 @@ const AuthPrompt = new Lang.Class({
let oldStatus = this.verificationStatus;
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
this.cancelButton.reactive = true;
this.nextButton.label = _("Next");
if (oldStatus == AuthPromptStatus.VERIFYING)
if (this._userVerifier)
this._userVerifier.cancel();
this._queryingService = null;
@ -488,6 +501,7 @@ const AuthPrompt = new Lang.Class({
finish: function(onComplete) {
if (!this._userVerifier.hasPendingMessages) {
this._userVerifier.clear();
onComplete();
return;
}
@ -495,12 +509,13 @@ const AuthPrompt = new Lang.Class({
let signalId = this._userVerifier.connect('no-more-messages',
Lang.bind(this, function() {
this._userVerifier.disconnect(signalId);
this._userVerifier.clear();
onComplete();
}));
},
cancel: function() {
if (this.verificationStatus == AuthPromptStatus.NOT_VERIFYING || this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED) {
if (this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED) {
return;
}
this.reset();

View File

@ -16,6 +16,34 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* In order for transformation animations to look good, they need to be
* incremental and have some order to them (e.g., fade out hidden items,
* then shrink to close the void left over). Chaining animations in this way can
* be error-prone and wordy using just Tweener callbacks.
*
* The classes in this file help with this:
*
* - Task. encapsulates schedulable work to be run in a specific scope.
*
* - ConsecutiveBatch. runs a series of tasks in order and completes
* when the last in the series finishes.
*
* - ConcurrentBatch. runs a set of tasks at the same time and completes
* when the last to finish completes.
*
* - Hold. prevents a batch from completing the pending task until
* the hold is released.
*
* The tasks associated with a batch are specified in a list at batch
* construction time as either task objects or plain functions.
* Batches are task objects, themselves, so they can be nested.
*
* These classes aren't specific to GDM, but were found to be unintuitive and so
* are not used elsewhere. These APIs may ultimately get dropped entirely and
* replaced by something else.
*/
const Lang = imports.lang;
const Signals = imports.signals;

View File

@ -535,6 +535,9 @@ const LoginDialog = new Lang.Class({
let centerX = dialogBox.x1 + (dialogBox.x2 - dialogBox.x1) / 2;
let centerY = dialogBox.y1 + (dialogBox.y2 - dialogBox.y1) / 2;
natWidth = Math.min(natWidth, dialogBox.x2 - dialogBox.x1);
natHeight = Math.min(natHeight, dialogBox.y2 - dialogBox.y1);
actorBox.x1 = Math.floor(centerX - natWidth / 2);
actorBox.y1 = Math.floor(centerY - natHeight / 2);
actorBox.x2 = actorBox.x1 + natWidth;
@ -874,7 +877,7 @@ const LoginDialog = new Lang.Class({
},
_loginScreenSessionActivated: function() {
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFICATION_SUCCEEDED)
if (this.actor.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
return;
Tweener.addTween(this.actor,
@ -891,7 +894,8 @@ const LoginDialog = new Lang.Class({
},
onUpdateScope: this,
onComplete: function() {
this._authPrompt.reset();
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
this._authPrompt.reset();
},
onCompleteScope: this });
},

View File

@ -448,8 +448,6 @@ const AppSwitcher = new Lang.Class({
});
if (appIcon.cachedWindows.length > 0)
this._addIcon(appIcon);
else if (workspace == null)
throw new Error('%s appears to be running, but doesn\'t have any windows'.format(appIcon.app.get_name()));
}
this._curApp = -1;

View File

@ -7,7 +7,7 @@ const St = imports.gi.St;
const Signals = imports.signals;
const Atk = imports.gi.Atk;
const ANIMATED_ICON_UPDATE_TIMEOUT = 100;
const ANIMATED_ICON_UPDATE_TIMEOUT = 14;
const Animation = new Lang.Class({
Name: 'Animation',

View File

@ -500,6 +500,11 @@ const AllView = new Lang.Class({
_loadApps: function() {
let apps = Gio.AppInfo.get_all().filter(function(appInfo) {
try {
let id = appInfo.get_id(); // catch invalid file encodings
} catch(e) {
return false;
}
return appInfo.should_show();
}).map(function(app) {
return app.get_id();
@ -1061,7 +1066,7 @@ const AppSearchProvider = new Lang.Class({
getInitialResultSet: function(terms, callback, cancellable) {
let query = terms.join(' ');
let groups = Gio.DesktopAppInfo.search(query);
let groups = Shell.AppSystem.search(query);
let usage = Shell.AppUsage.get_default();
let results = [];
groups.forEach(function(group) {
@ -1290,7 +1295,10 @@ const FolderIcon = new Lang.Class({
if (!_listsIntersect(folderCategories, appCategories))
return;
addAppId(appInfo.get_id());
try {
addAppId(appInfo.get_id()); // catch invalid file encodings
} catch(e) {
}
});
this.actor.visible = this.view.getAllItems().length > 0;

View File

@ -144,6 +144,7 @@ const BackgroundCache = new Lang.Class({
this._pendingFileLoads = [];
this._fileMonitors = {};
this._backgroundSources = {};
this._animations = {};
},
monitorFile: function(file) {
@ -162,12 +163,13 @@ const BackgroundCache = new Lang.Class({
getAnimation: function(params) {
params = Params.parse(params, { file: null,
settingsSchema: null,
onLoaded: null });
if (_fileEqual0(this._animationFile, params.file)) {
if (this._animations[params.settingsSchema] && _fileEqual0(this._animationFile, params.file)) {
if (params.onLoaded) {
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() {
params.onLoaded(this._animation);
params.onLoaded(this._animations[params.settingsSchema]);
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
@ -178,12 +180,11 @@ const BackgroundCache = new Lang.Class({
let animation = new Animation({ file: params.file });
animation.load(Lang.bind(this, function() {
this._animationFile = params.file;
this._animation = animation;
this._animations[params.settingsSchema] = animation;
if (params.onLoaded) {
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() {
params.onLoaded(this._animation);
params.onLoaded(this._animations[params.settingsSchema]);
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
@ -403,17 +404,18 @@ const Background = new Lang.Class({
_loadAnimation: function(file) {
this._cache.getAnimation({ file: file,
onLoaded: Lang.bind(this, function(animation) {
this._animation = animation;
settingsSchema: this._settings.schema_id,
onLoaded: Lang.bind(this, function(animation) {
this._animation = animation;
if (!this._animation || this._cancellable.is_cancelled()) {
this._setLoaded();
return;
}
if (!this._animation || this._cancellable.is_cancelled()) {
this._setLoaded();
return;
}
this._updateAnimation();
this._watchFile(file);
})
this._updateAnimation();
this._watchFile(file);
})
});
},

View File

@ -24,6 +24,8 @@ const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
const SHOW_WEEKDATE_KEY = 'show-weekdate';
const ELLIPSIS_CHAR = '\u2026';
const MESSAGE_ICON_SIZE = 32;
const MESSAGE_ANIMATION_TIME = 0.1;
const DEFAULT_EXPAND_LINES = 6;
@ -976,7 +978,6 @@ const Message = new Lang.Class({
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
y_expand: true,
visible: false });
this._iconBin.set_y_align(Clutter.ActorAlign.START);
hbox.add_actor(this._iconBin);
let contentBox = new St.BoxLayout({ style_class: 'message-content',
@ -1229,7 +1230,7 @@ const NotificationMessage = new Lang.Class({
this._closed = true;
this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
}));
notification.connect('destroy', Lang.bind(this,
this._destroyId = notification.connect('destroy', Lang.bind(this,
function() {
if (!this._closed)
this.close();
@ -1240,9 +1241,10 @@ const NotificationMessage = new Lang.Class({
_getIcon: function() {
if (this.notification.gicon)
return new St.Icon({ gicon: this.notification.gicon, icon_size: 48 });
return new St.Icon({ gicon: this.notification.gicon,
icon_size: MESSAGE_ICON_SIZE });
else
return this.notification.source.createIcon(48);
return this.notification.source.createIcon(MESSAGE_ICON_SIZE);
},
_onUpdated: function(n, clear) {
@ -1260,6 +1262,10 @@ const NotificationMessage = new Lang.Class({
if (this._updatedId)
this.notification.disconnect(this._updatedId);
this._updatedId = 0;
if (this._destroyId)
this.notification.disconnect(this._destroyId);
this._destroyId = 0;
}
});

View File

@ -325,9 +325,6 @@ const AutorunNotification = new Lang.Class({
this._manager = manager;
this._mount = source.mount;
// set the notification to urgent, so that it expands out
this.setUrgency(MessageTray.Urgency.CRITICAL);
},
createBanner: function() {

View File

@ -9,9 +9,15 @@ const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Gcr = imports.gi.Gcr;
const Animation = imports.ui.animation;
const ModalDialog = imports.ui.modalDialog;
const ShellEntry = imports.ui.shellEntry;
const CheckBox = imports.ui.checkBox;
const Tweener = imports.ui.tweener;
const WORK_SPINNER_ICON_SIZE = 16;
const WORK_SPINNER_ANIMATION_DELAY = 1.0;
const WORK_SPINNER_ANIMATION_TIME = 0.3;
const KeyringDialog = new Lang.Class({
Name: 'KeyringDialog',
@ -58,27 +64,47 @@ const KeyringDialog = new Lang.Class({
{ y_fill: true,
y_align: St.Align.START });
this._workSpinner = null;
this._controlTable = null;
this._cancelButton = this.addButton({ label: '',
action: Lang.bind(this, this._onCancelButton),
key: Clutter.Escape },
{ expand: true, x_fill: false, x_align: St.Align.START });
this.placeSpinner({ expand: false,
x_fill: false,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.MIDDLE });
key: Clutter.Escape });
this._continueButton = this.addButton({ label: '',
action: Lang.bind(this, this._onContinueButton),
default: true },
{ expand: false, x_fill: false, x_align: St.Align.END });
default: true });
this.prompt.bind_property('cancel-label', this._cancelButton, 'label', GObject.BindingFlags.SYNC_CREATE);
this.prompt.bind_property('continue-label', this._continueButton, 'label', GObject.BindingFlags.SYNC_CREATE);
},
_setWorking: function(working) {
if (!this._workSpinner)
return;
Tweener.removeTweens(this._workSpinner.actor);
if (working) {
this._workSpinner.play();
Tweener.addTween(this._workSpinner.actor,
{ opacity: 255,
delay: WORK_SPINNER_ANIMATION_DELAY,
time: WORK_SPINNER_ANIMATION_TIME,
transition: 'linear'
});
} else {
Tweener.addTween(this._workSpinner.actor,
{ opacity: 0,
time: WORK_SPINNER_ANIMATION_TIME,
transition: 'linear',
onCompleteScope: this,
onComplete: function() {
if (this._workSpinner)
this._workSpinner.stop();
}
});
}
},
_buildControlTable: function() {
let layout = new Clutter.GridLayout({ orientation: Clutter.Orientation.VERTICAL });
let table = new St.Widget({ style_class: 'keyring-dialog-control-table',
@ -101,15 +127,22 @@ const KeyringDialog = new Lang.Class({
ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true });
this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onPasswordActivate));
let spinnerIcon = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg');
this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
this._workSpinner.actor.opacity = 0;
if (rtl) {
layout.attach(this._passwordEntry, 0, row, 1, 1);
layout.attach(label, 1, row, 1, 1);
layout.attach(this._workSpinner.actor, 0, row, 1, 1);
layout.attach(this._passwordEntry, 1, row, 1, 1);
layout.attach(label, 2, row, 1, 1);
} else {
layout.attach(label, 0, row, 1, 1);
layout.attach(this._passwordEntry, 1, row, 1, 1);
layout.attach(this._workSpinner.actor, 2, row, 1, 1);
}
row++;
} else {
this._workSpinner = null;
this._passwordEntry = null;
}
@ -178,7 +211,7 @@ const KeyringDialog = new Lang.Class({
this._continueButton.can_focus = sensitive;
this._continueButton.reactive = sensitive;
this.setWorking(!sensitive);
this._setWorking(!sensitive);
},
_ensureOpen: function() {

View File

@ -13,13 +13,19 @@ const Mainloop = imports.mainloop;
const Polkit = imports.gi.Polkit;
const PolkitAgent = imports.gi.PolkitAgent;
const Animation = imports.ui.animation;
const Components = imports.ui.components;
const ModalDialog = imports.ui.modalDialog;
const ShellEntry = imports.ui.shellEntry;
const UserWidget = imports.ui.userWidget;
const Tweener = imports.ui.tweener;
const DIALOG_ICON_SIZE = 48;
const WORK_SPINNER_ICON_SIZE = 16;
const WORK_SPINNER_ANIMATION_DELAY = 1.0;
const WORK_SPINNER_ANIMATION_TIME = 0.3;
const AuthenticationDialog = new Lang.Class({
Name: 'AuthenticationDialog',
Extends: ModalDialog.ModalDialog,
@ -136,6 +142,13 @@ const AuthenticationDialog = new Lang.Class({
this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onEntryActivate));
this._passwordBox.add(this._passwordEntry,
{ expand: true });
let spinnerIcon = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg');
this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
this._workSpinner.actor.opacity = 0;
this._passwordBox.add(this._workSpinner.actor);
this.setInitialKeyFocus(this._passwordEntry);
this._passwordBox.hide();
@ -165,17 +178,10 @@ const AuthenticationDialog = new Lang.Class({
this._cancelButton = this.addButton({ label: _("Cancel"),
action: Lang.bind(this, this.cancel),
key: Clutter.Escape },
{ expand: true, x_fill: false, x_align: St.Align.START });
this.placeSpinner({ expand: false,
x_fill: false,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.MIDDLE });
key: Clutter.Escape });
this._okButton = this.addButton({ label: _("Authenticate"),
action: Lang.bind(this, this._onAuthenticateButtonPressed),
default: true },
{ expand: false, x_fill: false, x_align: St.Align.END });
default: true });
this._doneEmitted = false;
@ -183,6 +189,30 @@ const AuthenticationDialog = new Lang.Class({
this._cookie = cookie;
},
_setWorking: function(working) {
Tweener.removeTweens(this._workSpinner.actor);
if (working) {
this._workSpinner.play();
Tweener.addTween(this._workSpinner.actor,
{ opacity: 255,
delay: WORK_SPINNER_ANIMATION_DELAY,
time: WORK_SPINNER_ANIMATION_TIME,
transition: 'linear'
});
} else {
Tweener.addTween(this._workSpinner.actor,
{ opacity: 0,
time: WORK_SPINNER_ANIMATION_TIME,
transition: 'linear',
onCompleteScope: this,
onComplete: function() {
if (this._workSpinner)
this._workSpinner.stop();
}
});
}
},
performAuthentication: function() {
this.destroySession();
this._session = new PolkitAgent.Session({ identity: this._identityToAuth,
@ -229,7 +259,7 @@ const AuthenticationDialog = new Lang.Class({
this._okButton.can_focus = sensitive;
this._okButton.reactive = sensitive;
this.setWorking(!sensitive);
this._setWorking(!sensitive);
},
_onEntryActivate: function() {

View File

@ -303,6 +303,8 @@ const ChatSource = new Lang.Class({
},
_createPolicy: function() {
if (this._account.protocol_name == 'irc')
return new MessageTray.NotificationApplicationPolicy('org.gnome.Polari');
return new MessageTray.NotificationApplicationPolicy('empathy');
},

View File

@ -644,15 +644,14 @@ const Dash = new Lang.Class({
let firstIcon = firstButton._delegate.icon;
let minHeight, natHeight;
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
// Enforce the current icon size during the size request
firstIcon.setIconSize(this.iconSize);
firstIcon.icon.ensure_style();
let [currentWidth, currentHeight] = firstIcon.icon.get_size();
firstIcon.icon.set_size(this.iconSize * scaleFactor, this.iconSize * scaleFactor);
[minHeight, natHeight] = firstButton.get_preferred_height(-1);
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
firstIcon.icon.set_size(currentWidth, currentHeight);
// Subtract icon padding and box spacing from the available height
availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
@ -660,6 +659,10 @@ const Dash = new Lang.Class({
let availSize = availHeight / iconChildren.length;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
let newIconSize = baseIconSizes[0];
for (let i = 0; i < iconSizes.length; i++) {
if (iconSizes[i] < availSize)

View File

@ -24,9 +24,6 @@ const KEYBOARD_TYPE = 'keyboard-type';
const A11Y_APPLICATIONS_SCHEMA = 'org.gnome.desktop.a11y.applications';
const SHOW_KEYBOARD = 'screen-keyboard-enabled';
const CURSOR_BUS_NAME = 'org.gnome.SettingsDaemon.Cursor';
const CURSOR_OBJECT_PATH = '/org/gnome/SettingsDaemon/Cursor';
const CARIBOU_BUS_NAME = 'org.gnome.Caribou.Daemon';
const CARIBOU_OBJECT_PATH = '/org/gnome/Caribou/Daemon';
@ -207,9 +204,6 @@ const Keyboard = new Lang.Class({
this._keyboardSettings.connect('changed', Lang.bind(this, this._sync));
this._a11yApplicationsSettings = new Gio.Settings({ schema_id: A11Y_APPLICATIONS_SCHEMA });
this._a11yApplicationsSettings.connect('changed', Lang.bind(this, this._sync));
this._watchNameId = Gio.bus_watch_name(Gio.BusType.SESSION, CURSOR_BUS_NAME, 0,
Lang.bind(this, this._sync),
Lang.bind(this, this._sync));
this._daemonProxy = null;
this._lastDeviceId = null;

View File

@ -4,6 +4,7 @@ const Atspi = imports.gi.Atspi;
const Clutter = imports.gi.Clutter;
const GDesktopEnums = imports.gi.GDesktopEnums;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Lang = imports.lang;
@ -22,6 +23,8 @@ const MOUSE_POLL_FREQUENCY = 50;
const CROSSHAIRS_CLIP_SIZE = [100, 100];
const NO_CHANGE = 0.0;
const POINTER_REST_TIME = 1000; // milliseconds
// Settings
const APPLICATIONS_SCHEMA = 'org.gnome.desktop.a11y.applications';
const SHOW_KEY = 'screen-magnifier-enabled';
@ -709,6 +712,9 @@ const ZoomRegion = new Lang.Class({
this._xCaret = 0;
this._yCaret = 0;
this._pointerIdleMonitor = Meta.IdleMonitor.get_for_device(Meta.VIRTUAL_CORE_POINTER_ID);
this._scrollContentsTimerId = 0;
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._monitorsChanged));
this._focusCaretTracker.connect('caret-moved',
@ -1068,6 +1074,26 @@ const ZoomRegion = new Lang.Class({
return this._isMouseOverRegion();
},
_clearScrollContentsTimer: function() {
if (this._scrollContentsTimerId != 0) {
Mainloop.source_remove(this._scrollContentsTimerId);
this._scrollContentsTimerId = 0;
}
},
_scrollContentsToDelayed: function(x, y) {
if (this._pointerIdleMonitor.get_idletime() >= POINTER_REST_TIME) {
this.scrollContentsTo(x, y);
return;
}
this._clearScrollContentsTimer();
this._scrollContentsTimerId = Mainloop.timeout_add(POINTER_REST_TIME, Lang.bind(this, function() {
this._scrollContentsToDelayed(x, y);
return GLib.SOURCE_REMOVE;
}));
},
/**
* scrollContentsTo:
* Shift the contents of the magnified view such it is centered on the given
@ -1076,6 +1102,8 @@ const ZoomRegion = new Lang.Class({
* @y: The y-coord of the point to center on.
*/
scrollContentsTo: function(x, y) {
this._clearScrollContentsTimer();
this._followingCursor = false;
this._changeROI({ xCenter: x,
yCenter: y });
@ -1381,7 +1409,7 @@ const ZoomRegion = new Lang.Class({
else if (this._caretTrackingMode == GDesktopEnums.MagnifierCaretTrackingMode.CENTERED)
[xCaret, yCaret] = this._centerFromPointCentered(xCaret, yCaret);
this.scrollContentsTo(xCaret, yCaret);
this._scrollContentsToDelayed(xCaret, yCaret);
},
_centerFromFocusPosition: function() {
@ -1395,7 +1423,7 @@ const ZoomRegion = new Lang.Class({
else if (this._focusTrackingMode == GDesktopEnums.MagnifierFocusTrackingMode.CENTERED)
[xFocus, yFocus] = this._centerFromPointCentered(xFocus, yFocus);
this.scrollContentsTo(xFocus, yFocus);
this._scrollContentsToDelayed(xFocus, yFocus);
},
_centerFromPointPush: function(xPoint, yPoint) {

View File

@ -14,7 +14,6 @@ const Atk = imports.gi.Atk;
const Params = imports.misc.params;
const Animation = imports.ui.animation;
const Layout = imports.ui.layout;
const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main;
@ -23,10 +22,6 @@ const Tweener = imports.ui.tweener;
const OPEN_AND_CLOSE_TIME = 0.1;
const FADE_OUT_DIALOG_TIME = 1.0;
const WORK_SPINNER_ICON_SIZE = 24;
const WORK_SPINNER_ANIMATION_DELAY = 1.0;
const WORK_SPINNER_ANIMATION_TIME = 0.3;
const State = {
OPENED: 0,
CLOSED: 1,
@ -79,7 +74,9 @@ const ModalDialog = new Lang.Class({
this._group.add_actor(this._backgroundBin);
this.dialogLayout = new St.BoxLayout({ style_class: 'modal-dialog',
vertical: true });
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
vertical: true });
// modal dialogs are fixed width and grow vertically; set the request
// mode accordingly so wrapped labels are handled correctly during
// size requests.
@ -100,7 +97,8 @@ const ModalDialog = new Lang.Class({
this.backgroundStack.add_actor(this.dialogLayout);
this.contentLayout = new St.BoxLayout({ vertical: true });
this.contentLayout = new St.BoxLayout({ vertical: true,
style_class: "modal-dialog-content-box" });
this.dialogLayout.add(this.contentLayout,
{ expand: true,
x_fill: true,
@ -108,8 +106,7 @@ const ModalDialog = new Lang.Class({
x_align: St.Align.MIDDLE,
y_align: St.Align.START });
this.buttonLayout = new St.BoxLayout({ style_class: 'modal-dialog-button-box',
vertical: false });
this.buttonLayout = new St.Widget ({ layout_manager: new Clutter.BoxLayout ({ homogeneous:true }) });
this.dialogLayout.add(this.buttonLayout,
{ x_align: St.Align.MIDDLE,
y_align: St.Align.END });
@ -118,8 +115,6 @@ const ModalDialog = new Lang.Class({
this._initialKeyFocus = this.dialogLayout;
this._initialKeyFocusDestroyId = 0;
this._savedKeyFocus = null;
this._workSpinner = null;
},
destroy: function() {
@ -147,16 +142,12 @@ const ModalDialog = new Lang.Class({
else
x_alignment = St.Align.MIDDLE;
this.addButton(buttonInfo, { expand: true,
x_fill: false,
y_fill: false,
x_align: x_alignment,
y_align: St.Align.MIDDLE });
this.addButton(buttonInfo);
}
},
addButton: function(buttonInfo, layoutInfo) {
let label = buttonInfo['label'];
addButton: function(buttonInfo) {
let label = buttonInfo['label']
let action = buttonInfo['action'];
let key = buttonInfo['key'];
let isDefault = buttonInfo['default'];
@ -170,10 +161,12 @@ const ModalDialog = new Lang.Class({
else
keys = [];
let button = new St.Button({ style_class: 'modal-dialog-button button',
let button = new St.Button({ style_class: 'modal-dialog-linked-button',
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
reactive: true,
can_focus: true,
x_expand: true,
y_expand: true,
label: label });
button.connect('clicked', action);
@ -188,47 +181,11 @@ const ModalDialog = new Lang.Class({
for (let i in keys)
this._buttonKeys[keys[i]] = buttonInfo;
this.buttonLayout.add(button, layoutInfo);
this.buttonLayout.add_actor(button);
return button;
},
placeSpinner: function(layoutInfo) {
let spinnerIcon = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg');
this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
this._workSpinner.actor.opacity = 0;
this._workSpinner.actor.show();
this.buttonLayout.add(this._workSpinner.actor, layoutInfo);
},
setWorking: function(working) {
if (!this._workSpinner)
return;
Tweener.removeTweens(this._workSpinner.actor);
if (working) {
this._workSpinner.play();
Tweener.addTween(this._workSpinner.actor,
{ opacity: 255,
delay: WORK_SPINNER_ANIMATION_DELAY,
time: WORK_SPINNER_ANIMATION_TIME,
transition: 'linear'
});
} else {
Tweener.addTween(this._workSpinner.actor,
{ opacity: 0,
time: WORK_SPINNER_ANIMATION_TIME,
transition: 'linear',
onCompleteScope: this,
onComplete: function() {
if (this._workSpinner)
this._workSpinner.stop();
}
});
}
},
_onKeyPressEvent: function(object, event) {
this._pressedKey = event.get_key_symbol();
return Clutter.EVENT_PROPAGATE;

View File

@ -107,13 +107,6 @@ const Overview = new Lang.Class({
this._overviewCreated = true;
// The main Background actors are inside global.window_group which are
// hidden when displaying the overview, so we create a new
// one. Instances of this class share a single CoglTexture behind the
// scenes which allows us to show the background with different
// rendering options without duplicating the texture data.
let monitor = Main.layoutManager.primaryMonitor;
let layout = new Clutter.BinLayout();
this._stack = new Clutter.Actor({ layout_manager: layout });
this._stack.add_constraint(new LayoutManager.MonitorConstraint({ primary: true }));
@ -128,6 +121,11 @@ const Overview = new Lang.Class({
y_expand: true });
this._overview._delegate = this;
// The main Background actors are inside global.window_group which are
// hidden when displaying the overview, so we create a new
// one. Instances of this class share a single CoglTexture behind the
// scenes which allows us to show the background with different
// rendering options without duplicating the texture data.
this._backgroundGroup = new Meta.BackgroundGroup();
Main.layoutManager.overviewGroup.add_child(this._backgroundGroup);
this._bgManagers = [];

View File

@ -25,12 +25,12 @@ const RemoteMenu = imports.ui.remoteMenu;
const Main = imports.ui.main;
const Tweener = imports.ui.tweener;
const PANEL_ICON_SIZE = 24;
const APP_MENU_ICON_MARGIN = 2;
const PANEL_ICON_SIZE = 16;
const APP_MENU_ICON_MARGIN = 0;
const BUTTON_DND_ACTIVATION_TIMEOUT = 250;
const SPINNER_ANIMATION_TIME = 0.2;
const SPINNER_ANIMATION_TIME = 1.0;
// To make sure the panel corners blend nicely with the panel,
// we draw background and borders the same way, e.g. drawing
@ -95,6 +95,7 @@ const AppMenuButton = new Lang.Class({
this._startingApps = [];
this._menuManager = panel.menuManager;
this._gtkSettings = Gtk.Settings.get_default();
this._targetApp = null;
this._appMenuNotifyId = 0;
this._actionGroupNotifyId = 0;
@ -123,11 +124,14 @@ const AppMenuButton = new Lang.Class({
this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM);
this._container.add_actor(this._arrow);
this._visible = !Main.overview.visible;
this._visible = this._gtkSettings.gtk_shell_shows_app_menu &&
!Main.overview.visible;
if (!this._visible)
this.actor.hide();
this._overviewHidingId = Main.overview.connect('hiding', Lang.bind(this, this._sync));
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, this._sync));
this._showsAppMenuId = this._gtkSettings.connect('notify::gtk-shell-shows-app-menu',
Lang.bind(this, this._sync));
this._stop = true;
@ -305,7 +309,9 @@ const AppMenuButton = new Lang.Class({
}
}
let visible = (this._targetApp != null && !Main.overview.visibleTarget);
let visible = (this._targetApp != null &&
this._gtkSettings.gtk_shell_shows_app_menu &&
!Main.overview.visibleTarget);
if (visible)
this.show();
else
@ -378,6 +384,10 @@ const AppMenuButton = new Lang.Class({
Main.overview.disconnect(this._overviewShowingId);
this._overviewShowingId = 0;
}
if (this._showsAppMenuId > 0) {
this._gtkSettings.disconnect(this._showsAppMenuId);
this._showsAppMenuId = 0;
}
if (this._switchWorkspaceNotifyId > 0) {
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
this._switchWorkspaceNotifyId = 0;
@ -642,14 +652,50 @@ const PanelCorner = new Lang.Class({
}
});
const AggregateLayout = new Lang.Class({
Name: 'AggregateLayout',
Extends: Clutter.BoxLayout,
_init: function(params) {
if (!params)
params = {};
params['orientation'] = Clutter.Orientation.VERTICAL;
this.parent(params);
this._sizeChildren = [];
},
addSizeChild: function(actor) {
this._sizeChildren.push(actor);
this.layout_changed();
},
vfunc_get_preferred_width: function(container, forHeight) {
let themeNode = container.get_theme_node();
let minWidth = themeNode.get_min_width();
let natWidth = minWidth;
for (let i = 0; i < this._sizeChildren.length; i++) {
let child = this._sizeChildren[i];
let [childMin, childNat] = child.get_preferred_width(forHeight);
minWidth = Math.max(minWidth, childMin);
natWidth = Math.max(minWidth, childNat);
}
return [minWidth, natWidth];
}
});
const AggregateMenu = new Lang.Class({
Name: 'AggregateMenu',
Extends: PanelMenu.Button,
_init: function() {
this.parent(0.0, _("Settings"), false);
this.parent(0.0, C_("System menu in the top bar", "System"), false);
this.menu.actor.add_style_class_name('aggregate-menu');
let menuLayout = new AggregateLayout();
this.menu.box.set_layout_manager(menuLayout);
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
this.actor.add_child(this._indicators);
@ -697,8 +743,12 @@ const AggregateMenu = new Lang.Class({
this.menu.addMenuItem(this._location.menu);
this.menu.addMenuItem(this._rfkill.menu);
this.menu.addMenuItem(this._power.menu);
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addMenuItem(this._system.menu);
menuLayout.addSizeChild(this._location.menu.actor);
menuLayout.addSizeChild(this._rfkill.menu.actor);
menuLayout.addSizeChild(this._power.menu.actor);
menuLayout.addSizeChild(this._system.menu.actor);
},
});

View File

@ -396,6 +396,7 @@ const PopupImageMenuItem = new Lang.Class({
this.actor.add_child(this.label);
this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
this.actor.add_child(this._icon, { align: St.Align.END });
this.actor.label_actor = this.label;
this.setIcon(iconName);
},
@ -1059,11 +1060,6 @@ const PopupSubMenuMenuItem = new Lang.Class({
let expander = new St.Bin({ style_class: 'popup-menu-item-expander' });
this.actor.add(expander, { expand: true });
this.status = new St.Label({ style_class: 'popup-status-menu-item',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.actor.add_child(this.status);
this._triangle = arrowIcon(St.Side.RIGHT);
this._triangle.pivot_point = new Clutter.Point({ x: 0.5, y: 0.6 });

View File

@ -46,7 +46,7 @@ const Indicator = new Lang.Class({
// The Bluetooth menu only appears when Bluetooth is in use,
// so just statically build it with a "Turn Off" menu item.
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Bluetooth"), true);
this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
this._item.icon.icon_name = 'bluetooth-active-symbolic';
this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
this._proxy.BluetoothAirplaneMode = true;
@ -101,8 +101,9 @@ const Indicator = new Lang.Class({
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
if (nDevices > 0)
this._item.status.text = ngettext("%d Connected Device", "%d Connected Devices", nDevices).format(nDevices);
/* Translators: this is the number of connected bluetooth devices */
this._item.label.text = ngettext("%d Connected", "%d Connected", nDevices).format(nDevices);
else
this._item.status.text = _("Not Connected");
this._item.label.text = _("Not In Use");
},
});

View File

@ -62,13 +62,13 @@ const Indicator = new Lang.Class({
this._indicator = this._addIndicator();
this._indicator.icon_name = 'find-location-symbolic';
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Location"), true);
this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
this._item.icon.icon_name = 'find-location-symbolic';
this._agent = Gio.DBusExportedObject.wrapJSObject(AgentIface, this);
this._agent.export(Gio.DBus.system, '/org/freedesktop/GeoClue2/Agent');
this._item.status.text = _("Enabled");
this._item.label.text = _("Location Enabled");
this._onOffAction = this._item.menu.addAction(_("Disable"), Lang.bind(this, this._onOnOffAction));
this._item.menu.addSettingsAction(_("Privacy Settings"), 'gnome-privacy-panel.desktop');
@ -173,10 +173,11 @@ const Indicator = new Lang.Class({
_updateMenuLabels: function() {
if (this._settings.get_boolean(ENABLED)) {
this._item.status.text = this._indicator.visible ? _("In Use") : _("Enabled");
this._item.label.text = this._indicator.visible ? _("Location In Use")
: _("Location Enabled");
this._onOffAction.label.text = _("Disable");
} else {
this._item.status.text = _("Disabled");
this._item.label.text = _("Location Disabled");
this._onOffAction.label.text = _("Enable");
}
},

View File

@ -257,16 +257,8 @@ const NMConnectionSection = new Lang.Class({
this._radioSection.actor.visible = (nItems > 1);
this._labelSection.actor.visible = (nItems == 1);
this.item.status.text = this._getStatus();
this.item.label.text = this._getStatus();
this.item.icon.icon_name = this._getMenuIcon();
// desc can be undefined at cold-plug, before we called
// NMGtk.disambiguate_device_names() at least once
let desc = this._getDescription();
if (desc)
this.item.label.text = desc;
else
this.item.label.text = '';
},
_getMenuIcon: function() {
@ -355,6 +347,7 @@ const NMConnectionDevice = new Lang.Class({
this.parent(client);
this._device = device;
this._settings = settings;
this._description = '';
this._autoConnectItem = this.item.menu.addAction(_("Connect"), Lang.bind(this, this._autoConnect));
this._deactivateItem = this._radioSection.addAction(_("Turn Off"), Lang.bind(this, this.deactivateConnection));
@ -454,38 +447,44 @@ const NMConnectionDevice = new Lang.Class({
switch(this._device.state) {
case NetworkManager.DeviceState.DISCONNECTED:
return _("Off");
/* Translators: %s is a network identifier */
return _("%s Off").format(this._getDescription());
case NetworkManager.DeviceState.ACTIVATED:
return _("Connected");
/* Translators: %s is a network identifier */
return _("%s Connected").format(this._getDescription());
case NetworkManager.DeviceState.UNMANAGED:
/* Translators: this is for network devices that are physically present but are not
under NetworkManager's control (and thus cannot be used in the menu) */
return _("Unmanaged");
under NetworkManager's control (and thus cannot be used in the menu);
%s is a network identifier */
return _("%s Unmanaged").format(this._getDescription());
case NetworkManager.DeviceState.DEACTIVATING:
return _("Disconnecting");
/* Translators: %s is a network identifier */
return _("%s Disconnecting").format(this._getDescription());
case NetworkManager.DeviceState.PREPARE:
case NetworkManager.DeviceState.CONFIG:
case NetworkManager.DeviceState.IP_CONFIG:
case NetworkManager.DeviceState.IP_CHECK:
case NetworkManager.DeviceState.SECONDARIES:
return _("Connecting");
/* Translators: %s is a network identifier */
return _("%s Connecting").format(this._getDescription());
case NetworkManager.DeviceState.NEED_AUTH:
/* Translators: this is for network connections that require some kind of key or password */
return _("Authentication required");
/* Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
return _("%s Requires Authentication").format(this._getDescription());
case NetworkManager.DeviceState.UNAVAILABLE:
// This state is actually a compound of various states (generically unavailable,
// firmware missing), that are exposed by different properties (whose state may
// or may not updated when we receive state-changed).
if (this._device.firmware_missing) {
/* Translators: this is for devices that require some kind of firmware or kernel
module, which is missing */
return _("Firmware missing");
module, which is missing; %s is a network identifier */
return _("Firmware Missing For %s").format(this._getDescription());
}
/* Translators: this is for a network device that cannot be activated (for example it
is disabled by rfkill, or it has no coverage */
return _("Unavailable");
is disabled by rfkill, or it has no coverage; %s is a network identifier */
return _("%s Unavailable").format(this._getDescription());
case NetworkManager.DeviceState.FAILED:
return _("Connection failed");
/* Translators: %s is a network identifier */
return _("%s Connection Failed").format(this._getDescription());
default:
log('Device state invalid, is %d'.format(this._device.state));
return 'invalid';
@ -585,11 +584,12 @@ const NMDeviceModem = new Lang.Class({
_getStatus: function() {
if (!this._client.wwan_hardware_enabled)
return _("Hardware Disabled");
/* Translators: %s is a network identifier */
return _("%s Hardware Disabled").format(this._getDescription());
else if (!this._client.wwan_enabled)
/* Translators: this is for a network device that cannot be activated
because it's disabled by rfkill (airplane mode) */
return _("Disabled");
because it's disabled by rfkill (airplane mode); %s is a network identifier */
return _("%s Disabled").format(this._getDescription());
else if (this._device.state == NetworkManager.DeviceState.ACTIVATED &&
this._mobileDevice && this._mobileDevice.operator_name)
return this._mobileDevice.operator_name;
@ -877,7 +877,7 @@ const NMWirelessDialog = new Lang.Class({
y_align: Clutter.ActorAlign.CENTER });
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg');
this._noNetworksSpinner = new Animation.AnimatedIcon(file, 24, 24);
this._noNetworksSpinner = new Animation.AnimatedIcon(file, 16, 16);
this._noNetworksBox.add_actor(this._noNetworksSpinner.actor);
this._noNetworksBox.add_actor(new St.Label({ style_class: 'no-networks-label',
text: _("No Networks") }));
@ -917,10 +917,7 @@ const NMWirelessDialog = new Lang.Class({
key: Clutter.Escape });
this._connectButton = this.addButton({ action: Lang.bind(this, this._connect),
label: _("Connect"),
key: Clutter.Return },
{ expand: true,
x_fill: false,
x_align: St.Align.END });
key: Clutter.Return });
},
_connect: function() {
@ -1282,9 +1279,8 @@ const NMDeviceWireless = new Lang.Class({
this._toggleItem.label.text = this._client.wireless_enabled ? _("Turn Off") : _("Turn On");
this._toggleItem.actor.visible = this._client.wireless_hardware_enabled;
this.item.status.text = this._getStatus();
this.item.icon.icon_name = this._getMenuIcon();
this.item.label.text = this._description;
this.item.label.text = this._getStatus();
},
setDeviceDescription: function(desc) {
@ -1296,18 +1292,23 @@ const NMDeviceWireless = new Lang.Class({
let ap = this._device.active_access_point;
if (this._isHotSpotMaster())
return _("Hotspot Active");
/* Translators: %s is a network identifier */
return _("%s Hotspot Active").format(this._description);
else if (this._device.state >= NetworkManager.DeviceState.PREPARE &&
this._device.state < NetworkManager.DeviceState.ACTIVATED)
return _("Connecting");
/* Translators: %s is a network identifier */
return _("%s Connecting").format(this._description);
else if (ap)
return ssidToLabel(ap.get_ssid());
else if (!this._client.wireless_hardware_enabled)
return _("Hardware Disabled");
/* Translators: %s is a network identifier */
return _("%s Hardware Disabled").format(this._description);
else if (!this._client.wireless_enabled)
return _("Off");
/* Translators: %s is a network identifier */
return _("%s Off").format(this._description);
else if (this._device.state == NetworkManager.DeviceState.DISCONNECTED)
return _("Not Connected");
/* Translators: %s is a network identifier */
return _("%s Not Connected").format(this._description);
else
return '';
},
@ -1509,7 +1510,7 @@ const NMVPNSection = new Lang.Class({
return item.getName();
}
return _("Off");
return _("VPN Off");
},
_getMenuIcon: function() {

View File

@ -112,12 +112,6 @@ const Indicator = new Lang.Class({
this._item.icon.icon_name = icon;
// The status label
this._item.status.text = this._getStatus();
// The sub-menu heading
if (this._proxy.Type == UPower.DeviceKind.UPS)
this._item.label.text = _("UPS");
else
this._item.label.text = _("Battery");
this._item.label.text = this._getStatus();
},
});

View File

@ -85,9 +85,8 @@ const Indicator = new Lang.Class({
// The menu only appears when airplane mode is on, so just
// statically build it as if it was on, rather than dynamically
// changing the menu contents.
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Airplane Mode"), true);
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Airplane Mode On"), true);
this._item.icon.icon_name = 'airplane-mode-symbolic';
this._item.status.text = _("On");
this._offItem = this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
this._manager.airplaneMode = false;
}));

View File

@ -251,8 +251,14 @@ const Indicator = new Lang.Class({
let file = Gio.File.new_for_path(iconFile);
let gicon = new Gio.FileIcon({ file: file });
this._switchUserSubMenu.icon.gicon = gicon;
this._switchUserSubMenu.icon.add_style_class_name('user-icon');
this._switchUserSubMenu.icon.remove_style_class_name('default-icon');
} else {
this._switchUserSubMenu.icon.icon_name = 'avatar-default-symbolic';
this._switchUserSubMenu.icon.add_style_class_name('default-icon');
this._switchUserSubMenu.icon.remove_style_class_name('user-icon');
}
},
@ -344,6 +350,9 @@ const Indicator = new Lang.Class({
this._switchUserSubMenu.menu.addMenuItem(item);
this._logoutItem = item;
this._switchUserSubMenu.menu.addSettingsAction(_("Account Settings"),
'gnome-user-accounts-panel.desktop');
this._user.connect('notify::is-loaded', Lang.bind(this, this._updateSwitchUserSubMenu));
this._user.connect('changed', Lang.bind(this, this._updateSwitchUserSubMenu));

View File

@ -465,6 +465,12 @@ const ViewSelector = new Lang.Class({
},
_shouldTriggerSearch: function(symbol) {
if (symbol == Clutter.Multi_key)
return true;
if (symbol == Clutter.BackSpace && this._searchActive)
return true;
let unicode = Clutter.keysym_to_unicode(symbol);
if (unicode == 0)
return false;
@ -472,7 +478,7 @@ const ViewSelector = new Lang.Class({
if (getTermsForSearchString(String.fromCharCode(unicode)).length > 0)
return true;
return symbol == Clutter.BackSpace && this._searchActive;
return false;
},
startSearch: function(event) {

View File

@ -81,12 +81,10 @@ const DisplayChangeDialog = new Lang.Class({
*/
this._cancelButton = this.addButton({ label: _("Revert Settings"),
action: Lang.bind(this, this._onFailure),
key: Clutter.Escape },
{ expand: true, x_fill: false, x_align: St.Align.START });
key: Clutter.Escape });
this._okButton = this.addButton({ label: _("Keep Changes"),
action: Lang.bind(this, this._onSuccess),
default: true },
{ expand: false, x_fill: false, x_align: St.Align.END });
default: true });
this._timeoutId = Mainloop.timeout_add(ONE_SECOND, Lang.bind(this, this._tick));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._tick');
@ -477,6 +475,62 @@ const TilePreview = new Lang.Class({
}
});
const TouchpadWorkspaceSwitchAction = new Lang.Class({
Name: 'TouchpadWorkspaceSwitchAction',
_init: function(actor) {
this._dx = 0;
this._dy = 0;
actor.connect('captured-event', Lang.bind(this, this._handleEvent));
},
_checkActivated: function() {
const MOTION_THRESHOLD = 50;
let allowedModes = Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW;
let dir;
if ((allowedModes & Main.actionMode) == 0)
return;
if (this._dy < -MOTION_THRESHOLD)
dir = Meta.MotionDirection.DOWN;
else if (this._dy > MOTION_THRESHOLD)
dir = Meta.MotionDirection.UP;
else if (this._dx < -MOTION_THRESHOLD)
dir = Meta.MotionDirection.RIGHT;
else if (this._dx > MOTION_THRESHOLD)
dir = Meta.MotionDirection.LEFT;
else
return;
this.emit('activated', dir);
},
_handleEvent: function(actor, event) {
if (event.type() != Clutter.EventType.TOUCHPAD_SWIPE)
return Clutter.EVENT_PROPAGATE;
if (event.get_gesture_swipe_finger_count() != 4)
return Clutter.EVENT_PROPAGATE;
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
let [dx, dy] = event.get_gesture_motion_delta(event);
this._dx += dx;
this._dy += dy;
} else {
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END)
this._checkActivated();
this._dx = 0;
this._dy = 0;
}
return Clutter.EVENT_STOP;
}
});
Signals.addSignalMethods(TouchpadWorkspaceSwitchAction.prototype);
const WorkspaceSwitchAction = new Lang.Class({
Name: 'WorkspaceSwitchAction',
Extends: Clutter.SwipeAction,
@ -623,6 +677,7 @@ const WindowManager = new Lang.Class({
this._minimizing = [];
this._unminimizing = [];
this._mapping = [];
this._resizing = [];
this._destroying = [];
this._movingWindow = null;
@ -638,6 +693,7 @@ const WindowManager = new Lang.Class({
this._minimizeWindowDone(shellwm, actor);
this._mapWindowDone(shellwm, actor);
this._destroyWindowDone(shellwm, actor);
this._sizeChangeWindowDone(shellwm, actor);
}));
this._shellwm.connect('switch-workspace', Lang.bind(this, this._switchWorkspace));
@ -866,15 +922,22 @@ const WindowManager = new Lang.Class({
false, -1, 1);
let gesture = new WorkspaceSwitchAction();
gesture.connect('activated', Lang.bind(this, function(action, direction) {
let newWs = global.screen.get_active_workspace().get_neighbor(direction);
this.actionMoveWorkspace(newWs);
}));
gesture.connect('activated', Lang.bind(this, this._actionSwitchWorkspace));
global.stage.add_action(gesture);
// This is not a normal Clutter.GestureAction, doesn't need add_action()
gesture = new TouchpadWorkspaceSwitchAction(global.stage);
gesture.connect('activated', Lang.bind(this, this._actionSwitchWorkspace));
gesture = new AppSwitchAction();
gesture.connect('activated', Lang.bind(this, this._switchApp));
global.stage.add_action(gesture);
},
_actionSwitchWorkspace: function(action, direction) {
let newWs = global.screen.get_active_workspace().get_neighbor(direction);
this.actionMoveWorkspace(newWs);
},
_lookupIndex: function (windows, metaWindow) {
@ -1157,9 +1220,105 @@ const WindowManager = new Lang.Class({
},
_sizeChangeWindow : function(shellwm, actor, whichChange, oldFrameRect, oldBufferRect) {
let types = [Meta.WindowType.NORMAL];
if (!this._shouldAnimateActor(actor, types)) {
shellwm.completed_size_change(actor);
return;
}
if (whichChange == Meta.SizeChange.FULLSCREEN)
this._fullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
else if (whichChange == Meta.SizeChange.UNFULLSCREEN)
this._unfullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
else
shellwm.completed_size_change(actor);
},
_fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
actor.translation_x = oldFrameRect.x;
actor.translation_y = oldFrameRect.y;
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
},
_unfullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
let targetRect = actor.meta_window.get_frame_rect();
actor.translation_x = -targetRect.x;
actor.translation_y = -targetRect.y;
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
},
_fullscreenAnimation: function(shellwm, actor, oldFrameRect) {
this._resizing.push(actor);
// Position a clone of the window on top of the old position,
// while actor updates are frozen.
// Note that the MetaWindow has up to date sizing information for
// the new geometry already.
let targetRect = actor.meta_window.get_frame_rect();
let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
let actorClone = new St.Widget({ content: actorContent });
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
Main.uiGroup.add_actor(actorClone);
actor.__fullscreenClone = actorClone;
let scaleX = targetRect.width / oldFrameRect.width;
let scaleY = targetRect.height / oldFrameRect.height;
// Now scale and fade out the clone
Tweener.addTween(actorClone,
{ x: targetRect.x,
y: targetRect.y,
scale_x: scaleX,
scale_y: scaleY,
opacity: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad'
});
// Now set scale the actor to size it as the clone.
// Note that the caller of this function already set a translation
// on the actor.
actor.scale_x = 1 / scaleX;
actor.scale_y = 1 / scaleY;
// Scale it to its actual new size
Tweener.addTween(actor,
{ scale_x: 1.0,
scale_y: 1.0,
translation_x: 0,
translation_y: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._sizeChangeWindowDone,
onCompleteScope: this,
onCompleteParams: [shellwm, actor]
});
// Now unfreeze actor updates, to get it to the new size.
// It's important that we don't wait until the animation is completed to
// do this, otherwise our scale will be applied to the old texture size.
shellwm.completed_size_change(actor);
},
_sizeChangeWindowDone: function(shellwm, actor) {
if (this._removeEffect(this._resizing, actor)) {
Tweener.removeTweens(actor);
actor.scale_x = 1.0;
actor.scale_y = 1.0;
actor.translation_x = 0;
actor.translation_y = 0;
let actorClone = actor.__fullscreenClone;
if (actorClone) {
actorClone.destroy();
delete actor.__fullscreenClone;
}
}
},
_hasAttachedDialogs: function(window, ignoreWindow) {
var count = 0;
window.foreach_transient(function(win) {

View File

@ -74,7 +74,7 @@ const WindowMenu = new Lang.Class({
window.make_above();
}));
if (window.is_above())
item.setOrnament(PopupMenu.Ornament.DOT);
item.setOrnament(PopupMenu.Ornament.CHECK);
if (window.get_maximized() == Meta.MaximizeFlags.BOTH ||
type == Meta.WindowType.DOCK ||
type == Meta.WindowType.DESKTOP ||
@ -93,7 +93,7 @@ const WindowMenu = new Lang.Class({
window.stick();
}));
if (isSticky)
item.setOrnament(PopupMenu.Ornament.DOT);
item.setOrnament(PopupMenu.Ornament.CHECK);
if (window.is_always_on_all_workspaces())
item.setSensitive(false);

297
po/an.po
View File

@ -9,24 +9,23 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-03-17 12:39+0000\n"
"PO-Revision-Date: 2015-03-17 19:50+0100\n"
"Last-Translator: Daniel Martinez <entaltoaragon@gmail.com>\n"
"POT-Creation-Date: 2015-07-23 08:08+0000\n"
"PO-Revision-Date: 2015-04-28 08:40+0200\n"
"Last-Translator: Daniel <entaltoaragon@gmail.com>\n"
"Language-Team: Aragonés <softaragones@googlegroups.com>\n"
"Language: an\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.6\n"
"X-Generator: Pootle 2.5.1.1\n"
"X-POOTLE-MTIME: 1430206804.000000\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
msgstr "Sistema"
#: ../data/50-gnome-shell-system.xml.in.h:2
#| msgid "%d new notification"
#| msgid_plural "%d new notifications"
msgid "Show the notification list"
msgstr "Amostrar a lista de notificacions"
@ -136,17 +135,18 @@ msgstr "Indiz de l'anvista seleccionada actual en o selector d'aplicacion."
msgid "History for command (Alt-F2) dialog"
msgstr "Historico d'o dialogo de comandos (Alt+F2)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog"
msgstr "Historico d'o dialogo de \"looking glass\""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu."
msgstr ""
"Amostrar siempre l'elemento de menú \"Trancar sesión\" en o menú de "
"l'usuario."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
@ -154,14 +154,14 @@ msgstr ""
"Ista clau sobrescribe a ocultación automatica de l'elemento de menú "
"\"Trancar sesión\" en situacions d'un solo usuario u d'una sola sesión."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Indica si se debe recordar a clau ta amontar sistemas de fichers remotos u "
"zifraus"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
@ -173,81 +173,79 @@ msgstr ""
"s'amostrará a caixeta \"Remerar clau\". Ista clau estableix a valor "
"predeterminada d'a caixeta."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Show the week date in the calendar"
msgstr "Amostrar a calendata d'a semana en o calendario"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar."
msgstr "Si ye cierta, amuestra a calendata de semana ISO en o calandario."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu"
msgstr "Asociación de teclas ta ubrir o menú de l'aplicación"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu."
msgstr "Asociación de teclas ta ubrir o menú de l'aplicación."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Asociación de teclas ta la vista \"Amostrar aplicacions\""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Asociación de teclas ta ubrir la vista \"Amostrar aplicacions\" de la vista "
"d'actividatz."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview"
msgstr "Asociación de teclas ta l'anvista cheneral"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview."
msgstr "Asociación de teclas ta ubrir l'anvista d'actividatz"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#| msgid "Keybinding to toggle the visibility of the message tray"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
"Asociación de teclas ta cambiar a visibilidat d'a lista de notificacions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#| msgid "Keybinding to toggle the visibility of the message tray."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
"Asociación de teclas ta cambiar a visibilidat d'a lista de notificacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification"
msgstr "Asociación de teclas ta dar o foco a la notificación activa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification."
msgstr "Asociación de teclas ta dar o foco a la notificación activa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Asociación de teclas que pausan y continan todas as execucions de «tweens», "
"ta propositos de depuraci'on"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use"
msgstr "Que teclau usar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use."
msgstr "O tipo de teclau que usar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace."
msgstr "Selector de limite ta l'aria de treballo actual."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@ -256,21 +254,21 @@ msgstr ""
"finestras en l'aria de treballo actual. D'atra man, s'incluirán todas as "
"aplicacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode."
msgstr "O modo d'icono de l'aplicación."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' "
"(shows only the application icon) or 'both'."
msgstr ""
"Configura cómo s'amuestran as finestras en o selector. Os valore posibles "
"son \"thumbnail-only\" (amuestra una miniatura d'a finestra), \"app-icon-only"
"\" (solament amuestra l'icono de l'aplicación) u \"both\"."
"son \"thumbnail-only\" (amuestra una miniatura d'a finestra), \"app-icon-"
"only\" (solament amuestra l'icono de l'aplicación) u \"both\"."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@ -278,31 +276,31 @@ msgstr ""
"Si en ye verdadero, nomás s'amostrarán en o selector finestras de l'aria de "
"treballo actual. D'atra man, s'incluirán todas as finestras."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window"
msgstr "Acoplar un dialogo modal a la finestra pai"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Ista clau sobrescribe a clau en org.gnome.mutter en executar GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Activar o mosaico en os bordes en arrocegar finestras a os bordes d'a "
"finestra"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically"
msgstr "As arias de treballo se chestionan dinámicamente"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor"
msgstr "Arias de treballo solament en a pantalla prencipal"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Retardo en cambiar o foco d'o churi dica que o puntero deixa de mover-se"
@ -311,12 +309,12 @@ msgstr ""
msgid "Network Login"
msgstr "Encetar sesión en o rete"
#: ../js/extensionPrefs/main.js:123
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "I habió una error en lanzar o diálogo de preferencias ta %s:"
#: ../js/extensionPrefs/main.js:155
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Extensions de GNOME Shell"
@ -327,39 +325,39 @@ msgstr "Extensions de GNOME Shell"
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:217
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
msgid "Next"
msgstr "Siguient"
#: ../js/gdm/authPrompt.js:213 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Desbloquiar"
#: ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Encetar sesión"
#: ../js/gdm/loginDialog.js:280
#: ../js/gdm/loginDialog.js:281
msgid "Choose Session"
msgstr "Esleyir a sesión"
#: ../js/gdm/loginDialog.js:420
#: ../js/gdm/loginDialog.js:431
msgid "Not listed?"
msgstr "No ye en a lista?"
#: ../js/gdm/loginDialog.js:829
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(eix., usuario u %s)"
#: ../js/gdm/loginDialog.js:834 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Nombre d'usuario:"
msgstr "Nombre d'usuario: "
#: ../js/gdm/loginDialog.js:1169
#: ../js/gdm/loginDialog.js:1180
msgid "Login Window"
msgstr "Finestra d'inicio de sesión"
@ -452,31 +450,31 @@ msgstr "%d de %B de %Y, %l%M %"
msgid "Web Authentication Redirect"
msgstr "Rendrecera ta autentiación web"
#: ../js/ui/appDisplay.js:792
#: ../js/ui/appDisplay.js:789
msgid "Frequently used applications will appear here"
msgstr "As aplicaciones usadas freqüentment amaneixerán aquí"
#: ../js/ui/appDisplay.js:912
#: ../js/ui/appDisplay.js:909
msgid "Frequent"
msgstr "Freqüent"
#: ../js/ui/appDisplay.js:919
#: ../js/ui/appDisplay.js:916
msgid "All"
msgstr "Todas"
#: ../js/ui/appDisplay.js:1850
#: ../js/ui/appDisplay.js:1845
msgid "New Window"
msgstr "Finestra nueva"
#: ../js/ui/appDisplay.js:1878 ../js/ui/dash.js:291
#: ../js/ui/appDisplay.js:1873 ../js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Sacar d'os favoritos"
#: ../js/ui/appDisplay.js:1884
#: ../js/ui/appDisplay.js:1879
msgid "Add to Favorites"
msgstr "Anyadir a os favoritos"
#: ../js/ui/appDisplay.js:1894
#: ../js/ui/appDisplay.js:1889
msgid "Show Details"
msgstr "Amostrar detalles"
@ -490,15 +488,19 @@ msgstr "S'ha anyadiu %s a os suyos favoritos."
msgid "%s has been removed from your favorites."
msgstr "S'ha sacau %s d'os suyos favoritos"
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:337
msgid "Settings"
msgstr "Configuración"
#: ../js/ui/backgroundMenu.js:21
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Cambiar o fondo…"
#: ../js/ui/backgroundMenu.js:21
msgid "Display Settings"
msgstr "Preferencias de pantalla"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:357
msgid "Settings"
msgstr "Configuración"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:53
msgctxt "calendar-no-work"
@ -551,54 +553,53 @@ msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:563
#: ../js/ui/calendar.js:564
msgid "Previous month"
msgstr "Mes anterior"
#: ../js/ui/calendar.js:573
#: ../js/ui/calendar.js:574
msgid "Next month"
msgstr "Mes siguient"
#: ../js/ui/calendar.js:780
#: ../js/ui/calendar.js:781
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:1182
#: ../js/ui/calendar.js:1187
msgctxt "event list time"
msgid "All Day"
msgstr "Tot o diya"
#: ../js/ui/calendar.js:1288
#: ../js/ui/calendar.js:1289
msgid "Clear section"
msgstr "Limpiar a sección"
#: ../js/ui/calendar.js:1515
#: ../js/ui/calendar.js:1516
msgid "Events"
msgstr "Eventos"
#: ../js/ui/calendar.js:1524
#: ../js/ui/calendar.js:1525
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:1528
#: ../js/ui/calendar.js:1529
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:1613
#: ../js/ui/calendar.js:1614
msgid "Notifications"
msgstr "Notificacions"
#: ../js/ui/calendar.js:1764
#| msgid "Notifications"
#: ../js/ui/calendar.js:1765
msgid "No Notifications"
msgstr "No i hai notificacions"
#: ../js/ui/calendar.js:1767
#: ../js/ui/calendar.js:1768
msgid "No Events"
msgstr "No i hai eventos"
@ -634,23 +635,23 @@ msgstr "Connectar"
#: ../js/ui/components/networkAgent.js:293
#: ../js/ui/components/networkAgent.js:303
msgid "Password: "
msgstr "Clau de paso:"
msgstr "Clau de paso: "
#: ../js/ui/components/networkAgent.js:238
msgid "Key: "
msgstr "Clau:"
msgstr "Clau: "
#: ../js/ui/components/networkAgent.js:277
msgid "Identity: "
msgstr "Identidat:"
msgstr "Identidat: "
#: ../js/ui/components/networkAgent.js:279
msgid "Private key password: "
msgstr "Clau d'a clau privada:"
msgstr "Clau d'a clau privada: "
#: ../js/ui/components/networkAgent.js:291
msgid "Service: "
msgstr "Servicio:"
msgstr "Servicio: "
#: ../js/ui/components/networkAgent.js:320
#: ../js/ui/components/networkAgent.js:658
@ -661,8 +662,8 @@ msgstr "O ret sin cordón requiere autenticación"
#: ../js/ui/components/networkAgent.js:659
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"%s”."
"Passwords or encryption keys are required to access the wireless network "
"%s”."
msgstr ""
"S'amenesten claus u claus de zifrau ta accedir a o ret inalambrico\"%s\"."
@ -673,7 +674,7 @@ msgstr "Autenticación 802.1X cableada"
#: ../js/ui/components/networkAgent.js:327
msgid "Network name: "
msgstr "Nombre d'o ret:"
msgstr "Nombre d'o ret: "
#: ../js/ui/components/networkAgent.js:332
#: ../js/ui/components/networkAgent.js:666
@ -733,7 +734,7 @@ msgstr "Prebe atra vegada."
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:768
#: ../js/ui/components/telepathyClient.js:757
#, javascript-format
msgid "%s is now known as %s"
msgstr "Agora %s se dice %s"
@ -742,11 +743,11 @@ msgstr "Agora %s se dice %s"
msgid "Windows"
msgstr "Finestras"
#: ../js/ui/dash.js:252 ../js/ui/dash.js:293
#: ../js/ui/dash.js:250 ../js/ui/dash.js:291
msgid "Show Applications"
msgstr "Amostrar aplicacions"
#: ../js/ui/dash.js:453
#: ../js/ui/dash.js:449
msgid "Dash"
msgstr "Tablero"
@ -754,7 +755,6 @@ msgstr "Tablero"
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */
#: ../js/ui/dateMenu.js:73
#| msgid "%A %B %e, %Y"
msgid "%B %e %Y"
msgstr "%B %e %Y"
@ -763,7 +763,6 @@ msgstr "%B %e %Y"
#. * date, e.g. "Tuesday February 17 2015".
#. */
#: ../js/ui/dateMenu.js:80
#| msgid "%A %B %e, %Y"
msgid "%A %B %e %Y"
msgstr "%A %e de %B de %Y"
@ -772,7 +771,6 @@ msgid "Add world clocks…"
msgstr "Adhibir reloches d'o mundo…"
#: ../js/ui/dateMenu.js:161
#| msgid "Open Clocks"
msgid "World Clocks"
msgstr "Reloches d'o mundo"
@ -916,17 +914,16 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Descargar y instalar \"%s\" dende extensions.gnome.org?"
#: ../js/ui/keyboard.js:714 ../js/ui/status/keyboard.js:580
#: ../js/ui/keyboard.js:747 ../js/ui/status/keyboard.js:713
msgid "Keyboard"
msgstr "Teclau"
#. translators: 'Hide' is a verb */
#: ../js/ui/legacyTray.js:64
#| msgid "Hide Text"
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Amagar servilla"
#: ../js/ui/legacyTray.js:104
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Iconos d'estau"
@ -982,7 +979,7 @@ msgstr "Veyer fuent"
msgid "Web Page"
msgstr "Pachina web"
#: ../js/ui/messageTray.js:2133
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Informacion d'o sistema"
@ -1024,7 +1021,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Introducir un comando"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:120
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Trancar"
@ -1052,27 +1049,27 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva"
msgstr[1] "%d notificacions nuevas"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:345
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:365
msgid "Lock"
msgstr "Blocar"
#: ../js/ui/screenShield.js:668
#: ../js/ui/screenShield.js:684
msgid "GNOME needs to lock the screen"
msgstr "GNOME ameneste blocar a pantalla"
#: ../js/ui/screenShield.js:795 ../js/ui/screenShield.js:1271
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "No se podió blocar"
#: ../js/ui/screenShield.js:796 ../js/ui/screenShield.js:1272
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió o bloqueyo"
#: ../js/ui/search.js:616
#: ../js/ui/search.js:617
msgid "Searching…"
msgstr "Mirando…"
#: ../js/ui/search.js:618
#: ../js/ui/search.js:619
msgid "No results."
msgstr "No se troboron resultaus."
@ -1136,11 +1133,11 @@ msgstr "Refuso de teclas"
msgid "Mouse Keys"
msgstr "Teclas d'o ratet"
#: ../js/ui/status/accessibility.js:144
#: ../js/ui/status/accessibility.js:167
msgid "High Contrast"
msgstr "Contraste alto"
#: ../js/ui/status/accessibility.js:193
#: ../js/ui/status/accessibility.js:202
msgid "Large Text"
msgstr "Texto gran"
@ -1174,7 +1171,7 @@ msgstr "No connectau"
msgid "Brightness"
msgstr "Brilo"
#: ../js/ui/status/keyboard.js:603
#: ../js/ui/status/keyboard.js:736
msgid "Show Keyboard Layout"
msgstr "Amostrar a distribución d'o teclau"
@ -1268,7 +1265,7 @@ msgstr "O modo avión ye enchegau"
#: ../js/ui/status/network.js:814
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "O Wi-Fi ye desactivau quan o modo avión ye enchegau."
msgstr "O Wi-Fi ye desactivau quan o modo avión ye enchegau."
#: ../js/ui/status/network.js:815
msgid "Turn Off Airplane Mode"
@ -1385,23 +1382,23 @@ msgstr "Modo avión"
msgid "On"
msgstr "Enchegau"
#: ../js/ui/status/system.js:317
#: ../js/ui/status/system.js:337
msgid "Switch User"
msgstr "Cambear d'usuario"
#: ../js/ui/status/system.js:322
#: ../js/ui/status/system.js:342
msgid "Log Out"
msgstr "Trancar sesion"
#: ../js/ui/status/system.js:341
#: ../js/ui/status/system.js:361
msgid "Orientation Lock"
msgstr "Bloqueyo d'Orientación"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:369
msgid "Suspend"
msgstr "Suspender"
#: ../js/ui/status/system.js:352
#: ../js/ui/status/system.js:372
msgid "Power Off"
msgstr "Amortar"
@ -1433,27 +1430,27 @@ msgstr "Aplicacions"
msgid "Search"
msgstr "Mirar"
#: ../js/ui/windowAttentionHandler.js:19
#: ../js/ui/windowAttentionHandler.js:20
#, javascript-format
msgid "“%s” is ready"
msgstr "\"%s\" ye parau"
#: ../js/ui/windowManager.js:65
#: ../js/ui/windowManager.js:63
msgid "Do you want to keep these display settings?"
msgstr "Quiers mantener istas opcions de pantalla?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#. */
#: ../js/ui/windowManager.js:84
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Revertir as opcions"
#: ../js/ui/windowManager.js:88
#: ../js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Mantener os cambeos"
#: ../js/ui/windowManager.js:107
#: ../js/ui/windowManager.js:105
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1462,7 +1459,7 @@ msgstr[1] "Os cambeos d'as opcions serán revertius en %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:599
#: ../js/ui/windowManager.js:660
#, javascript-format
msgid "%d x %d"
msgstr "%d x %d"
@ -1499,14 +1496,48 @@ msgstr "Siempre veyible"
msgid "Always on Visible Workspace"
msgstr "Siempre en l'aria de treballo veyible"
#: ../js/ui/windowMenu.js:106
#: ../js/ui/windowMenu.js:105
#, fuzzy
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Left"
msgstr "Mover a l'aria de treballo d'a cucha"
#: ../js/ui/windowMenu.js:110
#, fuzzy
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Right"
msgstr "Mover a l'aria de treballo d'a dreita"
#: ../js/ui/windowMenu.js:115
msgid "Move to Workspace Up"
msgstr "Mover ta l'aria de treballo d'alto"
#: ../js/ui/windowMenu.js:111
#: ../js/ui/windowMenu.js:120
msgid "Move to Workspace Down"
msgstr "Mover ta l'aria de treballo d'abaixo"
#: ../js/ui/windowMenu.js:136
#, fuzzy
#| msgid "Move to Workspace Up"
msgid "Move to Monitor Up"
msgstr "Mover a la pantalla d'alto"
#: ../js/ui/windowMenu.js:142
#, fuzzy
#| msgid "Move to Workspace Down"
msgid "Move to Monitor Down"
msgstr "Mover a la pantalla d'abaixo"
#: ../js/ui/windowMenu.js:148
#, fuzzy
msgid "Move to Monitor Left"
msgstr "Mover a la pantalla d'a cucha"
#: ../js/ui/windowMenu.js:154
#, fuzzy
msgid "Move to Monitor Right"
msgstr "Mover a la pantalla d'a dreita"
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar"
msgstr "Calandario d'Evolution"
@ -1561,11 +1592,11 @@ msgstr "Desconoxiu"
msgid "Failed to launch “%s”"
msgstr "Ha fallau en aventar \"%s\""
#: ../src/shell-keyring-prompt.c:714
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "As claus de paso no coinciden."
#: ../src/shell-keyring-prompt.c:722
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "A clau de paso no puede estar vueda"
@ -1803,14 +1834,6 @@ msgstr "L'usuario refusó o dialogo d'autenticación"
#~ msgid "The maximum accuracy level of location."
#~ msgstr "O maximo libel de precisión d'ubicación."
#~| msgid ""
#~| "Configures the maximum level of location accuracy applications are "
#~| "allowed to see. Valid options are 'off' (disable location tracking), "
#~| "'country', 'city', 'neighborhood', 'street', and 'exact' (typically "
#~| "requires GPS receiver). Please keep in mind that this only controls what "
#~| "Geoclue will allow applications to see and they can find user's location "
#~| "on their own using network resources (albeit with street-level accuracy "
#~| "at best)."
#~ msgid ""
#~ "Configures the maximum level of location accuracy applications are "
#~ "allowed to see. Valid options are 'off' (disable location tracking), "
@ -1822,8 +1845,8 @@ msgstr "L'usuario refusó o dialogo d'autenticación"
#~ msgstr ""
#~ "Configura o ran maximo de precisión d'ubicación que as aplicacions "
#~ "pueden veyer. As opcions validas son 'off' (seguimiento d'ubicación "
#~ "desenchegau), 'country', 'city', 'neighborhood', 'street', and "
#~ "'exact' (typicament requier GPS "
#~ "desenchegau), 'country', 'city', 'neighborhood', 'street', and 'exact' "
#~ "(typicament requier GPS "
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Orden d'os botons en a barra de titol"
@ -1968,7 +1991,6 @@ msgstr "L'usuario refusó o dialogo d'autenticación"
#~ msgid "Session…"
#~ msgstr "Sesión…"
#~| msgid "Power Off"
#~ msgid "Power"
#~ msgstr "Enerchía"
@ -2132,11 +2154,9 @@ msgstr "L'usuario refusó o dialogo d'autenticación"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~| msgid "AC adapter"
#~ msgid "AC Adapter"
#~ msgstr "Adaptador de corrient"
#~| msgid "Laptop battery"
#~ msgid "Laptop Battery"
#~ msgstr "Bateria d'o portatil"
@ -2149,11 +2169,9 @@ msgstr "L'usuario refusó o dialogo d'autenticación"
#~ msgid "PDA"
#~ msgstr "PDA"
#~| msgid "Cell phone"
#~ msgid "Cell Phone"
#~ msgstr "Telefono movil"
#~| msgid "Media player"
#~ msgid "Media Player"
#~ msgstr "Reproductor multimeya"
@ -2163,7 +2181,6 @@ msgstr "L'usuario refusó o dialogo d'autenticación"
#~ msgid "Computer"
#~ msgstr "Equipo"
#~| msgid "Unknown"
#~ msgctxt "device"
#~ msgid "Unknown"
#~ msgstr "Desconoxiu"

555
po/ar.po

File diff suppressed because it is too large Load Diff

524
po/ca.po

File diff suppressed because it is too large Load Diff

573
po/cs.po

File diff suppressed because it is too large Load Diff

541
po/da.po

File diff suppressed because it is too large Load Diff

580
po/de.po

File diff suppressed because it is too large Load Diff

590
po/el.po

File diff suppressed because it is too large Load Diff

600
po/es.po

File diff suppressed because it is too large Load Diff

664
po/eu.po

File diff suppressed because it is too large Load Diff

1650
po/fa.po

File diff suppressed because it is too large Load Diff

737
po/fi.po

File diff suppressed because it is too large Load Diff

1237
po/fr.po

File diff suppressed because it is too large Load Diff

1066
po/fur.po

File diff suppressed because it is too large Load Diff

1695
po/ga.po

File diff suppressed because it is too large Load Diff

538
po/gl.po

File diff suppressed because it is too large Load Diff

495
po/he.po

File diff suppressed because it is too large Load Diff

443
po/hu.po
View File

@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-06-23 08:06+0000\n"
"PO-Revision-Date: 2015-06-23 13:12+0200\n"
"POT-Creation-Date: 2015-08-31 08:10+0000\n"
"PO-Revision-Date: 2015-08-31 19:41+0200\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <openscope at googlegroups dot com>\n"
"Language: hu\n"
@ -136,15 +136,16 @@ msgstr "Az aktuálisan kiválasztott nézet indexe az alkalmazás-választóban.
msgid "History for command (Alt-F2) dialog"
msgstr "A parancsablak (Alt-F2) előzményei"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog"
msgstr "A távcső ablak előzményei"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu."
msgstr "Mindig jelenjen meg a „Kijelentkezés” menüelem a felhasználói menüben."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
@ -152,13 +153,13 @@ msgstr ""
"Ez a kulcs felülbírálja a „Kijelentkezés” menüelem automatikus elrejtését "
"egyfelhasználós, egyedüli munkamenet esetén."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Megjegyezze-e a jelszót a titkosított vagy távoli fájlrendszerek csatolásához"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
@ -170,77 +171,77 @@ msgstr ""
"egy „Jelszó megjegyzése” négyzet. Ez a kulcs beállítja a jelölőnégyzet "
"alapértelmezett állapotát."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Show the week date in the calendar"
msgstr "Hetek számának megjelenítése a naptárban"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar."
msgstr "Ha igazra van állítva, a naptárban megjelenik az ISO hétszám."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu"
msgstr "Billentyűtársítás az alkalmazásmenü megnyitásához"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu."
msgstr "Billentyűtársítás az alkalmazásmenü megnyitásához."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Billentyűtársítás az „Alkalmazások megjelenítése” nézet megnyitásához"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Billentyűtársítás a Tevékenységek áttekintés „Alkalmazások megjelenítése” "
"nézetének megnyitásához."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview"
msgstr "Billentyűtársítás az áttekintés megnyitásához"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview."
msgstr "Billentyűtársítás a Tevékenységek áttekintés megnyitásához."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Billentyűtársítás az értesítési lista láthatóságának módosításához"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Billentyűtársítás az értesítési lista láthatóságának módosításához."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification"
msgstr "Billentyűtársítás az aktív értesítés fókuszálásához"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification."
msgstr "Billentyűtársítás az aktív értesítés fókuszálásához."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Billentyűtársítás, amely minden futó átkötést szüneteltet és folytat "
"hibakeresési célból"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use"
msgstr "A használandó billentyűzet"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use."
msgstr "Használandó billentyűzet típusa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace."
msgstr "Váltó korlátozása a jelenlegi munkaterületre."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@ -249,11 +250,11 @@ msgstr ""
"amelyek ablakokkal rendelkeznek az aktuális munkaterületen. Egyébként minden "
"alkalmazás fel van véve."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode."
msgstr "Az alkalmazás ikon mód."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -263,7 +264,7 @@ msgstr ""
"„thumbnail-only” (az ablak bélyegképének megjelenítése), „app-icon-only” (az "
"alkalmazás ikonjának megjelenítése) vagy „both” (mindkettő)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@ -271,30 +272,30 @@ msgstr ""
"Ha igaz, akkor csak az aktuális munkaterületről származó ablakok lesznek "
"megjelenítve a váltón. Egyébként minden ablak fel lesz véve."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window"
msgstr "Kizárólagos párbeszédablak csatolása a szülő ablakhoz"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Ez a kulcs felülbírálja az org.gnome.mutter helyen lévő kulcsot, amikor a "
"GNOME Shell fut."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Szélek csempézésének engedélyezése ablakok képernyőszélekre ejtésekor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically"
msgstr "Munkaterületek dinamikus kezelése"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor"
msgstr "Munkaterületek csak az elsődleges monitoron"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Fókuszváltozások késleltetése a mutató mozgásának megállásáig egér módban"
@ -313,13 +314,14 @@ msgid "GNOME Shell Extensions"
msgstr "GNOME Shell kiterjesztések"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Mégse"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435
msgid "Next"
msgstr "Következő"
@ -341,17 +343,17 @@ msgstr "Válasszon munkamenetet"
msgid "Not listed?"
msgstr "Nincs a listán?"
#: ../js/gdm/loginDialog.js:840
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(például: felhasználó vagy %s)"
#: ../js/gdm/loginDialog.js:845 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Felhasználónév: "
#: ../js/gdm/loginDialog.js:1173
#: ../js/gdm/loginDialog.js:1181
msgid "Login Window"
msgstr "Bejelentkezési ablak"
@ -444,31 +446,31 @@ msgstr "%Y. %B %d., %l.%M %p"
msgid "Web Authentication Redirect"
msgstr "Web hitelesítés átirányítás"
#: ../js/ui/appDisplay.js:788
#: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here"
msgstr "Itt jelennek meg a gyakran használt alkalmazások"
#: ../js/ui/appDisplay.js:908
#: ../js/ui/appDisplay.js:914
msgid "Frequent"
msgstr "Gyakori"
#: ../js/ui/appDisplay.js:915
#: ../js/ui/appDisplay.js:921
msgid "All"
msgstr "Összes"
#: ../js/ui/appDisplay.js:1844
#: ../js/ui/appDisplay.js:1853
msgid "New Window"
msgstr "Új ablak"
#: ../js/ui/appDisplay.js:1872 ../js/ui/dash.js:289
#: ../js/ui/appDisplay.js:1881 ../js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Eltávolítás a Kedvencek közül"
#: ../js/ui/appDisplay.js:1878
#: ../js/ui/appDisplay.js:1887
msgid "Add to Favorites"
msgstr "Hozzáadás a Kedvencekhez"
#: ../js/ui/appDisplay.js:1888
#: ../js/ui/appDisplay.js:1897
msgid "Show Details"
msgstr "Részletek megjelenítése"
@ -491,12 +493,12 @@ msgid "Display Settings"
msgstr "Kijelző beállításai"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:357
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Beállítások"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:53
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -506,94 +508,94 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "V"
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "H"
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "K"
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "Sz"
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:90
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "Cs"
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:92
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:94
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "Sz"
#: ../js/ui/calendar.js:564
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Előző hónap"
#: ../js/ui/calendar.js:574
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Következő hónap"
#: ../js/ui/calendar.js:781
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "%V. hét"
#. 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:1187
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Egész nap"
#: ../js/ui/calendar.js:1289
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Szakasz törlése"
#: ../js/ui/calendar.js:1516
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Események"
#: ../js/ui/calendar.js:1525
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %B %d."
#: ../js/ui/calendar.js:1529
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %Y. %B %d."
#: ../js/ui/calendar.js:1614
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Értesítések"
#: ../js/ui/calendar.js:1765
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Nincsenek értesítések"
#: ../js/ui/calendar.js:1768
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Nincsenek események"
@ -610,16 +612,16 @@ msgstr "Külső meghajtó leválasztva"
msgid "Open with %s"
msgstr "Megnyitás ezzel: %s"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
#: ../js/ui/components/keyring.js:120 ../js/ui/components/polkitAgent.js:315
msgid "Password:"
msgstr "Jelszó:"
#: ../js/ui/components/keyring.js:120
#: ../js/ui/components/keyring.js:153
msgid "Type again:"
msgstr "Írja be újra:"
#: ../js/ui/components/networkAgent.js:140 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:919
#: ../js/ui/components/networkAgent.js:140 ../js/ui/status/network.js:269
#: ../js/ui/status/network.js:352 ../js/ui/status/network.js:919
msgid "Connect"
msgstr "Kapcsolódás"
@ -703,19 +705,19 @@ msgstr "Mobil széles sávú hálózat jelszava"
msgid "A password is required to connect to “%s”."
msgstr "Jelszó szükséges a kapcsolódáshoz a következőhöz: „%s”."
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1657
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1658
msgid "Network Manager"
msgstr "Hálózatkezelő"
#: ../js/ui/components/polkitAgent.js:54
#: ../js/ui/components/polkitAgent.js:60
msgid "Authentication Required"
msgstr "Hitelesítés szükséges"
#: ../js/ui/components/polkitAgent.js:96
#: ../js/ui/components/polkitAgent.js:102
msgid "Administrator"
msgstr "Rendszergazda"
#: ../js/ui/components/polkitAgent.js:175
#: ../js/ui/components/polkitAgent.js:182
msgid "Authenticate"
msgstr "Hitelesítés"
@ -723,13 +725,13 @@ msgstr "Hitelesítés"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance. */
#: ../js/ui/components/polkitAgent.js:271 ../js/ui/shellMountOperation.js:383
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "A hitelesítés sikertelen. Próbálja újra."
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:757
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s mostantól %s néven ismert"
@ -912,7 +914,7 @@ msgid "Download and install “%s” from extensions.gnome.org?"
msgstr ""
"Letölti és telepíti a következőt az extensions.gnome.org webhelyről: „%s”?"
#: ../js/ui/keyboard.js:747 ../js/ui/status/keyboard.js:713
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713
msgid "Keyboard"
msgstr "Billentyűzet"
@ -943,17 +945,13 @@ msgstr "Hibák elrejtése"
msgid "Show Errors"
msgstr "Hibák megjelenítése"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:176
#: ../js/ui/lookingGlass.js:716
msgid "Enabled"
msgstr "Engedélyezve"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Tiltva"
@ -985,7 +983,7 @@ msgstr "Rendszerinformációk"
msgid "Undo"
msgstr "Visszavonás"
#: ../js/ui/overview.js:124
#: ../js/ui/overview.js:117
msgid "Overview"
msgstr "Áttekintés"
@ -993,7 +991,7 @@ msgstr "Áttekintés"
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters. */
#: ../js/ui/overview.js:246
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Gépeljen a kereséshez…"
@ -1007,7 +1005,7 @@ msgstr "Kilépés"
msgid "Activities"
msgstr "Tevékenységek"
#: ../js/ui/panel.js:755
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Felső sáv"
@ -1047,7 +1045,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d új értesítés"
msgstr[1] "%d új értesítés"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:365
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "Zárolás"
@ -1139,14 +1137,10 @@ msgstr "Nagy kontraszt"
msgid "Large Text"
msgstr "Nagy szöveg"
#: ../js/ui/status/bluetooth.js:49
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/rfkill.js:118
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Kikapcsolás"
@ -1154,16 +1148,19 @@ msgstr "Kikapcsolás"
msgid "Bluetooth Settings"
msgstr "Bluetooth-beállítások"
#: ../js/ui/status/bluetooth.js:104
#. Translators: this is the number of connected bluetooth devices */
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d eszköz kapcsolódott"
msgstr[1] "%d eszköz kapcsolódott"
#| msgid "Connected"
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d kapcsolódva"
msgstr[1] "%d kapcsolódva"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1310
msgid "Not Connected"
msgstr "Nincs kapcsolat"
#: ../js/ui/status/bluetooth.js:107
#| msgid "In Use"
msgid "Not In Use"
msgstr "Nincs használatban"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
@ -1173,11 +1170,12 @@ msgstr "Fényerő"
msgid "Show Keyboard Layout"
msgstr "Billentyűzetkiosztás megjelenítése"
#: ../js/ui/status/location.js:65
msgid "Location"
msgstr "Hely"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#| msgid "Location"
msgid "Location Enabled"
msgstr "Hely engedélyezve"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Letiltás"
@ -1186,10 +1184,16 @@ msgid "Privacy Settings"
msgstr "Adatvédelmi beállítások"
#: ../js/ui/status/location.js:176
msgid "In Use"
msgstr "Használatban"
#| msgid "Location"
msgid "Location In Use"
msgstr "Hely használatban"
#: ../js/ui/status/location.js:180
#| msgid "Connection failed"
msgid "Location Disabled"
msgstr "Hely letiltva"
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Engedélyezés"
@ -1197,61 +1201,94 @@ msgstr "Engedélyezés"
msgid "<unknown>"
msgstr "<ismeretlen>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:1512
msgid "Off"
msgstr "Ki"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s ki"
#: ../js/ui/status/network.js:459
msgid "Connected"
msgstr "Kapcsolódva"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:454
#, javascript-format
#| msgid "Connected"
msgid "%s Connected"
msgstr "%s kapcsolódva"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463
msgid "Unmanaged"
msgstr "Felügyeletlen"
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */
#: ../js/ui/status/network.js:459
#, javascript-format
#| msgid "Unmanaged"
msgid "%s Unmanaged"
msgstr "%s felügyeletlen"
#: ../js/ui/status/network.js:465
msgid "Disconnecting"
msgstr "Bontás…"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:462
#, javascript-format
#| msgid "Disconnecting"
msgid "%s Disconnecting"
msgstr "%s leválasztása"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1302
msgid "Connecting"
msgstr "Kapcsolódás"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
#| msgid "Connecting"
msgid "%s Connecting"
msgstr "%s kapcsolódás"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474
msgid "Authentication required"
msgstr "Hitelesítés szükséges"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
#: ../js/ui/status/network.js:472
#, javascript-format
#| msgid "Wired 802.1X authentication"
msgid "%s Requires Authentication"
msgstr "%s hitelesítést igényel"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:482
msgid "Firmware missing"
msgstr "Hiányzó firmware"
#. module, which is missing; %s is a network identifier */
#: ../js/ui/status/network.js:480
#, javascript-format
#| msgid "Firmware missing"
msgid "Firmware Missing For %s"
msgstr "Hiányzó firmware ennél: %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:486
msgid "Unavailable"
msgstr "Nem érhető el"
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
#: ../js/ui/status/network.js:484
#, javascript-format
#| msgid "Unavailable"
msgid "%s Unavailable"
msgstr "%s nem érhető el"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1696
msgid "Connection failed"
msgstr "Kapcsolódás meghiúsult"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:487
#, javascript-format
#| msgid "Connection failed"
msgid "%s Connection Failed"
msgstr "%s kapcsolódás meghiúsult"
#: ../js/ui/status/network.js:504
#: ../js/ui/status/network.js:503
msgid "Wired Settings"
msgstr "Vezetékes beállítások"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624
msgid "Mobile Broadband Settings"
msgstr "Mobil széles sáv beállításai"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1306
msgid "Hardware Disabled"
msgstr "Hardver kikapcsolva"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
#| msgid "Hardware Disabled"
msgid "%s Hardware Disabled"
msgstr "%s hardver letiltva"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
#: ../js/ui/status/network.js:592
#, javascript-format
#| msgid "Disabled"
msgid "%s Disabled"
msgstr "%s letiltva"
#: ../js/ui/status/network.js:632
msgid "Use as Internet connection"
@ -1293,52 +1330,71 @@ msgstr "Válasszon egy hálózatot"
msgid "No Networks"
msgstr "Nincs hálózat"
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:116
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "A hardveres kapcsolóval kapcsolja ki"
#: ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:1171
msgid "Select Network"
msgstr "Válasszon hálózatot"
#: ../js/ui/status/network.js:1180
#: ../js/ui/status/network.js:1177
msgid "Wi-Fi Settings"
msgstr "Wi-Fi beállítások"
#: ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Bekapcsolás"
#: ../js/ui/status/network.js:1299
msgid "Hotspot Active"
msgstr "A hotspot aktív"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296
#, javascript-format
#| msgid "Hotspot Active"
msgid "%s Hotspot Active"
msgstr "%s hotspot aktív"
#: ../js/ui/status/network.js:1410
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1311
#, javascript-format
#| msgid "Not Connected"
msgid "%s Not Connected"
msgstr "%s nincs kapcsolódva"
#: ../js/ui/status/network.js:1411
msgid "connecting..."
msgstr "kapcsolódás…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1413
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "hitelesítés szükséges"
#: ../js/ui/status/network.js:1415
#: ../js/ui/status/network.js:1416
msgid "connection failed"
msgstr "a kapcsolódás meghiúsult"
#: ../js/ui/status/network.js:1481 ../js/ui/status/rfkill.js:94
#: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Hálózati beállítások"
#: ../js/ui/status/network.js:1483
#: ../js/ui/status/network.js:1484
msgid "VPN Settings"
msgstr "VPN beállítások"
#: ../js/ui/status/network.js:1502
#: ../js/ui/status/network.js:1503
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1513
#| msgid "Power Off"
msgid "VPN Off"
msgstr "VPN ki"
#: ../js/ui/status/network.js:1697
msgid "Connection failed"
msgstr "Kapcsolódás meghiúsult"
#: ../js/ui/status/network.js:1698
msgid "Activation of network connection failed"
msgstr "A hálózati kapcsolat aktiválása meghiúsult"
@ -1364,39 +1420,33 @@ msgstr "%d.%02d van hátra (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d.%02d a feltöltésig (%d%%)"
#: ../js/ui/status/power.js:119
msgid "UPS"
msgstr "Szünetmentes táp"
#: ../js/ui/status/power.js:121
msgid "Battery"
msgstr "Akkumulátor"
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode"
msgstr "Repülőgép üzemmód"
#| msgid "Airplane Mode is On"
msgid "Airplane Mode On"
msgstr "Repülőgép üzemmód be"
#: ../js/ui/status/rfkill.js:90
msgid "On"
msgstr "Be"
#: ../js/ui/status/system.js:337
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "Felhasználóváltás"
#: ../js/ui/status/system.js:342
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "Kijelentkezés"
#: ../js/ui/status/system.js:361
#: ../js/ui/status/system.js:353
#| msgid "Sound Settings"
msgid "Account Settings"
msgstr "Fiókbeállítások"
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "Tájolás zárolása"
#: ../js/ui/status/system.js:369
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "Felfüggesztés"
#: ../js/ui/status/system.js:372
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "Kikapcsolás"
@ -1428,27 +1478,27 @@ msgstr "Alkalmazások"
msgid "Search"
msgstr "Oldalsáv"
#: ../js/ui/windowAttentionHandler.js:19
#: ../js/ui/windowAttentionHandler.js:20
#, javascript-format
msgid "“%s” is ready"
msgstr "„%s” kész"
#: ../js/ui/windowManager.js:65
#: ../js/ui/windowManager.js:63
msgid "Do you want to keep these display settings?"
msgstr "Meg szeretné tartani ezeket a kijelzőbeállításokat?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#. */
#: ../js/ui/windowManager.js:84
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Beállítások visszavonása"
#: ../js/ui/windowManager.js:88
#: ../js/ui/windowManager.js:85
msgid "Keep Changes"
msgstr "Módosítások megtartása"
#: ../js/ui/windowManager.js:107
#: ../js/ui/windowManager.js:103
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1457,7 +1507,7 @@ msgstr[1] "A beállítások módosításai %d másodperc múlva visszavonásra k
#. 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:605
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
msgstr "%d x %d"
@ -1495,12 +1545,10 @@ msgid "Always on Visible Workspace"
msgstr "Mindig a látható munkaterületen"
#: ../js/ui/windowMenu.js:105
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Left"
msgstr "Áthelyezés a bal oldali munkaterületre"
#: ../js/ui/windowMenu.js:110
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Right"
msgstr "Áthelyezés a jobb oldali munkaterületre"
@ -1593,6 +1641,32 @@ msgstr "A jelszó nem lehet üres"
msgid "Authentication dialog was dismissed by the user"
msgstr "A hitelesítési ablakot a felhasználó bezárta"
#~ msgid "Bluetooth"
#~ msgstr "Bluetooth"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d eszköz kapcsolódott"
#~ msgstr[1] "%d eszköz kapcsolódott"
#~ msgid "Off"
#~ msgstr "Ki"
#~ msgid "Authentication required"
#~ msgstr "Hitelesítés szükséges"
#~ msgid "UPS"
#~ msgstr "Szünetmentes táp"
#~ msgid "Battery"
#~ msgstr "Akkumulátor"
#~ msgid "Airplane Mode"
#~ msgstr "Repülőgép üzemmód"
#~ msgid "On"
#~ msgstr "Be"
#~ msgctxt "event list time"
#~ msgid "%H%M"
#~ msgstr "%k.%M"
@ -2107,9 +2181,6 @@ msgstr "A hitelesítési ablakot a felhasználó bezárta"
#~ msgid "Mouse Settings"
#~ msgstr "Egérbeállítások"
#~ msgid "Sound Settings"
#~ msgstr "Hangbeállítások"
#~ msgid "Region & Language Settings"
#~ msgstr "Területi és nyelvi beállítások"

704
po/id.po

File diff suppressed because it is too large Load Diff

650
po/it.po

File diff suppressed because it is too large Load Diff

503
po/ja.po

File diff suppressed because it is too large Load Diff

649
po/kk.po

File diff suppressed because it is too large Load Diff

639
po/ko.po

File diff suppressed because it is too large Load Diff

653
po/lt.po

File diff suppressed because it is too large Load Diff

610
po/lv.po

File diff suppressed because it is too large Load Diff

424
po/nb.po
View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell 3.17.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-14 15:38+0200\n"
"PO-Revision-Date: 2015-05-14 15:39+0200\n"
"Last-Translator: Åka Sikrom <a4NOSPAMPLEASETHANKYOU@hush.com>\n"
"POT-Creation-Date: 2015-09-07 19:22+0200\n"
"PO-Revision-Date: 2015-09-07 19:31+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: Norwegian bokmål\n"
"MIME-Version: 1.0\n"
@ -131,15 +131,16 @@ msgstr "Indeks for valgt visning i programvelgeren."
msgid "History for command (Alt-F2) dialog"
msgstr "Historikk for kommandodialog (Alt-F2)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog"
msgstr "Historikk for forstørrelsesglass-dialogen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu."
msgstr "Alltid vis menyoppføringen «Logg ut» i brukermenyen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
@ -147,12 +148,12 @@ msgstr ""
"Denne nøkkelen overstyrer skjuling av menyoppføringen «Logg ut» i "
"situasjonen én bruker, én sesjon."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr "Om passord til eksterne eller krypterte filsystemer skal huskes."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
@ -164,76 +165,76 @@ msgstr ""
"avkryssingsboks med teksten «Husk passord». Denne nøkkelen bestemmer "
"standardverdien for avkryssingsboksen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Show the week date in the calendar"
msgstr "Vis ukedato/ukenummer i kalender"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar."
msgstr "Viser ISO-ukedato i kalenderen hvis «true»."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu"
msgstr "Tastaturbinding som åpner programmenyen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu."
msgstr "Tastaturbinding som åpner programmenyen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Tastaturbinding som åpner visningen «Vis programmer»"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Tastaturbinding som åpner visningen «Vis programmer» i aktivitetsoversikten."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview"
msgstr "Tastaturbinding som åpner oversikten"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview."
msgstr "Tastaturbinding som åpner aktivitetsoversikten."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Tastaturbinding som slår av/på visning av varslingsliste"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Tastaturbinding som slår av/på visning av varslingsliste."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification"
msgstr "Tastaturbinding som fokuserer aktiv varsling"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification."
msgstr "Tastaturbinding som fokuserer aktiv varsling."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Hurtigtast som stanser og fortsetter pågående bevegelser til "
"feilsøkingsformål"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use"
msgstr "Tastatur som skal brukes"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use."
msgstr "Type tastatur som skal brukes."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace."
msgstr "Begrens programveksling til gjeldende arbeidsområde."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@ -242,11 +243,11 @@ msgstr ""
"gjeldende arbeidsområder som vises i programveksleren. I motsatt fall kan du "
"veksle mellom programmer på tvers av arbeidsområder."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode."
msgstr "Ikonmodus for programmet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -256,7 +257,7 @@ msgstr ""
"valgalternativer er «thumbnail-only» (viser miniatyrbilde av vinduet), «app-"
"icon-only» (viser bare programikonet) og «both» (viser begge forannevnte)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@ -265,30 +266,30 @@ msgstr ""
"arbeidsområder som vises i programveksleren. I motsatt fall vises vinduer "
"fra alle arbeidsområder."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window"
msgstr "Fest modal dialog til opphavsvinduet"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Denne nøkkelen overstyrer nøkkelen i org.gnome.mutter når GNOME Shell kjøres."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Del opp skjermkantene i fliser når brukeren drar og slipper vinduer på dem"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically"
msgstr "Arbeidsområder håndteres dynamisk"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor"
msgstr "Arbeidsområder vises kun på hovedskjerm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
@ -306,13 +307,14 @@ msgid "GNOME Shell Extensions"
msgstr "Utvidelser for GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Avbryt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Neste"
@ -339,7 +341,7 @@ msgstr "Ikke listet?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:840
#: ../js/gdm/loginDialog.js:850
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(f.eks. bruker eller %s)"
@ -347,12 +349,12 @@ msgstr "(f.eks. bruker eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:845 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Brukernavn: "
#: ../js/gdm/loginDialog.js:1173
#: ../js/gdm/loginDialog.js:1184
msgid "Login Window"
msgstr "Innloggingsvindu"
@ -460,31 +462,31 @@ msgstr "%d %B %Y, %H.%M"
msgid "Web Authentication Redirect"
msgstr "Omdirigering av autentisering på nett"
#: ../js/ui/appDisplay.js:788
#: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here"
msgstr "Ofte brukte programmer vises her"
#: ../js/ui/appDisplay.js:908
#: ../js/ui/appDisplay.js:914
msgid "Frequent"
msgstr "Ofte"
#: ../js/ui/appDisplay.js:915
#: ../js/ui/appDisplay.js:921
msgid "All"
msgstr "Alle"
#: ../js/ui/appDisplay.js:1844
#: ../js/ui/appDisplay.js:1853
msgid "New Window"
msgstr "Nytt vindu"
#: ../js/ui/appDisplay.js:1872 ../js/ui/dash.js:289
#: ../js/ui/appDisplay.js:1881 ../js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Fjern fra favoritter"
#: ../js/ui/appDisplay.js:1878
#: ../js/ui/appDisplay.js:1887
msgid "Add to Favorites"
msgstr "Legg til i favoritter"
#: ../js/ui/appDisplay.js:1888
#: ../js/ui/appDisplay.js:1897
msgid "Show Details"
msgstr "Vis detaljer"
@ -507,12 +509,12 @@ msgid "Display Settings"
msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:334
#: ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Innstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:53
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -522,94 +524,94 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:90
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:92
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:94
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "L"
#: ../js/ui/calendar.js:564
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Forrige måned"
#: ../js/ui/calendar.js:574
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Neste måned"
#: ../js/ui/calendar.js:781
#: ../js/ui/calendar.js:783
msgid "Week %V"
msgstr "Uke %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:1187
#: ../js/ui/calendar.js:1188
msgctxt "event list time"
msgid "All Day"
msgstr "Hele dagen"
#: ../js/ui/calendar.js:1289
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1516
#: ../js/ui/calendar.js:1518
msgid "Events"
msgstr "Hendelser"
#: ../js/ui/calendar.js:1525
#: ../js/ui/calendar.js:1527
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %B %d"
#: ../js/ui/calendar.js:1529
#: ../js/ui/calendar.js:1531
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:1614
#: ../js/ui/calendar.js:1616
msgid "Notifications"
msgstr "Varslinger"
#: ../js/ui/calendar.js:1765
#: ../js/ui/calendar.js:1767
msgid "No Notifications"
msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1768
#: ../js/ui/calendar.js:1770
msgid "No Events"
msgstr "Ingen hendelser"
@ -626,16 +628,16 @@ msgstr "Ekstern stasjon koblet fra"
msgid "Open with %s"
msgstr "Åpne med %s"
#: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
#: ../js/ui/components/keyring.js:120 ../js/ui/components/polkitAgent.js:315
msgid "Password:"
msgstr "Passord:"
#: ../js/ui/components/keyring.js:120
#: ../js/ui/components/keyring.js:153
msgid "Type again:"
msgstr "Skriv på nytt:"
#: ../js/ui/components/networkAgent.js:140 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:919
#: ../js/ui/components/networkAgent.js:140 ../js/ui/status/network.js:269
#: ../js/ui/status/network.js:352 ../js/ui/status/network.js:919
msgid "Connect"
msgstr "Koble til"
@ -721,19 +723,19 @@ msgstr "Nettverkspassord for mobilt bredbånd"
msgid "A password is required to connect to “%s”."
msgstr "Du må oppgi et passord for å koble til «%s»."
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1657
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1658
msgid "Network Manager"
msgstr "Nettverkshåndtering"
#: ../js/ui/components/polkitAgent.js:54
#: ../js/ui/components/polkitAgent.js:60
msgid "Authentication Required"
msgstr "Autentisering kreves"
#: ../js/ui/components/polkitAgent.js:96
#: ../js/ui/components/polkitAgent.js:102
msgid "Administrator"
msgstr "Administrator"
#: ../js/ui/components/polkitAgent.js:175
#: ../js/ui/components/polkitAgent.js:182
msgid "Authenticate"
msgstr "Autentiser"
@ -741,13 +743,13 @@ msgstr "Autentiser"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: ../js/ui/components/polkitAgent.js:271 ../js/ui/shellMountOperation.js:383
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again."
msgstr "Beklager, det virket ikke. Prøv igjen."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:757
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s"
@ -929,7 +931,7 @@ msgstr "Installer"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Vil du laste ned og installere «%s» fra extensions.gnome.org?"
#: ../js/ui/keyboard.js:718 ../js/ui/status/keyboard.js:713
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713
msgid "Keyboard"
msgstr "Tastatur"
@ -960,17 +962,13 @@ msgstr "Skjul feil"
msgid "Show Errors"
msgstr "Vis feil"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:176
#: ../js/ui/lookingGlass.js:716
msgid "Enabled"
msgstr "Slått på"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode)
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Slått av"
@ -994,7 +992,7 @@ msgstr "Vis kildekode"
msgid "Web Page"
msgstr "Nettside"
#: ../js/ui/messageTray.js:1506
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Systeminformasjon"
@ -1002,7 +1000,7 @@ msgstr "Systeminformasjon"
msgid "Undo"
msgstr "Angre"
#: ../js/ui/overview.js:124
#: ../js/ui/overview.js:117
msgid "Overview"
msgstr "Oversikt"
@ -1010,7 +1008,7 @@ msgstr "Oversikt"
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/overview.js:246
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Skriv for å søke …"
@ -1024,7 +1022,7 @@ msgstr "Avslutt"
msgid "Activities"
msgstr "Aktiviteter"
#: ../js/ui/panel.js:755
#: ../js/ui/panel.js:754
msgid "Top Bar"
msgstr "Topp-panel"
@ -1041,7 +1039,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Skriv inn en kommando"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:153
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Lukk"
@ -1069,7 +1067,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:342
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "Lås"
@ -1168,16 +1166,10 @@ msgstr "Høy kontrast"
msgid "Large Text"
msgstr "Stor tekst"
#. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item.
#: ../js/ui/status/bluetooth.js:49
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/rfkill.js:118
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Slå av"
@ -1185,16 +1177,17 @@ msgstr "Slå av"
msgid "Bluetooth Settings"
msgstr "Bluetooth-innstillinger"
#: ../js/ui/status/bluetooth.js:104
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105
#, javascript-format
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d tilkoblet enhet"
msgstr[1] "%d tilkoblede enheter"
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d koblet til"
msgstr[1] "%d koblet til"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1310
msgid "Not Connected"
msgstr "Ikke koblet til"
#: ../js/ui/status/bluetooth.js:107
msgid "Not In Use"
msgstr "Ikke i bruk"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
@ -1204,11 +1197,11 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming"
#: ../js/ui/status/location.js:65
msgid "Location"
msgstr "Plassering"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Plassering slått på"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Slå av"
@ -1217,10 +1210,14 @@ msgid "Privacy Settings"
msgstr "Innstillinger for personvern"
#: ../js/ui/status/location.js:176
msgid "In Use"
msgstr "I bruk"
msgid "Location In Use"
msgstr "Plassering i bruk"
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Plassering slått av"
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Slå på"
@ -1228,61 +1225,84 @@ msgstr "Slå på"
msgid "<unknown>"
msgstr "<ukjent>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:1512
msgid "Off"
msgstr "Av"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format
msgid "%s Off"
msgstr "%s av"
#: ../js/ui/status/network.js:459
msgid "Connected"
msgstr "Koblet til"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454
#, javascript-format
msgid "%s Connected"
msgstr "%s koblet til"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu)
#: ../js/ui/status/network.js:463
msgid "Unmanaged"
msgstr "Håndteres ikke"
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: ../js/ui/status/network.js:459
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s håndteres ikke"
#: ../js/ui/status/network.js:465
msgid "Disconnecting"
msgstr "Kobler fra"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s kobler fra"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1302
msgid "Connecting"
msgstr "Kobler til"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format
msgid "%s Connecting"
msgstr "%s kobler til"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:474
msgid "Authentication required"
msgstr "Denne tilkoblingen krever autentisering"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s krever autentisering"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
#: ../js/ui/status/network.js:482
msgid "Firmware missing"
msgstr "Fastvare mangler"
#. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Fastvare mangler for %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:486
msgid "Unavailable"
msgstr "Ikke tilgjengelig"
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484
#, javascript-format
msgid "%s Unavailable"
msgstr "%s er ikke tilgjengelig"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1696
msgid "Connection failed"
msgstr "Tilkobling mislyktes"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s tilkobling mislyktes"
#: ../js/ui/status/network.js:504
#: ../js/ui/status/network.js:503
msgid "Wired Settings"
msgstr "Innstillinger for trådbundet nettverk"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624
msgid "Mobile Broadband Settings"
msgstr "Innstillinger for mobilt bredbånd"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1306
msgid "Hardware Disabled"
msgstr "Maskinvare slått av"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s maskinvare slått av"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592
#, javascript-format
msgid "%s Disabled"
msgstr "%s slått av"
#: ../js/ui/status/network.js:632
msgid "Use as Internet connection"
@ -1324,52 +1344,68 @@ msgstr "Velg et nettverk"
msgid "No Networks"
msgstr "Ingen nettverk"
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:116
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Bruk maskinvarebryter til å slå av"
#: ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:1171
msgid "Select Network"
msgstr "Velg nettverk"
#: ../js/ui/status/network.js:1180
#: ../js/ui/status/network.js:1177
msgid "Wi-Fi Settings"
msgstr "Innstillinger"
#: ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Slå på"
#: ../js/ui/status/network.js:1299
msgid "Hotspot Active"
msgstr "Trådløst aksesspunkt aktivt"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s aksesspunkt aktivt"
#: ../js/ui/status/network.js:1410
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311
#, javascript-format
msgid "%s Not Connected"
msgstr "%s ikke koblet til"
#: ../js/ui/status/network.js:1411
msgid "connecting..."
msgstr "kobler til …"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1413
#: ../js/ui/status/network.js:1414
msgid "authentication required"
msgstr "autentisering kreves"
#: ../js/ui/status/network.js:1415
#: ../js/ui/status/network.js:1416
msgid "connection failed"
msgstr "tilkobling mislyktes"
#: ../js/ui/status/network.js:1481 ../js/ui/status/rfkill.js:94
#: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Innstillinger for nettverk"
#: ../js/ui/status/network.js:1483
#: ../js/ui/status/network.js:1484
msgid "VPN Settings"
msgstr "Innstillinger for VPN"
#: ../js/ui/status/network.js:1502
#: ../js/ui/status/network.js:1503
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1513
msgid "VPN Off"
msgstr "VPN av"
#: ../js/ui/status/network.js:1697
msgid "Connection failed"
msgstr "Tilkobling mislyktes"
#: ../js/ui/status/network.js:1698
msgid "Activation of network connection failed"
msgstr "Aktivering av nettverkstilkobling mislyktes"
@ -1399,42 +1435,34 @@ msgstr "%d:%02d gjenstår (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d til batteriet er fullt (%d%%)"
#: ../js/ui/status/power.js:119
msgid "UPS"
msgstr "UPS"
#: ../js/ui/status/power.js:121
msgid "Battery"
msgstr "Batteri"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode"
msgstr "Flymodus"
msgid "Airplane Mode On"
msgstr "Flymodus er slått på"
#: ../js/ui/status/rfkill.js:90
msgid "On"
msgstr "På"
#: ../js/ui/status/system.js:314
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "Bytt bruker"
#: ../js/ui/status/system.js:319
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "Logg ut"
#: ../js/ui/status/system.js:338
#: ../js/ui/status/system.js:353
msgid "Account Settings"
msgstr "Innstillinger for konto"
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "Lås for orientering"
#: ../js/ui/status/system.js:346
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "Hvilemodus"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "Slå av"
@ -1466,27 +1494,27 @@ msgstr "Programmer"
msgid "Search"
msgstr "Søk"
#: ../js/ui/windowAttentionHandler.js:19
#: ../js/ui/windowAttentionHandler.js:20
#, javascript-format
msgid "“%s” is ready"
msgstr "«%s» er klar"
#: ../js/ui/windowManager.js:65
#: ../js/ui/windowManager.js:63
msgid "Do you want to keep these display settings?"
msgstr "Vil du beholde disse skjerminnstillingene?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: ../js/ui/windowManager.js:84
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Forkast innstillinger"
#: ../js/ui/windowManager.js:88
#: ../js/ui/windowManager.js:85
msgid "Keep Changes"
msgstr "Behold endringer"
#: ../js/ui/windowManager.js:107
#: ../js/ui/windowManager.js:103
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1495,7 +1523,7 @@ msgstr[1] "Endringer i innstillingene forkastes om %d sekunder"
#. 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:613
#: ../js/ui/windowManager.js:658
#, javascript-format
msgid "%d x %d"
msgstr "%d x %d"
@ -1532,27 +1560,35 @@ msgstr "Alltid øverst"
msgid "Always on Visible Workspace"
msgstr "Alltid på synlig arbeidsområde"
#: ../js/ui/windowMenu.js:106
#: ../js/ui/windowMenu.js:105
msgid "Move to Workspace Left"
msgstr "Gå til arbeidsområdet til venstre"
#: ../js/ui/windowMenu.js:110
msgid "Move to Workspace Right"
msgstr "Gå til arbeidsområdet til høyre"
#: ../js/ui/windowMenu.js:115
msgid "Move to Workspace Up"
msgstr "Gå til arbeidsområdet over"
#: ../js/ui/windowMenu.js:111
#: ../js/ui/windowMenu.js:120
msgid "Move to Workspace Down"
msgstr "Gå til arbeidsområdet under"
#: ../js/ui/windowMenu.js:127
#: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up"
msgstr "Flytt til skjermen over"
#: ../js/ui/windowMenu.js:133
#: ../js/ui/windowMenu.js:142
msgid "Move to Monitor Down"
msgstr "Flytt til skjermen under"
#: ../js/ui/windowMenu.js:139
#: ../js/ui/windowMenu.js:148
msgid "Move to Monitor Left"
msgstr "Flytt til skjermen til venstre"
#: ../js/ui/windowMenu.js:145
#: ../js/ui/windowMenu.js:154
msgid "Move to Monitor Right"
msgstr "Flytt til skjermen til høyre"
@ -1608,11 +1644,11 @@ msgstr "Ukjent"
msgid "Failed to launch “%s”"
msgstr "Klarte ikke å starte «%s»"
#: ../src/shell-keyring-prompt.c:714
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Passordene er ikke like."
#: ../src/shell-keyring-prompt.c:722
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Passordet kan ikke være tomt"

509
po/nl.po

File diff suppressed because it is too large Load Diff

556
po/pa.po

File diff suppressed because it is too large Load Diff

552
po/pl.po

File diff suppressed because it is too large Load Diff

569
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

560
po/ru.po

File diff suppressed because it is too large Load Diff

793
po/sk.po

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-05-10 08:30+0000\n"
"PO-Revision-Date: 2015-05-10 20:54+0100\n"
"POT-Creation-Date: 2015-07-08 08:07+0000\n"
"PO-Revision-Date: 2015-07-08 15:46+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl\n"
@ -340,17 +340,17 @@ msgstr "Izbor seje"
msgid "Not listed?"
msgstr "Ali je ni na seznamu?"
#: ../js/gdm/loginDialog.js:840
#: ../js/gdm/loginDialog.js:847
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(na primer, uporabnika ali %s)"
#: ../js/gdm/loginDialog.js:845 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Uporabniško ime: "
#: ../js/gdm/loginDialog.js:1173
#: ../js/gdm/loginDialog.js:1180
msgid "Login Window"
msgstr "Prijavno okno"
@ -443,31 +443,31 @@ msgstr "%B %d %Y, %l%M %p"
msgid "Web Authentication Redirect"
msgstr "Preusmeritev spletnega overjanja"
#: ../js/ui/appDisplay.js:788
#: ../js/ui/appDisplay.js:789
msgid "Frequently used applications will appear here"
msgstr "Pogosto uporabljeni programi bodo prikazani tu"
#: ../js/ui/appDisplay.js:908
#: ../js/ui/appDisplay.js:909
msgid "Frequent"
msgstr "Pogosto"
#: ../js/ui/appDisplay.js:915
#: ../js/ui/appDisplay.js:916
msgid "All"
msgstr "Vse"
#: ../js/ui/appDisplay.js:1844
#: ../js/ui/appDisplay.js:1845
msgid "New Window"
msgstr "Novo okno"
#: ../js/ui/appDisplay.js:1872 ../js/ui/dash.js:289
#: ../js/ui/appDisplay.js:1873 ../js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Odstrani iz priljubljenih"
#: ../js/ui/appDisplay.js:1878
#: ../js/ui/appDisplay.js:1879
msgid "Add to Favorites"
msgstr "Dodaj med priljubljene"
#: ../js/ui/appDisplay.js:1888
#: ../js/ui/appDisplay.js:1889
msgid "Show Details"
msgstr "Pokaži besedilo"
@ -490,7 +490,7 @@ msgid "Display Settings"
msgstr "Nastavitve zaslona"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/status/system.js:334
#: ../js/ui/status/system.js:357
msgid "Settings"
msgstr "Nastavitve"
@ -920,7 +920,7 @@ msgstr "Namesti"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Prejmi in namesti “%s” preko povezave na extensions.gnome.org?"
#: ../js/ui/keyboard.js:718 ../js/ui/status/keyboard.js:713
#: ../js/ui/keyboard.js:747 ../js/ui/status/keyboard.js:713
msgid "Keyboard"
msgstr "Tipkovnica"
@ -985,7 +985,7 @@ msgstr "Poglej vir"
msgid "Web Page"
msgstr "Spletna stran"
#: ../js/ui/messageTray.js:1504
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Podrobnosti sistema"
@ -1027,7 +1027,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Vnos ukaza"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:153
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Zapri"
@ -1059,19 +1059,19 @@ msgstr[1] "%d novo obvestilo"
msgstr[2] "%d novi obvestili"
msgstr[3] "%d nova obvestila"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:342
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:365
msgid "Lock"
msgstr "Zakleni"
#: ../js/ui/screenShield.js:668
#: ../js/ui/screenShield.js:684
msgid "GNOME needs to lock the screen"
msgstr "Zakleniti je treba zaslon"
#: ../js/ui/screenShield.js:795 ../js/ui/screenShield.js:1271
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "Zaklep ni mogoč"
#: ../js/ui/screenShield.js:796 ../js/ui/screenShield.js:1272
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
msgid "Lock was blocked by an application"
msgstr "Zaklep je preprečil program"
@ -1394,23 +1394,23 @@ msgstr "Način letala"
msgid "On"
msgstr "Povezano"
#: ../js/ui/status/system.js:314
#: ../js/ui/status/system.js:337
msgid "Switch User"
msgstr "Preklopi uporabnika"
#: ../js/ui/status/system.js:319
#: ../js/ui/status/system.js:342
msgid "Log Out"
msgstr "Odjava"
#: ../js/ui/status/system.js:338
#: ../js/ui/status/system.js:361
msgid "Orientation Lock"
msgstr "Zaklep položaja"
#: ../js/ui/status/system.js:346
#: ../js/ui/status/system.js:369
msgid "Suspend"
msgstr "Zaustavi"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:372
msgid "Power Off"
msgstr "Izklop"
@ -1442,27 +1442,27 @@ msgstr "Programi"
msgid "Search"
msgstr "Poišči"
#: ../js/ui/windowAttentionHandler.js:19
#: ../js/ui/windowAttentionHandler.js:20
#, javascript-format
msgid "“%s” is ready"
msgstr "“%s” storitev je pripravljena"
#: ../js/ui/windowManager.js:65
#: ../js/ui/windowManager.js:63
msgid "Do you want to keep these display settings?"
msgstr "Ali želite ohraniti te nastavitve zaslona?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#. */
#: ../js/ui/windowManager.js:84
#: ../js/ui/windowManager.js:82
msgid "Revert Settings"
msgstr "Povrni nastavitve"
#: ../js/ui/windowManager.js:88
#: ../js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Sledi spremembam"
#: ../js/ui/windowManager.js:107
#: ../js/ui/windowManager.js:105
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1473,7 +1473,7 @@ msgstr[3] "Spremembe nastavitev bodo povrnjene v %d sekundah."
#. 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:613
#: ../js/ui/windowManager.js:604
#, javascript-format
msgid "%d x %d"
msgstr "%d x %d"
@ -1510,27 +1510,35 @@ msgstr "Vedno na vrhu"
msgid "Always on Visible Workspace"
msgstr "Vedno na dejavni delovni površini"
#: ../js/ui/windowMenu.js:106
#: ../js/ui/windowMenu.js:105
msgid "Move to Workspace Left"
msgstr "Premakni na delovno površino na levi"
#: ../js/ui/windowMenu.js:110
msgid "Move to Workspace Right"
msgstr "Premakni na delovno površino na desni"
#: ../js/ui/windowMenu.js:115
msgid "Move to Workspace Up"
msgstr "Premakni na zgornjo delovno površino"
#: ../js/ui/windowMenu.js:111
#: ../js/ui/windowMenu.js:120
msgid "Move to Workspace Down"
msgstr "Premakni na spodnjo delovno površino"
#: ../js/ui/windowMenu.js:127
#: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up"
msgstr "\t"
#: ../js/ui/windowMenu.js:133
#: ../js/ui/windowMenu.js:142
msgid "Move to Monitor Down"
msgstr "Premakni na zaslon spodaj"
#: ../js/ui/windowMenu.js:139
#: ../js/ui/windowMenu.js:148
msgid "Move to Monitor Left"
msgstr "Premakni na zaslon levo"
#: ../js/ui/windowMenu.js:145
#: ../js/ui/windowMenu.js:154
msgid "Move to Monitor Right"
msgstr "Premakni na zaslon desno"
@ -1590,11 +1598,11 @@ msgstr "Neznano"
msgid "Failed to launch “%s”"
msgstr "Zaganjanje “%s” je spodletelo"
#: ../src/shell-keyring-prompt.c:714
#: ../src/shell-keyring-prompt.c:742
msgid "Passwords do not match."
msgstr "Gesli se ne skladata."
#: ../src/shell-keyring-prompt.c:722
#: ../src/shell-keyring-prompt.c:750
msgid "Password cannot be blank"
msgstr "Geslo ne more biti prazno"

747
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

594
po/sv.po

File diff suppressed because it is too large Load Diff

466
po/tr.po

File diff suppressed because it is too large Load Diff

691
po/vi.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -201,7 +201,7 @@ calendar_sources_init (CalendarSources *sources)
"/", "org.freedesktop.DBus",
"StartServiceByName",
g_variant_new ("(su)",
"org.gnome.evolution.dataserver.Sources4",
"org.gnome.evolution.dataserver.Sources5",
0),
NULL,
G_DBUS_CALL_FLAGS_NONE,

View File

@ -45,8 +45,8 @@ static void gnome_shell_plugin_unminimize (MetaPlugin *plugin,
static void gnome_shell_plugin_size_change (MetaPlugin *plugin,
MetaWindowActor *actor,
MetaSizeChange which_change,
MetaRectangle *old_rect,
MetaRectangle *new_rect);
MetaRectangle *old_frame_rect,
MetaRectangle *old_buffer_rect);
static void gnome_shell_plugin_map (MetaPlugin *plugin,
MetaWindowActor *actor);
static void gnome_shell_plugin_destroy (MetaPlugin *plugin,

View File

@ -176,15 +176,15 @@ gtk_menu_tracker_section_sync_separators (GtkMenuTrackerSection *section,
if (subsection)
{
gboolean could_have_separator;
gboolean section_could_have_separator;
could_have_separator = (section->with_separators && n_items > 0) || subsection->separator_label;
section_could_have_separator = (section->with_separators && n_items > 0) || subsection->separator_label;
/* Only pass the parent_model and parent_index in case they may be used to create the separator. */
n_items += gtk_menu_tracker_section_sync_separators (subsection, tracker, offset + n_items,
could_have_separator,
could_have_separator ? section->model : NULL,
could_have_separator ? i : 0);
section_could_have_separator,
section_could_have_separator ? section->model : NULL,
section_could_have_separator ? i : 0);
}
else
n_items++;
@ -197,11 +197,11 @@ gtk_menu_tracker_section_sync_separators (GtkMenuTrackerSection *section,
if (should_have_separator > section->has_separator)
{
/* Add a separator */
GtkMenuTrackerItem *item;
GtkMenuTrackerItem *menuitem;
item = _gtk_menu_tracker_item_new (tracker->observable, parent_model, parent_index, NULL, TRUE);
(* tracker->insert_func) (item, offset, tracker->user_data);
g_object_unref (item);
menuitem = _gtk_menu_tracker_item_new (tracker->observable, parent_model, parent_index, NULL, TRUE);
(* tracker->insert_func) (menuitem, offset, tracker->user_data);
g_object_unref (menuitem);
section->has_separator = TRUE;
}

Submodule src/gvc updated: e14dbe8aa6...0a79019088

View File

@ -51,11 +51,11 @@ enum {
static int _shell_debug;
static void
shell_dbus_acquire_name (GDBusProxy *bus,
guint32 request_name_flags,
guint32 *request_name_result,
gchar *name,
gboolean fatal)
shell_dbus_acquire_name (GDBusProxy *bus,
guint32 request_name_flags,
guint32 *request_name_result,
const gchar *name,
gboolean fatal)
{
GError *error = NULL;
GVariant *request_name_variant;
@ -69,24 +69,26 @@ shell_dbus_acquire_name (GDBusProxy *bus,
&error)))
{
g_printerr ("failed to acquire %s: %s\n", name, error->message);
g_clear_error (&error);
if (!fatal)
return;
exit (1);
}
g_variant_get (request_name_variant, "(u)", request_name_result);
g_variant_unref (request_name_variant);
}
static void
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
gchar *name,
gboolean fatal, ...) G_GNUC_NULL_TERMINATED;
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
const gchar *name,
gboolean fatal, ...) G_GNUC_NULL_TERMINATED;
static void
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
gchar *name,
gboolean fatal, ...)
shell_dbus_acquire_names (GDBusProxy *bus,
guint32 request_name_flags,
const gchar *name,
gboolean fatal, ...)
{
va_list al;
guint32 request_name_result;
@ -130,6 +132,12 @@ shell_dbus_init (gboolean replace)
NULL, /* cancellable */
&error);
if (!bus)
{
g_printerr ("Failed to get a session bus proxy: %s", error->message);
exit (1);
}
request_name_flags = G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT;
if (replace)
request_name_flags |= DBUS_NAME_FLAG_REPLACE_EXISTING;
@ -454,7 +462,7 @@ main (int argc, char **argv)
/* Initialize the global object */
if (session_mode == NULL)
session_mode = is_gdm_mode ? "gdm" : "user";
session_mode = is_gdm_mode ? (char *)"gdm" : (char *)"user";
_shell_global_init ("session-mode", session_mode, NULL);

View File

@ -182,7 +182,7 @@ shell_app_system_finalize (GObject *object)
* Return Value: (transfer none): The global #ShellAppSystem singleton
*/
ShellAppSystem *
shell_app_system_get_default ()
shell_app_system_get_default (void)
{
static ShellAppSystem *instance = NULL;
@ -348,6 +348,9 @@ _shell_app_system_notify_app_state_changed (ShellAppSystem *self,
case SHELL_APP_STATE_STOPPED:
g_hash_table_remove (self->priv->running_apps, app);
break;
default:
g_warn_if_reached();
break;
}
g_signal_emit (self, signals[APP_STATE_CHANGED], 0, app);
}
@ -383,3 +386,28 @@ shell_app_system_get_running (ShellAppSystem *self)
return ret;
}
/**
* shell_app_system_search:
* @search_string: the search string to use
*
* Wrapper around g_desktop_app_info_search() that replaces results that
* don't validate as UTF-8 with the empty string.
*
* Returns: (array zero-terminated=1) (element-type GStrv) (transfer full): a
* list of strvs. Free each item with g_strfreev() and free the outer
* list with g_free().
*/
char ***
shell_app_system_search (const char *search_string)
{
char ***results = g_desktop_app_info_search (search_string);
char ***groups, **ids;
for (groups = results; *groups; groups++)
for (ids = *groups; *ids; ids++)
if (!g_utf8_validate (*ids, -1, NULL))
**ids = '\0';
return results;
}

View File

@ -48,5 +48,6 @@ ShellApp *shell_app_system_lookup_desktop_wmclass (ShellAppSystem *s
const char *wmclass);
GSList *shell_app_system_get_running (ShellAppSystem *self);
char ***shell_app_system_search (const char *search_string);
#endif /* __SHELL_APP_SYSTEM_H__ */

View File

@ -996,7 +996,7 @@ on_enable_monitoring_key_changed (GSettings *settings,
* Return Value: (transfer none): The global #ShellAppUsage instance
*/
ShellAppUsage *
shell_app_usage_get_default ()
shell_app_usage_get_default (void)
{
static ShellAppUsage *instance;

View File

@ -156,16 +156,20 @@ static MetaWindow *
window_backed_app_get_window (ShellApp *app)
{
g_assert (app->info == NULL);
g_assert (app->running_state);
g_assert (app->running_state->windows);
return app->running_state->windows->data;
if (app->running_state)
{
g_assert (app->running_state->windows);
return app->running_state->windows->data;
}
else
return NULL;
}
static ClutterActor *
window_backed_app_get_icon (ShellApp *app,
int size)
{
MetaWindow *window;
MetaWindow *window = NULL;
ClutterActor *actor;
gint scale;
ShellGlobal *global;
@ -181,14 +185,16 @@ window_backed_app_get_icon (ShellApp *app,
* window-backend apps, it's possible we get a request for the icon.
* Avoid asserting here and just return an empty image.
*/
if (app->running_state == NULL)
if (app->running_state != NULL)
window = window_backed_app_get_window (app);
if (window == NULL)
{
actor = clutter_texture_new ();
g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL);
return actor;
}
window = window_backed_app_get_window (app);
actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
G_OBJECT (window),
"icon");
@ -232,9 +238,10 @@ shell_app_get_name (ShellApp *app)
else
{
MetaWindow *window = window_backed_app_get_window (app);
const char *name;
const char *name = NULL;
name = meta_window_get_wm_class (window);
if (window)
name = meta_window_get_wm_class (window);
if (!name)
name = C_("program", "Unknown");
return name;
@ -491,6 +498,9 @@ shell_app_activate_full (ShellApp *app,
case SHELL_APP_STATE_RUNNING:
shell_app_activate_window (app, NULL, timestamp);
break;
default:
g_assert_not_reached();
break;
}
}
@ -699,7 +709,7 @@ static int
shell_app_get_last_user_time (ShellApp *app)
{
GSList *iter;
int last_user_time;
guint32 last_user_time;
last_user_time = 0;
@ -709,7 +719,7 @@ shell_app_get_last_user_time (ShellApp *app)
last_user_time = MAX (last_user_time, meta_window_get_user_time (iter->data));
}
return last_user_time;
return (int)last_user_time;
}
/**
@ -828,10 +838,13 @@ shell_app_sync_running_state (ShellApp *app)
{
g_return_if_fail (app->running_state != NULL);
if (app->running_state->interesting_windows == 0)
shell_app_state_transition (app, SHELL_APP_STATE_STOPPED);
else if (app->state != SHELL_APP_STATE_STARTING)
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
if (app->state != SHELL_APP_STATE_STARTING)
{
if (app->running_state->interesting_windows == 0)
shell_app_state_transition (app, SHELL_APP_STATE_STOPPED);
else
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
}
}
@ -1000,10 +1013,16 @@ _shell_app_remove_window (ShellApp *app,
if (!meta_window_is_skip_taskbar (window))
app->running_state->interesting_windows--;
shell_app_sync_running_state (app);
if (app->running_state && app->running_state->windows == NULL)
g_clear_pointer (&app->running_state, unref_running_state);
if (app->running_state->windows == NULL)
{
g_clear_pointer (&app->running_state, unref_running_state);
shell_app_state_transition (app, SHELL_APP_STATE_STOPPED);
}
else
{
shell_app_sync_running_state (app);
}
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
}
@ -1142,7 +1161,13 @@ shell_app_launch (ShellApp *app,
if (app->info == NULL)
{
MetaWindow *window = window_backed_app_get_window (app);
meta_window_activate (window, timestamp);
/* We don't use an error return if there no longer any windows, because the
* user attempting to activate a stale window backed app isn't something
* we would expect the caller to meaningfully handle or display an error
* message to the user.
*/
if (window)
meta_window_activate (window, timestamp);
return TRUE;
}

View File

@ -59,7 +59,7 @@ shell_embedded_window_show (GtkWidget *widget)
/* Size is 0x0 if the GtkWindow is not shown */
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
if (CLUTTER_ACTOR_IS_REALIZED (window->priv->actor))
if (clutter_actor_is_realized (CLUTTER_ACTOR (window->priv->actor)))
gtk_widget_map (widget);
}
}
@ -166,7 +166,7 @@ _shell_embedded_window_set_actor (ShellEmbeddedWindow *window,
window->priv->actor = actor;
if (actor &&
CLUTTER_ACTOR_IS_MAPPED (actor) &&
clutter_actor_is_mapped (CLUTTER_ACTOR (actor)) &&
gtk_widget_get_visible (GTK_WIDGET (window)))
gtk_widget_map (GTK_WIDGET (window));
}

View File

@ -172,7 +172,7 @@ shell_generic_container_get_focus_chain (StWidget *widget)
child != NULL;
child = clutter_actor_get_next_sibling (child))
{
if (CLUTTER_ACTOR_IS_VISIBLE (child) &&
if (clutter_actor_is_visible (child) &&
!shell_generic_container_get_skip_paint (self, child))
focus_chain = g_list_prepend (focus_chain, child);
}
@ -273,7 +273,7 @@ shell_generic_container_get_paint_volume (ClutterActor *self,
{
const ClutterPaintVolume *child_volume;
if (!CLUTTER_ACTOR_IS_VISIBLE (child))
if (!clutter_actor_is_visible (child))
continue;
if (shell_generic_container_get_skip_paint (SHELL_GENERIC_CONTAINER (self), child))

View File

@ -139,6 +139,7 @@ shell_glsl_quad_constructed (GObject *object)
if (G_UNLIKELY (klass->base_pipeline == NULL))
{
klass->base_pipeline = cogl_pipeline_new (ctx);
cogl_pipeline_set_blend (klass->base_pipeline, "RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))", NULL);
if (klass->build_pipeline != NULL)
klass->build_pipeline (self);

View File

@ -68,7 +68,6 @@ shell_gtk_embed_window_created_cb (MetaDisplay *display,
{
ClutterActor *window_actor =
CLUTTER_ACTOR (meta_window_get_compositor_private (window));
MetaDisplay *display = shell_global_get_display (shell_global_get ());
GCallback remove_cb = G_CALLBACK (shell_gtk_embed_remove_window_actor);
cairo_region_t *empty_region;

View File

@ -125,9 +125,10 @@ on_window_draw (GtkWidget *window,
WindowInfo *info)
{
cairo_rectangle_int_t allocation;
gtk_widget_get_allocation (window, &allocation);
double x_offset, y_offset;
gtk_widget_get_allocation (window, &allocation);
/* We draw an arbitrary pattern of red lines near the border of the
* window to make it more clear than empty windows if something
* is drastrically wrong.

View File

@ -626,7 +626,7 @@ shell_perf_log_collect_statistics (ShellPerfLog *perf_log)
{
gint64 event_time = get_time ();
gint64 collection_time;
int i;
guint i;
if (!perf_log->enabled)
return;
@ -672,6 +672,9 @@ shell_perf_log_collect_statistics (ShellPerfLog *perf_log)
statistic->recorded = TRUE;
}
break;
default:
g_warning ("Unsupported signature in event");
break;
}
}
@ -819,7 +822,7 @@ shell_perf_log_dump_events (ShellPerfLog *perf_log,
GError **error)
{
GString *output;
int i;
guint i;
output = g_string_new (NULL);
g_string_append (output, "[ ");

View File

@ -156,17 +156,17 @@ shell_recorder_src_send_event (GstElement * element, GstEvent * event)
ShellRecorderSrc *src = SHELL_RECORDER_SRC (element);
gboolean res;
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_EOS:
if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
{
shell_recorder_src_close (src);
gst_event_unref (event);
res = TRUE;
break;
default:
}
else
{
res = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, send_event, (element,
event), FALSE);
break;
}
}
return res;
}

View File

@ -1182,23 +1182,20 @@ recorder_pipeline_bus_watch (GstBus *bus,
{
RecorderPipeline *pipeline = data;
switch (message->type)
if (message->type == GST_MESSAGE_EOS)
{
case GST_MESSAGE_EOS:
recorder_pipeline_closed (pipeline);
return FALSE; /* remove watch */
case GST_MESSAGE_ERROR:
{
GError *error;
}
else if (message->type == GST_MESSAGE_ERROR)
{
GError *error;
gst_message_parse_error (message, &error, NULL);
g_warning ("Error in recording pipeline: %s\n", error->message);
g_error_free (error);
recorder_pipeline_closed (pipeline);
return FALSE; /* remove watch */
}
default:
break;
gst_message_parse_error (message, &error, NULL);
g_warning ("Error in recording pipeline: %s\n", error->message);
g_error_free (error);
recorder_pipeline_closed (pipeline);
return FALSE; /* remove watch */
}
/* Leave the watch in place */

View File

@ -155,7 +155,7 @@ shell_stack_navigate_focus (StWidget *widget,
if (from && clutter_actor_contains (CLUTTER_ACTOR (widget), from))
return FALSE;
if (CLUTTER_ACTOR_IS_MAPPED (CLUTTER_ACTOR (widget)))
if (clutter_actor_is_mapped (CLUTTER_ACTOR (widget)))
{
clutter_actor_grab_key_focus (CLUTTER_ACTOR (widget));
return TRUE;

View File

@ -13,6 +13,7 @@
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdkx.h>
#include <meta/meta-shaped-texture.h>
#include <locale.h>
#ifdef HAVE__NL_TIME_FIRST_WEEKDAY
@ -84,7 +85,7 @@ shell_util_get_transformed_allocation (ClutterActor *actor,
*/
ClutterVertex v[4];
gfloat x_min, x_max, y_min, y_max;
gint i;
guint i;
g_return_if_fail (CLUTTER_IS_ACTOR (actor));
@ -165,7 +166,7 @@ shell_util_format_date (const char *format,
*/
/* Copied from gtkcalendar.c */
int
shell_util_get_week_start ()
shell_util_get_week_start (void)
{
int week_start;
#ifdef HAVE__NL_TIME_FIRST_WEEKDAY
@ -403,3 +404,57 @@ shell_util_text_insert_keyval (ClutterActor *actor,
clutter_actor_event (actor, &event, FALSE);
}
static gboolean
canvas_draw_cb (ClutterContent *content,
cairo_t *cr,
gint width,
gint height,
gpointer user_data)
{
cairo_surface_t *surface = user_data;
cairo_set_source_surface (cr, surface, 0, 0);
cairo_paint (cr);
return FALSE;
}
/**
* shell_util_get_content_for_window_actor:
* @window_actor: a #MetaWindowActor
* @window_rect: a #MetaRectangle
*
* Returns: (transfer full): a new #ClutterContent
*/
ClutterContent *
shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
MetaRectangle *window_rect)
{
ClutterActor *texture;
ClutterContent *content;
cairo_surface_t *surface;
cairo_rectangle_int_t clip;
gfloat actor_x, actor_y;
texture = meta_window_actor_get_texture (window_actor);
clutter_actor_get_position (CLUTTER_ACTOR (window_actor), &actor_x, &actor_y);
clip.x = window_rect->x - (gint) actor_x;
clip.y = window_rect->y - (gint) actor_y;
clip.width = window_rect->width;
clip.height = window_rect->height;
surface = meta_shaped_texture_get_image (META_SHAPED_TEXTURE (texture),
&clip);
content = clutter_canvas_new ();
clutter_canvas_set_size (CLUTTER_CANVAS (content),
clip.width, clip.height);
g_signal_connect (content, "draw",
G_CALLBACK (canvas_draw_cb), surface);
clutter_content_invalidate (content);
cairo_surface_destroy (surface);
return content;
}

View File

@ -8,6 +8,7 @@
#include <libsoup/soup.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <meta/meta-cursor-tracker.h>
#include <meta/meta-window-actor.h>
G_BEGIN_DECLS
@ -50,6 +51,9 @@ gboolean shell_util_need_background_refresh (void);
void shell_util_text_insert_keyval (ClutterActor *actor,
guint keyval);
ClutterContent * shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
MetaRectangle *window_rect);
G_END_DECLS
#endif /* __SHELL_UTIL_H__ */

View File

@ -865,7 +865,7 @@ shell_startup_sequence_create_icon (ShellStartupSequence *sequence, guint size)
* Return Value: (transfer none): The global #ShellWindowTracker instance
*/
ShellWindowTracker *
shell_window_tracker_get_default ()
shell_window_tracker_get_default (void)
{
static ShellWindowTracker *instance;

View File

@ -15,8 +15,8 @@ void _shell_wm_unminimize (ShellWM *wm,
void _shell_wm_size_change(ShellWM *wm,
MetaWindowActor *actor,
MetaSizeChange which_change,
MetaRectangle *old_rect,
MetaRectangle *new_rect);
MetaRectangle *old_frame_rect,
MetaRectangle *old_buffer_rect);
void _shell_wm_map (ShellWM *wm,
MetaWindowActor *actor);
void _shell_wm_destroy (ShellWM *wm,

View File

@ -101,7 +101,7 @@ st_bin_allocate (ClutterActor *self,
clutter_actor_set_allocation (self, box, flags);
if (priv->child && CLUTTER_ACTOR_IS_VISIBLE (priv->child))
if (priv->child && clutter_actor_is_visible (priv->child))
{
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
ClutterActorBox childbox;
@ -128,7 +128,7 @@ st_bin_get_preferred_width (ClutterActor *self,
st_theme_node_adjust_for_height (theme_node, &for_height);
if (priv->child == NULL || !CLUTTER_ACTOR_IS_VISIBLE (priv->child))
if (priv->child == NULL || !clutter_actor_is_visible (priv->child))
{
if (min_width_p)
*min_width_p = 0;
@ -157,7 +157,7 @@ st_bin_get_preferred_height (ClutterActor *self,
st_theme_node_adjust_for_width (theme_node, &for_width);
if (priv->child == NULL || !CLUTTER_ACTOR_IS_VISIBLE (priv->child))
if (priv->child == NULL || !clutter_actor_is_visible (priv->child))
{
if (min_height_p)
*min_height_p = 0;
@ -209,7 +209,7 @@ st_bin_navigate_focus (StWidget *widget,
if (from && clutter_actor_contains (bin_actor, from))
return FALSE;
if (CLUTTER_ACTOR_IS_MAPPED (bin_actor))
if (clutter_actor_is_mapped (bin_actor))
{
clutter_actor_grab_key_focus (bin_actor);
return TRUE;

View File

@ -562,6 +562,24 @@ layout_notify (GObject *object,
g_object_notify (self, prop_name);
}
static void
on_layout_manager_notify (GObject *object,
GParamSpec *pspec,
gpointer user_data)
{
ClutterActor *actor = CLUTTER_ACTOR (object);
ClutterLayoutManager *layout = clutter_actor_get_layout_manager (actor);
g_warn_if_fail (CLUTTER_IS_BOX_LAYOUT (layout));
if (layout == NULL)
return;
g_signal_connect_swapped (layout, "layout-changed",
G_CALLBACK (clutter_actor_queue_relayout), actor);
g_signal_connect (layout, "notify", G_CALLBACK (layout_notify), object);
}
static void
st_box_layout_class_init (StBoxLayoutClass *klass)
{
@ -614,14 +632,11 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
static void
st_box_layout_init (StBoxLayout *self)
{
ClutterLayoutManager *layout;
self->priv = BOX_LAYOUT_PRIVATE (self);
layout = clutter_box_layout_new ();
g_signal_connect_swapped (layout, "layout-changed",
G_CALLBACK (clutter_actor_queue_relayout), self);
g_signal_connect (layout, "notify", G_CALLBACK (layout_notify), self);
clutter_actor_set_layout_manager (CLUTTER_ACTOR (self), layout);
g_signal_connect (self, "notify::layout-manager",
G_CALLBACK (on_layout_manager_notify), NULL);
clutter_actor_set_layout_manager (CLUTTER_ACTOR (self), clutter_box_layout_new ());
}
/**

View File

@ -211,7 +211,7 @@ st_button_button_release (ClutterActor *actor,
{
gboolean is_click;
is_click = button->priv->grabbed && st_widget_get_hover (ST_WIDGET (button));
is_click = button->priv->grabbed && clutter_actor_contains (actor, event->source);
st_button_release (button, device, mask, is_click ? event->button : 0, NULL);
button->priv->grabbed &= ~mask;
@ -801,9 +801,6 @@ struct _StButtonAccessibleClass
StWidgetAccessibleClass parent_class;
};
static void st_button_accessible_class_init (StButtonAccessibleClass *klass);
static void st_button_accessible_init (StButtonAccessible *button);
/* AtkObject */
static void st_button_accessible_initialize (AtkObject *obj,
gpointer data);

Some files were not shown because too many files have changed in this diff Show More