Compare commits

...

289 Commits
3.4.1 ... 3.7.3

Author SHA1 Message Date
6f3ae06362 Bump version to 3.7.3
Update NEWS
2012-12-18 13:31:41 +01:00
7d7b859b40 Fix 'comparison between signed and unsigned integer' compiler errors 2012-12-17 12:30:01 +00:00
d78de379cc keybindings: Give dynamic keybindings a keybindings action
https://bugzilla.gnome.org/show_bug.cgi?id=682315
2012-12-17 12:00:55 +00:00
576384a73b Updated Polish translation 2012-12-16 02:50:03 +01:00
2fcbc467e8 keybindings: Fix whitespace and alignment
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 18:15:23 -05:00
6139bc77ec Remove support for Core Events
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 18:15:23 -05:00
c1ac9d1dff ui: Use XI2 to fake GDK events
This removes our final dependency on Core Events, meaning
we can remove support code for them soon.

This commit is a bit ugly as it requires ui having a dependency on
core, but this is already a hack, so this is thus a hack inside a
hack, and two hacks make a right or however that goes.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 18:15:23 -05:00
945c530354 display: Add spew for XI2
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 18:15:22 -05:00
774ceec243 Select for XI2 events everywhere else
In random places that are not grabs, we selected for events on
things like the root window, stage window, COW and more. Switch
these over to using the proper XI2 APIs.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 17:14:06 -05:00
7c20621112 keybindings: Grab keys with XI2
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 17:14:06 -05:00
afcdfd158f keybindings: Grab keyboard with XI2
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 17:14:06 -05:00
8fb9e0072c display: Grab buttons with XI2
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 17:14:06 -05:00
c1b8e0ac8f display: Use XInput2 to grab the pointer
As calling XIGrabDevice multiple times will change it, just
drop the XChangeActivePointerGrab path and just go down the
XIGrabPointer path always.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 17:14:06 -05:00
c90765370d window: Pass the grab timestamp when updating the resize grab
Since XChangeActivePointerGrab doesn't have a direct equivalent
in XI2, we need to make sure we don't re-grab with a newer
tiemstamp.
2012-12-13 17:06:00 -05:00
8931b8026e compositor: Identify XI2 events as grabbed events
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 16:36:43 -05:00
55251aa986 compositor: Use XInput2 to grab the pointer/keyboard
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 16:36:42 -05:00
946a42f13e core: enable XInput2 by default
Enable XI2 support in both Clutter and GDK.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:57:31 -05:00
0fd4059927 display: Only care about input events for the VCP/VCK
It's unlikely that we'll ever want to support multiple pointer
devices. Multiple keyboard devices may become useful in the future,
but for now, only care about the core keyboard.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:57:31 -05:00
1d827049d6 Port mutter to use XInput2 events instead of Core Events
Mechanically transform the event processing of mutter to care
about XI2 events instead of Core Events. Core Events will be left
in the dust soon, and removed entirely.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:56:25 -05:00
881d256ce0 window: Move grab op sync handling code out
This removes some duplicate event type checks, and will make
the code cleaner in the future when we want to make the grab_op_event
handler take an XIDeviceEvent directly.

Based on a patch by Owen Taylor <otaylor@fishsoup.net>

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:56:24 -05:00
6b31bd402a display: Don't pass an event to a handler that will no-op
meta_window_handle_mouse_grab_op_event won't do anything on a
EnterNotify/LeaveNotify, so why are we passing something to it?

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:56:24 -05:00
129c729c50 display: separate input/non-input events handling in the event callback
In order to make the XI2 handling easier on us in the future, we now
split input events from non-input events. This will allow one code path
to use XIEvent, and the other to use XEvent in the future. This commit
has involved plenty of indenting changes, so it's better seen with
git diff -b or &ignorews=1

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:12:56 -05:00
8bf8f3ea55 common: Add the XInput2 headers to common.h, which everything uses
https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:12:56 -05:00
f0c1e39fb7 display: Initialize XInput2
Make sure it's the correct version.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:12:56 -05:00
dd4e655e2b Require XInput2
This is going to start becoming necessary for mutter to run.

https://bugzilla.gnome.org/show_bug.cgi?id=688779
2012-12-13 14:12:56 -05:00
b3073bc3bc Updated Kannada Translations 2012-12-13 17:44:11 +05:30
54603f4d95 Updated Kannada Translations 2012-12-13 17:28:28 +05:30
aab65a768e Updated Kannada Translations 2012-12-13 17:22:56 +05:30
37c037278c Assamese translation updated 2012-12-10 18:27:30 +05:30
9d904f9a85 Increase typical icon size to 96
Since we want nice alt-tab applications for gnome-shell, we should up the
limit to 96. In the future, we probably want to get rid of the icon-cache,
and allow looking up a correctly sized icon directly from the window.

To prevent app breakage, set the legacy WM_HINTS pixmap size directly to
32x32.

https://bugzilla.gnome.org/show_bug.cgi?id=689651
2012-12-09 20:44:13 -05:00
8830814d70 screen: Add a convenience method to focus the default window
This will be used for gnome-shell so that it can focus a window after
a keyboard grab or other things.

https://bugzilla.gnome.org/show_bug.cgi?id=689652
2012-12-07 13:01:49 -05:00
c0958090b4 Updated Odia Translation with FUEL implementation. 2012-12-06 13:53:52 +05:30
7f9e4e47c5 Updated Odia Translation with FUEL implementation. 2012-12-06 13:50:51 +05:30
2282326f30 Add 'switch-applications' keybinding
Add an additional "switcher" keybinding for switching between
applications rather than windows (like the existing 'switch-windows'
and 'switch-group' bindings).
The purpose of the new keybinding is to be taken over by gnome-shell's
application-based alt-tab popup, so rather than actually implementing
an application switcher in mutter, let it duplicate the normal window
switcher when run standalone.

https://bugzilla.gnome.org/show_bug.cgi?id=688913
2012-12-05 18:45:22 +01:00
8703daccbe display: Make workspace parameter to get_tab_list() optional
Currently meta_display_get_tab_list() will only return windows on
a single workspace. Make the workspace parameter optional to allow
requesting windows from all workspaces.

https://bugzilla.gnome.org/show_bug.cgi?id=688913
2012-12-05 18:45:22 +01:00
3797ecaa65 display: Clean up meta_display_get_tab_list()
https://bugzilla.gnome.org/show_bug.cgi?id=688913
2012-12-05 18:45:22 +01:00
c6fcc79e6a display: Kill a warning at shutdown
A small semicolon was causing us to always remove the focus
timeout ID.
2012-12-04 16:46:40 -05:00
d588de635a Updated Tamil translation 2012-12-02 18:58:51 +05:30
e5b46747d6 Initialize window->user_rect in the initial placement
The window positioning is delayed in idle_move_resize() in case the application
resizes/maximizes its window quickly after its creation. The delayed
positioning uses window->user_rect because of bug 426519 comment 3 (see
meta_window_move_resize_now()).

user_rect was not set in the initial positioning, causing the delayed
positioning unable to know which monitor we use for this window. As a
consequence, the window could jump spontaneously from one monitor to another.

With this patch, the window does not jump anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=556696
2012-11-30 13:29:26 +00:00
62d85f2e41 Updated Hebrew translation. 2012-11-30 11:53:56 +02:00
5ea6bf3b46 Updated Polish translation 2012-11-27 17:31:03 +01:00
90d0bb96b4 Assamese translation updated 2012-11-23 21:10:23 +05:30
ff64cba616 Rename configure.in to configure.ac
configure.in support for autoconf is going to go away at some point.

https://bugzilla.gnome.org/show_bug.cgi?id=688777
2012-11-20 21:25:12 -05:00
30387df454 Bump version to 3.7.2
Update NEWS
2012-11-19 21:05:22 +01:00
38484bf967 Remove another call to g_type_init() 2012-11-19 21:03:14 +01:00
e73946f0bf MetaBackgroundActor: add a setter for GLSL uniforms
It doesn't make sense to GLSL shaders without uniforms.

https://bugzilla.gnome.org/show_bug.cgi?id=682536
2012-11-17 02:14:38 +01:00
6004197064 keybindings: Add is_builtin() method
https://bugzilla.gnome.org/show_bug.cgi?id=688202
2012-11-17 01:47:06 +01:00
aa43e715c0 keybindings: Add MetaKeyBinding for overlay-key
As the overlay key works differently from normal keybindings, it
requires special treatment. However, by adding a rudimentary
MetaKeyBinding for it, we will be able to confine the special
handling to mutter and treat it like any other keybinding in
the shell.

https://bugzilla.gnome.org/show_bug.cgi?id=688202
2012-11-17 01:47:06 +01:00
424fc5245a Add compositor hook to process keybindings selectively
Currently keybindings are blocked while the compositor holds a grab; if
we want a keybinding to be available anyway, we use captured ClutterEvents
to determine the KeyBindingAction the event would have triggered and
run our own handlers (ugh).
Instead, provide a hook to allow the compositor to filter out keybindings
before processing them normally, regardless of whether the compositor
holds a grab or not.

https://bugzilla.gnome.org/show_bug.cgi?id=688202
2012-11-17 01:47:05 +01:00
90952ac5c8 Fix naming of "user_data" arguments for better introspection 2012-11-16 21:23:47 +01:00
395fbefd3c po: Import translations from Metacity
To save translators some work, import existing translations for the
newly added keybinding files. As a result of a gnome-i18n discussion[0],
all additions are marked as fuzzy.

[0] https://mail.gnome.org/archives/gnome-i18n/2012-November/msg00054.html

https://bugzilla.gnome.org/show_bug.cgi?id=687672
2012-11-13 16:39:07 +01:00
bdf47aeac4 keybindings: Import keybinding files from Metacity
Fallback mode is going away, so we should stop depending on Metacity
for keybinding files for common bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=687672
2012-11-12 19:27:35 +01:00
daac778f16 ui: Remove obsolete GTK+ version check 2012-11-12 19:27:35 +01:00
93a16f6d43 frames: Bump priority of style providers
Since GTK+ commit b1ad5c8abc2c, GtkSetting's CSS provider uses a
priority of GTK_STYLE_PROVIDER_PRIORITY_SETTINGS, which means it
will overwrite the ones we create ourselves.
Bump the priority to fix dark window decorations.

https://bugzilla.gnome.org/show_bug.cgi?id=688182
2012-11-12 19:27:34 +01:00
e46cf80fdd Updated Hebrew translation. 2012-11-07 18:40:37 +02:00
c37c741592 meta-background-actor: Fix compilation error 2012-11-05 19:44:03 +01:00
4cf461fffa display: Only process keyboard mapping events for the core X keyboard
The X server sends a XkbNewKeyboardNotify event for each keyboard
device when a new keyboard description is loaded. These days a typical
computer has several keyboard devices, e.g. xinput on this laptop
lists 8. Since the work we do on these events is relatively expensive
and we are only really interested in changes to the virtual core
keyboard we can skip other devices' events to cut on needless work.

https://bugzilla.gnome.org/show_bug.cgi?id=674859
2012-11-05 19:40:14 +01:00
859ea1457d Add the ability to add shader hooks to MetaBackgroundActor
Using ClutterEffect is not pratical on MetaBackgroundActor, as the FBO
redirection has a noticeable performance impact. Instead, allow adding
GLSL code directly to the pipeline used to draw the background texture.
At the same time, port MetaBackgroundActor to modern Cogl API.

https://bugzilla.gnome.org/show_bug.cgi?id=669798
2012-11-05 19:12:37 +01:00
188d532438 display: Ignore DamageNotify in spew 2012-11-03 19:37:51 -04:00
f258556cec MetaPluginManager: don't send events to Clutter twice
When support for multiple plugins was removed, the logic that was
supposed to send events to Clutter directly *only if there is no filter
function from a plugin* was broken, so events were being sent to
Clutter twice if Clutter didn't consume them the first time.

https://bugzilla.gnome.org/show_bug.cgi?id=686406
2012-11-03 19:36:41 -04:00
62dbaa89ca mutter: Don't call g_type_init
It has been deprecated upstream.
2012-11-02 11:45:11 -04:00
b56396eca5 Updated German translation 2012-10-30 18:59:33 +01:00
0fdc36cac4 Updated Brazilian Portuguese Translation 2012-10-29 16:29:49 -02:00
2cc0d31b17 window: Avoid spurious focus-window changes when showing desktop
When using the show-desktop shortcut with no desktop window, unshowing
will focus the second-most-recently-used window. If we find a desktop
window, it will be focused explicitly and everything works as expected;
however without a desktop window, we end up hiding the focus window,
which will use focus_default_window() with the not_this_one parameter
to move focus away. We used to get away with this, as the not_this_one
parameter was ignored until commit e257580b94, now with bug 675982
fixed, we need to explicitly handle the show-desktop case.

https://bugzilla.gnome.org/show_bug.cgi?id=686928
2012-10-26 15:52:32 +02:00
e2bf91cd61 Bump version to 3.7.1
Update NEWS
2012-10-23 14:50:37 +02:00
294311b2d1 [l10n] Updated Estonian translation 2012-10-22 22:02:58 +03:00
db6d89b742 Updated Norwegian bokmål translation 2012-10-22 19:52:14 +02:00
2717a02a8d screen: Ignore num-workspaces when using dynamic workspaces
On startup, workspaces are initialized according to the num-workspaces
preference. However when using dynamic workspaces, the actual number
of workspaces in use might be greater than the preference (when
replacing the window manager), forcing windows on those workspaces
to the first workspace.
To fix, ignore the preference completely when using dynamic workspaces
and try to restore the previous number of workspaces (as read from
_NET_NUMBER_OF_DESKTOPS).

https://bugzilla.gnome.org/show_bug.cgi?id=685439
2012-10-17 22:43:26 +02:00
4344c9e192 Updated Serbian translation 2012-10-17 10:11:38 +02:00
53e2d34628 Updated Czech translation 2012-10-17 08:27:39 +02:00
c602d53649 Updated Indonesian translation 2012-10-16 23:42:05 +07:00
43a121c8d9 Updated Spanish translation 2012-10-16 18:12:08 +02:00
a8c5100fbb Updated Galician translations 2012-10-16 17:06:40 +02:00
5034bd8a7e Updated Slovenian translation 2012-10-16 15:33:58 +02:00
07d8b9ce19 Revert "delete: Unbreak string freeze"
This reverts commit 09713c5fd4.

https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-10-16 14:47:37 +02:00
9c5ac65311 Bump version to 3.6.1
Update NEWS
2012-10-15 23:26:37 +02:00
ce8d36a5db [l10n] Updated Catalan (Valencian) translation 2012-10-15 22:39:12 +02:00
27b00d6f63 [l10n] Updated Catalan translation 2012-10-15 22:39:04 +02:00
c441364bd3 Update French translation 2012-10-15 21:26:41 +02:00
1a521e10c3 display: Only manage the default X screen
https://bugzilla.gnome.org/show_bug.cgi?id=648156
2012-10-15 19:18:45 +02:00
e22d941f06 Updated Thai translation 2012-10-15 15:16:47 +07:00
787d22dcd0 Updated Bengali India Translations 2012-10-15 12:30:04 +05:30
22d9182322 Updated Marathi Translations 2012-10-15 11:16:55 +05:30
38295e8202 Updated Danish translation 2012-10-15 06:38:57 +02:00
fe57f7572d Updated Kannada Translations 2012-10-14 23:58:42 +05:30
aade16a9eb Updated Kannada Translations 2012-10-14 23:57:16 +05:30
e31a97759e Updated Bulgarian translation 2012-10-14 17:31:48 +03:00
472662d099 Resize the guard window when the X screen is resized.
Fixes bug #670396. Without this fix the guard window may not
extend over the whole area of the screen after a XRandR
reconfiguration. The effect being that mouse events are
delivered to invisible windows.
2012-10-14 12:16:06 +02:00
027f16b096 Updated Lithuanian translation 2012-10-13 22:55:26 +03:00
5c7fdd67e8 Updated Belarusian translation. 2012-10-13 17:44:15 +03:00
4a0b6793bf Updated Norwegian bokmål translation 2012-10-13 12:51:20 +02:00
228d1bf9aa Updated Spanish translation 2012-10-13 12:28:33 +02:00
85bcb9c121 Updated Korean translation 2012-10-13 18:54:53 +09:00
989a38767e Updated Russian translation 2012-10-13 13:41:26 +04:00
78e72f0a47 Updated Greek translation 2012-10-13 01:00:45 +03:00
0faa623043 Updated Latvian translation 2012-10-12 22:31:27 +03:00
ecd7e662ff Updated British English translation 2012-10-12 18:55:36 +01:00
7d9925ba2e Updated Polish translation 2012-10-12 19:06:59 +02:00
95c6547631 Updated Galician translations 2012-10-11 22:02:10 +02:00
b5235d5a46 Updated Slovenian translation 2012-10-11 19:56:53 +02:00
f3b1e8b3bd Updated Indonesian translation 2012-10-11 21:45:31 +07:00
59bc5b7975 display: (Optionally) delay focus changes in focus-follows-mouse mode
Moving focus immediately on crossing events as we currently do
in focus-follows-mouse mode may trigger a lot of unwanted focus
changes when moving over unrelated windows on the way to a target.
Those accidental focus changes prevent features like GNOME Shell's
application menu from working properly and are visually expensive
since we now use a very distinct style for unfocused windows.
Instead, delay the actual focus change until the pointer has stopped
moving.

https://bugzilla.gnome.org/show_bug.cgi?id=678169
2012-10-11 07:49:21 +02:00
99cbe762d7 Expose MetaPlugin to introspection
Add a type annotation on the xevent_filter vfunc. This is sufficient
to remove the skip annotation on MetaPlugin and MetaPluginClass
without triggering scan errors.

https://bugzilla.gnome.org/show_bug.cgi?id=671098
2012-10-08 17:05:11 -04:00
7a2c019514 window: Don't move the desktop window after monitor hotplug
If someone plugs in a new monitor, while all their regular windows
should move in absolute X coordinates to ensure they stay on the
same monitor, the desktop window should stay put.

https://bugzilla.gnome.org/show_bug.cgi?id=681159
2012-10-07 13:23:04 -03:00
c02e1b6f56 Remove unused public window-property functions
Simplify the set of window-property functions to remove the
unused functions:

 meta_window_reload_properties_from_xwindow()
 meta_window_reload_properties()

And to make:

 meta_window_reload_property()

static. The code is considerably simplified by removing the
plural variants.

https://bugzilla.gnome.org/show_bug.cgi?id=587255
2012-10-03 23:35:35 -04:00
7938458eb8 window-actor: Don't create a mask texture unnecessarily
Mask texture resources may be expensive. Don't create one
if we don't need to, like on an unshaped window without
a frame.

https://bugzilla.gnome.org/show_bug.cgi?id=681676
2012-09-26 13:53:14 -03:00
165e117028 Bump version to 3.6.0
Update NEWS
2012-09-24 22:41:08 +02:00
32cb4a178e [l10n] Updated Estonian translation 2012-09-24 10:56:42 +03:00
7b69780d9a Finnish translation update by Jiri Grönroos 2012-09-24 09:29:55 +03:00
be500e33f9 [l10n] Update Japanese translation 2012-09-24 12:55:14 +09:00
427c5cc42b Updated Belarusian translation. 2012-09-23 13:28:13 +03:00
3f444cb2fe Updated gujarati file 2012-09-22 23:34:54 +05:30
02bc4b54eb Updated Latvian translation 2012-09-22 18:59:21 +03:00
85c46be205 Updated Malayalam file 2012-09-22 01:42:33 +05:30
f97db0215b Updated Telugu Translations 2012-09-21 22:29:46 +05:30
dc79d8aa3d hindi update 2012-09-21 17:09:18 +05:30
00fecb6cea hindi update 2012-09-21 17:04:11 +05:30
f0e97b540f Uploaded Ukranian 2012-09-21 10:05:23 +03:00
37266aabfe Updated Bulgarian translation 2012-09-19 20:36:13 +03:00
6cc423cca6 Bump version to 3.5.92
Update NEWS
2012-09-19 15:10:26 +02:00
ce820702e3 doap: Add myself as maintainer 2012-09-19 15:09:43 +02:00
5eb72743dd util: Guard against older zenity versions
Plenty of ugly here, but it works; revert when the zenity version
we depend on stops being bleeding-edge (or we can assume a zenity
version that does not error out on unknown options).

https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 15:09:43 +02:00
ae1be578ba util: Use a sad face in the force-quit dialog
https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 15:09:42 +02:00
7e1e9320bc utils: Request a modal dialog when transient_for is set
https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 15:09:42 +02:00
18a1ed6ec5 Updated Czech translation 2012-09-19 13:38:27 +02:00
09713c5fd4 delete: Unbreak string freeze
Quotes should definitively part of the translation, but we are in
string freeze now - revert this when we get a string freeze approval
or after the freeze ends.

https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 11:21:39 +02:00
909cd82bea Minor improvements to the not responding dialog
https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 11:15:06 +02:00
0593df8fe0 display: Add API to set wm_name / wm_keybindings
As plugins can now define their own keyboard shortcuts via
meta_display_add_keybinding(), it makes sense for them to
expose those shortcuts to System Settings, so add some API
to set the properties gnome-control-center uses to pick up
wm keybinding settings.

https://bugzilla.gnome.org/show_bug.cgi?id=671010
2012-09-18 12:53:28 +02:00
29b3e69dfa Updated translation for Brazilian Portuguese. 2012-09-17 16:25:52 -04:00
639d5e4710 Updated Danish translation 2012-09-16 13:35:20 +02:00
8c36cf5939 Updated Korean translation 2012-09-15 18:05:02 +09:00
cc107c0eda Updated Vietnamese translation 2012-09-13 20:38:34 +07:00
c7f70d71f7 Updated Greek translation 2012-09-13 04:47:29 +03:00
9c6ccf96a5 [l10n] Updated German translation 2012-09-09 13:14:23 +02:00
11262b76df Updated Polish translation 2012-09-08 15:39:38 +02:00
8fcc0db0c1 [l10n]Updated Catalan (Valencian) translation 2012-09-07 16:57:15 +02:00
7c999a9d13 [l10n] Updated Catalan translation 2012-09-07 16:57:09 +02:00
efc55347e0 Updated Thai translation. 2012-09-07 19:47:45 +07:00
5f11158721 Update French translation 2012-09-06 18:35:42 +02:00
88ee5a68d9 Update French translation 2012-09-06 17:40:25 +02:00
e1870a41b1 Updated British English translation 2012-09-05 19:47:27 +01:00
bb74499188 updated Tamil translation 2012-09-05 21:30:29 +05:30
079822c3f4 screen: Allow NULL out arguments in meta_screen_get_size 2012-09-05 16:40:01 +02:00
bfacd9d420 keybindings: Correct annotations for meta_keybindings_set_custom_handler
We need @handler to be marked as (allow-none). At the same time,
give the function a more useful docstring.
2012-09-04 17:07:58 -03:00
36361b86d4 Updated Polish translation 2012-09-04 19:34:48 +02:00
7c9c232d14 Updated Hungarian translation 2012-09-04 19:15:09 +02:00
14c460c7fd Bump version to 3.5.91
Update NEWS
2012-09-04 09:10:35 +02:00
0371194191 window-group: Add missing cast 2012-09-04 09:10:35 +02:00
3b0c7c568d window-group: Remove unused variables 2012-09-04 08:56:48 +02:00
08893400a0 Updated Swedish translation 2012-09-02 10:50:36 +02:00
03cde43646 Updated Lithuanian translation 2012-09-01 22:58:25 +03:00
8617efb544 Updated Vietnamese translation 2012-09-01 22:32:12 +07:00
db4298502e po/vi: import from Damned Lies 2012-09-01 22:31:43 +07:00
9f90f25e80 Updated Galician translations 2012-09-01 12:33:35 +02:00
1fdde85f53 Updated Portuguese translation 2012-09-01 01:44:01 +01:00
0e529fba00 Updated Greek translation 2012-08-31 16:38:50 +03:00
6a32fa9452 keybindings: Fix unsetting of overlay-key
Commit 802c1ac427 fixed updating the overlay key on settings
changes, but missed the case where the setting was set to an
empty value to disable the overlay key altogether.

https://bugzilla.gnome.org/show_bug.cgi?id=682993
2012-08-29 23:20:49 +02:00
b422b6f06e keybindings: Silence a compiler warning
https://bugzilla.gnome.org/show_bug.cgi?id=682993
2012-08-29 23:20:49 +02:00
bc96a14185 window-group: Subtract the unredirected window in stage space
meta_window_group_paint tries to carefully figure out which parts of the
scene it can avoid painting. One area it avoids painting is the region of
the screen occupied by an unredirected window (if there's one present).
When subtracting from the visible region, it gets the coordinate spaces
confused, and ends up subtracting the area at the wrong offset. Fix this
by translating the rectangle subtracted from the visible region.

https://bugzilla.gnome.org/show_bug.cgi?id=677116
2012-08-29 15:38:53 -03:00
fbcddbcf3e window-group: Skip the unredirected window
We shouldn't need to process it here.

https://bugzilla.gnome.org/show_bug.cgi?id=677116
2012-08-29 15:23:06 -03:00
dfe8979a90 window-group: Don't create a region when we have an unredirected window
We don't do anything with it other than modify an existing region.

https://bugzilla.gnome.org/show_bug.cgi?id=677116
2012-08-29 15:06:09 -03:00
c3a6de749b Don't include markup in app not responding dialog
We escaped the <tt> markup, making it visible in the ui.
2012-08-28 16:42:30 +02:00
935e820a1d Implemented FUEL entries to Assamese translation 2012-08-28 00:39:44 +05:30
f4125b95ca [l10n] Updated Italian translation. 2012-08-26 21:50:23 +02:00
d8bc7f7aa1 window-actor: Fix a memory leak
We need to free the frame_paint_region here.

https://bugzilla.gnome.org/show_bug.cgi?id=682648
2012-08-25 05:51:01 -03:00
6d67ee3965 Updated Russian translation 2012-08-24 22:22:01 +04:00
991ea50038 update Punjabi Translation 2012-08-22 09:00:03 +05:30
885a6afdcd Updated Polish translation 2012-08-22 03:03:52 +02:00
0106f8bab1 Updated Indonesian translation 2012-08-21 22:07:52 +07:00
d27bccd0ba Bump version to 3.5.90
Update NEWS
2012-08-21 15:33:30 +02:00
c66488210c Updated Marathi Translations 2012-08-17 10:22:02 +05:30
6c3985220e keybindings: Add MetaKeybindingAction for overview-key
Currently gnome-shell hardcodes <super> as overlay key when it has
a keyboard grab. In order to fix this, add a corresponding keybinding
action.

https://bugzilla.gnome.org/show_bug.cgi?id=665547
2012-08-16 09:40:47 +02:00
802c1ac427 prefs: Update overlay-key on settings changes
When changing the overlay-key setting, the change only takes effect
on restart - there are actually two bugs involved:
  (1) the test whether the key has changed is located in the
      else part of a test for string settings (and overlay-key happens
      to be a string settings ...)
  (2) with (1) fixed, a change signal is emitted, which triggers a
      reload of all keybindings - unfortunately, the actual value
      of overlay-key is only read on startup, so the key is reloaded
      using the old value
Fix both issues by replacing the custom handling of the overlay-key
with the regular handling of string preferences.

https://bugzilla.gnome.org/show_bug.cgi?id=681906
2012-08-16 09:40:47 +02:00
7a2a6e2675 MetaWindowGroup: Fix bad merge
I accidentally committed merge indicators: fix compilation.
2012-08-15 22:46:23 -04:00
c27b4b7cfc MetaWindowGroup: Handle painting inside a ClutterClone
Look at the current COGL model-view matrix and use that to find
out any offset we are painting at as a result of being inside
a ClutterClone.

https://bugzilla.gnome.org/show_bug.cgi?id=681953
2012-08-15 20:43:19 -04:00
0ab572d511 MetaWindowGroup: fix logic for handling translations
Instead of getting the x/y of the MetaBackgroundActor with respect to the
parent, use the same logic that we do for windows, fixing the case
where there is a more complex transformation involved.

https://bugzilla.gnome.org/show_bug.cgi?id=681221
2012-08-15 20:43:07 -04:00
1c8d45e89c Updated Arabic translation 2012-08-14 23:59:54 +02:00
4e2c2cb1ab shadows: Adjust values for attached modal dialogs
The designers consider the current shadow too dramatic for the new
centered position; adjust the shadow to use the same values as
popup menus.
2012-08-10 16:36:26 +02:00
07dd4d3f93 configure.in: Remove gnome-doc-utils unneded dependency 2012-08-10 03:24:10 +09:00
22370bef09 [l10n]Updated Turkish translation 2012-08-09 16:58:30 +03:00
f8d443b5b8 Updated gujarati file 2012-08-08 12:40:56 +05:30
f22ecd1c57 Updated gujarati file 2012-08-08 12:12:50 +05:30
b85be9312b Bump version to 3.5.5
Update NEWS
2012-08-07 01:33:19 +02:00
cd0870730f window-group: Translate background's visible region as necessary
Currently when the window group is moved, the visible region set
on the background actor no longer matches the actually visible
region, resulting in flickering around window actors.
Fix by translating the visible region with the window group.

https://bugzilla.gnome.org/show_bug.cgi?id=681221
2012-08-07 01:28:09 +02:00
d6be75ae99 Updated Galician translations 2012-07-31 02:02:49 +02:00
c1be7f1a60 Updated Norwegian bokmål translation 2012-07-25 16:30:18 +02:00
fccd5fd4ca Updated Hebrew translation. 2012-07-24 22:26:32 +03:00
1e5ef70fe3 Updated Serbian translation 2012-07-22 09:25:23 +02:00
1347a06e38 Updated Slovenian translation 2012-07-19 10:13:34 +02:00
b5d5934e5a Updated Traditional Chinese translation(Hong Kong and Taiwan) 2012-07-17 15:17:42 +08:00
64b1c0f953 Bump version to 3.5.4
Update NEWS
2012-07-16 23:23:50 +02:00
10d53fc7d2 window: Do not restore tiling on unmaximize
When we consider tiling a special case of maximization, it makes
more sense to always unmaximize to the normal state rather than
restoring a previous tile state.

https://bugzilla.gnome.org/show_bug.cgi?id=677565
2012-07-16 22:18:47 +02:00
eb1292ea99 window: Handle changes of the attach-modal-dialogs preference
Currently we decide whether a modal dialog should be attached or not
when mapping it, i.e. we don't pick up preference changes that happen
while the dialog is up. It's not really a big deal given that modal
dialogs are usually transitory, but it's easy enough to add a bit of
extra polish ...

https://bugzilla.gnome.org/show_bug.cgi?id=679904
2012-07-16 22:15:13 +02:00
e257580b94 workspace: Respect the not_this_one parameter passed in
In the case of focus-follows-mouse, we need to ensure that we
do not select a certain window after closing another one.

https://bugzilla.gnome.org/show_bug.cgi?id=675982
2012-07-16 15:21:54 -04:00
42261156ec Updated Spanish translation 2012-07-16 16:45:58 +02:00
89e31f0d9d Assamese translation updated 2012-07-16 12:58:48 +05:30
c805e397fd Updated Belarusian translation. 2012-07-15 11:35:32 +03:00
760a36aeee Reduce amount of markup in translated messages
Markup in messages is fragile and tends to break in translations.
This patch reduces the amount of markup as far as possible.

https://bugzilla.gnome.org/show_bug.cgi?id=679660
2012-07-14 20:48:29 -04:00
5d57a2594d constraints: Remove unused variable 2012-07-14 15:03:54 +02:00
1a5132d391 shadow-factory: Don't use a top-fade on attached modals
https://bugzilla.gnome.org/show_bug.cgi?id=674499
2012-07-14 03:30:56 +02:00
0fe0534c85 constraints: Center modal dialogs on their parent
... rather than attaching them to the parent's title bar.

https://bugzilla.gnome.org/show_bug.cgi?id=674499
2012-07-14 03:30:56 +02:00
fe942049da Assamese translation reviewed 2012-07-13 15:03:11 +05:30
e6ed29f0e2 keybindings: Use G_DEFINE_BOXED_TYPE
https://bugzilla.gnome.org/show_bug.cgi?id=673824
2012-07-13 00:00:42 -04:00
15f11f879d Updated Hebrew translation. 2012-07-10 22:44:18 +03:00
f517eaf81e Updated Norwegian bokmål translation 2012-07-10 07:58:09 +02:00
255347f876 constraints: fix mem leak in meta_window_constrain()
MetaFrameBorders leaked when orig_borders != NULL and
window->fullscreen == TRUE

https://bugzilla.gnome.org/show_bug.cgi?id=679153
2012-07-08 11:56:31 -04:00
e4ae7d7b1b *BSD build fix: Include sys/wait.h as described in POSIX specs 2012-07-08 17:47:24 +02:00
2be943d1d9 Updated Bulgarian translation 2012-07-04 07:13:31 +03:00
0a50488bef window: Also use hide-titlebar-when-maximized when tiled
Side-by-side tiling is conceptually very close to maximization
("half-maximized"), so it makes sense to also hide the titlebar
in this state if requested by the application.

https://bugzilla.gnome.org/show_bug.cgi?id=679290
2012-07-03 12:21:54 +02:00
78c966321a prefs: add get_/set_ignore_request_hide_titlebar ()
Enables the possibility to ignore GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED
to prevent hiding the titlebar of applications even if they
requested so.

https://bugzilla.gnome.org/show_bug.cgi?id=678947
2012-07-01 19:25:08 +02:00
f65b7c59d3 Make it possible to reimplement move-to-workspace keybindings from plugins
Export the necessary functions so that a plugin that wishes to do
so can reimplement those keybindings without loss of functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=674104
2012-06-25 23:11:24 +02:00
e31f55e146 Make meta_workspace_get_neighbor() public
There is no need for this function to be private, and it can
greatly simplify gnome-shell code handling workspace switch.

https://bugzilla.gnome.org/show_bug.cgi?id=674104
2012-06-25 23:07:19 +02:00
dc232b6cad Bump version to 3.5.3
Update NEWS
2012-06-25 22:38:25 +02:00
a2f2e07e9b meta-window-actor: Fix a potential crash in the window shaping code
There was a potential case where we were trying to use uninitialized memory,
in the case where the X server threw an error during XShapeGetRectangles.
In this case, we need to use the implicit shape for the window, which means
we need to rearrange code flow to make it work.

https://bugzilla.gnome.org/show_bug.cgi?id=677977
2012-06-25 14:07:35 -04:00
f5e48223c9 meta-plugin-manager: Guard against a NULL start vfunc
The default plugin has no such vfunc.

https://bugzilla.gnome.org/show_bug.cgi?id=678238
2012-06-25 13:52:47 -04:00
1478510392 mutter: Use the default plugin by default
https://bugzilla.gnome.org/show_bug.cgi?id=678238
2012-06-25 13:52:47 -04:00
18b38320a6 window: Make some window methods public
There's no reason they aren't, right now. Extensions should be able
to use these.

https://bugzilla.gnome.org/show_bug.cgi?id=678126
2012-06-25 13:52:47 -04:00
16be31b514 Updated Galician translations 2012-06-25 00:09:24 +02:00
accc183474 prefs: remove some obsolete header definitions 2012-06-18 11:54:22 +02:00
81699619e8 Updated French translation 2012-06-15 20:22:33 +02:00
75c87e5876 Updated Arabic translation 2012-06-13 20:20:42 +02:00
50bc4ad0e1 Fix bad declarations
meta_screen_get_current_monitor now returns an integer, not a pointer.
2012-06-11 10:13:43 -04:00
277e8bdad9 core: Fix meta_screen_get_current_monitor
fixes 4595209346

We're supposed to return an index from here now, no longer a pointer
to the current monitor.

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2012-06-11 10:53:21 +02:00
dc50ccf9b7 frames: Add a multiplier to increase the size of resize corners
Now the resize corners will extend into the actual border edges.

https://bugzilla.gnome.org/show_bug.cgi?id=677669
2012-06-08 23:09:32 -04:00
4595209346 screen: Add new public meta_screen_get_current_monitor API
Similar to meta_screen_get_primary_monitor, this returns a monitor index.
The monitor that the pointer is on. The previous private implementation
has been renamed to meta_screen_get_current_monitor_info.

https://bugzilla.gnome.org/show_bug.cgi?id=642591
2012-06-08 23:06:46 -04:00
50cf3dd1a5 main: Support -r as the equivalent of --replace
https://bugzilla.gnome.org/show_bug.cgi?id=676857
2012-06-08 17:33:37 -04:00
66eac7824a meta-window-actor: Don't unredirect shaped windows
If a window has its BoundingRegion shaped, we shouldn't unredirect it,
as it expects the rest of the windows from being shown under it. This
prevents applications like the Skype screen recorder or gtkRecordMyDesktop
which want to show a "border" around the recorded area from being
unredirected, giving the appearance of making the desktop freeze.

https://bugzilla.gnome.org/show_bug.cgi?id=677657
2012-06-08 16:48:43 -04:00
4041f96ed3 meta-window-actor: Refactor should_unredirect a bit more
"Flat is better than nested"

https://bugzilla.gnome.org/show_bug.cgi?id=677657
2012-06-08 16:48:42 -04:00
3a15d637da Updated Slovenian translation 2012-06-08 21:30:07 +02:00
5c3c7df948 Updated Spanish translation 2012-06-06 13:44:02 +02:00
f9454e29db meta-plugin-manager: Only allow one plugin to be loaded
The "multiple plugins loaded at once" strategy was always a big fiction:
while it may be viable if you're super careful, it's fragile and requires
a bit of infrastructure that we would be better off without.

Note that for simplicity, we're keeping the MetaPluginManager, but it only
manages one plugin. A possible future cleanup would be to remove it entirely.

https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:23 -04:00
574c0c3287 meta-plugin: Remove "disabled" feature
It's just code cruft that nobody's using

https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:23 -04:00
9fa5aa9889 meta-plugin: Kill off "features"
We already check that the plugin has the appropriate vfunc in the klass
structure, so we shouldn't need to check for the same data again with
a "features" long.

https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:23 -04:00
80a70a4ad1 mutter: Only allow one plugin to be loaded
https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:23 -04:00
7c1b734053 meta-plugin: Remove some cruft
https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:23 -04:00
33e1017403 main: Don't call g_type_init from meta_init
For the plugin system, GType has to have been initialized by now.

https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:23 -04:00
f143fe3710 util: Don't generate a backtrace on every G_LOG
We may not show the backtrace, but it's prohibitly expensive to generate,
so don't. If someone wants a backtrace they can use the appropriate G_DEBUG
environment variable plus GDB.

https://bugzilla.gnome.org/show_bug.cgi?id=676855
2012-06-05 13:28:22 -04:00
66406b3035 Bump version to 3.5.2
Update NEWS
2012-06-05 19:00:28 +02:00
042ddc5637 workspace: add annotation for meta_workspace_get_work_area_all_monitors 2012-05-31 19:17:49 +02:00
5b04ab4473 Updated Spanish translation 2012-05-31 15:29:44 +02:00
16b86ae7f7 Updated Spanish translation 2012-05-31 14:15:54 +02:00
49400657ca stack: Ignore keep-on-top property on maximized windows
It is impossible to switch to other windows when keep-on-top is set
for maximized windows; given that keep-on-top is only ever useful
to keep a window visible while focusing a different window, the
current behavior is pointless. So ignore keep-on-top while a window
is maximized.

https://bugzilla.gnome.org/show_bug.cgi?id=673581
2012-05-30 15:01:57 +02:00
30bc8bc6ce window-actor: Add a debugging tool to write a region to a PNG
Just a helper function that I keep rewriting all over the place.

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-25 17:31:06 -04:00
ac18f41ed1 window-actor: Use MetaRegionBuilder when scanning the visible region
This gives a pretty solid performance improvement when resizing windows.
2012-05-25 17:31:06 -04:00
60c05a0dac window-actor: Add back antialiased window corners
This simply adds fancy arcs to the mask texture. It's still not painted
with GTK+ yet.

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-25 17:31:05 -04:00
c47de98c88 window-actor: Paint the shape region with cairo
https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
f1aada0fae window-actor: Punt mask generation to MetaWindowActor
This effectively makes MetaShapedTexture not a MetaShapedTexture, but a simple
and dumb MetaMaskedTexture, with an optimization for clipped regions.

We're doing this as the mask may need to be more complicated than made of
a cairo path -- we eventually want GTK+ to draw the entire frame background,
which we'll then scan.

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
4de492eb20 shaped-texture: Remove the cairo overlay (and rounded corners)
As we want GTK+ to paint the mask on an A8, we can't simply use a cairo
path. A later commit will make this into a simple masked texture, and
meta-window-actor will be in control of the mask.

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
9ca00d5cce window-actor: Remove an unnecessary frame check
meta_frame_calc_borders will zero out the borders if we don't have a frame.

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
b98e4e37ad theme: Make meta_frame_style_draw_with_style static
https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
8b64a951c9 theme: Make meta_frame_layout_calc_geometry static
https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
c2a0719e44 preview-widget: Remove meta_preview_get_clip_region
The concept of a clip region doesn't make sense now that we have anti-aliased
corners and a full alpha channel. Once the theme transition is complete,
creating a preview image with an alpha channel will be possible by passing
an ARGB surface to gtk_widget_draw(preview_widget, ...);

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:12:30 -04:00
8cb7a450ae screen: Remove more unused private API
These queued redraws, which is a problem when we want to know exactly
what changed when we redraw, so we do minimal effort. We're eventually
going to replace the queue_redraw API with something a lot better, so
let's just get these out of the way now.

https://bugzilla.gnome.org/show_bug.cgi?id=676052
2012-05-21 16:11:16 -04:00
6fb857cb23 frames: Remove frame border pixel caching and related optimizations
Since we now cache windows in the X server, we don't really need to cache
them here. Since we are redirecting windows in most cases, we're not gaining
anything except added memory usage. Additionally, remove the clip to screen
optimization - if a window is partially off-screen, we still need to draw
the entire thing as redirection means we won't get an expose event for it.

Additionally, when introducing invisible borders, something accidentally
slipped through: we were getting expose events on the invisible borders,
and they weren't in the cached pixels rect, so we were painting the theme
for them, even if we didn't actually paint anything with cairo. Make sure
to clip out the invisible borders instead of just the client rect so that
we don't draw if our expose event is on the invisible borders.

https://bugzilla.gnome.org/show_bug.cgi?id=675111
2012-05-21 12:51:32 -04:00
fc87a635b2 frames: Remove expose_delayed
This was introduced for the effects API and wireframe mode, and was
forgotten when that went the way of the dinosaur.

https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-05-14 15:44:49 -03:00
81930ca76e theme-parser: Look for themes in XDG_USER_DATA_DIR, not in ~/.themes
https://bugzilla.gnome.org/show_bug.cgi?id=675316
2012-05-14 14:25:55 -03:00
da65738901 theme-parser: Don't load themes from our source tree
There aren't any mutter themes in the source tree. You're better off
using jhbuild with gnome-themes-standard.

https://bugzilla.gnome.org/show_bug.cgi?id=675316
2012-05-14 14:25:55 -03:00
4528e1216a l10n: updated Italian translaion 2012-05-09 11:35:16 +02:00
d56ecde39b Updated Telugu Translation 2012-05-07 00:13:59 +05:30
4148a5cc6a Fix introspection gir metadata
The EXPORT_PACKAGES variable to the GIR makefile should be the
packages needed to use this gir. It's also unnecessary to set PACKAGES
(which is just used for CFLAGS at scan-time) since CFLAGS is already
pulls in all necessary CFLAGS.

https://bugzilla.gnome.org/show_bug.cgi?id=671092
2012-05-02 14:13:48 -04:00
8a6a568aca meta_stack_tracker_free(): fix memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=672640
2012-05-02 14:03:56 -04:00
12cc0cee29 display: correctly init and free hostname
==31043== 7 bytes in 1 blocks are definitely lost in loss record 213 of 6,861
==31043==    at 0x402B018: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==31043==    by 0x417789A: ??? (in /usr/lib/libglib-2.0.so.0.3122.0)
==31043==    by 0x4177C42: g_malloc (in /usr/lib/libglib-2.0.so.0.3122.0)
==31043==    by 0x418DC3A: g_strdup (in /usr/lib/libglib-2.0.so.0.3122.0)
==31043==    by 0x408C470: meta_display_open (display.c:475)
==31043==    by 0x40A4D42: meta_run (main.c:552)
==31043==    by 0x8048A74: main (mutter.c:96)

https://bugzilla.gnome.org/show_bug.cgi?id=672640
2012-05-02 14:03:34 -04:00
878b1012b4 window-actor: Another simple clang warning fix
If we explicitly check for a NULL pointer, clang will assume
that the pointer may be NULL at some point. We clearly rely
on the pointer being non-NULL earlier, so fix this guy up.

https://bugzilla.gnome.org/show_bug.cgi?id=674876
2012-05-01 18:25:33 -04:00
a78fec7951 window: Remove setting of an unused variable
Well, technically it's used, but only in one block, so let's
just make it scoped to that block.

https://bugzilla.gnome.org/show_bug.cgi?id=674876
2012-05-01 18:21:17 -04:00
a24c512caa boxes: Remove an unnecessary assignment
https://bugzilla.gnome.org/show_bug.cgi?id=674876
2012-05-01 18:21:17 -04:00
c669a3892e meta_window_move_frame(): fix crash when frame is NULL
When meta_frame_calc_borders() was made to take a NULL frame argument,
a crash was accidentally introduced into meta_window_move_frame().

This partially reverts 8c1b2d5.

https://bugzilla.gnome.org/show_bug.cgi?id=675254
2012-05-01 13:44:35 -04:00
ba4f008d40 meta_window_actor_has_shadow: remove verbosity
meta_window_actor_has_shadow() is called for every paint for every
window, verbosely logging in it makes the output of MUTTER_VERBOSE
pretty much useless.
2012-05-01 11:37:23 -04:00
b0a099935b frames: Remove forgotten references to tooltips
Tooltips were removed a little while back, but two historical artifacts
were untouched. We're not in the museum business, now are we...
2012-04-30 16:36:18 -04:00
aba39ef953 Updated Telugu Translation 2012-04-30 11:00:28 +05:30
ebf8c460e1 default plugin: Remove start method that does nothing
All animations use the constants directly, so this is just declaring
a bunch of local variables and then doing nothing with it.

Another clang warning.

https://bugzilla.gnome.org/show_bug.cgi?id=674876
2012-04-26 15:07:46 -04:00
25d3432eee window-group: Remove an unnecessary assignment
Clang warns about this.

https://bugzilla.gnome.org/show_bug.cgi?id=674876
2012-04-26 15:07:46 -04:00
cd7a74fbcd texture-tower: Remove potential leak
The expression in here does not match the one where we malloc the
data.

https://bugzilla.gnome.org/show_bug.cgi?id=674876
2012-04-26 10:02:41 -04:00
c64188c67f core/window.c: Remove unused unmap_frame() function 2012-04-26 11:54:31 +01:00
4c2371f2e7 Revert "core/window.c: Remove unused function"
This reverts commit ff6c31dcc0.
2012-04-26 11:54:12 +01:00
ff6c31dcc0 core/window.c: Remove unused function 2012-04-26 11:29:24 +01:00
1b649c18ed Remove live-hidden-windows from mutter-schemas.convert
The preference no longer exists.
2012-04-26 02:37:34 -04:00
93037e4c6b Make support for "XFree86" Xinerama mandatory
Require the headers for "XFree86" Xinerama to be present at compile
time. The older "Solaris" Xinerama is only needed for versions of
Solaris where Mutter is unlikely to work. Solaris 10 and 11 include
the XFree86 Xinerama libraries, and apparently that's the only version
that will actually work for Solaris 11, which uses Xorg.

https://bugzilla.gnome.org/show_bug.cgi?id=674727
2012-04-25 14:37:32 -04:00
ed358c8f4b meta-texture-rectangle: Use Cogl's API to create a rectangle texture
Cogl now has public experimental API to create a rectangle texture
which we can use instead of creating a foreign texture with GL. This
avoids Mutter depending on Cogl including a GL header from its public
headers which it might not do in future.

https://bugzilla.gnome.org/show_bug.cgi?id=672711
2012-04-25 14:54:09 +01:00
a22859a64a shaped-texture: never slice shape mask texture
Since Cogl doesn't support multi-texturing with sliced textures and the
shape texture is combined with the texture-from-pixmap texture we need
to make sure we never construct a sliced mask texture. This patch simply
passes the COGL_TEXTURE_NO_SLICE flag to cogl_texture_from_data when
creating the shape mask texture.

https://bugzilla.gnome.org/show_bug.cgi?id=674731
2012-04-25 11:57:33 +01:00
c44438b19f Revert "Remove a bunch of dead code"
This reverts commit 0d794f28f0.

I thought this was marked ACN. It wasn't.
2012-04-24 18:02:33 -04:00
b58366d3ad theme: Remove unused "widget" parameter to frame style drawing
It seems that the only usage of the "widget" parameter throughout
the entire call chain was to pass between two function calls as
mutual recursion.

https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:54:49 -04:00
6900128b2f theme: Remove unused entry points
meta_draw_op_draw, meta_draw_op_list_draw, and meta_frame_style_draw were
all unused

https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:54:49 -04:00
c0b4d68390 meta-window-actor: Remove some unused constants
https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:54:49 -04:00
0d794f28f0 Remove a bunch of dead code
Code isn't version control. We don't need bug links and commented out
code to remind us of how things were done originally.

https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:54:49 -04:00
e389eff79d Remove meta_compositor_update_workspace_geometry
This callback is just dead code

https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:54:49 -04:00
41adbdda12 prefs: Remove a dead declaration
https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:41:04 -04:00
2d6555ca4d prefs: Remove live-hidden-windows preference
The preference existed, even though it was hard-coded to true. Just
remove it for good.

https://bugzilla.gnome.org/show_bug.cgi?id=671104
2012-04-24 16:40:47 -04:00
044d58951e Switch to gtk-doc syntax
https://bugzilla.gnome.org/show_bug.cgi?id=673752
2012-04-24 15:20:39 -04:00
9c97e8999e keybindings: Remove 'toggle-recording' binding
The keybinding is only useful when using GNOME Shell, so now that we
can define keybindings outside of mutter, move it there.

https://bugzilla.gnome.org/show_bug.cgi?id=674376
2012-04-24 17:36:46 +02:00
134 changed files with 31773 additions and 33930 deletions

2
.gitignore vendored
View File

@ -19,6 +19,8 @@ libtool
ltmain.sh
missing
.deps
src/50-mutter-navigation.xml
src/50-mutter-system.xml
src/50-mutter-windows.xml
src/mutter-wm.desktop
src/mutter.desktop

201
NEWS
View File

@ -1,3 +1,204 @@
3.7.3
=====
* Fix maximized windows jumping to other monitors [Alban; #556696]
* Add 'switch-applications' keybinding [Florian; #688913]
* Add a convenience method to focus the default window [Jasper; #689652]
* Increase typical icon size to 96 [Jasper; #689651]
* Port to XInput2 [Jasper; #688779]
* Give dynamic keybindings a keybinding action [Florian; #682315]
* Misc. fixes and cleanups [Jasper, Rui; #688777]
Contributors:
Alban Crequy, Rui Matos, Florian Müllner, Jasper St. Pierre
Translations:
Nilamdyuti Goswami [as], Piotr Drąg [pl], Yaron Shahrabani [he],
Dr.T.Vasudevan [ta], ManojKumar Giri [or], Shankar Prasad [kn]
3.7.2
=====
* Fix spurious focus changes when showing desktop [Florian; #686928]
* MetaPluginManager: don't send events to Clutter twice [Owen; #686406]
* Add the ability to add shader hooks to MetaBackgroundActor [Giovanni; #669798]
* Only process keyboard mapping events for the core X keyboard [Rui; #674859]
* Import keybinding files from Metacity [Florian; #687672]
* Add compositor hook to process keybindings selectively [Florian; #688202]
* MetaBackgroundActor: add a setter for GLSL uniforms [Giovanni; #682536]
* Misc. fixes and cleanups [Jasper, Rui, Florian, Rico; #688182]
Contributors:
Giovanni Campagna, Rui Matos, Florian Müllner, Jasper St. Pierre,
Owen Taylor, Rico Tzschichholz
Translations:
Rafael Ferreira [pt_BR], Tobias Endrigkeit [de], Yaron Shahrabani [he]
3.7.1
=====
* screen: Ignore num-workspaces when using dynamic workspaces [Florian; #685439]
Contributors:
Florian Müllner
Translations:
Mattias Põldaru [et], Kjartan Maraas [nb], Мирослав Николић [sr, sr@latin],
Marek Černocký [cs], Andika Triwidada [id], Daniel Mustieles [es],
Fran Diéguez [gl], Matej Urbančič [sl]
3.6.1
=====
* Fix crash when opening large popup menus [Jasper; #681676]
* window: Don't move the desktop window after monitor hotplug [Jasper; #681159]
* Expose MetaPlugin to introspection [Evan; #671098]
* Optionally delay focus changes in focus-follows-mouse mode [Florian; #678169]
* Resize the guard window when the X screen is resized [Benjamin; #670396]
* display: Only manage the default X screen [Jürg; #648156]
* Misc cleanups: [Owen; #587255]
Contributors:
Benjamin Berg, Jürg Billeter, Evan Broder, Florian Müllner, Jasper St. Pierre,
Owen Taylor
Translations:
Alexandre Franke [fr], Theppitak Karoonboonyanan [th], Sayak Sarkar [bn_IN],
Sandeep Sheshrao Shedmake [mr], Ask H. Larsen [da], Shankar Prasad [kn],
Alexander Shopov [bg], Aurimas Černius [lt], Ihar Hrachyshka [be],
Kjartan Maraas [nb], Daniel Mustieles [es], Changwoo Ryu [ko],
Yuri Myasoedov [ru], Tom Tryfonidis [el], Rūdolfs Mazurs [lv],
Chris Leonard [en_GB], Piotr Drąg [pl], Fran Diéguez [gl], Gil Forcada [ca],
Matej Urbančič [sl], Andika Triwidada [id], Carles Ferrando [ca]
3.6.0
=====
Translations:
Alexander Shopov [bg], Daniel Korostil [uk], Rajesh Ranjan [hi],
Krishnababu Krothapalli [te], Ani Peter [ml], Rūdolfs Mazurs [lv],
Sweta Kothari [gu], Ihar Hrachyshka [be], Noriko Mizumoto [ja],
Timo Jyrinki [fi], Mattias Põldaru [et]
3.5.92
======
* screen: Allow NULL out arguments in meta_screen_get_size [Tomeu]
* display: Add API to set wm_name / wm_keybindings [Florian; #671010]
* Improve the not responding dialog [Jon, Florian; #684306]
* Misc. bugfixes [Jasper]
Contributors:
William Jon McCann, Florian Müllner, Jasper St. Pierre, Tomeu Vizoso
Translations:
Gabor Kelemen [hu], Piotr Drąg [pl], Dr.T.Vasudevan [ta], Bruce Cowan [en_GB],
Alexandre Franke [fr], Theppitak Karoonboonyanan [th], Gil Forcada [ca],
Carles Ferrando [ca@valencia], Tobias Endrigkeit [de], Tom Tryfonidis [el],
Nguyễn Thái Ngọc Duy [vi], Changwoo Ryu [ko], Ask H. Larsen [da],
Rafael Ferreira [pt_BR], Marek Černocký [cs]
3.5.91
======
* Do not include markup in app not responding dialog [Alex]
* Fix subtracting unredirected windows from visible region [Jasper; #677116]
* Minor improvements and bugfixes [Jasper, Florian; #682648, #682993]
Contributors:
Alexander Larsson, Florian Müllner, Jasper St. Pierre
Translations:
Dirgita [id], Piotr Drąg [pl], A S Alam [pa], Yuri Myasoedov [ru],
Milo Casagrande [it], Nilamdyuti Goswami [as], Tom Tryfonidis [el],
Duarte Loreto [pt], Fran Diéguez [gl], Nguyễn Thái Ngọc Duy [vi],
Aurimas Černius [lt], Daniel Nylander [sv]
3.5.90
======
* Fix logic for handling translations of the windows group [Owen; #681221]
* Handle painting inside a Clutter clone [Owen; #681953]
* Update overlay-key on settings changes [Florian; #681906]
* Add keybinding for overlay-key [Florian; #665547]
* Minor fixes and improvements [Javier, Florian]
Contributors:
Javier Jardón, Florian Müllner, Owen Taylor
Translations:
Sweta Kothari [gu], Muhammet Kara [tr], Khaled Hosny [ar],
Sandeep Sheshrao Shedmake [mr]
3.5.5
=====
* Fix flickering around windows when using window group [Tom; #681221]
Contributor(s):
Tom Beckmann
Translations:
Chao-Hsiung Liao [zh_HK, zh_TW], Matej Urbančič [sl], Fran Diéguez [gl],
Мирослав Николић [sr, sr@latin], Yaron Shahrabani [he], Kjartan Maraas [nb]
3.5.4
=====
* Make it possible to reimplement move-to-workspace keybindings from plugins
[Giovanni; #674104]
* Add a preference to ignore hide-titlebar-when-maximized hint [Rico; #678947]
* window: Also use hide-titlebar-when-maximized when tiled [Florian; #679290]
* Center modal dialogs on their parent instead [Florian; #674499]
* Reduce amount of markup in translated messages [Matthias; #679660]
* Fix focus problem after closing a window with focus-follows-mouse
[Jasper; #675982]
* Handle changes of the attach-modal-dialogs preference [Florian; #679904]
* Do not restore tiling on unmaximize [Florian; #677565]
* Misc. fixes and cleanups [Jasper Adriaanse, Jasper, Debarshi, Pavel;
#679153, 673824]
Contributors:
Jasper Lievisse Adriaanse, Giovanni Campagna, Matthias Clasen, Florian Müllner,
Debarshi Ray, Jasper St. Pierre, Rico Tzschichholz, Pavel Vasin
Translations:
Alexander Shopov [bg], Kjartan Maraas [nb], Yaron Shahrabani [he],
Nilamdyuti Goswami [as], Ihar Hrachyshka [be], Daniel Mustieles [es]
3.5.3
=====
* Simplify plugin system [Jasper; #676855]
* meta-window-actor: Don't unredirect shaped windows [Jasper; #677657]
* screen: Add new public meta_screen_get_current_monitor API [Tim; #642591]
* frames: Increase the size of resize corners [Jasper; #677669]
* window: Make some window methods public [Jasper; #678126]
* Fix crash when running mutter stand-alone [Jasper; #678238]
* meta-window-actor: Fix potential crash in shaping code [Jasper; #677977]
* Misc. fixes [Jasper, Marc-Antoine, Rico]
Contributors:
Tim L, Marc-Antoine Perennou, Jasper St. Pierre, Rico Tzschichholz
Translations:
Daniel Mustieles [es], Matej Urbančič [sl], Khaled Hosny [ar],
Bruno Brouard [fr], Fran Diéguez [gl]
3.5.2
=====
* keybindings: Remove 'toggle-recording' binding [Florian; #674376]
* Switch to gtk-doc syntax [Jasper; #673752]
* shaped-texture: never slice shape mask texture [Robert; #674731]
* Make Mutter stop relying on Cogl including a GL header [Neil; #672711]
* Make support for "XFree86" Xinerama mandatory [Owen; #674727]
* meta_window_move_frame(): fix crash when frame is NULL [Owen; #675254]
* Fix memory leaks [Pavel; #672640]
* Code cleanups [Jasper; #671104 #674876 #676052]
* Look for themes in XDG user data dir [Jasper; #675316]
* Remove frame pixel caching [Jasper; #675111]
* stack: Ignore keep-on-top property on maximized windows [Florian; #673581]
* Misc. fixes [Javier, Jasper, Owen, Rico]
Contributors:
Robert Bragg, Javier Járdon, Florian Müllner, Neil Roberts, Jasper St. Pierre,
Owen Taylor, Rico Tzschichholz, Pavel Vasin
Translations:
Praveen Illa [te], Luca Ferretti [it], Daniel Mustieles [es]
3.4.1
=====
* API change: the meta_display_add_keybinding() function added in 3.4

View File

@ -7,7 +7,7 @@ test -z "$srcdir" && srcdir=.
PKG_NAME="mutter"
REQUIRED_AUTOMAKE_VERSION=1.10
(test -f $srcdir/configure.in \
(test -f $srcdir/configure.ac \
&& test -d $srcdir/src) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level metacity directory"

View File

@ -1,8 +1,8 @@
AC_PREREQ(2.50)
m4_define([mutter_major_version], [3])
m4_define([mutter_minor_version], [4])
m4_define([mutter_micro_version], [1])
m4_define([mutter_minor_version], [7])
m4_define([mutter_micro_version], [3])
m4_define([mutter_version],
[mutter_major_version.mutter_minor_version.mutter_micro_version])
@ -72,7 +72,7 @@ MUTTER_PC_MODULES="
pango >= 1.2.0
cairo >= 1.10.0
gsettings-desktop-schemas >= 3.3.0
xcomposite >= 0.2 xfixes xrender xdamage
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
$CLUTTER_PACKAGE >= 1.9.10
cogl-1.0 >= 1.9.6
"
@ -113,9 +113,6 @@ AC_ARG_ENABLE(shape,
[disable mutter's use of the shaped window extension]),,
enable_shape=auto)
## try definining HAVE_BACKTRACE
AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
AM_GLIB_GNU_GETTEXT
## here we get the flags we'll actually use
@ -212,60 +209,31 @@ AC_PATH_XTRA
ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
# Check for Xinerama extension (Solaris impl or Xfree impl)
# Check for Xinerama extension - we only support the "XFree86" style,
# and not the older Solaris-only version; recent Solaris supports the
# XFree86 style.
mutter_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_ARG_ENABLE(xinerama,
AC_HELP_STRING([--disable-xinerama],
[disable mutter's use of the Xinerama extension]),
try_xinerama=$enable_xinerama,try_xinerama=yes)
use_solaris_xinerama=no
use_xfree_xinerama=no
if test "${try_xinerama}" != no; then
case "$host" in
*-*-solaris*)
# Check for solaris
use_solaris_xinerama=yes
AC_CHECK_LIB(Xext, XineramaGetInfo,
use_solaris_xinerama=yes, use_solaris_xinerama=no,
$ALL_X_LIBS)
if test "x$use_solaris_xinerama" = "xyes"; then
AC_CHECK_HEADER(X11/extensions/xinerama.h,
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi
AC_DEFINE(HAVE_SOLARIS_XINERAMA, , [Have Solaris-style Xinerama])
AC_DEFINE(HAVE_XINERAMA, , [Have some version of Xinerama]),
use_solaris_xinerama=no,
[#include <X11/Xlib.h>])
fi
AC_MSG_CHECKING(for Xinerama support on Solaris)
AC_MSG_RESULT($use_solaris_xinerama);
;;
*)
# Check for XFree
use_xfree_xinerama=yes
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi
AC_DEFINE(HAVE_XFREE_XINERAMA, , [Have XFree86-style Xinerama])
AC_DEFINE(HAVE_XINERAMA,, [Have some version of Xinerama]),
use_xfree_xinerama=no,
[#include <X11/Xlib.h>])],
use_xfree_xinerama=no, -lXext $ALL_X_LIBS)
AC_MSG_CHECKING(for Xinerama support on XFree86)
AC_MSG_RESULT($use_xfree_xinerama);
;;
esac
fi
have_xinerama=yes
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
[X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi],
have_xinerama=no,
[#include <X11/Xlib.h>])],
have_xinerama=no, -lXext $ALL_X_LIBS)
AC_MSG_CHECKING(for Xinerama support)
AC_MSG_RESULT($have_xinerama)
CPPFLAGS="$mutter_save_cppflags"
if test x$have_xinerama = xno; then
AC_MSG_ERROR([Xinerama extension was not found])
fi
SHAPE_LIBS=
found_shape=no
AC_CHECK_LIB(Xext, XShapeQueryExtension,
@ -396,9 +364,6 @@ fi
# For fix-meta-rectangle.py
AM_PATH_PYTHON([2.5])
# Use gnome-doc-utils:
GNOME_DOC_INIT([0.8.0])
#### Warnings (last since -Werror can disturb other tests)
# Stay command-line compatible with the gnome-common configure option. Here
@ -496,8 +461,6 @@ mutter-$VERSION
source code location: ${srcdir}
compiler: ${CC}
XFree86 Xinerama: ${use_xfree_xinerama}
Solaris Xinerama: ${use_solaris_xinerama}
Startup notification: ${have_startup_notification}
libcanberra: ${have_libcanberra}
Introspection: ${found_introspection}

View File

@ -39,4 +39,11 @@ environment.</description>
<gnome:userid>otaylor</gnome:userid>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Florian Müllner</foaf:name>
<foaf:mbox rdf:resource="mailto:fmuellner@gnome.org" />
<gnome:userid>fmuellner</gnome:userid>
</foaf:Person>
</maintainer>
</Project>

View File

@ -1,5 +1,7 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
src/50-mutter-navigation.xml.in
src/50-mutter-system.xml.in
src/50-mutter-windows.xml.in
src/compositor/compositor.c
src/core/bell.c

533
po/ar.po

File diff suppressed because it is too large Load Diff

1019
po/as.po

File diff suppressed because it is too large Load Diff

184
po/ast.po
View File

@ -37,7 +37,6 @@ msgstr "Petición d'información ventana desconocida: %d"
#. Translators: %s is a window title
#: ../src/core/delete.c:95
#, c-format
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> nun ta respondiendo."
@ -122,7 +121,6 @@ msgstr "Comandu de terminal nun definíu.\n"
#: ../src/core/main.c:130
#, c-format
#, c-format
msgid ""
"mutter %s\n"
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., and others\n"
@ -261,7 +259,6 @@ msgstr "Error axustando númberu d'arees de trabayu a %d: %s\n"
#: ../src/core/prefs.c:2028 ../src/core/prefs.c:2531
#, c-format
#, c-format
msgid "Workspace %d"
msgstr "Espaciu de Trabayu %d"
@ -275,7 +272,6 @@ msgstr "\"%s\" atopau na base de datos de configuración nun ye un valor válidu
#: ../src/core/prefs.c:2612
#, c-format
#, c-format
msgid "Error setting name for workspace %d to \"%s\": %s\n"
msgstr "Fallu al afitar nome pal espaciu de trabayu %d a \"%s\": %s\n"
@ -286,19 +282,16 @@ msgstr "Fallu al afitar l'estáu del compositor: %s\n"
#: ../src/core/prefs.c:2845
#, c-format
#, c-format
msgid "Error setting clutter plugin list: %s\n"
msgstr "Fallu al afitar la llista desordenada de plugin: %s\n"
#: ../src/core/prefs.c:2889
#, c-format
#, c-format
msgid "Error setting live hidden windows status status: %s\n"
msgstr "Fallu al afitar l'estáu de les ventanes anubríes: %s\n"
#: ../src/core/prefs.c:2917
#, c-format
#, c-format
msgid "Error setting no tab popup status: %s\n"
msgstr "Fallu al afitar l'estáu de les llingüetes emerxentes: %s\n"
@ -358,7 +351,6 @@ msgstr "Falló analizar ficheru de sesión guardáu: %s\n"
#: ../src/core/session.c:1198
#, c-format
#, c-format
msgid "<mutter_session> attribute seen but we already have the session ID"
msgstr "Vióse l'atributu <mutter_session> pero yá tenemos la ID de sesión"
@ -404,7 +396,6 @@ msgstr "Abiertu archivu log %s\n"
#: ../src/core/util.c:139 ../src/tools/mutter-message.c:176
#, c-format
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter compilose ensin sofitu pal mou testu\n"
@ -499,19 +490,19 @@ msgid ""
msgstr "La propiedá %s del ventanu 0x%lx contien un códigu UTF-8 non válidu pal "
"elementu %d na llista\n"
#: ../src/include/all-keybindings.h:88
#: ../src/include/all-keybindings.h:88 ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "Cambiar a espaciu de trabayu 1"
#: ../src/include/all-keybindings.h:90
#: ../src/include/all-keybindings.h:90 ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "Cambiar a espaciu de trabayu 2"
#: ../src/include/all-keybindings.h:92
#: ../src/include/all-keybindings.h:92 ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "Cambiar a espaciu de trabayu 3"
#: ../src/include/all-keybindings.h:94
#: ../src/include/all-keybindings.h:94 ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "Cambiar a espaciu de trabayu 4"
@ -640,47 +631,57 @@ msgstr "Saca una semeya d'una ventana"
msgid "Run a terminal"
msgstr "Executar una terminal"
#: ../src/include/all-keybindings.h:271
#: ../src/include/all-keybindings.h:271 ../src/50-mutter-windows.xml.in.h:1
msgid "Activate the window menu"
msgstr "Activar el menú de la ventana"
#: ../src/include/all-keybindings.h:274
#: ../src/include/all-keybindings.h:274 ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Camudar a modu pantalla completa"
msgstr ""
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Camudar a modu pantalla completa\n"
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Camudar a mou pantalla completa"
#: ../src/include/all-keybindings.h:276
#: ../src/include/all-keybindings.h:276 ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr "Camudar a estáu maximizáu"
msgstr ""
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Camudar a estáu maximizáu\n"
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Conmutar l'estáu maximizáu"
#: ../src/include/all-keybindings.h:278
msgid "Toggle whether a window will always be visible over other windows"
msgstr "Conmutar si una ventana siempres se verá encima d'otres ventanes"
#: ../src/include/all-keybindings.h:280
#: ../src/include/all-keybindings.h:280 ../src/50-mutter-windows.xml.in.h:4
msgid "Maximize window"
msgstr "Maximizar ventana"
#: ../src/include/all-keybindings.h:282
#: ../src/include/all-keybindings.h:282 ../src/50-mutter-windows.xml.in.h:12
msgid "Restore window"
msgstr "Restaurar la ventana"
#: ../src/include/all-keybindings.h:284
#: ../src/include/all-keybindings.h:284 ../src/50-mutter-windows.xml.in.h:15
msgid "Toggle shaded state"
msgstr "Activa estáu endolcáu"
#: ../src/include/all-keybindings.h:286
#: ../src/include/all-keybindings.h:286 ../src/50-mutter-windows.xml.in.h:7
msgid "Minimize window"
msgstr "Minimizar ventana"
#: ../src/include/all-keybindings.h:288
#: ../src/include/all-keybindings.h:288 ../src/50-mutter-windows.xml.in.h:2
msgid "Close window"
msgstr "Zarrar ventana"
#: ../src/include/all-keybindings.h:290
#: ../src/include/all-keybindings.h:290 ../src/50-mutter-windows.xml.in.h:8
msgid "Move window"
msgstr "Mover ventana"
#: ../src/include/all-keybindings.h:292
#: ../src/include/all-keybindings.h:292 ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Cambiar el tamañu la ventana"
@ -689,18 +690,22 @@ msgid "Toggle whether window is on all workspaces or just one"
msgstr "Conmutar si la ventana apaez en toles árees de trabayu o namái nuna"
#: ../src/include/all-keybindings.h:299
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Move window to workspace 1"
msgstr "Mover ventana al espaciu de trabayu 1"
#: ../src/include/all-keybindings.h:302
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Move window to workspace 2"
msgstr "Mover ventana al espaciu de trabayu 2"
#: ../src/include/all-keybindings.h:305
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Move window to workspace 3"
msgstr "Mover ventana al espaciu de trabayu 3"
#: ../src/include/all-keybindings.h:308
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Move window to workspace 4"
msgstr "Mover ventana al espaciu de trabayu 4"
@ -736,19 +741,24 @@ msgstr "Mover ventana al espaciu de trabayu 11"
msgid "Move window to workspace 12"
msgstr "Mover ventana al espaciu de trabayu 12"
#: ../src/include/all-keybindings.h:344
#: ../src/include/all-keybindings.h:344 ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "Mover ventana un espaciu de trabayu a manzorga"
#: ../src/include/all-keybindings.h:347
#: ../src/include/all-keybindings.h:347 ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Mover ventana un espaciu de trabayu a derecha"
msgstr ""
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Mover ventana un espaciu de trabayu a derecha\n"
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Mover ventana un espaciu de trabayu a madrecha"
#: ../src/include/all-keybindings.h:350
#: ../src/include/all-keybindings.h:350 ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "Mover ventana un espaciu de trabayu p'arriba"
#: ../src/include/all-keybindings.h:353
#: ../src/include/all-keybindings.h:353 ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace down"
msgstr "Mover ventana un espaciu de trabayu p'abaxo"
@ -757,19 +767,29 @@ msgid "Raise window if it's covered by another window, otherwise lower it"
msgstr ""
"Llevantar la ventana si ta cubierta por otra ventana, minimizala n'otru casu"
#: ../src/include/all-keybindings.h:358
#: ../src/include/all-keybindings.h:358 ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "Poner el ventanu en primer planu"
msgstr ""
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Poner el ventanu en primer planu\n"
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Poner la ventana en primer planu"
#: ../src/include/all-keybindings.h:360
#: ../src/include/all-keybindings.h:360 ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "Ventanu más baxu per debaxo d'otros ventanos"
msgstr ""
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Ventanu más baxu per debaxo d'otros ventanos\n"
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
"Ventana más baxa per debaxo d'otres ventanes"
#: ../src/include/all-keybindings.h:364
#: ../src/include/all-keybindings.h:364 ../src/50-mutter-windows.xml.in.h:6
msgid "Maximize window vertically"
msgstr "Maximizar ventana verticalmente"
#: ../src/include/all-keybindings.h:368
#: ../src/include/all-keybindings.h:368 ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window horizontally"
msgstr "Maximizar ventana horizontalmente"
@ -983,7 +1003,6 @@ msgstr "Espaciu de Trabayu %d%n"
#: ../src/ui/menu.c:213
#, c-format
#, c-format
msgid "Workspace 1_0"
msgstr "Espaciu de Trabayu 1_0"
@ -1724,7 +1743,6 @@ msgstr "Nun se permite testu dientro del elementu <%s>"
#: ../src/ui/theme-parser.c:3748 ../src/ui/theme-parser.c:3760
#: ../src/ui/theme-parser.c:3772
#, c-format
#, c-format
msgid "<%s> specified twice for this theme"
msgstr "<%s> especificáu dos vegaes pa esti tema"
@ -1936,6 +1954,96 @@ msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%d espresiones de coordenaes interpretaes en %g segundos (%g segundos de "
"media)\n"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Hide all normal windows"
msgstr "Anubrir toles ventanes normales"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move to workspace above"
msgstr "Mover al área de trabayu d'arriba"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move to workspace below"
msgstr "Mover al área de trabayu d'abaxo"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move to workspace left"
msgstr "Mover al área de trabayu de la izquierda"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move to workspace right"
msgstr "Mover al área de trabayu de la derecha"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Navigation"
msgstr "Navegación"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch applications"
msgstr "Movese ente aplicaciones"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Switch system controls"
msgstr "Cambiar ente controles del sistema"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch system controls directly"
msgstr "Movese ente los controles del sistema direutamente"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Switch windows directly"
msgstr "Cambiar ventanes direutamente"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Movese ente les ventanes d'una aplicación direutamente"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Switch windows of an application"
msgstr "Movese ente les ventanes d'una aplicación"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "Show the activities overview"
msgstr "Amosar el resume d'actividaes"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Amosar l'elementu «executar comando»"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "System"
msgstr "Sistema"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "Llevantar la ventana si ta cubierta, minimizala n'otru casu"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Conmutar la ventana en toles árees de trabayu o namái nuna"
#: ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
msgid "Windows"
msgstr "Ventanes"
#~ msgid "Desktop"
#~ msgstr "Escritoriu"

542
po/be.po

File diff suppressed because it is too large Load Diff

495
po/bg.po
View File

@ -11,17 +11,17 @@ msgid ""
msgstr ""
"Project-Id-Version: mutter master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-12 06:45+0200\n"
"PO-Revision-Date: 2012-03-12 06:45+0200\n"
"POT-Creation-Date: 2012-10-14 17:31+0300\n"
"PO-Revision-Date: 2012-10-14 17:31+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\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"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/50-mutter-windows.xml.in.h:1
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "Прозорци"
@ -42,7 +42,7 @@ msgid ""
"\"."
msgstr "На екран %i от дисплея „%s“ вече има мениджър за наслагване."
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr "Събитие за звънец"
@ -51,16 +51,16 @@ msgstr "Събитие за звънец"
msgid "Unknown window information request: %d"
msgstr "Неизвестна заявка за информация за прозорец: %d"
#: ../src/core/delete.c:111
#: ../src/core/delete.c:113
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> не отговаря на съобщенията."
msgid "%s is not responding."
msgstr "%s не отговаря на съобщенията."
#: ../src/core/delete.c:114
#: ../src/core/delete.c:117
msgid "Application is not responding."
msgstr "Програмата не отговаря на съобщенията."
#: ../src/core/delete.c:119
#: ../src/core/delete.c:122
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@ -68,63 +68,63 @@ msgstr ""
"Можете да изчакате малко преди изрично да накарате приложението да спре "
"работата си."
#: ../src/core/delete.c:126
#: ../src/core/delete.c:129
msgid "_Wait"
msgstr "Из_чакване"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:129
msgid "_Force Quit"
msgstr "_Принудително спиране"
#: ../src/core/display.c:361
#: ../src/core/display.c:396
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Липсва разширението „%s“, необходимо за наслагване"
#: ../src/core/display.c:427
#: ../src/core/display.c:492
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Неуспех при отварянето на дисплея на X Window „%s“\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:853
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
"binding\n"
msgstr "Някоя друга програма използва бързия клавиш %s с модификатори %x\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "Прекъсване на връзката към мениджъра на сесиите"
#: ../src/core/main.c:212
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "Замяна на текущия мениджър на прозорци"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "Определяне на идентификатор за управлението на сесии"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "X дисплеят, който да се използва"
# Ако „запазено“ не се членува, низът се събира на един ред без
# пренасяне.
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "Инициализиране на сесия от файл със запазено състояние"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "Извикванията на X да са синхронни"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Неуспех при сканирането на папката с темите: %s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -153,10 +153,10 @@ msgid "Print version"
msgstr "Отпечатване на версията на програмата"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr "Списък с приставки за мениджъра за наслагването разделени с „,“"
msgid "Mutter plugin to use"
msgstr "Приставка, която да се ползва"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1079
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -164,14 +164,14 @@ msgstr ""
"Триковете за развалените програми са изключени. Някои програми могат да са с "
"неправилно поведение.\n"
#: ../src/core/prefs.c:1152
#: ../src/core/prefs.c:1154
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr ""
"Описанието на шрифт „%s“ от ключа на GSettings — %s, не може да бъде "
"анализирано\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1220
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -180,7 +180,7 @@ msgstr ""
"„%s“, който е открит в базата от данни с настройките, не е валиден "
"модификатор на бутон на мишката\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1747
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -189,17 +189,17 @@ msgstr ""
"Низът „%s“ открит в базата от данни с настройки е невалиден за стойност на "
"клавишната комбинация „%s“\n"
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1844
#, c-format
msgid "Workspace %d"
msgstr "Работен плот %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Екранът %d на дисплей „%s“ е невалиден\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -208,7 +208,7 @@ msgstr ""
"Екранът %d на дисплей „%s“ вече има мениджър на прозорци; пробвайте да го "
"замените с опцията --replace.\n"
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@ -216,12 +216,12 @@ msgstr ""
"Неуспех при получаването на избрания мениджър за прозорци на екран %d, "
"дисплей „%s“\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Екран %d на дисплей „%s“ вече има мениджър за прозорци\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Неуспех при отстъпването на екран %d на дисплей „%s“\n"
@ -282,44 +282,44 @@ msgstr ""
"Тези прозорци не поддържат операцията по записване на текущото състояние и "
"ще трябва да се стартират ръчно при следващото ви влизане."
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "Неуспех при отварянето на дневника за изчистване на грешки: %s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "Неуспех при изпълнението на fdopen() върху журналния файл %s: %s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "Отворен е дневника %s\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter е компилиран без поддръжка на подробен режим\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "Мениджър на прозорци: "
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "Грешка в мениджъра на прозорци: "
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "Предупреждение от мениджъра на прозорци: "
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "Грешка от мениджъра на прозорци: "
#. first time through
#: ../src/core/window.c:7224
#: ../src/core/window.c:7237
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -335,7 +335,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7887
#: ../src/core/window.c:7902
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -345,22 +345,22 @@ msgstr ""
"променя, но едновременно с това указва минимален размер %d x %d и максимален "
"размер %d x %d. Това не е смислено.\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:274
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "Приложението зададе неверен _NET_WM_PID %lu\n"
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:393
#, c-format
msgid "%s (on %s)"
msgstr "%s (от %s)"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1448
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "За %2$s е указан неправилен WM_TRANSIENT_FOR, прозорец 0x%1$lx.\n"
#: ../src/core/window-props.c:1492
#: ../src/core/window-props.c:1459
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR за прозорец 0x%lx за %s ще зацикли.\n"
@ -428,24 +428,12 @@ msgstr ""
"отделни и да имат собствена заглавна лента."
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid "Live Hidden Windows"
msgstr "Обновяване на скритите прозорци"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
"Дали скритите прозорци (т.е. минимизираните или на другите плотове) да се "
"обновяват."
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Включване на прилепването и максимизирането на прозорците по границите на "
"екрана"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
@ -456,11 +444,11 @@ msgstr ""
"на екрана. При поставянето им край горната граница прозорците ще се "
"максимзират изцяло."
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "Динамично управление на работните места"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
@ -470,11 +458,11 @@ msgstr ""
"е установено число (зададено чрез ключа „num-workspaces“ в org.gnome.desktop."
"wm.preferences)."
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "Работни плотове само на основния монитор"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
@ -482,11 +470,11 @@ msgstr ""
"Дали смяната на работни плотове да се извършва на всички монитори или само "
"на основния."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr "Без изскачащ прозорец при обхождане"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
@ -494,6 +482,20 @@ msgstr ""
"Дали отбелязването на рамка и изскачащият прозорец при обхождане на "
"прозорците да се изключат."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Delay focus changes until the pointer stops moving"
msgstr "Смяната на фокуса да изчака спирането на показалеца"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"the focus will not be changed immediately when entering a window, but only "
"after the pointer stops moving."
msgstr ""
"Ако е зададено като истина и начинът за фокусиране е „sloppy“ или „mouse“, "
"тогава фокусът няма да се предава веднага при навлизането в прозорец, а едва "
"след като показалецът спре да се движи."
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr "Широчина на границата за влачене"
@ -519,50 +521,6 @@ msgstr "Без изскачащ прозорец при обхождане"
msgid "Usage: %s\n"
msgstr "Употреба: %s\n"
#: ../src/ui/frames.c:1158
msgid "Close Window"
msgstr "Затваряне на прозореца"
#: ../src/ui/frames.c:1161
msgid "Window Menu"
msgstr "Меню за прозорците"
#: ../src/ui/frames.c:1164
msgid "Minimize Window"
msgstr "Минимизиране на прозореца"
#: ../src/ui/frames.c:1167
msgid "Maximize Window"
msgstr "Максимизиране на прозореца"
#: ../src/ui/frames.c:1170
msgid "Restore Window"
msgstr "Възстановяване на прозорец"
#: ../src/ui/frames.c:1173
msgid "Roll Up Window"
msgstr "Навиване на прозореца"
#: ../src/ui/frames.c:1176
msgid "Unroll Window"
msgstr "Развиване на прозореца"
#: ../src/ui/frames.c:1179
msgid "Keep Window On Top"
msgstr "Прозорецът да е отгоре"
#: ../src/ui/frames.c:1182
msgid "Remove Window From Top"
msgstr "Прозорецът да не е само отгоре"
#: ../src/ui/frames.c:1185
msgid "Always On Visible Workspace"
msgstr "Винаги на видимия работен плот"
#: ../src/ui/frames.c:1188
msgid "Put Window On Only One Workspace"
msgstr "Прозорецът да се появява само на едно работен плот"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:69
msgid "Mi_nimize"
@ -762,48 +720,48 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d×%d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "горния"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "долния"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "левия"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "десния"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "геометрията на рамката не указва „%s“ размер"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr "геометрията на рамката не указва „%s“ размер на „%s“ ръб"
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "Отношението на размерите на бутона %g е неподходящо"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "Геометрията на рамката не указва размера на бутоните"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "Преливките трябва да имат поне два цвята"
#: ../src/ui/theme.c:1219
#: ../src/ui/theme.c:1201
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -812,7 +770,7 @@ msgstr ""
"Цветовата спецификация на GTK трябва да съдържа в скоби име на основен и "
"резервен цвят: напр. gtk:custom(foo,bar). Неуспех при анализа на „%s“"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
@ -821,7 +779,7 @@ msgstr ""
"Неправилен знак „%c“ в параметъра за име на цвят (color_name) на gtk:custom. "
"Позволени са само A-Za-z0-9-_."
#: ../src/ui/theme.c:1249
#: ../src/ui/theme.c:1231
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -830,7 +788,7 @@ msgstr ""
"Форматът на Gtk:custom е „gtk:custom(основен_цвят,резервен_цвят)“, „%s“ не "
"съответства на формата"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -840,7 +798,7 @@ msgstr ""
"скоби, напр. gtk:fg[NORMAL], където NORMAL е състоянието. Неуспех при "
"анализира „%s“"
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -850,17 +808,17 @@ msgstr ""
"състоянието, напр. gtk:fg[NORMAL], където NORMAL е състоянието. Неуспех при "
"анализа на „%s“"
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "Неуспех при анализа на състоянието „%s“ в цветовата спецификация"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "Неуспех при анализа на цветови компонент „%s“ в цветовата спецификация"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@ -869,17 +827,17 @@ msgstr ""
"Форматът на смесването е „blend/bg_color/fg_color/alpha“, „%s“ не се "
"подчинява на формата"
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "Неуспех при анализира на алфа стойността „%s“ в смесения цвят"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "Алфа стойността „%s“ в смесения цвят не е между 0.0 и 1.0"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
@ -887,27 +845,27 @@ msgstr ""
"Форматът на навиването е „shade/base_color/factor“, „%s“ не съответства на "
"формата"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "Неуспех при анализа на фактора на навиването „%s“ в цвета за навиване"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "Факторът на навиване „%s“ в цвета за сянката е отрицателен"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "Неуспех при анализа на цвета „%s“"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "Изразът за координати съдържа символа „%s“, който не е позволен"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
@ -916,14 +874,14 @@ msgstr ""
"Изразът за координати съдържа числото с плаваща запетая „%s“, което не може "
"да бъде анализирано"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr ""
"Изразът за координати съдържа цялото число „%s“, което не може да бъде "
"анализирано"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@ -932,24 +890,24 @@ msgstr ""
"Изразът за координати съдържа непознат оператор в началото на този текст: "
"„%s“"
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "Изразът за координати бе празен или не бе разбран"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "Изразът за координати дава деление на нула"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr ""
"Изразът за координати използва оператора mod върху число с плаваща запетая"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
@ -957,18 +915,18 @@ msgstr ""
"Изразът за координати използва оператора „%s“ на място, където се очаква "
"операнд"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr ""
"Изразът за координати използва оператор на място, където се очаква операнд"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "Изразът за координати завършва с оператор вместо с операнд"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@ -977,38 +935,38 @@ msgstr ""
"Изразът за координати използва оператора „%c“ след „%c“ без да има операнд "
"между тях"
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr ""
"Изразът за координати използва непознатата променлива или константа „%s“"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "Анализаторът на изрази за координати препълни буфера си."
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "В израза за координати има затваряща скоба без съответна отваряща"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "В изразът за координати има отваряща скоба без съответна затваряща"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "Изразът за координати не съдържа нито оператори, нито операнди"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "Темата съдържа израз, който даде грешка: %s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -1017,25 +975,25 @@ msgstr ""
"За този стил на рамката трябва да се укаже <button function=\"%s\" state=\"%s"
"\" draw_ops=\"нещо си\"/>"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
"Липсва <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"нещо си\"/>"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "Неуспех при зареждането на темата „%s“: %s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "Не е даден елементът <%s> за темата „%s“"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -1044,7 +1002,7 @@ msgstr ""
"Няма указан стил на рамката за „%s“ прозорците в тема „%s“. Добавете елемент "
"<window type=\"%s\" style_set=\"нещо си\"/>"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
@ -1052,7 +1010,7 @@ msgstr ""
"Константите определени от потребителя трябва да започват с главна буква, а "
"„%s“ не започва така"
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "Константата „%s“ вече е дефинирана"
@ -1431,7 +1389,7 @@ msgstr "Не е позволен текст в елемента <%s>"
msgid "<%s> specified twice for this theme"
msgstr "<%s> е указан два пъти за тази тема"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Неуспех при намирането на валиден файл за темата %s\n"
@ -1637,3 +1595,218 @@ msgstr "стойността y бе %d, а се очакваше %d"
#, c-format
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%d координатен израз обработен за %g секунди (%g секунди средно)\n"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Hide all normal windows"
msgstr "Скриване на всички обикновен прозорци"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move to workspace above"
msgstr "Преместване на горния работен плот"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move to workspace below"
msgstr "Преместване на долния работен плот"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move to workspace left"
msgstr "Преместване на левия работен плот"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move to workspace right"
msgstr "Преместване на десния работен плот"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace down"
msgstr "Преместване на прозореца един работен плот надолу"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Преместване на прозореца един работен плот наляво"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Преместване на прозореца един работен плот надясно"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace up"
msgstr "Преместване на прозореца един работен плот нагоре"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Преместване на прозореца в работен плот 1"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Преместване на прозореца в работен плот 2"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Преместване на прозореца в работен плот 3"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Преместване на прозореца в работен плот 4"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Navigation"
msgstr "Навигация"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch applications"
msgstr "Преместване на фокуса между програмите"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Switch system controls"
msgstr "Преместване на фокуса между служебните обекти"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch system controls directly"
msgstr "Незабавно преместване на фокуса между служебните обекти"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Превключване към работен плот 1"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Превключване към работен плот 2"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Превключване към работен плот 3"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Превключване към работен плот 4"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Switch windows directly"
msgstr "Незабавно преместване на фокуса между програмите"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Незабавно преместване на фокуса между прозорците на едно приложение"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Switch windows of an application"
msgstr "Преместване на фокуса между прозорците на едно приложение"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "Show the activities overview"
msgstr "Преглед на дейностите"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Показване на прозореца за стартиране на команда"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "System"
msgstr "Система"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr "Активиране на менюто за прозорците"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "Затваряне на прозореца"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "Понижаване на прозореца под другите прозорци"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr "Максимизиране на прозорец"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Максимизиране на прозореца хоризонтално"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "Максимизиране прозореца вертикално"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr "Минимизиране на прозореца"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "Преместване на прозорец"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "Издигане на прозореца над другите"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "Ако прозорецът е под друг, го издига, иначе го понижава"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Оразмеряване на прозорец"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "Възстановяване на прозорец"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Превключване на режима за цял екран"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr "Превключване на състоянието на максимизиране"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "Превключване на състоянието на навиване"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Превключване на появата на прозореца на всички работни места"

File diff suppressed because it is too large Load Diff

973
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

594
po/cs.po

File diff suppressed because it is too large Load Diff

688
po/da.po

File diff suppressed because it is too large Load Diff

584
po/de.po

File diff suppressed because it is too large Load Diff

1364
po/el.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

313
po/eo.po
View File

@ -1493,17 +1493,260 @@ msgstr "Y-valoro estis %d, %d estis atendita"
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr ""
#~ msgid "Switch to workspace 1"
#~ msgstr "Ŝalti al laborspaco 1"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Ŝalti al laborspaco 1"
#~ msgid "Switch to workspace 2"
#~ msgstr "Ŝalti al laborspaco 2"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Ŝalti al laborspaco 2"
#~ msgid "Switch to workspace 3"
#~ msgstr "Ŝalti al laborspaco 3"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Ŝalti al laborspaco 3"
#~ msgid "Switch to workspace 4"
#~ msgstr "Ŝalti al laborspaco 4"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Ŝalti al laborspaco 4"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Activate the window menu"
msgstr "Aktivigi la fenestromenuon"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Baskuligi tutekranan reĝimon"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window"
msgstr "Maksimumigi la fenestron"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Restore window"
msgstr "Restaŭri fenestron"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Minimize window"
msgstr "Minimumigi fenestron"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Close window"
msgstr "Fermi la fenestron"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Move window"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Ŝanĝi la fenestrograndon\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Ŝanĝi fenestrograndon"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move window to workspace 1"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al laborspaco 1\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al laborspaco 1"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move window to workspace 2"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al laborspaco 2\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al laborspaco 2"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move window to workspace 3"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al laborspaco 3\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al laborspaco 3"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move window to workspace 4"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al laborspaco 4\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al laborspaco 4"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace to the left"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al la maldekstra laborspaco\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al la maldekstra laborspaco"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the right"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al la dekstra laborspaco\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al la dekstra laborspaco"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace up"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al la supra laborspaco\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al la supra laborspaco"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace down"
msgstr ""
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi la fenestron al la suba laborspaco\n"
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
"Movi fenestron al la suba laborspaco"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Maximize window vertically"
msgstr "Vertikale maksimumigi la fenestron"
#: ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Horizontale maksimumigi la fenestron"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr "Navigado"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Switch applications"
msgstr ""
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Switch windows of an application"
msgstr "Ŝalti fenestrojn de aplikaĵo"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Switch system controls"
msgstr ""
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Switch windows directly"
msgstr ""
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Switch windows of an app directly"
msgstr ""
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch system controls directly"
msgstr ""
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Hide all normal windows"
msgstr "Kaŝi ĉiujn normalajn fenestrojn"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Move to workspace left"
msgstr "Movi al la maldekstra laborspaco"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Move to workspace right"
msgstr "Movi al la dekstra laborspaco"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Move to workspace above"
msgstr "Movi al la supra laborspaco"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Move to workspace below"
msgstr "Movi al la malsupra laborspaco"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "System"
msgstr "Sistemo"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr ""
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "Show the activities overview"
msgstr ""
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Toggle maximization state"
msgstr ""
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Toggle shaded state"
msgstr ""
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr ""
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr ""
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Raise window above other windows"
msgstr ""
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Lower window below other windows"
msgstr ""
#~ msgid "Switch to workspace 5"
#~ msgstr "Ŝalti al laborspaco 5"
@ -1598,42 +1841,6 @@ msgstr ""
#~ msgid "Run a terminal"
#~ msgstr "Ruli terminalon"
#~ msgid "Activate the window menu"
#~ msgstr "Aktivigi la fenestromenuon"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Baskuligi tutekranan reĝimon"
#~ msgid "Maximize window"
#~ msgstr "Maksimumigi la fenestron"
#~ msgid "Restore window"
#~ msgstr "Restaŭri fenestron"
#~ msgid "Minimize window"
#~ msgstr "Minimumigi fenestron"
#~ msgid "Close window"
#~ msgstr "Fermi la fenestron"
#~ msgid "Move window"
#~ msgstr "Movi la fenestron"
#~ msgid "Resize window"
#~ msgstr "Ŝanĝi la fenestrograndon"
#~ msgid "Move window to workspace 1"
#~ msgstr "Movi la fenestron al laborspaco 1"
#~ msgid "Move window to workspace 2"
#~ msgstr "Movi la fenestron al laborspaco 2"
#~ msgid "Move window to workspace 3"
#~ msgstr "Movi la fenestron al laborspaco 3"
#~ msgid "Move window to workspace 4"
#~ msgstr "Movi la fenestron al laborspaco 4"
#~ msgid "Move window to workspace 5"
#~ msgstr "Movi la fenestron al laborspaco 5"
@ -1658,24 +1865,6 @@ msgstr ""
#~ msgid "Move window to workspace 12"
#~ msgstr "Movi la fenestron al laborspaco 12"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Movi la fenestron al la maldekstra laborspaco"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Movi la fenestron al la dekstra laborspaco"
#~ msgid "Move window one workspace up"
#~ msgstr "Movi la fenestron al la supra laborspaco"
#~ msgid "Move window one workspace down"
#~ msgstr "Movi la fenestron al la suba laborspaco"
#~ msgid "Maximize window vertically"
#~ msgstr "Vertikale maksimumigi la fenestron"
#~ msgid "Maximize window horizontally"
#~ msgstr "Horizontale maksimumigi la fenestron"
#~ msgid ""
#~ "There was an error running <tt>%s</tt>:\n"
#~ "\n"

651
po/es.po

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"Project-Id-Version: mutter MASTER\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-03-11 22:19+0000\n"
"PO-Revision-Date: 2012-03-12 00:47+0200\n"
"POT-Creation-Date: 2012-10-17 20:44+0000\n"
"PO-Revision-Date: 2012-10-21 20:48+0300\n"
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
"Language-Team: Estonian <>\n"
"Language: et\n"
@ -49,8 +49,8 @@ msgid "Unknown window information request: %d"
msgstr "Tundmatu aknateabe päring: %d"
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> ei vasta."
msgid "“%s” is not responding."
msgstr "„%s” ei vasta."
msgid "Application is not responding."
msgstr "Rakendus ei vasta."
@ -128,8 +128,8 @@ msgstr ""
msgid "Print version"
msgstr "Versiooni printimine"
msgid "Comma-separated list of compositor plugins"
msgstr "Komaga eraldatud nimekiri komposiitmontaaži pluginatest"
msgid "Mutter plugin to use"
msgstr "Millist Mutteri pluginat kasutada"
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
@ -353,16 +353,6 @@ msgstr ""
"Kui märgitud, siis eraldi tiitliribade asemel on moodaalsed dialoogid "
"emaakna tiitliribade küljes ning liiguvad koos emaaknaga."
msgid "Live Hidden Windows"
msgstr "Varjatud akende aktiivsus"
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
"Määrab, kas varjatud aknaid (nt minimeeritud ja teistel tööaladel aknad) "
"hoitakse elus."
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Akna ümberpaigutamine selle lohistamisel ekraani serva"
@ -406,6 +396,17 @@ msgstr ""
"Kui märgitud, siis on hüpikaken ja esiletõstmise raam keelatud akende "
"vahetamisel."
msgid "Delay focus changes until the pointer stops moving"
msgstr "Fookusemuutused lükatakse edasi kuni kursor peatub"
msgid ""
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"the focus will not be changed immediately when entering a window, but only "
"after the pointer stops moving."
msgstr ""
"Kui tõene ning fookusrežiim on kas \"sloppy\" või \"mouse\", siis fookust ei "
"vahetata kohe, kui kursor aknale liigub, vaid alles pärast kursori peatumist."
msgid "Draggable border width"
msgstr "Lohistatava äärise laius."
@ -426,39 +427,6 @@ msgstr "Tabulaatori hüpikakna katkestamine"
msgid "Usage: %s\n"
msgstr "Kasutamine: %s\n"
msgid "Close Window"
msgstr "Sulge aken"
msgid "Window Menu"
msgstr "Aknamenüü"
msgid "Minimize Window"
msgstr "Akna minimeerimine"
msgid "Maximize Window"
msgstr "Akna maksimeerimine"
msgid "Restore Window"
msgstr "Akna taastamine"
msgid "Roll Up Window"
msgstr "Akna kokkukerimine"
msgid "Unroll Window"
msgstr "Akna lahtikerimine"
msgid "Keep Window On Top"
msgstr "Akna kõige pealmiseks määramine"
msgid "Remove Window From Top"
msgstr "Eemalda aken kõige pealmise kohalt"
msgid "Always On Visible Workspace"
msgstr "Alati nähtaval tööalal"
msgid "Put Window On Only One Workspace"
msgstr "Tõsta aken ainult ühele tööalale"
#. Translators: Translate this string the same way as you do in libwnck!
msgid "Mi_nimize"
msgstr "_Minimeeri"

291
po/eu.po
View File

@ -31,7 +31,7 @@ msgstr "Ikusi zatia ezkerrean"
msgid "View split on right"
msgstr "Ikusi zatia eskuinean"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:3 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "Leihoak"
@ -1630,17 +1630,224 @@ msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr ""
"%d koordenada adierazpen analizatua %g segundotan (%g segundo batazbesteko)\n"
#~ msgid "Switch to workspace 1"
#~ msgstr "Aldatu 1. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Aldatu 1. laneko areara"
#~ msgid "Switch to workspace 2"
#~ msgstr "Aldatu 2. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Aldatu 2. laneko areara"
#~ msgid "Switch to workspace 3"
#~ msgstr "Aldatu 3. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Aldatu 3. laneko areara"
#~ msgid "Switch to workspace 4"
#~ msgstr "Aldatu 4. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Aldatu 4. laneko areara"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr "Aktibatu leiho-menua"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Txandakatu pantaila osoaren modua"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr "Txandakatu maximizatze-egoera"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr "Maximizatu leihoa"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "Leheneratu leihoa"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "Txandakatu bildutako egoera"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr ""
"#-#-#-#-# eu.po (eu) #-#-#-#-#\n"
"Ikonotu leihoa\n"
"#-#-#-#-# eu.po (eu) #-#-#-#-#\n"
"Minimizatu leihoa"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "Itxi leihoa"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "Lekuz aldatu leihoa"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Aldatu leihoaren tamaina"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Eraman leihoa 1. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Eraman leihoa 2. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Eraman leihoa 3. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Eraman leihoa 4. laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Eraman leihoa laneko area bat ezkerrera"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Eraman leihoa laneko area bat eskuinera"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace up"
msgstr "Eraman leihoa laneko area bat gora"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace down"
msgstr "Eraman leihoa laneko area bat behera"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "Goratu leihoa beste leihoen gainera"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "Beheratu leihoa beste leihoen azpira"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "Maximizatu leihoa bertikalki"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Maximizatu leihoa horizontalki"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Hide all normal windows"
msgstr "Ezkutatu leiho arrunt guztiak"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move to workspace above"
msgstr "Eraman gaineko laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move to workspace below"
msgstr "Eraman azpiko laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move to workspace left"
msgstr "Eraman ezkerreko laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move to workspace right"
msgstr "Eraman eskuineko laneko areara"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Navigation"
msgstr "Nabigazioa"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch applications"
msgstr "Aldatu aplikazioz"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Switch system controls"
msgstr "Aldatu sistemaren kontrolak"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch system controls directly"
msgstr "Aldatu sistemaren kontrolak zuzenean"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Switch windows directly"
msgstr "Aldatu leihoa zuzenean"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Aldatu aplikazio baten leihoa zuzenean"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Switch windows of an application"
msgstr "Aldatu aplikazio baten leihoen artean"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "Show the activities overview"
msgstr "Erakutsi jardueren aurkezpen orokorra"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Erakutsi gonbitea komandoa exekutatzeko"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "System"
msgstr "Sistema"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "Goratu leihoa beste leiho batek estaltzen badu, bestela beheratu"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Txandakatu leihoa laneko area guztietan edo bakar batean egotea"
#~ msgid "Switch to workspace 5"
#~ msgstr "Aldatu 5. laneko areara"
@ -1738,55 +1945,13 @@ msgstr ""
#~ msgid "Run a terminal"
#~ msgstr "Exekutatu terminala"
#~ msgid "Activate the window menu"
#~ msgstr "Aktibatu leiho-menua"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Txandakatu pantaila osoaren modua"
#~ msgid "Toggle maximization state"
#~ msgstr "Txandakatu maximizatze-egoera"
#~ msgid "Toggle whether a window will always be visible over other windows"
#~ msgstr ""
#~ "Txandakatu leiho bat beste leiho guztien gainean ikusgai egongo den edo ez"
#~ msgid "Maximize window"
#~ msgstr "Maximizatu leihoa"
#~ msgid "Restore window"
#~ msgstr "Leheneratu leihoa"
#~ msgid "Toggle shaded state"
#~ msgstr "Txandakatu bildutako egoera"
#~ msgid "Minimize window"
#~ msgstr "Ikonotu leihoa"
#~ msgid "Close window"
#~ msgstr "Itxi leihoa"
#~ msgid "Move window"
#~ msgstr "Lekuz aldatu leihoa"
#~ msgid "Resize window"
#~ msgstr "Aldatu leihoaren tamaina"
#~ msgid "Toggle whether window is on all workspaces or just one"
#~ msgstr "Txandakatu leihoa laneko area guztietan edo bakar batean egotea"
#~ msgid "Move window to workspace 1"
#~ msgstr "Eraman leihoa 1. laneko areara"
#~ msgid "Move window to workspace 2"
#~ msgstr "Eraman leihoa 2. laneko areara"
#~ msgid "Move window to workspace 3"
#~ msgstr "Eraman leihoa 3. laneko areara"
#~ msgid "Move window to workspace 4"
#~ msgstr "Eraman leihoa 4. laneko areara"
#~ msgid "Move window to workspace 5"
#~ msgstr "Eraman leihoa 5. laneko areara"
@ -1811,33 +1976,9 @@ msgstr ""
#~ msgid "Move window to workspace 12"
#~ msgstr "Eraman leihoa 12. laneko areara"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Eraman leihoa laneko area bat ezkerrera"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Eraman leihoa laneko area bat eskuinera"
#~ msgid "Move window one workspace up"
#~ msgstr "Eraman leihoa laneko area bat gora"
#~ msgid "Move window one workspace down"
#~ msgstr "Eraman leihoa laneko area bat behera"
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
#~ msgstr "Goratu leihoa beste leiho batek estaltzen badu, bestela beheratu"
#~ msgid "Raise window above other windows"
#~ msgstr "Goratu leihoa beste leihoen gainera"
#~ msgid "Lower window below other windows"
#~ msgstr "Beheratu leihoa beste leihoen azpira"
#~ msgid "Maximize window vertically"
#~ msgstr "Maximizatu leihoa bertikalki"
#~ msgid "Maximize window horizontally"
#~ msgstr "Maximizatu leihoa horizontalki"
#~ msgid "Move window to north-west (top left) corner"
#~ msgstr "Eraman leihoa ipar-mendebaldeko (goi-ezkerreko) ertzera"

360
po/fa.po
View File

@ -20,8 +20,7 @@ msgstr ""
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-SourceCharset: utf-8\n"
#: ../src/50-mutter-windows.xml.in.h:1
#| msgid "/_Windows"
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "پنجره‌ها"
@ -1486,6 +1485,291 @@ msgstr "مقدار y %Id بود، %Id انتظار می‌رفت"
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (متوسط %Ig ثانیه)\n"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "بستن پنجره"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "پایین بردن پنجره زیر پنجره‌های دیگر"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"حداکثر کردن پنجره\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"بیشینه کردن پنجره"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "حداکثر کردن افقی پنجره"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "حداکثر کردن عمودی پنجره"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"حداقل کردن پنجره\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"کمینه کردن پنجره"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "جابه‌جایی پنجره"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace down"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری پایینی\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری پایینی"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the left"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری چپ \n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری چپ "
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری راست\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری راست"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace up"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری بالایی\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری بالایی"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری ۱\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری ۱"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری ۲\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری ۲"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"نقل‌مکان پنجره به فضای کاری ۳\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری ۳"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای کاری ۴\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"جابه‌جایی پنجره به فضای‌کاری ۴"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "پیش آوردن پنجره روی همه‌ی پنجره‌ها"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "تغییر اندازه‌ی پنجره"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 1"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"تعویض به فضای کاری ۱\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"رفتن به فضای‌کاری ۱"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 2"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"تعویض به فضای کاری ۲\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"رفتن به فضای‌کاری ۲"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 3"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"تعویض به فضای کاری ۳\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"رفتن به فضای‌کاری ۳"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Switch to workspace 4"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"تعویض به فضای کاری ۴\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"رفتن به فضای‌کاری ۴"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "ضامن حالت تمام صفحه"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr ""
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"ضامن همیشه در وضیعت حداکثر\n"
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
"ضامن همیشه در وضعیت حداکثر"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "ضامن وضعیت سایه خورده"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
#| msgid "Hide all normal windows and set focus to the desktop"
msgid "Hide all normal windows"
msgstr "مخفی کردن همه‌ی پنجره‌های معمول"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
#| msgid "Move to Workspace _Left"
msgid "Move to workspace above"
msgstr "جابه‌جایی به فضای‌کاری _چپ"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
#| msgid "Move to Workspace _Down"
msgid "Move to workspace below"
msgstr "جابه‌جایی به فضای‌کاری پایین"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
#| msgid "Move to Workspace _Left"
msgid "Move to workspace left"
msgstr "جابه‌جایی به فضای‌کاری سمت چپ"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
#| msgid "Move to Workspace R_ight"
msgid "Move to workspace right"
msgstr "جابه‌جایی به فضای‌کاری سمت راست"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Navigation"
msgstr "جابه‌جایی"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch applications"
msgstr "تعویض برنامه‌ها"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Switch system controls"
msgstr "تعویض کنترل‌های سیستم"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch system controls directly"
msgstr "تعویض مستقیمِ کنترل‌های سیستم"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Switch windows directly"
msgstr "تعویض مستیقیم پنجره‌ها"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
#| msgid "Move between windows of an application immediately"
msgid "Switch windows of an app directly"
msgstr "تعویض مستقیمِ پنجره‌های یک برنامه"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
#| msgid "Move between windows of an application immediately"
msgid "Switch windows of an application"
msgstr "تعویض پنجره‌های یک برنامه"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "Show the activities overview"
msgstr "نمایش نمای‌کلی فعالیت‌ها"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
#| msgid "Show the panel's main menu"
msgid "Show the run command prompt"
msgstr "نمایش خط فرمان اجرا"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "System"
msgstr "سیستم"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr "فعال کردن منوی پنجره"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
#| msgid "Raise window if it's covered by another window, otherwise lower it"
msgid "Raise window if covered, otherwise lower it"
msgstr "بالا آوردن پنجره در صورتی که پوشیده شده است، در غیر اینصورت پایین برود"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "بازگرداندن پنجره"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
#| msgid "Toggle whether window is on all workspaces or just one"
msgid "Toggle window on all workspaces or one"
msgstr "تغییر حالت پنجره در یک یا تمام فضاهای‌کاری"
#~ msgid "Failed to parse message \"%s\" from dialog process\n"
#~ msgstr "شکست در تجزیه پیغام «%s» از پردازش محاوره\n"
@ -1622,9 +1906,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ "(کلیک راست) می‌شود. تغییردهنده به صورت مثلاً«&lt;Alt&gt;» یا «&lt;Super&gt;» "
#~ "نمایش داده می‌شود."
#~ msgid "Close window"
#~ msgstr "بستن پنجره"
#~ msgid "Commands to run in response to keybindings"
#~ msgstr "فرمان‌هایی که در پاسخ به کلیدهای مقید اجرا می‌شوند"
@ -1703,21 +1984,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ msgstr ""
#~ "اگر درست بود از قابلیت کاربری در قبال استفاده‌ی کمتر از منابع صرف نظر شود"
#~ msgid "Lower window below other windows"
#~ msgstr "پایین بردن پنجره زیر پنجره‌های دیگر"
#~ msgid "Maximize window"
#~ msgstr "حداکثر کردن پنجره"
#~ msgid "Maximize window horizontally"
#~ msgstr "حداکثر کردن افقی پنجره"
#~ msgid "Maximize window vertically"
#~ msgstr "حداکثر کردن عمودی پنجره"
#~ msgid "Minimize window"
#~ msgstr "حداقل کردن پنجره"
#~ msgid "Move backward between panels and the desktop immediately"
#~ msgstr "جابه‌جایی آنی به عقب بین تابلو و رومیزی"
@ -1739,24 +2005,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ msgid "Move focus backwards between windows using popup display"
#~ msgstr "انتقال تمرکز به عقب بین پنجره‌ها با نمایش واشو"
#~ msgid "Move window"
#~ msgstr "جابه‌جایی پنجره"
#~ msgid "Move window one workspace down"
#~ msgstr "جابه‌جایی پنجره به فضای کاری پایینی"
#~ msgid "Move window one workspace to the left"
#~ msgstr "جابه‌جایی پنجره به فضای کاری چپ "
#~ msgid "Move window one workspace to the right"
#~ msgstr "جابه‌جایی پنجره به فضای کاری راست"
#~ msgid "Move window one workspace up"
#~ msgstr "جابه‌جایی پنجره به فضای کاری بالایی"
#~ msgid "Move window to workspace 1"
#~ msgstr "جابه‌جایی پنجره به فضای کاری ۱"
#~ msgid "Move window to workspace 10"
#~ msgstr "جابه‌جایی پنجره به فضای کاری ۱۰"
@ -1766,15 +2014,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ msgid "Move window to workspace 12"
#~ msgstr "جابه‌جایی پنجره به فضای کاری ۱۲"
#~ msgid "Move window to workspace 2"
#~ msgstr "جابه‌جایی پنجره به فضای کاری ۲"
#~ msgid "Move window to workspace 3"
#~ msgstr "نقل‌مکان پنجره به فضای کاری ۳"
#~ msgid "Move window to workspace 4"
#~ msgstr "جابه‌جایی پنجره به فضای کاری ۴"
#~ msgid "Move window to workspace 5"
#~ msgstr "جابه‌جایی پنجره به فضای کاری ۵"
@ -1804,12 +2043,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ "تعداد فضاهای کاری. باید بیش از صفر باشد و حداکثر مشخصی دارد (برای این که "
#~ "اتفاقی رومیزی‌تان را با درخواست ۳۴ میلیون فضای کاری از بین نبرید)."
#~ msgid "Raise window above other windows"
#~ msgstr "پیش آوردن پنجره روی همه‌ی پنجره‌ها"
#~ msgid "Resize window"
#~ msgstr "تغییر اندازه‌ی پنجره"
#~ msgid "Run a defined command"
#~ msgstr "اجرای یک فرمان تعریف شده"
@ -1850,9 +2083,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ "بعضی از دور زدن‌ها دورزدن کمبودهای خود قواعد جزئی هستند، بنابراین بعضی "
#~ "وقت‌ها اشکال در حالت دور زدن بدون دستکاری قواعد قبل رفع نیست."
#~ msgid "Switch to workspace 1"
#~ msgstr "تعویض به فضای کاری ۱"
#~ msgid "Switch to workspace 10"
#~ msgstr "تعویض به فضای کاری ۱۰"
@ -1862,15 +2092,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ msgid "Switch to workspace 12"
#~ msgstr "تعویض به فضای کاری ۱۲"
#~ msgid "Switch to workspace 2"
#~ msgstr "تعویض به فضای کاری ۲"
#~ msgid "Switch to workspace 3"
#~ msgstr "تعویض به فضای کاری ۳"
#~ msgid "Switch to workspace 4"
#~ msgstr "تعویض به فضای کاری ۴"
#~ msgid "Switch to workspace 5"
#~ msgstr "تعویض به فضای کاری ۵"
@ -2925,15 +3146,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
#~ msgid "Toggle always on top state"
#~ msgstr "ضامن همیشه در وضعیت بالایی"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "ضامن حالت تمام صفحه"
#~ msgid "Toggle maximization state"
#~ msgstr "ضامن همیشه در وضیعت حداکثر"
#~ msgid "Toggle shaded state"
#~ msgstr "ضامن وضعیت سایه خورده"
#~ msgid "Toggle window on all workspaces"
#~ msgstr "ضامن پنجره در تمام فضاهای کاری"

943
po/fi.po

File diff suppressed because it is too large Load Diff

522
po/fr.po

File diff suppressed because it is too large Load Diff

674
po/gl.po

File diff suppressed because it is too large Load Diff

339
po/gu.po
View File

@ -7,10 +7,11 @@ msgstr ""
"Project-Id-Version: gu\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
"cgi?product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-03-15 21:29+0000\n"
"PO-Revision-Date: 2012-03-26 14:08+0530\n"
"POT-Creation-Date: 2012-08-06 23:35+0000\n"
"PO-Revision-Date: 2012-09-22 23:31+0530\n"
"Last-Translator: \n"
"Language-Team: gu_IN <kde-i18n-doc@kde.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -30,49 +31,48 @@ msgstr ""
"\n"
#: ../src/50-mutter-windows.xml.in.h:1
#| msgid "_Windows"
msgid "Windows"
msgstr "વિન્ડો"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "View split on left"
msgstr ""
msgstr "ડાબી બાજુએ અલગ કરેલ દૃશ્ય"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "View split on right"
msgstr ""
msgstr "જમણી બાજુએ અલગ કરેલ દૃશ્ય"
#. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit
#: ../src/compositor/compositor.c:492
#, fuzzy, c-format
#, c-format
#| msgid ""
#| "Could not acquire window manager selection on screen %d display \"%s\"\n"
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
"\"."
msgstr "સ્ક્રીન %d કે જે ડિસ્પ્લે \"%s\" પર છે તે વિન્ડો વ્યવસ્થાપકની પસંદગીને મેળવી શકાતી નથી\n"
msgstr "સ્ક્રીન %i કે જે દર્શાવ \"%s\" પર છે તે બીજુ બનતુ સંચાલક પહેલેથી ચાલી રહ્યુ છે."
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr ""
msgstr "બેલ ઘટના"
#: ../src/core/core.c:157
#, c-format
msgid "Unknown window information request: %d"
msgstr "અજ્ઞાત વિન્ડો જાણકારી અરજી: %d"
#: ../src/core/delete.c:111
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> જવાબ આપતું નથી."
#: ../src/core/delete.c:114
#, c-format
#| msgid "<tt>%s</tt> is not responding."
msgid "%s is not responding."
msgstr "%s જવાબ આપતું નથી."
#: ../src/core/delete.c:118
msgid "Application is not responding."
msgstr "કાર્યક્રમ જવાબ આપતું નથી."
#: ../src/core/delete.c:119
#: ../src/core/delete.c:123
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@ -80,62 +80,61 @@ msgstr ""
"તેને ચાલુ રાખવા માટે અથવા કાર્યક્રમને સંપૂર્ણપણે બંધ થઈ જવા માટે તમે થોડો સમય રાહ જોવાનું "
"પસંદ કરી શકશો."
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Wait"
msgstr "રાહ જુઓ (_W)"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Force Quit"
msgstr "જબરદસ્તી બહાર કાઢો (_F)"
#: ../src/core/display.c:387
#: ../src/core/display.c:380
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "કમ્પોઝીટીંગ માટે ગુમ થયેલ %s એક્સટેન્સન જરૂરી"
#: ../src/core/display.c:453
#: ../src/core/display.c:446
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "X વિન્ડો સિસ્ટમ ડિસ્પ્લે '%s' ને ખોલવામાં નિષ્ફળ\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:844
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
"binding\n"
msgstr "કોઈ બીજો કાર્યક્રમ પહેલેથીજ કી %s ને બદલનાર %x સાથે જોડાણ તરીકે વાપરી રહ્યુ છે\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "સત્ર વ્યવસ્થાપકનું જોડાણ નિષ્ક્રિય કરો"
#: ../src/core/main.c:212
#| msgid "Replace the running window manager with Mutter"
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "ચાલતા વિન્ડો સંચાલકને બદલો"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "સત્ર વ્યવસ્થાપન ID સ્પષ્ટ કરો"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "વાપરવા માટેનું X ડિસ્પ્લે"
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "સંગ્રહાયેલ ફાઈલમાંથી સત્રનો પ્રારંભ કરો"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "X કોલ સુમેળ રીતે કરો"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "થીમની ડિરેક્ટરી જોવામાં નિષ્ફળ: %s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr "થીમ શોધી શકાઈ નહિં! ખાતરી કરો કે %s અસ્તિત્વ ધરાવે છે અને તેમાં સામાન્ય થીમ છે.\n"
@ -160,10 +159,11 @@ msgid "Print version"
msgstr "છાપન આવૃત્તિ"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr ""
#| msgid "Clutter Plugins"
msgid "Mutter plugin to use"
msgstr "વાપરવા માટે Mutter પ્લગઇન"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1065
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -171,37 +171,37 @@ msgstr ""
"બગડેલા કાર્યક્રમો માટે આસપાસના કાર્યો નિષ્ક્રિય કરેલા છે. કદાચ કેટલાક કાર્યક્રમો યોગ્ય "
"રીતે નહિ વર્તતા હોય.\n"
#: ../src/core/prefs.c:1152
#, fuzzy, c-format
#: ../src/core/prefs.c:1140
#, c-format
#| msgid "Could not parse font description \"%s\" from GConf key %s\n"
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "\"%s\" ફોન્ટના વર્ણનને જીકોન્ફ કી %s માંથી પદચ્છેદ કરી શકાતા નથી\n"
msgstr "ફોન્ટ વર્ણન \"%s\" GSettings કી %s માંથી નું પદચ્છેદ કરી શક્યા નહિં\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1206
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
"modifier\n"
msgstr "માઉસ બટનની કિંમત બદલવા માટે રુપરેખાના ડેટાબેઝમાંથી મળેલ કિંમત \"%s\" એ યોગ્ય નથી\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1724
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
"\"%s\"\n"
msgstr "કી જોડાણ \"%s\" માટે રુપરેખાના ડેટાબેઝ \"%s\" માં મળેલ કિંમત યોગ્ય નથી\n"
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1821
#, c-format
msgid "Workspace %d"
msgstr "કામ કરવાની જગ્યા %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "સ્ક્રીન %d કે જે ડિસ્પ્લે '%s' પર છે એ અયોગ્ય છે\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -210,17 +210,18 @@ msgstr ""
"સ્ક્રીન %d કે જે ડિસ્પ્લે \"%s\" પર છે ત્યાં પહેલેથીજ વિન્ડો વ્યવસ્થાપક છે, --replace "
"વિક્લ્પનો ઉપયોગ કરીને વિન્ડો વ્યવસ્થાપકને બદલવાનો પ્રયત્ન કરો.\n"
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid "Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "સ્ક્રીન %d કે જે ડિસ્પ્લે \"%s\" પર છે તે વિન્ડો વ્યવસ્થાપકની પસંદગીને મેળવી શકાતી નથી\n"
msgstr ""
"સ્ક્રીન %d કે જે ડિસ્પ્લે \"%s\" પર છે તે વિન્ડો વ્યવસ્થાપકની પસંદગીને મેળવી શકાતી નથી\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "સ્ક્રીન %d કે જે ડિસ્પ્લે \"%s\" પર છે ત્યાં પહેલેથીજ વિન્ડો વ્યવસ્થાપક છે\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "સ્ક્રીન %d કે જે ડિસ્પ્લે \"%s\" પર છે તેને દૂર કરી શકાતી નથી\n"
@ -251,10 +252,10 @@ msgid "Failed to parse saved session file: %s\n"
msgstr "સંગ્રહિત સત્રની ફાઈલ ને પદચ્છેદ કરવામાં ભૂલ: %s\n"
#: ../src/core/session.c:1185
#, fuzzy, c-format
#, c-format
#| msgid "<metacity_session> attribute seen but we already have the session ID"
msgid "<mutter_session> attribute seen but we already have the session ID"
msgstr "<metacity_session> લક્ષણ દેખાય છે પરંતુ આપણી પાસે પહેલેથી જ સત્ર ID છે"
msgstr "<mutter_session> લક્ષણ દેખાય છે પરંતુ આપણી પાસે પહેલેથી જ સત્ર ID છે"
#: ../src/core/session.c:1198 ../src/core/session.c:1273
#: ../src/core/session.c:1305 ../src/core/session.c:1377
@ -274,7 +275,6 @@ msgid "Unknown element %s"
msgstr "અજાણી વસ્તુ %s"
#: ../src/core/session.c:1809
#, fuzzy
#| msgid ""
#| "These windows do not support \"save current setup\" and will have to be "
#| "restarted manually next time you log in."
@ -282,48 +282,48 @@ msgid ""
"These windows do not support &quot;save current setup&quot; and will have to "
"be restarted manually next time you log in."
msgstr ""
"આ બધી વિન્ડો \"વર્તમાન સુયોજનનો સંગ્રહ કરો\" ને આધાર આપતી નથી અને બીજી વખત તમે પ્રવેશ "
"આ બધી વિન્ડો &quot;વર્તમાન સુયોજનનો સંગ્રહ કરો&quot; ને આધાર આપતી નથી અને બીજી વખત તમે પ્રવેશ "
"કરો ત્યારે જાતે જ ફરી શરુ કરવું પડશે."
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "ભૂલ શોધવા માટેનું નોંધપત્ર ખોલવામાં નિષ્ફળ: %s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "fdopen() નોંધપત્ર ફાઈલ %s ખોલવામાં નિષ્ફળ: %s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "પ્રવેશ ફાઈલ %s ખૂલેલી છે\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#, fuzzy, c-format
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
#| msgid "Metacity was compiled without support for verbose mode\n"
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "મેટાસીટીને વર્ણનિય પદ્ધતિના આધાર વગર કમ્પાકરાયુ હતુ\n"
msgstr "વર્બોસ સ્થિતિ માટે આધાર વગર Mutter કમ્પાથયેલ હતુ\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "વિન્ડો વ્યવસ્થાપક: "
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "વિન્ડો વ્યવસ્થાપકમાં ભૂલ: "
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "વિન્ડો વ્યવસ્થાપકની ચેતવણી: "
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "વિન્ડો વ્યવસ્થાપકની ભૂલ: "
#. first time through
#: ../src/core/window.c:7269
#: ../src/core/window.c:7234
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -339,35 +339,35 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7932
#: ../src/core/window.c:7899
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
"d x %d and max size %d x %d; this doesn't make much sense.\n"
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
msgstr ""
"વિન્ડો %s એ MWM સંકેત ગોઠવ્યો કે જે તેનું માપ બદલી શકાતુ નથી એમ સૂચવે છે, પરંતુ ન્યૂનત્તમ માપ %"
"d x %d અને મહત્તમ માપ %d x %d ગોઠવાયેલુ છે; તેનો કોઈ ખાસ અર્થ નીકળતો નથી.\n"
"વિન્ડો %s એ MWM સંકેત ગોઠવ્યો કે જે તેનું માપ બદલી શકાતુ નથી એમ સૂચવે છે, પરંતુ ન્યૂનત્તમ માપ "
"%d x %d અને મહત્તમ માપ %d x %d ગોઠવાયેલુ છે; તેનો કોઈ ખાસ અર્થ નીકળતો નથી.\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:310
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "કાર્યક્રમ એ ખોટું _NET_WM_PID %lu સુયોજિત કર્યું છે\n"
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:429
#, c-format
msgid "%s (on %s)"
msgstr "%s (%s પર)"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1484
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "અયોગ્ય WM_TRANSIENT_FOR વિન્ડો 0x%lx એ %s માટે સ્પષ્ટ થયેલ છે.\n"
#: ../src/core/window-props.c:1492
#, fuzzy, c-format
#: ../src/core/window-props.c:1495
#, c-format
#| msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "અયોગ્ય WM_TRANSIENT_FOR વિન્ડો 0x%lx એ %s માટે સ્પષ્ટ થયેલ છે.\n"
msgstr "WM_TRANSIENT_FOR વિન્ડો 0x%lx એ %s માટે લુપ બનાવશે.\n"
#: ../src/core/xprops.c:155
#, c-format
@ -399,10 +399,9 @@ msgid "Mutter"
msgstr "Mutter"
#: ../src/org.gnome.mutter.gschema.xml.in.h:1
#, fuzzy
#| msgid "Modifier to use for modified window click actions"
msgid "Modifier to use for extended window management operations"
msgstr "બદલેલ વિન્ડોની ક્લિક ક્રિયાઓ માટે વપરવાનું બદલનાર"
msgstr "વિસ્તરેલ વિન્ડો સંચાલન ક્રિયાઓ માટે વપરાતુ સંશોધક"
#: ../src/org.gnome.mutter.gschema.xml.in.h:2
msgid ""
@ -411,6 +410,9 @@ msgid ""
"\"Windows key\" on PC hardware. It's expected that this binding either the "
"default or set to the empty string."
msgstr ""
"આ કી \"overlay\" ને શરૂ કરશે, કે જે વિન્ડો ઝાંખી અને કાર્યક્રમ શરૂઆત સિસ્ટમનું સંયોજન છે. "
"મૂળભૂત PC હાર્ડવેર પર \"Windows key\" ને લગતુ છે. તેને ઇચ્છા રાખેલ થે કે આ ક્યાંતો મૂળભૂત છે "
"અથવા ખાલી શબ્દમાળામાં સુયોજિત છે."
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs"
@ -422,75 +424,77 @@ msgid ""
"attached to the titlebar of the parent window and are moved together with "
"the parent window."
msgstr ""
"જ્યારે true હોય, સ્વતંત્ર શીર્ષકપટ્ટીને લીધા કરતા, મોડલ સંવાદ મુખ્ય વિન્ડોની શીર્ષકપટ્ટી સાથે "
"જોડાયેલ છે તેવુ દેખાય છે અને મુખ્ય વિન્ડો સાથે એકસાથે ખસેડેલ છે."
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid "Live Hidden Windows"
msgstr "છુપાયેલ વિન્ડોને જીવંત કરો"
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "જ્યારે સ્ક્રીન બાજુ પર વિન્ડોને પડતી મૂકી રહ્યા હોય ત્યારે ટાઇલીંગ સક્રિય કરો"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
"area. Dropping windows on the top screen edge maximizes them completely."
msgstr ""
"જો સક્રિય હોય તો, ઊભી સ્ક્રીન બાજુ પર પડતી વિન્ડો તેઓને ઊભી રીતે મહત્તમ કરે છે અને ઉપલબ્ધ "
"વિસ્તારમાં આડી રીતે આવરવા માટે આડી રીતે તેઓનું માપ બદલે છે. ટોચ સ્ક્રીન પર પડતી બાજુ પર પડતી "
"વિન્ડોને તેઓને સંપૂર્ણપણે મહત્તમ કરે છે."
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "કામ કરવાની જગ્યા ગતિશીલ રીતે સંચાલિત થયેલ છે"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr ""
"શું કામકરવાની જગ્યા ગતિશીલ રીતે સંચાલિત થયેલ છે તે નક્કી કરે છે અથવા શું ત્યા કામ કરવાની "
"જગ્યાની સ્થિર સંખ્યા છે (org."
"gnome.desktop.wm.preferences માં કામ કરવાની જગ્યા દ્દારા નક્કી થયેલ છે)."
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "ફક્ત પ્રાથમિક પર કામ કરવાની જગ્યા"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
msgstr ""
"શું કામ કરવાની જગ્યાને બધા મોનિટર પર વિન્ડો માટે અદલાબદલી થવી જોઇએ અથવા પ્રાથમિક મોનિટર પર "
"ફક્ત વિન્ડો માટે."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr "ટૅબ પોપઅપ નથી"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr ""
"શું પોપઅપ અને પ્રકાશિત ફ્રેમનો વપરાશ વિન્ડો સાયકલીંગ માટે નિષ્ક્રિય થવુ જોઇએ તે નક્કી કરે છે."
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Draggable border width"
msgstr ""
msgstr "ખેંચી શકાય તેવી સીમા પહોળાઇ"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value."
msgstr ""
"કુલ ખેંચી શકાય તેવી સીમાઓની સંખ્યા. જો થીમની દૃશ્યમાન સીમાઓ પૂરતી નથી, અદૃશ્ય સીમાઓ આ કિંમતને "
"મેળવવા માટે ઉમેરાશે."
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
#| msgid "Remove Window From Top"
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Select window from tab popup"
msgstr "ટૅબ પોપઅપમાંથી વિન્ડોને પસંદ કરો"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
msgid "Cancel tab popup"
msgstr "ટૅબ પોપઅપને રદ કરો"
@ -698,49 +702,49 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "ઉપર"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "નીચે"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "ડાબે"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "જમણે"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "ચોકઠાની ભૂમિતિ માપ \"%s\" સ્પષ્ટ કરતી નથી"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr "ચોકઠાની ભૂમિતિ કિનારી \"%s\" માટે માપ \"%s\" સ્પષ્ટ કરતી નથી"
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "બટન માટે ધારેલુ પ્રમાણ %g એ વ્યવસ્થિત નથી"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "ચોકઠાની ભૂમિતિ બટનોનું માપ સ્પષ્ટ કરતી નથી"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "ઢાળમાં ઓછામાં ઓછા બે રંગ હોવા જોઈએ"
#: ../src/ui/theme.c:1219
#, fuzzy, c-format
#: ../src/ui/theme.c:1201
#, c-format
#| msgid ""
#| "GTK color specification must have a close bracket after the state, e.g. "
#| "gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
@ -748,27 +752,28 @@ msgid ""
"GTK custom color specification must have color name and fallback in "
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
msgstr ""
"GTK રંગના સ્પષ્ટીકરણમાં સ્થિતિ પછી કૌંસ બંધ થવો જોઈએ દા.ત. gtk:fg[NORMAL] જ્યાં "
"NORMAL સ્થિતિ છે; \"%s\" ન પદચ્છેદ કરી શકાય નહિં"
"GTK વૈવિધ્ય રંગના સ્પષ્ટીકરણનું રંગ નામ હોવુ જ જોઇએ અને સ્થિતિ પછી કૌંસ બંધ થવો જોઈએ દા.ત. "
"gtk:custom(foo,bar); \"%s\" નું પદચ્છેદ કરી શકાય નહિં"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
"_ are valid"
msgstr ""
msgstr "gtk:custom નાં color_name પરિમાણમાં અમાન્ય અક્ષર '%c', ફક્ત A-Za-z0-9-_ માન્ય છે"
#: ../src/ui/theme.c:1249
#, fuzzy, c-format
#: ../src/ui/theme.c:1231
#, c-format
#| msgid ""
#| "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the "
#| "format"
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
"fit the format"
msgstr "છાયાનું માળખું \"shade/base_color/factor\" છે, \"%s\" માળખામાં બેસતુ નથી"
msgstr ""
"Gtk:custom બંધારણ એ \"gtk:custom(color_name,fallback)\" છે, \"%s\" એ બંધારણમાં બંધબેસતા નથી"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -777,7 +782,7 @@ msgstr ""
"GTK રંગના સ્પષ્ટીકરણમાં કૌંસમાં સ્થિતિ હોવી જોઈએ દા.ત. gtk:fg[NORMAL] જ્યાં NORMAL "
"સ્થિતિ છે; \"%s\" નો પદચ્છેદ કરી શકાય નહિં"
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -786,145 +791,145 @@ msgstr ""
"GTK રંગના સ્પષ્ટીકરણમાં સ્થિતિ પછી કૌંસ બંધ થવો જોઈએ દા.ત. gtk:fg[NORMAL] જ્યાં "
"NORMAL સ્થિતિ છે; \"%s\" નો પદચ્છેદ કરી શકાય નહિં"
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "રંગના સ્પષ્ટીકરણમાં સ્થિતિ \"%s\" સમજી શકાઈ નહિં"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "રંગના સ્પષ્ટીકરણમાં રંગની વસ્તુ \"%s\" સમજી શકાયો નહિં"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
"format"
msgstr "\"blend/bg_color/fg_color/alpha\" એ મિશ્રિત માળખું છે, \"%s\" માળખામાં બેસતું નથી "
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "મિશ્રિત રંગમાં આલ્ફાની કિંમત \"%s\" નું પદચ્છેદ કરી શકાતુ નથી"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "મિશ્રિત રંગમાં આલ્ફાની કિંમત \"%s\" . અને ૧. ની વચ્ચે નથી"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
msgstr "છાયાનું માળખું \"shade/base_color/factor\" છે, \"%s\" માળખામાં બેસતુ નથી"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "છાયાંકિત રંગમાં છાયાનો અવયવ \"%s\" નું પદચ્છેદ કરી શકાતુ નથી"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "છાયાનો અવયવ \"%s\" છાયાના રંગમાં ઋણ છે"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "રંગ \"%s\" નુ પદચ્છેદ કરી શકાતુ નથી"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "યામાક્ષ સમીકરણ અક્ષર '%s' ધરાવે છે જે સ્વીકાર્ય નથી"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
msgstr "યામાક્ષ સમીકરણ અપૂર્ણાંક સંખ્યા '%s' ધરાવે છે જેનું પદચ્છેદ કરી શકાતું નથી"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "યામાક્ષ સમીકરણ પૂર્ણાંક સંખ્યા '%s' ધરાવે છે જેનું પદચ્છેદ કરી શકાતું નથી"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
"\"%s\""
msgstr "યામાક્ષ સમીકરણમાં આ લખાણની શરુઆતમાં અજાણ્યા કારકો ધરાવે છે: \"%s\""
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "યામાક્ષ સમીકરણ ખાલી છે અથવા સમજી શકાય એવું નથી"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "યામાક્ષ સમીકરણ શૂન્ય વડે ભાગાકારમાં પરિણમશે"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid "Coordinate expression tries to use mod operator on a floating-point number"
msgstr "યામાક્ષ સમીકરણ અપૂર્ણાંક સંખ્યાની ઉપર શેષ કારકનો ઉપયોગ કરવાનો પ્રયત્ન કરે છે"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid "Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr "યામાક્ષ સમીકરણ માટે \"%s\" કારક છે જેના માટે ઓપરન્ડ હોવા જોઈએ"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "યામાક્ષ સમીકરણમાં ઓપરન્ડ છે જ્યાં કારક હોવુ જોઈતું હતું"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "યામાક્ષ સમીકરણનો અંત ઓપરન્ડની જગ્યાએ કારકથી થાય છે"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
"operand in between"
msgstr "યામાક્ષ સમીકરણમાં \"%c\" કારક પછી તરત જ \"%c\" કારક છે જેમની વચ્ચે કોઈ ઓપરન્ડ નથી"
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "યામાક્ષ સમીકરણમાં અજાણ્યો ચલ કે અચલ \"%s\" છે"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "યામાક્ષ સમીકરણ પદચ્છેદકે તેનું બફર ઓવરફ્લો કરી નાંખ્યું."
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "યામાક્ષ સમીકરણ પાસે ખુલ્લા કૌંસની વગર જ બંધ કૌંસ છે"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "યામાક્ષ સમીકરણ પાસે બંધ કૌંસની વગર જ ખુલ્લો કૌંસ હતો"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "યામાક્ષ સમીકરણમાં કોઈ કારક કે ઓપરન્ડ હોય તેવુ લાગતુ નથી"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "થીમે સમાવેલ સમીકરણને કારણે ભૂલમાં પરિણમ્યું: %s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -933,23 +938,23 @@ msgstr ""
"આ માળખાની શૈલી માટે <button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/"
"> સ્પષ્ટ કરેલી હોવી જરુરી છે"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr "<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/> ખોવાય છે"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "થીમ \"%s\" લાવવામાં નિષ્ફળ: %s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "કોઈ <%s> ગોઠવણ થીમ \"%s\" માટે નથી"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -958,12 +963,12 @@ msgstr ""
"થીમ \"%s\" માં વિન્ડોના પ્રકાર \"%s\" માટે કોઈ માળખાની શૈલી ગોઠવાયેલી નથી, <window "
"type=\"%s\" style_set=\"whatever\"/> વસ્તુ ઊમેરો"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr "વપરાશકર્તા દ્વારા વ્યાખ્યાયિત અચલો મોટા અક્ષરથી જ શરુ થવા જોઈએ; \"%s\" નહિં"
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "અચલ \"%s\" પહેલેથી જ વ્યાખ્યાયિત છે"
@ -1272,12 +1277,12 @@ msgstr "ખરાબ આવૃત્તિ સ્પષ્ટીકરણ '%s'"
msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml"
msgstr ""
msgstr "\"version\" ગુણધર્મ metacity-theme-1.xml અથવા metacity-theme-2.xml માં વાપરી શકાતુ નથી"
#: ../src/ui/theme-parser.c:3530
#, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d"
msgstr ""
msgstr "થીમને આવૃત્તિ %s ની જરૂર છે પરંતુ તાજેતરની આધારભૂત થીમ આવૃત્તિ %d છે.%d"
#: ../src/ui/theme-parser.c:3562
#, c-format
@ -1327,11 +1332,10 @@ msgstr "કોઈ લખાણ વસ્તુ <%s> ની અંદર સ્
#: ../src/ui/theme-parser.c:4050 ../src/ui/theme-parser.c:4062
#: ../src/ui/theme-parser.c:4074
#, c-format
#| msgid "<name> specified twice for this theme"
msgid "<%s> specified twice for this theme"
msgstr "આ થીમ માટે <%s> બે વખત સ્પષ્ટ કરેલ છે"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "થીમ %s માટે માન્ય ફાઈલ શોધવામાં નિષ્ફળ\n"
@ -1533,6 +1537,30 @@ msgstr "y કિંમત %d હતી, %d ની ઈચ્છા હતી"
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%d યામાક્ષ સમીકરણ %g સેકન્ડોમાં પદચ્છેદ થયુ (સરેરાશ %g સેકન્ડો)\n"
#: ../src/50-mutter-launchers.xml.in.h:1
#, fuzzy
msgid "Launchers"
msgstr ""
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr ""
#: ../src/50-mutter-screenshot.xml.in.h:1
#, fuzzy
#| msgid "Take a screenshot"
msgid "Screenshots"
msgstr "સ્ક્રીનશોટ"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "System"
msgstr "સિસ્ટમ"
#~ msgid "Live Hidden Windows"
#~ msgstr "છુપાયેલ વિન્ડોને જીવંત કરો"
#~ msgid ""
#~ "There was an error running <tt>%s</tt>:\n"
#~ "\n"
@ -1812,9 +1840,6 @@ msgstr "%d યામાક્ષ સમીકરણ %g સેકન્ડોમ
#~ msgid "Move window to center of screen"
#~ msgstr "વિન્ડોને સ્ક્રીનના કેન્દ્રમાં ખસેડો"
#~ msgid "Clutter Plugins"
#~ msgstr "ક્લટર પ્લગઇન"
#~ msgid "Close Window"
#~ msgstr "વિન્ડો બંધ કરો"

706
po/he.po

File diff suppressed because it is too large Load Diff

2942
po/hi.po

File diff suppressed because it is too large Load Diff

727
po/hu.po

File diff suppressed because it is too large Load Diff

1420
po/id.po

File diff suppressed because it is too large Load Diff

1721
po/it.po

File diff suppressed because it is too large Load Diff

984
po/ja.po

File diff suppressed because it is too large Load Diff

574
po/kn.po

File diff suppressed because it is too large Load Diff

486
po/ko.po
View File

@ -18,14 +18,14 @@ msgstr ""
"Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-03-15 21:29+0000\n"
"PO-Revision-Date: 2012-03-27 01:25+0900\n"
"POT-Creation-Date: 2012-10-11 14:32+0000\n"
"PO-Revision-Date: 2012-10-13 18:52+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../src/50-mutter-windows.xml.in.h:1
@ -51,7 +51,7 @@ msgstr ""
"다른 창 구성 관리 프로그램이 이미 디스플레이 \"%2$s\" 화면 %1$i번에서 실행 중"
"입니다."
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr "삑소리 이벤트"
@ -60,40 +60,40 @@ msgstr "삑소리 이벤트"
msgid "Unknown window information request: %d"
msgstr "알 수 없는 창 정보 요청: %d"
#: ../src/core/delete.c:111
#: ../src/core/delete.c:113
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> 창이 반응하지 않습니다."
msgid "%s is not responding."
msgstr "%s 창이 반응하지 않습니다."
#: ../src/core/delete.c:114
#: ../src/core/delete.c:117
msgid "Application is not responding."
msgstr "프로그램이 반응하지 않습니다."
#: ../src/core/delete.c:119
#: ../src/core/delete.c:122
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr "좀 더 기다리거나 해당 프로그램을 강제로 끝낼 수 있습니다."
#: ../src/core/delete.c:126
#: ../src/core/delete.c:129
msgid "_Wait"
msgstr "기다리기(_W)"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:129
msgid "_Force Quit"
msgstr "강제로 끝내기(_F)"
#: ../src/core/display.c:387
#: ../src/core/display.c:396
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "콤포짓에 필요한 %s 확장 기능이 없습니다"
#: ../src/core/display.c:453
#: ../src/core/display.c:492
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "X 윈도 시스템 디스플레이 '%s'을(를) 여는데 실패하였습니다\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:853
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -102,36 +102,36 @@ msgstr ""
"다른 프로그램에서 이미 단축키로 변경 키 %2$x와(과) 키 %1$s을(를) 사용하고 있"
"습니다\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "세션 관리자와 연결 하지 않습니다"
#: ../src/core/main.c:212
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "실행 중인 창 관리자를 바꿉니다"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "세션 관리 ID를 지정합니다"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "사용할 X 디스플레이"
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "저장 파일에서 세션을 초기화 합니다"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "동기 X 호출을 합니다"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "테마 디렉터리를 읽는 데 실패했습니다: %s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -159,10 +159,10 @@ msgid "Print version"
msgstr "버전을 출력합니다"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr "컴포짓 플러그인의 목록, 쉼표로 구분"
msgid "Mutter plugin to use"
msgstr "사용할 머터 플러그인"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1079
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -170,12 +170,12 @@ msgstr ""
"응용 프로그램에 대한 임시 방편을 막았습니다. 몇몇 응용프로그램들이 제대로 동"
"작하지 않을것입니다.\n"
#: ../src/core/prefs.c:1152
#: ../src/core/prefs.c:1154
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "GSettings 키 %2$s에서 글꼴 지정 \"%1$s\"을(를) 분석할 수 없습니다\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1220
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -184,7 +184,7 @@ msgstr ""
"설정 데이터베이스에서 찾은 \"%s\"이(가) 마우스 단추 변경 키의 올바른 값이 아"
"닙니다\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1747
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -193,17 +193,17 @@ msgstr ""
"설정 데이터베이스에서 찾은 \"%s\"이(가) 단축키 \"%s\"에 대한 올바른 값이 아닙"
"니다\n"
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1844
#, c-format
msgid "Workspace %d"
msgstr "작업 공간 %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "디스플레이 '%2$s'의 화면 %1$d은(는) 잘못되었습니다\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -212,19 +212,19 @@ msgstr ""
"디스플레이 \"%2$s\"의 화면 %1$d에 이미 창 관리자가 실행되고 있습니다. 현재 "
"창 관리자를 무시하는 --replace 옵션을 써보십시오.\n"
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "디스플레이 \"%2$s\"의 화면 %1$d에 창 관리 선택을 가질 수 없습니다\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr ""
"디스플레이 \"%2$s\"의 화면 %1$d은(는) 이미 창 관리자가 실행되고 있습니다\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "디스플레이 \"%2$s\"의 화면 %1$d을(를) 떼어 놓을수 없습니다\n"
@ -284,44 +284,44 @@ msgstr ""
"이 창은 &quot;현재 설정 저장&quot;을 지원하지 않기 때문에 다음 번에 로그인 "
"할 때 수동으로 다시 시작해야 합니다."
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "디버그 로그 열기 실패: %s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "로그 파일 %s을(를) fdopen()하기 실패: %s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "로그 파일 %s을(를) 엽니다\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "머터가 자세한 모드 지원 없이 컴파일 되었습니다\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "창 관리자: "
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "창 관리자의 벌레: "
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "창 관리자 주의: "
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "장 관리자 오류: "
#. first time through
#: ../src/core/window.c:7269
#: ../src/core/window.c:7237
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -337,32 +337,32 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7932
#: ../src/core/window.c:7902
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
"d x %d and max size %d x %d; this doesn't make much sense.\n"
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
msgstr ""
"%s 창에서 크기 변경이 불가능하다는 MWM 힌트를 설정했지만, 최소 크기 %d x %d "
"및 최대 크기 %d x %d(으)로 설정했습니다. 앞뒤가 맞지 않습니다.\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:274
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "응용 프로그램이 가짜 _NET_WM_PID %lu을(를) 설정하였습니다\n"
# <창제목> (on <기계>)
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:393
#, c-format
msgid "%s (on %s)"
msgstr "%s (%s에서)"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1448
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "%2$s에 대해 WM_TRANSIENT_FOR 0x%1$lx 창이 잘못되었습니다.\n"
#: ../src/core/window-props.c:1492
#: ../src/core/window-props.c:1459
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "%2$s에 대해 WM_TRANSIENT_FOR 0x%1$lx 창은 무한 반복입니다.\n"
@ -429,22 +429,10 @@ msgstr ""
"표시줄에 붙어서 상위 창과 함께 움직입니다."
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid "Live Hidden Windows"
msgstr "실행 중인 숨긴 창"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
"숨긴 창을 (예를 들어 최소화한 창과 현재가 아닌 다른 작업 공간의 창) 실행 상태"
"로 두어야 할지 지정합니다."
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "창을 화면 가장자리에 끌어 놓을 때 가장자리에 맞춰 격자로 만들기"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
@ -454,22 +442,25 @@ msgstr ""
"로 방향으로 화면을 절반을 차지하도록 크기를 바꿉니다. 화면 위 가장자리에 창"
"을 놓으면 전체 화면으로 만듭니다."
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "작업 공간을 동적으로 관리"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr "작업 공간을 동적으로 관리할지 아니면 작업 공간이 고정된 개수인지 지정합니다. (고정된 개수는 org.gnome.desktop.wm.preferences의 num-workspaces 키로 지정합니다.)"
msgstr ""
"작업 공간을 동적으로 관리할지 아니면 작업 공간이 고정된 개수인지 지정합니다. "
"(고정된 개수는 org.gnome.desktop.wm.preferences의 num-workspaces 키로 지정합"
"니다.)"
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "주 모니터에서만 작업 공간"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
@ -477,17 +468,28 @@ msgstr ""
"작업 공간을 전환할 때 모든 모니터의 창에 대해 할지 주 모니터의 창에서만 할지 "
"결정합니다."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr "탭 팝업 없음"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr ""
"팝업 및 강조 프레임을 창 전환 목록에 사용하지 않게 만들지 여부를 결정합니다."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Delay focus changes until the pointer stops moving"
msgstr "포인터가 움직임을 멈출 때까지 포커스 전환 미루기"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"the focus will not be changed immediately when entering a window, but only "
"after the pointer stops moving."
msgstr "참이고 포커스 모드가 \"sloppy\"나 \"mouse\"인 경우, 창 안에 포인터를 옮겼을 때 즉시 포커스를 전환하지 않고, 포인터가 움직임을 멈추었을 때 전환합니다."
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr "마우스로 끌 수 있는 가장자리의 너비"
@ -712,50 +714,50 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "맨 위"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "맨 아래"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "왼쪽"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "오른쪽"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "프레임 위치가 \"%s\"차원으로 지정되지 않았습니다"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr ""
"프레임 위치가 가장자리 \"%2$s\" 가장자리의 \"%1$s\"차원으로 지정되지 않았습니"
"다."
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "단추의 가로세로 비 %g이(가) 적당하지 않습니다"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "프레임 위치가 단추의 크기로 지정되지 않았습니다"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "서서히 변하는 색으로 지정하려면 최소 2색이 필요합니다"
#: ../src/ui/theme.c:1219
#: ../src/ui/theme.c:1201
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -764,7 +766,7 @@ msgstr ""
"GTK 사용자 지정 색상 지정은 색 이름과 대체할 색을 괄호 안에 써야 합니다. 예"
"를 들어: gtk:custom(foo,bar). \"%s\"을(를) 분석할 수 없습니다"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
@ -773,7 +775,7 @@ msgstr ""
"gtk:custom의 color_name 파라미터 안에 잘못된 문자 '%c'. A-Za-z0-9-_ 문자만 허"
"용합니다."
#: ../src/ui/theme.c:1249
#: ../src/ui/theme.c:1231
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -782,7 +784,7 @@ msgstr ""
"gtk:custom 형식은 \"gtk:custom(색이름,대체색)\"입니다, \"%s\"(은)는 형식에 맞"
"지 않습니다"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -791,7 +793,7 @@ msgstr ""
"GTK 색상 지정은 중괄호안에 있어야 합니다. 예를 들어: gtk:fg[NORMAL], 여기서 "
"NORMAL이 값입니다. \"%s\"을(를) 분석할 수 없습니다."
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -800,17 +802,17 @@ msgstr ""
"GTK 색상 지정은 값 뒤에 중괄호로 닫혀 있어야 합니다. 예를 들어: gtk:fg"
"[NORMAL], 여기서 NORMAL은 값입니다. \"%s\"을(를) 분석할 수 없습니다."
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "색상 지정의 \"%s\" 값을 이해할 수 없습니다"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "색상 지정의 색상 구성요소 \"%s\"을(를) 이해할 수 없습니다"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@ -819,17 +821,17 @@ msgstr ""
"섞기 형식은 \"blend/bg_color/fg_color/alpha\"입니다, \"%s\"은(는) 형식에 맞"
"지 않습니다"
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "색상 섞기에서 알파 값 \"%s\"을(를) 분석할 수 없습니다"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "색상 섞기에서 알파 값 \"%s\"은(는) 0.0 과 1.0사이의 값이 아닙니다"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
@ -837,39 +839,39 @@ msgstr ""
"그림자 형식은 \"shade/base_color/format\"입니다, \"%s\"(은)는 형식에 맞지 않"
"습니다"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "그림자색에서 그림자 인자 \"%s\"(을)를 해석할 수 없습니다"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "그림자색에서 그림자 인자 \"%s\"(은)는 음수입니다"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "색상 \"%s\"을(를) 해석할 수 없습니다"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "좌표식에 허용되지 않는 문자 '%s'(이)가 포함되어 있습니다"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
msgstr "좌표식에 분석할 수 없는 부동소수점 숫자 '%s'이(가) 포함되어 있습니다"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "좌표식에 분석할 수 없는 정수 '%s'이(가) 포함되어 있습니다"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@ -877,39 +879,39 @@ msgid ""
msgstr ""
"좌표식에 이 글자 시작부분에 알 수 없는 연산자가 포함되어 있습니다: \"%s\""
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "좌표식이 비어있거나 이해할 수 없습니다"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "좌표식의 결과 값이 0로 나누었습니다"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr "좌표식에서 부동소수점 수에 나머지 연산을 하려 합니다"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr "좌표식에서 피연산자가 들어갈 곳에 연산자 \"%s\"이(가) 있습니다"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "좌표식에서 연산자가 들어갈 곳에 피연산자가 있습니다"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "좌표식에서 피연산자 대신에 연산자로 끝나있습니다"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@ -918,37 +920,37 @@ msgstr ""
"좌표식에서 피연산자가 없는 연산자 \"%2$c\"다음에 연산자 \"%1$c\"이(가) 있습니"
"다"
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "좌표식에 알 수 없는 변수나 상수 \"%s\"이(가) 있습니다"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "좌표 계산 파서의 버퍼가 크기를 넘어갔습니다."
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "좌표식에 닫는 괄호는 있지만 여는 괄호가 없습니다"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "좌표식에 여는 괄호는 있지만 닫는 괄호가 없습니다"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "좌표식에 어떠한 연산자나 피연산자가 없습니다"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "테마가 오류 값을 내는 표현식이 들어 있습니다: %s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -957,7 +959,7 @@ msgstr ""
"이 프레임 스타일에는 <button function=\"%s\" style=\"%s\" draw_ops=\"whatever"
"\"/>가 지정되어야 합니다"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
@ -965,18 +967,18 @@ msgstr ""
"<frame state=\"%s\" resize=\"%s\" focus=\"%s\" state=\"whatever\"/> 가 없습니"
"다"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "테마 \"%s\"을(를) 읽을 수 없습니다: %s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "테마 \"%2$s\"의 <%1$s>(이)가 설정되지 않았습니다"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -985,14 +987,14 @@ msgstr ""
"테마 \"%2$s\"의 창 형식 \"%1$s\"에 대한 프레임 스타일이 없습니다,<window "
"type=\"%3$s\" style_set=\"whatever\"/> 엘리먼트를 추가하십시오"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr ""
"사용자 정의 상수는 대문자로 시작되어야 합니다. \"%s\"은(는) 그렇지 않습니다."
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "상수 \"%s\"은(는) 이미 지정되어 있습니다"
@ -1215,7 +1217,7 @@ msgstr "단추에 알 수 없는 기능 \"%s\""
#: ../src/ui/theme-parser.c:2982
#, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)"
msgstr "이 버전에는 \"%s\" 단추 함수가 없습니다 (버전은 %d, 버전 %d 필요)"
msgstr "이 버전에는 \"%s\" 단추 함수가 없습니다(버전은 %d, 버전 %d 필요)"
#: ../src/ui/theme-parser.c:2994
#, c-format
@ -1278,7 +1280,7 @@ msgid ""
"Can't have a two draw_ops for a <piece> element (theme specified a draw_ops "
"attribute and also a <draw_ops> element, or specified two elements)"
msgstr ""
"<piece> 엘리먼트에 두개의 draw_ops를 가질수 없습니다 (테마에 draw_ops 속성과 "
"<piece> 엘리먼트에 두개의 draw_ops를 가질수 없습니다(테마에 draw_ops 속성과 "
"<draw_ops> 엘리먼트를 지정했거나 두 엘리먼트를 지정했습니다"
#: ../src/ui/theme-parser.c:3332
@ -1286,16 +1288,16 @@ msgid ""
"Can't have a two draw_ops for a <button> element (theme specified a draw_ops "
"attribute and also a <draw_ops> element, or specified two elements)"
msgstr ""
"<button> 엘리먼트에 두개의 draw_ops를 가질수 없습니다 (테마에 draw_ops 속성"
"<draw_ops> 엘리먼트를 지정했거나 두 엘리먼트를 지정했습니다"
"<button> 엘리먼트에 두개의 draw_ops를 가질수 없습니다(테마에 draw_ops 속성"
"<draw_ops> 엘리먼트를 지정했거나 두 엘리먼트를 지정했습니다"
#: ../src/ui/theme-parser.c:3370
msgid ""
"Can't have a two draw_ops for a <menu_icon> element (theme specified a "
"draw_ops attribute and also a <draw_ops> element, or specified two elements)"
msgstr ""
"<menu_icon> 엘리먼트에 두개의 draw_ops를 가질수 없습니다 (테마에 draw_ops 속"
"과 <draw_ops> 엘리먼트를 지정했거나 두 엘리먼트를 지정했습니다"
"<menu_icon> 엘리먼트에 두개의 draw_ops를 가질수 없습니다(테마에 draw_ops 속"
"과 <draw_ops> 엘리먼트를 지정했거나 두 엘리먼트를 지정했습니다"
#: ../src/ui/theme-parser.c:3434
#, c-format
@ -1372,7 +1374,7 @@ msgstr "<%s> 엘리먼트 안에 텍스트가 허용되지 않습니다"
msgid "<%s> specified twice for this theme"
msgstr "이 테마에서 <%s> 태그가 두 번 지정되었습니다"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "%s 테마의 올바른 파일을 찾는 데 실패했습니다\n"
@ -1534,9 +1536,9 @@ msgid ""
"seconds wall clock time including X server resources (%g milliseconds per "
"frame)\n"
msgstr ""
"%d개 프레임을 그리는 데 클라이언트 입장에서 %g초가 걸렸습니다 (한 프레임에 %"
"g ms). 그리고 X 서버 리소스까지 포함해 실제 시간으로 %g 초가 걸렸습니다 (한 "
"프레임에 %g ms).\n"
"%d개 프레임을 그리는 데 클라이언트 입장에서 %g초가 걸렸습니다(한 프레임에 %g "
"ms). 그리고 X 서버 리소스까지 포함해 실제 시간으로 %g 초가 걸렸습니다(한 프레"
"임에 %g ms).\n"
#: ../src/ui/theme-viewer.c:1266
msgid "position expression test returned TRUE but set error"
@ -1573,37 +1575,219 @@ msgstr "세로값이 %d입니다. 와야 하는 값은 %d입니다"
#: ../src/ui/theme-viewer.c:1352
#, c-format
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%d개의 좌표 표현식을 %g초에 파싱했습니다 (평균 %g초)\n"
msgstr "%d개의 좌표 표현식을 %g초에 파싱했습니다(평균 %g초)\n"
#~ msgid "Close Window"
#~ msgstr "창 닫기"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr "네비게이션"
#~ msgid "Window Menu"
#~ msgstr "창 메뉴"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move window to workspace 1"
msgstr "창을 1번째 작업 공간으로 옮기기"
#~ msgid "Minimize Window"
#~ msgstr "창 최소화"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move window to workspace 2"
msgstr "창을 2번째 작업 공간으로 옮기기"
#~ msgid "Maximize Window"
#~ msgstr "창 최대화"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move window to workspace 3"
msgstr "창을 3번째 작업 공간으로 옮기기"
#~ msgid "Restore Window"
#~ msgstr "창 복귀"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move window to workspace 4"
msgstr "창을 4번째 작업 공간으로 옮기기"
#~ msgid "Roll Up Window"
#~ msgstr "창 말아올리기"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "창을 왼쪽의 작업 공간으로 옮기기"
#~ msgid "Unroll Window"
#~ msgstr "창 펼치기"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "창을 오른쪽의 작업 공간으로 옮기기"
#~ msgid "Keep Window On Top"
#~ msgstr "창을 맨 위에 두기"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace up"
msgstr "창을 위의 작업 공간으로 옮기기"
#~ msgid "Remove Window From Top"
#~ msgstr "창을 맨 위에서 빼기"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace down"
msgstr "창을 아래의 작업 공간으로 옮기기"
#~ msgid "Always On Visible Workspace"
#~ msgstr "항상 현재 작업 공간에 놓기"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Switch applications"
msgstr "프로그램 전환"
#~ msgid "Put Window On Only One Workspace"
#~ msgstr "창을 한 개 작업 공간에만 두기"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Switch windows of an application"
msgstr "한 개 프로그램의 창 사이에서 전환"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Switch system controls"
msgstr "시스템 컨트롤 전환"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Switch windows directly"
msgstr "창 바로 전환"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "한 개 프로그램의 창 사이에서 전환"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch system controls directly"
msgstr "시스템 컨트롤 바로 전환"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Hide all normal windows"
msgstr "모든 일반 창 숨기기"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch to workspace 1"
msgstr "1번째 작업 공간으로 이동"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 2"
msgstr "2번째 작업 공간으로 이동"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 3"
msgstr "3번째 작업 공간으로 이동"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 4"
msgstr "4번째 작업 공간으로 이동"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Move to workspace left"
msgstr "왼쪽 작업 공간으로 옮기기"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Move to workspace right"
msgstr "오른쪽 작업 공간으로 옮기기"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Move to workspace above"
msgstr "위쪽 작업 공간으로 옮기기"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Move to workspace below"
msgstr "아래쪽 작업 공간으로 옮기기"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "System"
msgstr "시스템"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "명령어 실행 프롬프트 표시"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "Show the activities overview"
msgstr "현재 활동 요약 표시"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Activate the window menu"
msgstr "창 메뉴 활성"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "전체 화면 모드 토글"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Toggle maximization state"
msgstr "창 최대화 토글"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window"
msgstr "창 최대화"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Restore window"
msgstr "창 복귀"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Toggle shaded state"
msgstr "창 숨기기 토글"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Close window"
msgstr "창 닫기"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Minimize window"
msgstr "창 최소화"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Move window"
msgstr "창을 옮기기"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "창 크기 조절"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "창을 모든 작업 공간에 둘지 아니면 한 작업 공간에 둘지 토글"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "다른 창에 덮여 있으면 창을 올리고, 덮여 있지 않으면 창 내리기"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Raise window above other windows"
msgstr "창을 다른창 위로 올리기"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Lower window below other windows"
msgstr "창을 다른창 아래로 내리기"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Maximize window vertically"
msgstr "창 세로로 최대화"
#: ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
msgid "Maximize window horizontally"
msgstr "창 가로로 최대화"

2725
po/lt.po

File diff suppressed because it is too large Load Diff

1173
po/lv.po

File diff suppressed because it is too large Load Diff

4470
po/ml.po

File diff suppressed because it is too large Load Diff

3179
po/mr.po

File diff suppressed because it is too large Load Diff

493
po/nb.po
View File

@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: mutter 3.3.x\n"
"Project-Id-Version: mutter 3.6.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-12 18:54+0100\n"
"PO-Revision-Date: 2012-03-12 18:54+0100\n"
"POT-Creation-Date: 2012-10-22 19:51+0200\n"
"PO-Revision-Date: 2012-10-22 19:52+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-no@lister.ping.uio.no>\n"
"Language: \n"
@ -36,7 +36,7 @@ msgid ""
"\"."
msgstr "En annen compositing manager kjører skjerm %i på display «%s»."
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr "Klokkehendelse"
@ -47,14 +47,14 @@ msgstr "Ukjent forespørsel om vindusinformasjon: %d"
#: ../src/core/delete.c:111
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> svarer ikke."
msgid "“%s” is not responding."
msgstr "«%s» svarer ikke."
#: ../src/core/delete.c:114
#: ../src/core/delete.c:113
msgid "Application is not responding."
msgstr "Programmet svarer ikke."
#: ../src/core/delete.c:119
#: ../src/core/delete.c:118
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@ -62,25 +62,25 @@ msgstr ""
"Du kan velge å vente en kort stund for å se om det fortsetter eller tvinge "
"programmet til å avslutte helt."
#: ../src/core/delete.c:126
#: ../src/core/delete.c:125
msgid "_Wait"
msgstr "_Vent"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:125
msgid "_Force Quit"
msgstr "_Tvungen nedstenging"
#: ../src/core/display.c:361
#: ../src/core/display.c:396
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Mangler utvidelsen %s som kreves for komposittfunksjon"
#: ../src/core/display.c:427
#: ../src/core/display.c:493
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Feil under åpning av X Window System skjerm «%s»\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:853
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -89,36 +89,36 @@ msgstr ""
"Et annet program bruker allerede nøkkelen %s med modifikatorer %x som "
"binding\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "Deaktiver tilkobling til sesjonshåndtereren"
#: ../src/core/main.c:212
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "Erstatt kjørende vindushåndterer"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "Oppgi sesjonshåndterings-ID"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "X-skjerm som skal brukes"
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "Initier sesjonen fra en lagret fil"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "Gjør X-kall synkrone"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Feil under søk i temakatalog: %s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -145,10 +145,10 @@ msgid "Print version"
msgstr "Skriv versjonsnummer"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr "Kommaseparert liste av tillegg for compositor"
msgid "Mutter plugin to use"
msgstr "Mutter-tillegg som skal brukes"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1079
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -156,12 +156,12 @@ msgstr ""
"Funksjonalitet for å gå rundt ødelagte programmer er deaktivert. Noen "
"programmer vil kanskje ikke oppføre seg korrekt.\n"
#: ../src/core/prefs.c:1152
#: ../src/core/prefs.c:1154
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "Kunne ikke tolke skriftbeskrivelsen «%s» fra GSettings-nøkkel %s\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1220
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -170,7 +170,7 @@ msgstr ""
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for endring av "
"musknapp\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1747
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -179,17 +179,17 @@ msgstr ""
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for "
"tastaturbinding «%s»\n"
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1844
#, c-format
msgid "Workspace %d"
msgstr "Arbeidsområde %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Skjerm %d på display «%s» er ugyldig\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -198,19 +198,19 @@ msgstr ""
"Skjerm %d på display «%s» har allerede en vindushåndterer; prøv å bruke "
"flagget --replace for å erstatte aktiv vindushåndterer.\n"
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr ""
"Kunne ikke hente utvalg fra vinduhåndterer på skjerm %d, display «%s»\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Skjerm %d på display «%s» har allerede en vinduhåndterer\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Kunne ikke slippe skjerm %d på display «%s»\n"
@ -270,44 +270,44 @@ msgstr ""
"Disse vinduene støtter ikke &quot;lagre aktiv konfigurasjon&quot;og vil "
"måtte startes på nytt manuelt neste gang du logger inn."
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "Feil under åpning av feilsøkingslogg: %s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "Feil under fdopen() av loggfil %s: %s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "Åpnet loggfil %s\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter er kompilert uten støtte for «verbose» modus\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "Vindushåndterer: "
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "Feil i vindushåndterer: "
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "Advarsel fra vindushåndterer: "
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "Feil i vindushåndterer: "
#. first time through
#: ../src/core/window.c:7224
#: ../src/core/window.c:7237
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -323,7 +323,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7887
#: ../src/core/window.c:7902
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -333,22 +333,22 @@ msgstr ""
"men setter minste størrelse %d x %d og maks størrelse %d x %d; dette virker "
"ikke fornuftig.\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:274
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "Programmet satte en feil _NET_WM_PID %lu\n"
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:393
#, c-format
msgid "%s (on %s)"
msgstr "%s (på %s)"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1448
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Ugyldig WM_TRANSIENT_FOR vindu 0x%lx oppgitt for %s.\n"
#: ../src/core/window-props.c:1492
#: ../src/core/window-props.c:1459
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR vindu 0x%lx for %s ville skapt en løkke.\n"
@ -416,22 +416,10 @@ msgstr ""
"individuelle tittellinjer."
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid "Live Hidden Windows"
msgstr "Levende skjulte vinduer"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
"Bestemmer om skjulte vinduer, f.eks minimerte vinduer og vinduer på andre "
"arbeidsområder enn aktivt arbeidsområde, skal holdes i live."
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Slå på kantflising ved slipp av vinduer på skjermkantene"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
@ -442,22 +430,25 @@ msgstr ""
"skjermkanter. Hvis vindu slippes på øverste kant av skjermen maksimeres de "
"fullstendig."
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "Arbeidsområder håndteres dynamisk"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr "Bestemmer om arbeidsområder skal håndteres dynamisk eller om det er et fast antall arbeidsområder (bestemt av num-workspaces nøkkelen i org.gnome.desktop.wm.preferences)."
msgstr ""
"Bestemmer om arbeidsområder skal håndteres dynamisk eller om det er et fast "
"antall arbeidsområder (bestemt av num-workspaces nøkkelen i org.gnome."
"desktop.wm.preferences)."
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "Arbeidsområder kun på primær skjerm"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
@ -465,11 +456,11 @@ msgstr ""
"Bestemmer om bytting mellom arbeidsområder skal skje for vinduer på alle "
"skjermer eller kun på primær skjerm."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr "Ingen tabulatordialog"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
@ -477,6 +468,17 @@ msgstr ""
"Bestemmer om bruk av dialog og uthevingsramme skal slås av for bytting "
"mellom vinduer."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Delay focus changes until the pointer stops moving"
msgstr "Utsett fokusendringer til pekeren slutter å bevege seg"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"the focus will not be changed immediately when entering a window, but only "
"after the pointer stops moving."
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr "Bredde på drakant"
@ -502,50 +504,6 @@ msgstr "Avbryt tabulatordialog"
msgid "Usage: %s\n"
msgstr " Bruk: %s\n"
#: ../src/ui/frames.c:1158
msgid "Close Window"
msgstr "Lukk vindu"
#: ../src/ui/frames.c:1161
msgid "Window Menu"
msgstr "Vindumeny"
#: ../src/ui/frames.c:1164
msgid "Minimize Window"
msgstr "Minimer vindu"
#: ../src/ui/frames.c:1167
msgid "Maximize Window"
msgstr "Maksimer vindu"
#: ../src/ui/frames.c:1170
msgid "Restore Window"
msgstr "Gjenopprett vindu"
#: ../src/ui/frames.c:1173
msgid "Roll Up Window"
msgstr "Rull opp vindu"
#: ../src/ui/frames.c:1176
msgid "Unroll Window"
msgstr "Rull ned vindu"
#: ../src/ui/frames.c:1179
msgid "Keep Window On Top"
msgstr "Plasser vindu i forgrunnen"
#: ../src/ui/frames.c:1182
msgid "Remove Window From Top"
msgstr "Fjern vindu fra forgrunnen"
#: ../src/ui/frames.c:1185
msgid "Always On Visible Workspace"
msgstr "Alltid på synlig arbeidsområde"
#: ../src/ui/frames.c:1188
msgid "Put Window On Only One Workspace"
msgstr "Plasser vindu kun på ett arbeidsområde"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:69
msgid "Mi_nimize"
@ -745,48 +703,48 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "topp"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "bunn"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "venstre"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "høyre"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "rammegeometrien spesifiserer ikke «%s»-dimensjon"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr "rammegeometri spesifiserer ikke dimensjon «%s» for kant «%s»"
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "Aspektrate %g for knapp er ikke fornuftig"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "Rammegeometrien spesifiserer ikke størrelse på knapper"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "Gradienter må ha minst to farger"
#: ../src/ui/theme.c:1219
#: ../src/ui/theme.c:1201
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -795,7 +753,7 @@ msgstr ""
"Egendefinert GTK-fargespesifikasjon må ha fargenavn og reserve i parantes, f."
"eks gtk:custom(foo,bar); kunne ikke lese «%s»"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
@ -804,7 +762,7 @@ msgstr ""
"Ugyldig tegn «%c» i parameter color_name for gtk:custom, kun A-Za-z0-9-_ er "
"gyldig"
#: ../src/ui/theme.c:1249
#: ../src/ui/theme.c:1231
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -813,7 +771,7 @@ msgstr ""
"Gtk:custom-format er «gtk:custom(color_name,fallback)», «%s» passer ikke i "
"formatet"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -822,7 +780,7 @@ msgstr ""
"GTK-fargespesifikasjon må ha tilstand i klammer, f.eks. gtk:fg[NORMAL], hvor "
"NORMAL er tilstanden; kunne ikke lese «%s»"
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -831,17 +789,17 @@ msgstr ""
"GTK-fargespesifikasjon må ha en avsluttende klamme etter tilstanden, f.eks. "
"gtk:fg[NORMAL], hvor NORMAL er tilstanden; kunne ikke lese «%s»"
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "Forsto ikke tilstand «%s» i fargespesifikasjonen"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "Forsto ikke fargekomponent «%s» i fargespesifikasjonen"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@ -850,56 +808,56 @@ msgstr ""
"Blandingsformat er «blend/bg_color/fg_color/alpha», «%s» passer ikke i "
"formatet"
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "Kunne ikke lese alpha-verdi «%s» i blandet farge"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "Alpha-verdi «%s» i blandet farge er ikke mellom 0.0 og 1.0"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
msgstr ""
"Skyggeformatet er «shade/base_color/factor», «%s» passer ikke i formatet"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "Kunne ikke lese skyggefaktor «%s» i skyggelagt farge"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "Skyggefaktor «%s» i skyggelagt farge er negativ"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "Kunne ikke lese farge «%s»"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "Koordinatuttrykk inneholder tegn «%s» som ikke er tillatt"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
msgstr "Koordinatuttrykk inneholder flyttall «%s» som ikke kunne tolkes"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "Koordinatuttrykk inneholder heltall «%s» som ikke kunne tolkes"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@ -908,39 +866,39 @@ msgstr ""
"Koordinatuttrykket inneholdt en ukjent operator ved begynnelsen av denne "
"teksten: «%s»"
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "Koordinatuttrykket var tomt eller ble ikke forstått"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "Koordinatuttrykket resulterer i divisjon med null"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr "Koordinatuttrykket prøver å bruke mod-operator på et flyttall"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr "Koordinatuttrykket har en operator «%s» hvor en operand var ventet"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "Koordinatuttrykket hadde en operand hvor en operator var ventet"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "Koordinatuttrykket sluttet med en operator i stedet for en operand"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@ -949,38 +907,38 @@ msgstr ""
"Koordinatuttrykket har en operator «%c» etter en operator «%c» og ingen "
"operand mellom dem."
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "Koordinatuttrykket haddeen ukjent variabel eller konstant «%s»"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "Tolkeren for koordinatuttrykk oversteg buffergrensen."
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "Koordinatuttrykket hadde en parantes slutt uten parantes start"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "Koordinatuttrykket hadde en åpen parantes uten en avsluttende parantes"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr ""
"Koordinatuttrykket ser ikke ut til å ha noen operatorer eller operander"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "Tema inneholdt et uttrykk som resulterte i en feil: %s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -989,25 +947,25 @@ msgstr ""
"<button function=«%s» state=«%s» draw_ops=«ett-eller-annet»/> må "
"spesifiseres for denne rammestilen"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
"Mangler <frame state=«%s» resize=«%s» focus=«%s» stil=«ett-eller-annet»/>"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "Klarte ikke å laste tema «%s»: %s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "<%s> er ikke satt for tema «%s»"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -1016,14 +974,14 @@ msgstr ""
"Ingen rammestil satt for vindutype «%s» i tema «%s», legg til et <window "
"type=«%s» style_set=«ett-eller-annet»/>-element"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr ""
"Brukerdefinerte konstanter må begynne med stor bokstav; «%s» gjør ikke det"
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "Konstant «%s» er allerede definert"
@ -1404,7 +1362,7 @@ msgstr "Ingen tekst er tillatt inne i element <%s>"
msgid "<%s> specified twice for this theme"
msgstr "<%s> spesifisert to ganger for dette temaet"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Fant ikke en gyldig fil for tema %s\n"
@ -1606,3 +1564,218 @@ msgstr "y-verdi var %d, %d var ventet"
#, c-format
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%d koordinatuttrykk lest på %g sekunder (%g sekunder i snitt)\n"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr "Navigering"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Flytt vindu til arbeidsområde 1"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Flytt vindu til arbeidsområde 2"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Flytt vindu til arbeidsområde 3"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Flytt vindu til arbeidsområde 4"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Flytt vindu et arbeidsområde til venstre"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Flytt vindu ett arbeidsområde til høyre"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace up"
msgstr "Flytt vindu ett arbeidsområde opp"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace down"
msgstr "Flytt vindu ett arbeidsområde ned"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Switch applications"
msgstr "Bytt programmer"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Switch windows of an application"
msgstr "Bytt mellom et programs vinduer"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Switch system controls"
msgstr "Bytt systemkontroller"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Switch windows directly"
msgstr "Bytt vinduer direkte"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Bla gjennom et programs vinduer direkte"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch system controls directly"
msgstr "Bytt systemkontroller direkte"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Hide all normal windows"
msgstr "Skjul alle normale vinduer"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Bytt til arbeidsområde 1"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Bytt til arbeidsområde 2"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Bytt til arbeidsområde 3"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Bytt til arbeidsområde 4"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Move to workspace left"
msgstr "Flytt til arbeidsområdet til venstre"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Move to workspace right"
msgstr "Flytt til arbeidsområdet til høyre"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Move to workspace above"
msgstr "Flytt til arbeidsområdet over"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Move to workspace below"
msgstr "Flytt til arbeidsområdet under"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "System"
msgstr "System"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Vis kommandolinje"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "Show the activities overview"
msgstr "Vis oversikt over aktiviteter"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Activate the window menu"
msgstr "Aktiver vindumenyen"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Slå av/på fullskjermmodus"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Toggle maximization state"
msgstr "Endre tilstand for maksimering"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window"
msgstr "Maksimer vindu"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Restore window"
msgstr "Gjenopprett vindu"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Toggle shaded state"
msgstr "Endre tilstand for skyggelegging"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Close window"
msgstr "Lukk vindu"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Minimize window"
msgstr "Minimer vindu"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Move window"
msgstr "Flytt vindu"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Endre størrelse på vindu"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Slå av/på om vinduet skal vises på alle arbeidsområder eller bare ett"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "Hev vindu hvis skjult av et annet vindu, senk det ellers"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Raise window above other windows"
msgstr "Hev vinduet over andre vinduer"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Lower window below other windows"
msgstr "Senk vinduet under andre vinduer"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Maximize window vertically"
msgstr "Maksimer vinduet vertikalt"
#: ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Maksimer vinduet horisontalt"

287
po/nl.po
View File

@ -21,7 +21,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/50-mutter-windows.xml.in.h:1
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "Vensters"
@ -1589,17 +1589,220 @@ msgstr ""
"%d coördinatenexpressies verwerkt in %g seconden (gemiddelde van %g "
"seconden)\n"
#~ msgid "Switch to workspace 1"
#~ msgstr "Schakelen naar werkblad 1"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Schakelen naar werkblad 1"
#~ msgid "Switch to workspace 2"
#~ msgstr "Schakelen naar werkblad 2"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Schakelen naar werkblad 2"
#~ msgid "Switch to workspace 3"
#~ msgstr "Schakelen naar werkblad 3"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Schakelen naar werkblad 3"
#~ msgid "Switch to workspace 4"
#~ msgstr "Schakelen naar werkblad 4"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Schakelen naar werkblad 4"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr "Venstermenu activeren"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Volledig scherm-modus omschakelen"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr "Maximalisatie in- of uitschakelen"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr "Venster maximaliseren"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "Venster herstellen"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "Oprollen in- of uitschakelen"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr "Venster minimaliseren"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "Venster sluiten"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "Venster verplaatsen"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Vensterafmetingen veranderen"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Venster verplaatsen naar werkblad 1"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Venster verplaatsen naar werkblad 2"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Venster verplaatsen naar werkblad 3"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Venster verplaatsen naar werkblad 4"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Venster één werkblad naar links verplaatsen"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Venster één werkblad naar rechts verplaatsen"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace up"
msgstr "Venster één werkblad naar boven verplaatsen"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace down"
msgstr "Venster één werkblad naar beneden verplaatsen"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "Venster voor andere vensters brengen"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "Venster achter andere vensters brengen"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "Een venster verticaal maximaliseren"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Een venster horizontaal maximaliseren"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Hide all normal windows"
msgstr "Alle normale vensters verbergen"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move to workspace above"
msgstr "Verplaatsen naar werkblad hierboven"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move to workspace below"
msgstr "Verplaatsen naar werkblad hieronder"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move to workspace left"
msgstr "Verplaatsen naar werkblad links"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move to workspace right"
msgstr "Verplaatsen naar werkblad rechts"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Navigation"
msgstr "Navigatie"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch applications"
msgstr "Tussen toepassingen schakelen"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Switch system controls"
msgstr "Systeemschermen wisselen"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch system controls directly"
msgstr "Direct tussen systeemschermen schakelen"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Switch windows directly"
msgstr "Direct tussen vensters schakelen"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Direct wisselen van venster binnen een toepassing"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Switch windows of an application"
msgstr "Wisselen van venster binnen een toepassing"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "Show the activities overview"
msgstr "Het activiteitenoverzicht tonen"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Het opdrachtregelvenster tonen"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "System"
msgstr "Systeem"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "Deels bedekte vensters naar voren halen of anders naar achter halen"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Venster is op alle werkbladen zichtbaar in- of uitschakelen"
#~ msgid "Switch to workspace 5"
#~ msgstr "Schakelen naar werkblad 5"
@ -1699,54 +1902,12 @@ msgstr ""
#~ msgid "Run a terminal"
#~ msgstr "Een terminal opstarten"
#~ msgid "Activate the window menu"
#~ msgstr "Venstermenu activeren"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Volledig scherm-modus omschakelen"
#~ msgid "Toggle maximization state"
#~ msgstr "Maximalisatie in- of uitschakelen"
#~ msgid "Toggle whether a window will always be visible over other windows"
#~ msgstr "Altijd bovenop-instelling omschakelen"
#~ msgid "Maximize window"
#~ msgstr "Venster maximaliseren"
#~ msgid "Restore window"
#~ msgstr "Venster herstellen"
#~ msgid "Toggle shaded state"
#~ msgstr "Oprollen in- of uitschakelen"
#~ msgid "Minimize window"
#~ msgstr "Venster minimaliseren"
#~ msgid "Close window"
#~ msgstr "Venster sluiten"
#~ msgid "Move window"
#~ msgstr "Venster verplaatsen"
#~ msgid "Resize window"
#~ msgstr "Vensterafmetingen veranderen"
#~ msgid "Toggle whether window is on all workspaces or just one"
#~ msgstr "Venster is op alle werkbladen zichtbaar omschakelen"
#~ msgid "Move window to workspace 1"
#~ msgstr "Venster verplaatsen naar werkblad 1"
#~ msgid "Move window to workspace 2"
#~ msgstr "Venster verplaatsen naar werkblad 2"
#~ msgid "Move window to workspace 3"
#~ msgstr "Venster verplaatsen naar werkblad 3"
#~ msgid "Move window to workspace 4"
#~ msgstr "Venster verplaatsen naar werkblad 4"
#~ msgid "Move window to workspace 5"
#~ msgstr "Venster verplaatsen naar werkblad 5"
@ -1771,35 +1932,11 @@ msgstr ""
#~ msgid "Move window to workspace 12"
#~ msgstr "Venster verplaatsen naar werkblad 12"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Venster één werkblad naar links verplaatsen"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Venster één werkblad naar rechts verplaatsen"
#~ msgid "Move window one workspace up"
#~ msgstr "Venster één werkblad naar boven verplaatsen"
#~ msgid "Move window one workspace down"
#~ msgstr "Venster één werkblad naar beneden verplaatsen"
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
#~ msgstr ""
#~ "Venster naar boven halen indien overlapt door een ander venster, anders "
#~ "naar beneden halen"
#~ msgid "Raise window above other windows"
#~ msgstr "Venster voor andere vensters brengen"
#~ msgid "Lower window below other windows"
#~ msgstr "Venster achter andere vensters brengen"
#~ msgid "Maximize window vertically"
#~ msgstr "Een venster verticaal maximaliseren"
#~ msgid "Maximize window horizontally"
#~ msgstr "Een venster horizontaal maximaliseren"
#~ msgid "Move window to north-west (top left) corner"
#~ msgstr "Venster verplaatsen naar de noordwest-hoek (linksboven)"

2996
po/or.po

File diff suppressed because it is too large Load Diff

668
po/pa.po

File diff suppressed because it is too large Load Diff

563
po/pl.po

File diff suppressed because it is too large Load Diff

615
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1944,6 +1944,33 @@ msgstr ""
"Expresiile pentru coordonate %d parsate în %g secunde (o medie de %g "
"secunde)\n"
#: ../src/50-mutter-launchers.xml.in.h:1
#, fuzzy
msgid "Launchers"
msgstr "Lansatori"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr "Navigare"
#: ../src/50-mutter-screenshot.xml.in.h:1
#, fuzzy
#| msgid "Take a screenshot"
msgid "Screenshots"
msgstr "Capturi de ecran"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "System"
msgstr "Sistem"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
#| msgid "/_Windows"
msgid "Windows"
msgstr "Ferestre"
#~ msgid "Window Management"
#~ msgstr "Administrare ferestre"

1299
po/ru.po

File diff suppressed because it is too large Load Diff

571
po/sl.po

File diff suppressed because it is too large Load Diff

2774
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

588
po/sv.po

File diff suppressed because it is too large Load Diff

881
po/ta.po

File diff suppressed because it is too large Load Diff

1021
po/te.po

File diff suppressed because it is too large Load Diff

1298
po/th.po

File diff suppressed because it is too large Load Diff

259
po/tr.po
View File

@ -6,22 +6,22 @@
# Baris Cicek <baris@teamforce.name.tr>, 2004, 2005, 2008, 2009.
# İlker DAĞLI <ilker@ilkerdagli.info>, 2011.
# Muhammed EKEN <gnome@m-eken.com>, 2011.
# Muhammet Kara <muhammet.k@gmail.com>, 2011, 2012.
# Muhammet Kara <muhammetk@acikkaynak.name.tr>, 2011, 2012.
msgid ""
msgstr ""
"Project-Id-Version: mutter master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-03-15 21:29+0000\n"
"PO-Revision-Date: 2012-03-23 21:56+0000\n"
"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
"POT-Creation-Date: 2012-08-06 23:35+0000\n"
"PO-Revision-Date: 2012-08-09 16:48+0000\n"
"Last-Translator: Muhammet Kara <muhammetk@acikkaynak.name.tr>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 1.2\n"
"X-Generator: Lokalize 1.4\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: tr\n"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
@ -46,7 +46,7 @@ msgstr ""
"\"%2$s\" monitöründeki %1$i ekranında zaten başka bir birleştirme yöneticisi "
"çalışıyor."
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr "Etkinlik zili"
@ -55,16 +55,17 @@ msgstr "Etkinlik zili"
msgid "Unknown window information request: %d"
msgstr "Bilinmeyen pencere bilgi isteği: %d"
#: ../src/core/delete.c:111
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> cevap vermiyor."
#: ../src/core/delete.c:114
#, c-format
#| msgid "<tt>%s</tt> is not responding."
msgid "%s is not responding."
msgstr "%s yanıt vermiyor."
#: ../src/core/delete.c:118
msgid "Application is not responding."
msgstr "Uygulama cevap vermiyor"
#: ../src/core/delete.c:119
#: ../src/core/delete.c:123
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@ -72,25 +73,25 @@ msgstr ""
"Uygulamanın devam etmesi için bir müddet bekleyi seçebilirsiniz ya d a "
"uygulamanın tamamen çıkması için onu zorlayabilirsiniz."
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Wait"
msgstr "_Bekle"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Force Quit"
msgstr "_Sonlandır"
#: ../src/core/display.c:387
#: ../src/core/display.c:380
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Kompozisyon için gerekli olan %s eklentisi eksik"
#: ../src/core/display.c:453
#: ../src/core/display.c:446
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "X Pencere Sistemi '%s' ekranıılamadı\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:844
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -99,36 +100,36 @@ msgstr ""
"%s tuşu %x değiştiricileriyle birlikte başka bir uygulama tarafından tuş "
"bağıolarak kullanılıyor\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "Ortam yöneticisine olan bağlantıyı kapat"
#: ../src/core/main.c:212
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "Çalışan pencere yöneticisinin yerini al"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "Ortam yönetim ID'sini belirtin"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "Kullanılacak X Ekranı"
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "Ortamı kayıtlı dosyadan başlat"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "X çağrılarını eşazamanlı yap"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Tema dizini taranırken hata oluştu: %s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -155,10 +156,10 @@ msgid "Print version"
msgstr "Sürümü yazdır"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr "Kompozisyon eklentilerinin listesi (virgül ile ayrılmış)"
msgid "Mutter plugin to use"
msgstr "Kullanılacak Mutter eklentisi"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1065
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -166,13 +167,13 @@ msgstr ""
"Hatalı uygulamalara yönelik çözümler devre dışı. Bazı uygulamalar düzgün "
"işlemeyebilir.\n"
#: ../src/core/prefs.c:1152
#: ../src/core/prefs.c:1140
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr ""
"\"%s\" yazıtipi tanımlaması, %s GSettings anahtarından ayrıştırılamadı\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1206
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -181,7 +182,7 @@ msgstr ""
"Yapılandırma veritabanında bulunan \"%s\", fare düğme düzenleyicisi olarak "
"geçerli bir değer değil\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1724
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -190,17 +191,17 @@ msgstr ""
"Yapılandırma veritabanında bulunan \"%s\", \"%s\" tuş bağı olarak geçerli "
"bir değer değil\n"
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1821
#, c-format
msgid "Workspace %d"
msgstr "Çalışma Alanı %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "'%2$s' X oturumundaki ekran %1$d geçersiz\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -210,7 +211,7 @@ msgstr ""
"geçerli pencere yöneticisinin yerine bir başkasını koymak için --replace "
"seçeneğini kullanmayı deneyin.\n"
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@ -218,13 +219,13 @@ msgstr ""
"\"%2$s\" X oturumundaki ekran %1$d hangi pencere yöneticisine "
"sahipöğrenilemedi\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr ""
"\"%2$s\" X oturumundaki ekran %1$d bir pencere yöneticisine zaten sahip\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "\"%2$s\" X oturumundaki ekran %1$d serberst bırakılamadı\"\n"
@ -286,44 +287,44 @@ msgstr ""
"Bu pencereler, &quot;geçerli ayarları kaydet&quot; özelliğini desteklemiyor "
"ve bir dahaki girişinizde elle yeniden başlatmanız gerekecek."
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "Hata ayıklama günlüğü açılamadı: %s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "fdopen() günlük dosyası %s açılamadı: %s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "%s günlük dosyasııldı\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter, ayrıntılı kip desteği olmadan derlenmiş\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "Pencere yöneticisi: "
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "Pencere yöneticisinde hata: "
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "Pencere yöneticisi uyarısı: "
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "Pencere yöneticisi hatası: "
#. first time through
#: ../src/core/window.c:7269
#: ../src/core/window.c:7234
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -339,32 +340,32 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7932
#: ../src/core/window.c:7899
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
"d x %d and max size %d x %d; this doesn't make much sense.\n"
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
msgstr ""
"%s penceresi bir yandan yeniden boyutlandırılamaz olduğunu gösteren bir MWM "
"ipucu verirken anlamsız bir biçimde en küçük (%d x %d) ve en büyük (%d x %d) "
"boyut sınırlarını da atıyor.\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:310
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "Uygulama geçersiz _NET_WM_PID %lu atadı\n"
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:429
#, c-format
msgid "%s (on %s)"
msgstr "%s (%s üzerinde)"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1484
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Geçersiz WM_TRANSIENT_FOR pencere 0x%lx belirtilen %s.\n"
#: ../src/core/window-props.c:1492
#: ../src/core/window-props.c:1495
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR penceresi 0x%lx (%s için) döngü oluşturacak.\n"
@ -432,23 +433,11 @@ msgstr ""
"birlikte hareket eder."
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid "Live Hidden Windows"
msgstr "Çalışır Durumdaki Gizli Pencereler"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
"Gizli pencerelerin (ö.r. küçültülmüş pencereler ve diğer çalışma alanındaki "
"pencereler) çalışır bırakılıp bırakılmayacağını belirler."
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir."
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
@ -459,26 +448,25 @@ msgstr ""
"şekilde yeniden boyutlandırılır. Ekranın tepedeki kenarına bırakılan "
"pencereler ekranı tamamen kaplar."
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "Çalışma alanları dinamik olarak yönetilir"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr ""
"Çalışma alanlarının dinamik olarak mı yönetileceğini yoksa sabit sayıda "
"çalışma alanı mı olacağını "
"belirler (org.gnome.desktop.wm.preferences içindeki num-workspaces değişkeni "
"tarafından belirlenir)."
"çalışma alanı mı olacağını belirler (org.gnome.desktop.wm.preferences "
"içindeki num-workspaces değişkeni tarafından belirlenir)."
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "Sadece birincil monitördeki çalışma alanları"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
@ -486,11 +474,11 @@ msgstr ""
"Çalışma alanı değiştirilmesinin, tüm monitörlerdeki pencerelerde mi yoksa "
"sadece birincil monitördekilerde mi gerçekleşeceğini belirler."
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr "Sekme açılır penceresi yok"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
@ -498,11 +486,11 @@ msgstr ""
"Pencere geçişinde çerçeve vurgulanması ve açılır pencere kullanımının "
"kapatılıp kapatılmayacağını belirler."
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Draggable border width"
msgstr "Sürüklenebilir kenarlık genişliği"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value."
@ -511,11 +499,11 @@ msgstr ""
"kenarlıkları yetersiz gelirse, bu değere ulaşmak için görünmez kenarlıklar "
"eklenir."
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Select window from tab popup"
msgstr "Pencereyi, sekme açılır penceresinden seç"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
msgid "Cancel tab popup"
msgstr "Sekmeyi yeni pencerede açmayı iptal et"
@ -723,49 +711,49 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "üst"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "alt"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "sol"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "sağ"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "çerçeve geometrisi \"%s\" boyutunu tanımlamıyor"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr ""
"çerçeve geometrisi \"%s\" boyutunu \"%s\" pencere kenarı için tanımlamıyor"
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "%g kabul edilebilir bir düğme en-boy oranı değil"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "Çerçeve geometrisi düğmelerin boyutunu tanımlamıyor"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "Renk geçişlerinde en az iki renk olmalı"
#: ../src/ui/theme.c:1219
#: ../src/ui/theme.c:1201
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -774,7 +762,7 @@ msgstr ""
"GTK özel renk belirtiminde parantez içinde renk adı ve fallback kelimesi yer "
"almalıdır; örneğin, gtk:custom[foo,bar]; \"%s\" ayrıştırılamadı"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
@ -783,7 +771,7 @@ msgstr ""
"gtk:custom color_name parametresinin adında geçersiz karakter '%c'; sadece A-"
"Za-z0-9-_ karakterleri geçerlidir"
#: ../src/ui/theme.c:1249
#: ../src/ui/theme.c:1231
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -792,7 +780,7 @@ msgstr ""
"Gtk:custom biçimi \"gtk:custom(color_name,fallback)\" şeklindedir; \"%s\" "
"biçime uymuyor"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -802,7 +790,7 @@ msgstr ""
"örneğin, gtk:fg[NORMAL] belirtiminde NORMAL, durumu gösterir; \"%s\" "
"ayrıştırılamadı"
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -812,17 +800,17 @@ msgstr ""
"örneğin, gtk:fg[NORMAL] belirtiminde NORMAL, durumu gösterir; \"%s\" "
"ayrıştırılamadı"
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "Renk belirtimindeki \"%s\" durumu anlaşılamadı"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "Renk belirtimindeki \"%s\" renk bileşeni anlaşılamadı"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@ -831,17 +819,17 @@ msgstr ""
"Renk karışımının doğru biçimi \"blend/bg_color/fg_color/alpha\"dır; \"%s\" "
"bu biçime uymuyor"
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "Renk karışımındaki \"%s\" alfa değeri ayrıştırılamadı"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "Renk karışımının alfa değeri \"%s\", 0.0 ile 1.0 arasında değil"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
@ -849,27 +837,27 @@ msgstr ""
"Gölgelendirmenin doğru biçimi \"shade/bas_color/factor\"dır; \"%s\" bu "
"biçime uymuyor"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "Gölgeli rengin gölge katsayısı olan \"%s\" ayrıştırılamadı"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "Gölgeli rengin gölge katsayısı olan \"%s\", negatif"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "\"%s\" rengi ayrıştırılamadı"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "Kordinat ifadesi izin verilmeyen '%s' karakterini içeriyor"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
@ -877,12 +865,12 @@ msgid ""
msgstr ""
"Kordinat ifadesi '%s' gerçel sayısını içeriyor ve bu sayı ayrıştırılamıyor"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "Kordinat ifadesi ayrıştırılamayan '%s' tamsayısını içeriyor"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@ -890,17 +878,17 @@ msgid ""
msgstr ""
"Kordinat ifadesi bu metnin başında bilinmeyen bir işleç içeriyor: \"%s\""
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "Kordinat ifadesi boş ya da anlaşılamadı"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "Kordinat ifadesi sıfıra bölümle sonuçlanıyor"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
@ -908,23 +896,23 @@ msgstr ""
"Kordinat ifadesi bir gerçel sayı üzerinde mod (kalan bulma) işlecini "
"kullanmaya çalıştı"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr "Kordinat ifadesi işleneni beklenen \"%s\", işlecini içeriyor"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "Kordinat ifadesi işleci beklenen bir işlenen içeriyor"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "Kordinat ifadesi bir işlenen yerine işleçle bitiyor"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@ -933,38 +921,38 @@ msgstr ""
"Kordinat ifadesi birbirlerinin izleyen ve aralarında işlenen olmayan \"%2$c"
"\" ve \"%1$c\" işleçlerini içeriyor"
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr ""
"Kordinat ifadesi bilinmeyen bir değişken ya da sabit olan \"%s\" içeriyor"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "Kordinat belirtim ayrıştırıcısı tamponundan taştı."
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "Kordinat ifadesi sol parantezi olmayan bir sağ parantez içeriyor"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "Kordinat ifadesi sağ parantezi olmayan bir sol parantez içeriyor"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "Kordinat ifadesi göründüğü kadarıyla ne işleç ne de işlenen içeriyor"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "Tema bir hata ile sonuçlanan ifadeye sahip: %s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -973,25 +961,25 @@ msgstr ""
"Bu çerçeve biçeminde <button function=\"%s\" state=\"%s\" draw_ops=\"her "
"neyse\"/> belirtilmek zorunda"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
"Eksik <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"her neyse\"/>"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "\"%s\" teması yüklenemedi: %s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "\"%2$s\" temasında hiç <%1$s> atanmamış"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -1000,14 +988,14 @@ msgstr ""
"\"%2$s\" temasında \"%1$s\" pencere türüne çerçeve biçemi atanmamış, bir "
"<window type=\"%3$s\" style_set=\"her neyse\"/> öğesi ekleyin"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr ""
"Kullanıcı tanımlı sabitler büyük harfle başlamalıdır; \"%s\" buna uymuyor"
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "\"%s\" sabit değeri zaten tanımlanmış"
@ -1390,7 +1378,7 @@ msgstr "<%s> öğesinin içinde metin bulunmamalıdır"
msgid "<%s> specified twice for this theme"
msgstr "Bu tema için <%s> iki kez belirtilmiş"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Tema %s için geçerli bir dosya bulunamadı\n"
@ -1594,6 +1582,19 @@ msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr ""
"%d kordinat ifadesi %g saniye içinde ayrıştırıldı (%g saniye ortalama ile)\n"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "Kompozisyon eklentilerinin listesi (virgül ile ayrılmış)"
#~ msgid "Live Hidden Windows"
#~ msgstr "Çalışır Durumdaki Gizli Pencereler"
#~ msgid ""
#~ "Determines whether hidden windows (i.e., minimized windows and windows on "
#~ "other workspaces than the current one) should be kept alive."
#~ msgstr ""
#~ "Gizli pencerelerin (ö.r. küçültülmüş pencereler ve diğer çalışma "
#~ "alanındaki pencereler) çalışır bırakılıp bırakılmayacağını belirler."
#~ msgid "Close Window"
#~ msgstr "Pencereyi Kapat"

View File

@ -1989,6 +1989,26 @@ msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr ""
"%d كوئوردېنات ئىپادىسى %g سېكۇنتتا تەھلىل قىلىندى(%g ئوتتۇرىچە سېكۇنت)\n"
#: ../src/50-mutter-launchers.xml.in.h:1
msgid "Launchers"
msgstr "ئىجراچىلار"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "يولباشچى"
#: ../src/50-mutter-screenshot.xml.in.h:1
msgid "Screenshots"
msgstr "ئېكران كۆرۈنۈشلىرى"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "سىستېما"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "كۆزنەكلەر"
#~ msgid "Failed to retrieve color %s[%s] from GTK+ theme.\n"
#~ msgstr "GTK+ ئۆرنەكتىن رەڭ %s[%s] نى ئىزدىيەلمىدى\n"

547
po/uk.po

File diff suppressed because it is too large Load Diff

690
po/vi.po

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../src/50-mutter-windows.xml.in.h:1
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "窗口"
@ -1530,17 +1530,177 @@ msgstr "y 值为 %d但应该为 %d "
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
#~ msgid "Switch to workspace 1"
#~ msgstr "切换到工作区 1"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "切换到工作区 1"
#~ msgid "Switch to workspace 2"
#~ msgstr "切换到工作区 2"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "切换到工作区 2"
#~ msgid "Switch to workspace 3"
#~ msgstr "切换到工作区 3"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "切换到工作区 3"
#~ msgid "Switch to workspace 4"
#~ msgstr "切换到工作区 4"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "切换到工作区 4"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Activate the window menu"
msgstr "激活窗口菜单"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Toggle fullscreen mode"
msgstr "切换全屏模式"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Toggle maximization state"
msgstr "切换最大化状态"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Maximize window"
msgstr "最大化窗口"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Restore window"
msgstr "恢复窗口"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Toggle shaded state"
msgstr "切换卷起状态"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Minimize window"
msgstr "最小化窗口"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Close window"
msgstr "关闭窗口"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Move window"
msgstr "移动窗口"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "改变窗口大小"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Move window to workspace 1"
msgstr "将窗口移到工作区 1"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Move window to workspace 2"
msgstr "将窗口移到工作区 2"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Move window to workspace 3"
msgstr "将窗口移到工作区 3"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Move window to workspace 4"
msgstr "将窗口移到工作区 4"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "将窗口左移一个工作区"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right"
msgstr "将窗口右移一个工作区"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "将窗口上移一个工作区"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace down"
msgstr "将窗口下移一个工作区"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Raise window above other windows"
msgstr "将窗口提升到其它窗口之上"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Lower window below other windows"
msgstr "将窗口降低到其它窗口之下"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Maximize window vertically"
msgstr "垂直最大化窗口"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window horizontally"
msgstr "水平最大化窗口"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Hide all normal windows"
msgstr "隐藏所有正常窗口"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move to workspace above"
msgstr "移动到上层工作区"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move to workspace below"
msgstr "移动到下层工作区"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move to workspace left"
msgstr "移动到左侧工作区"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move to workspace right"
msgstr "移动到右侧工作区"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Navigation"
msgstr "导航"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch applications"
msgstr "切换应用程序"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls"
msgstr "切换系统控制"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Switch system controls directly"
msgstr "直接切换系统控制"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Switch windows directly"
msgstr "直接切换窗口"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Switch windows of an app directly"
msgstr "在应用程序窗口间直接移动焦点"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Switch windows of an application"
msgstr "在应用程序的窗口之间切换窗口"
#: ../src/50-mutter-system.xml.in.h:1
msgid "Show the activities overview"
msgstr "显示活动大纲"
#: ../src/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "显示运行命令提示符"
#: ../src/50-mutter-system.xml.in.h:3
msgid "System"
msgstr "系统"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Raise window if covered, otherwise lower it"
msgstr "如果窗口被其他窗口遮盖,则提升它,否则降低它"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Toggle window on all workspaces or one"
msgstr "在位于所有或仅一个工作区的窗口间切换"
#~ msgid "Switch to workspace 5"
#~ msgstr "切换到工作区 5"
@ -1636,54 +1796,12 @@ msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
#~ msgid "Run a terminal"
#~ msgstr "运行终端"
#~ msgid "Activate the window menu"
#~ msgstr "激活窗口菜单"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "切换全屏模式"
#~ msgid "Toggle maximization state"
#~ msgstr "切换最大化状态"
#~ msgid "Toggle whether a window will always be visible over other windows"
#~ msgstr "在窗口是否永远可见于其它窗口之上间切换"
#~ msgid "Maximize window"
#~ msgstr "最大化窗口"
#~ msgid "Restore window"
#~ msgstr "恢复窗口"
#~ msgid "Toggle shaded state"
#~ msgstr "切换卷起状态"
#~ msgid "Minimize window"
#~ msgstr "最小化窗口"
#~ msgid "Close window"
#~ msgstr "关闭窗口"
#~ msgid "Move window"
#~ msgstr "移动窗口"
#~ msgid "Resize window"
#~ msgstr "改变窗口大小"
#~ msgid "Toggle whether window is on all workspaces or just one"
#~ msgstr "在窗口位于所有或仅一个工作区间切换"
#~ msgid "Move window to workspace 1"
#~ msgstr "将窗口移到工作区 1"
#~ msgid "Move window to workspace 2"
#~ msgstr "将窗口移到工作区 2"
#~ msgid "Move window to workspace 3"
#~ msgstr "将窗口移到工作区 3"
#~ msgid "Move window to workspace 4"
#~ msgstr "将窗口移到工作区 4"
#~ msgid "Move window to workspace 5"
#~ msgstr "将窗口移到工作区 5"
@ -1708,33 +1826,9 @@ msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
#~ msgid "Move window to workspace 12"
#~ msgstr "将窗口移到工作区 12"
#~ msgid "Move window one workspace to the left"
#~ msgstr "将窗口左移一个工作区"
#~ msgid "Move window one workspace to the right"
#~ msgstr "将窗口右移一个工作区"
#~ msgid "Move window one workspace up"
#~ msgstr "将窗口上移一个工作区"
#~ msgid "Move window one workspace down"
#~ msgstr "将窗口下移一个工作区"
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
#~ msgstr "如果窗口被其他窗口遮盖,则提升它,否则降低它"
#~ msgid "Raise window above other windows"
#~ msgstr "将窗口提升到其它窗口之上"
#~ msgid "Lower window below other windows"
#~ msgstr "将窗口降低到其它窗口之下"
#~ msgid "Maximize window vertically"
#~ msgstr "垂直最大化窗口"
#~ msgid "Maximize window horizontally"
#~ msgstr "水平最大化窗口"
#~ msgid "Move window to north-west (top left) corner"
#~ msgstr "将窗口移到西北(左上)角"

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity 3.3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-19 23:54+0800\n"
"PO-Revision-Date: 2012-03-19 23:55+0800\n"
"POT-Creation-Date: 2012-07-17 15:17+0800\n"
"PO-Revision-Date: 2012-07-17 15:17+0800\n"
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
"Language: \n"
@ -19,18 +19,18 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../src/50-mutter-windows.xml.in.h:1
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "視窗"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "View split on left"
msgstr "檢視分割於左側"
#: ../src/50-mutter-windows.xml.in.h:2
#: ../src/50-mutter-windows.xml.in.h:3
msgid "View split on right"
msgstr "檢視分割於右側"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Windows"
msgstr "視窗"
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
#. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit
@ -41,7 +41,7 @@ msgid ""
"\"."
msgstr "在畫面「%2$s」中的第 %1$i 個螢幕中已啟動另一個組合視窗管理員。"
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr "響鈴事件"
@ -50,76 +50,76 @@ msgstr "響鈴事件"
msgid "Unknown window information request: %d"
msgstr "未知的視窗資訊要求:%d"
#: ../src/core/delete.c:111
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> 沒有回應。"
#: ../src/core/delete.c:114
#, c-format
msgid "%s is not responding."
msgstr "%s 沒有回應。"
#: ../src/core/delete.c:118
msgid "Application is not responding."
msgstr "應用程式沒有回應。"
#: ../src/core/delete.c:119
#: ../src/core/delete.c:123
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr "你可以選擇稍等一下,或者強制程式立即結束。"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Wait"
msgstr "等待(_W)"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Force Quit"
msgstr "強制結束(_F)"
#: ../src/core/display.c:387
#: ../src/core/display.c:380
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "遺失複合視窗管理所需的 %s 延伸功能"
#: ../src/core/display.c:453
#: ../src/core/display.c:446
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "無法開啟 X Window 畫面‘%s\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:844
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
"binding\n"
msgstr "其它程式已經使用了按鍵 %s 加上特殊按鍵 %x 作為按鍵組合\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "停用到作業階段管理程式的連線"
#: ../src/core/main.c:212
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "取代執行中的視窗管理員"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "指定作業階段管理 ID"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "使用的 X 畫面"
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "以 savefile 初始化作業階段"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "使用同步方式調用 X 函數"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "找不到佈景主題目錄:%s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -144,28 +144,28 @@ msgid "Print version"
msgstr "顯示版本"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr "以逗號分隔的複合視窗外掛程式清單"
msgid "Mutter plugin to use"
msgstr "要使用的 Mutter 外掛程式"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1065
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
msgstr "關閉了對不合規格的程式的支援。某些程式可能無法正常運作。\n"
#: ../src/core/prefs.c:1152
#: ../src/core/prefs.c:1140
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "無法從 GSettings 設定鍵 %2$s 分析字型描述文字「%1$s」\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1206
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
"modifier\n"
msgstr "組態資料庫中的“%s”設定值不是有效的滑鼠按鈕修改功能鍵\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1724
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -173,17 +173,17 @@ msgid ""
msgstr "組態資料庫中的“%s”不是按鍵組合“%s”的有效設定值\n"
# (Abel) take care of the same string in libwnck
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1821
#, c-format
msgid "Workspace %d"
msgstr "工作區 %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "畫面‘%2$s中的第 %1$d 個螢幕無效\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -191,18 +191,18 @@ msgid ""
msgstr "畫面‘%2$s中的第 %1$d 個螢幕已經有了視窗管理員;請嘗試使用 --replace 選項來替換目前的視窗管理員。\n"
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "無法在畫面“%2$s”中的第 %1$d 個螢幕進行視窗管理員選擇程序\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "畫面“%2$s”中的第 %1$d 個螢幕已經有了視窗總管\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "無法釋放畫面“%2$s”中的第 %1$d 個螢幕\n"
@ -260,44 +260,44 @@ msgid ""
"be restarted manually next time you log in."
msgstr "這些視窗不支援 &quot;儲存目前的設定&quot; ,必須在下次登入後自行啟動。"
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "無法開啟偵錯記錄檔:%s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "無法 fdopen() 記錄檔 %s%s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "已開啟記錄檔 %s\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "編譯 Mutter 時並沒有加入詳細偵錯模式的支援\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "視窗管理員:"
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "視窗總管出現錯誤:"
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "視窗總管警告:"
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "視窗總管錯誤:"
#. first time through
#: ../src/core/window.c:7266
#: ../src/core/window.c:7234
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -311,29 +311,29 @@ msgstr "視窗 %s 將 SM_CLIENT_ID 設定為該視窗本身,而不是 ICCCM
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7931
#: ../src/core/window.c:7899
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
msgstr "視窗 %s 設定了 MWM 提示,表示它不可以調整大小,但又將大小下限定為 %d×%d 及將大小上限定為 %d×%d這種做法不符合常理。\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:310
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "程式設定了多餘的 _NET_WM_PID %lu\n"
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:429
#, c-format
msgid "%s (on %s)"
msgstr "%s在 %s"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1484
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "%2$s 指定了無效的 WM_TRANSIENT_FOR 視窗 0x%1$lx。\n"
#: ../src/core/window-props.c:1492
#: ../src/core/window-props.c:1495
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "%2$s 的 WM_TRANSIENT_FOR 視窗 0x%1$lx 會造成迴圈。\n"
@ -369,68 +369,73 @@ msgid "Mutter"
msgstr "Mutter"
#: ../src/org.gnome.mutter.gschema.xml.in.h:1
msgid "Modifier to use for extended window management operations"
msgstr "用於延伸視窗管理操作程序的特殊按鍵"
#: ../src/org.gnome.mutter.gschema.xml.in.h:2
msgid ""
"This key will initiate the \"overlay\", which is a combination window "
"overview and application launching system. The default is intended to be the "
"\"Windows key\" on PC hardware. It's expected that this binding either the "
"default or set to the empty string."
msgstr "這個設定鍵會初始化「overlay」這是一個複合視窗概覽與應用程式執行系統。預設是要成為 PC 硬件上的「Windows key」。預期這個按鍵組含不是預設值就是設定為空字串。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs"
msgstr "附加模態對話盒"
#: ../src/org.gnome.mutter.gschema.xml.in.h:2
msgid "Cancel tab popup"
msgstr "取消分頁彈出項"
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr "決定隱藏的視窗(如最小化的視窗和位於目前以外工作區的視窗)是否保持活動。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:4
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr "決定當視窗輪換時是否使用彈出式和強調框架。"
"When true, instead of having independent titlebars, modal dialogs appear "
"attached to the titlebar of the parent window and are moved together with "
"the parent window."
msgstr "當設為「true」將不會有獨立的標題列模態對話盒會附加在上層視窗的標題列並與上層視窗一起移動。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
msgstr "決定工作區切換是否使用於所有螢幕的視窗或只用於主要螢幕的視窗。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr "決定工作區以動態方式管理或是有固定數量的工作區 (以 org.gnome.desktop.wm.preferences 中的 num-workspaces 鍵值來決定)。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Draggable border width"
msgstr "可拖曳邊框闊度"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "在螢幕邊緣放下視窗時啟用邊緣拼貼"
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
"area. Dropping windows on the top screen edge maximizes them completely."
msgstr "如果啟用,將視窗拖放到螢幕垂直邊緣時會讓它們垂直最大化並調整水平方向大小覆蓋可用區域的一半。拖放視窗到螢幕頂端邊緣則會讓它們完全最大化。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "工作區以動態方式管理"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr "決定工作區以動態方式管理或是有固定數量的工作區 (以 org.gnome.desktop.wm.preferences 中的 num-workspaces 鍵值來決定)。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "只有主要螢幕的工作區"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid "Live Hidden Windows"
msgstr "活動中的隱藏 Windows"
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
msgstr "決定工作區切換是否使用於所有螢幕的視窗或只用於主要螢幕的視窗。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "Modifier to use for extended window management operations"
msgstr "用於延伸視窗管理操作程序的特殊按鍵"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid "No tab popup"
msgstr "沒有分頁彈出項"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr "決定當視窗輪換時是否使用彈出式和強調框架。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Select window from tab popup"
msgstr "從分頁彈出項選擇視窗"
msgid "Draggable border width"
msgstr "可拖曳邊框闊度"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
@ -439,27 +444,12 @@ msgid ""
msgstr "所有可拖曳邊框的總數。如果布景的可視邊框不夠,會加入隱形邊框來符合這個數值。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid ""
"This key will initiate the \"overlay\", which is a combination window "
"overview and application launching system. The default is intended to be the "
"\"Windows key\" on PC hardware. It's expected that this binding either the "
"default or set to the empty string."
msgstr "這個設定鍵會初始化「overlay」這是一個複合視窗概覽與應用程式執行系統。預設是要成為 PC 硬件上的「Windows key」。預期這個按鍵組含不是預設值就是設定為空字串。"
msgid "Select window from tab popup"
msgstr "從分頁彈出項選擇視窗"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
msgid ""
"When true, instead of having independent titlebars, modal dialogs appear "
"attached to the titlebar of the parent window and are moved together with "
"the parent window."
msgstr "當設為「true」將不會有獨立的標題列模態對話盒會附加在上層視窗的標題列並與上層視窗一起移動。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
msgid "Workspaces are managed dynamically"
msgstr "工作區以動態方式管理"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid "Workspaces only on primary"
msgstr "只有主要螢幕的工作區"
msgid "Cancel tab popup"
msgstr "取消分頁彈出項"
#: ../src/tools/mutter-message.c:123
#, c-format
@ -681,261 +671,261 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "頂"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "底"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "左"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "右"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "邊框的位置大小中沒有指定“%s”部分的大小"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr "邊框的位置大小中沒有指定“%2$s”邊框中的“%1$s”部分"
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "按鈕的長寬比 %g 不合理"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "邊框的位置大小規格內未有指定按鈕的大小"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "漸變色至少應該有兩種顏色"
#: ../src/ui/theme.c:1219
#: ../src/ui/theme.c:1201
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
msgstr "GTK 自選顏色規格規定必須有顏色名稱並加上封閉括號,例如 gtk:custom(foo,bar);無法分析「%s」"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
"_ are valid"
msgstr "gtk:custom 的 color_name 參數 '%c' 中有無效字符,只能使用 A-Za-z0-9-_ "
#: ../src/ui/theme.c:1249
#: ../src/ui/theme.c:1231
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
"fit the format"
msgstr "Gtk:custom 的格式是「gtk:custom(color_name,fallback)」,但「%s」不符合格式"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
"where NORMAL is the state; could not parse \"%s\""
msgstr "GTK 色彩規格規定必須在狀態外加上方括號,例如 gtk:fg[NORMAL],這裏 NORMAL 表示狀態;無法分析“%s”"
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
msgstr "GTK 色彩規格規定必須在狀態後加上閉方括號,例如 gtk:fg[NORMAL],這裏 NORMAL 表示狀態;無法分析“%s”"
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "無法將“%s”理解為色彩規格中的狀態"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "無法將“%s”理解為色彩規格中的色彩部分"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
"format"
msgstr "指定混色的格式是“blend/背景顏色/前景顏色/透明度”,“%s”不符合規格"
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "無法理解“%s”作為混色的透明度數值"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "混色的透明度數值“%s”不是在 0.0 至 1.0 之間"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
msgstr "陰影的格式是“shade/基本顏色/比重”,但“%s”不符合格式"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "在陰影顏色中無法將“%s”理解為陰影比重"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "在陰影顏色中陰影比重“%s”是負數"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "無法分析顏色“%s”"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "座標表達式中出現不可接受的字符‘%s"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
msgstr "座標表達式中出現無法分析的浮點小數‘%s"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "座標表達式中出現無法分析的整數‘%s"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
"\"%s\""
msgstr "在座標表達式中,以下文字的開始部分含有不明的運算符:“%s”"
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "座標表達式是空白的或是無法分析"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "座標表達式中出現被 0 整除的錯誤"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr "座標表達式中出現將浮點數使用於餘數運算符 (mod) 的錯誤"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr "在座標表達式中,應該有運算子的地方出現了運算符“%s”"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "在座標表達式中,應該有運算符的地方出現了運算子"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "結束座標表達式的是一個運算符而非運算子"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
"operand in between"
msgstr "在座標表達式中,運算符“%c”緊隨運算符“%c”出現但中間沒有任何運算子"
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "座標表達式中出現不明的變數或常數“%s”"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "座標表達式分析器令緩衝溢位。"
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "座標表達式中的閉括號沒有相應的開括號"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "座標表達式中的開括號沒有相應的閉括號"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "座標表達式中似乎沒有任何運算符或運算子"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "佈景主題中含有引致錯誤的表達式:%s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
"specified for this frame style"
msgstr "此邊框款式必須指定 <button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/>"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr "缺少了 <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "無法載入佈景主題“%s”%s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "佈景主題“%s”未指定 <%s>"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
"type=\"%s\" style_set=\"whatever\"/> element"
msgstr "在佈景主題“%2$s”中視窗類型“%1$s”沒有指定任何邊框款式。請加上 <window type=\"%3$s\" style_set=\"whatever\"/> 元素"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr "自行定義的常數必須以大寫字母開始;但“%s”不是"
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "已定義了“%s”常數"
@ -1297,7 +1287,7 @@ msgstr "<%s> 元素內不可出現任何文字"
msgid "<%s> specified twice for this theme"
msgstr "<%s> 指定了這個佈景主題兩次"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "無法佈景主題的有效檔案 %s\n"
@ -1500,6 +1490,190 @@ msgstr "y 的數值是 %d%d是預期中的數值"
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "分析 %d 座標表現需時 %g 秒(平均 %g 秒)\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Hide all normal windows"
msgstr "隱藏所有一般視窗"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move to workspace above"
msgstr "移至上方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move to workspace below"
msgstr "移至下方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move to workspace left"
msgstr "移至左方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move to workspace right"
msgstr "移至右方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace down"
msgstr "將視窗移至下方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "將視窗移至左方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right"
msgstr "將視窗移至右方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "將視窗移至上方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Move window to workspace 1"
msgstr "將視窗移至第 1 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Move window to workspace 2"
msgstr "將視窗移至第 2 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Move window to workspace 3"
msgstr "將視窗移至第 3 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Move window to workspace 4"
msgstr "將視窗移至第 4 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Navigation"
msgstr "導航"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch applications"
msgstr "切換程式"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls"
msgstr "切換系統控制"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Switch system controls directly"
msgstr "直接切換系統控制"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "切換至第 1 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "切換至第 2 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "切換至第 3 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "切換至第 4 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Switch windows directly"
msgstr "直接切換視窗"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Switch windows of an app directly"
msgstr "直接切換程式的視窗"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Switch windows of an application"
msgstr "切換程式的視窗"
#: ../src/50-mutter-system.xml.in.h:1
msgid "Show the activities overview"
msgstr "顯示活動概覽"
#: ../src/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "顯示執行指令提示"
#: ../src/50-mutter-system.xml.in.h:3
msgid "System"
msgstr "系統"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Activate the window menu"
msgstr "使用視窗選單"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Close window"
msgstr "關閉視窗"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Lower window below other windows"
msgstr "遮蔽某個視窗"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Maximize window"
msgstr "視窗最大化"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window horizontally"
msgstr "將視窗橫向最大化"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Maximize window vertically"
msgstr "將視窗縱向最大化"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Minimize window"
msgstr "視窗最小化"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Move window"
msgstr "移動視窗"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Raise window above other windows"
msgstr "令某個視窗覆蓋其它視窗"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Raise window if covered, otherwise lower it"
msgstr "若被其他視窗遮蔽就抬升它,否則將它降下"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "調整視窗大小"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Restore window"
msgstr "還原視窗"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Toggle fullscreen mode"
msgstr "切換全螢幕模式"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Toggle maximization state"
msgstr "切換最大化狀態"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Toggle shaded state"
msgstr "切換視窗捲起/放下狀態"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Toggle window on all workspaces or one"
msgstr "切換視窗顯示在所有工作區或是只顯示於其中之一"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "以逗號分隔的複合視窗外掛程式清單"
#~ msgid ""
#~ "Determines whether hidden windows (i.e., minimized windows and windows on "
#~ "other workspaces than the current one) should be kept alive."
#~ msgstr ""
#~ "決定隱藏的視窗(如最小化的視窗和位於目前以外工作區的視窗)是否保持活動。"
#~ msgid "Live Hidden Windows"
#~ msgstr "活動中的隱藏 Windows"
#~ msgid "Close Window"
#~ msgstr "關閉視窗"

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity 3.3.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-19 23:54+0800\n"
"PO-Revision-Date: 2012-03-19 12:19+0800\n"
"POT-Creation-Date: 2012-07-17 15:17+0800\n"
"PO-Revision-Date: 2012-07-16 11:21+0800\n"
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Taiwan) <zh-l10n@lists.linux.org.tw>\n"
"Language: \n"
@ -19,18 +19,18 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../src/50-mutter-windows.xml.in.h:1
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
msgid "Windows"
msgstr "視窗"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "View split on left"
msgstr "檢視分割於左側"
#: ../src/50-mutter-windows.xml.in.h:2
#: ../src/50-mutter-windows.xml.in.h:3
msgid "View split on right"
msgstr "檢視分割於右側"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Windows"
msgstr "視窗"
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
#. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit
@ -41,7 +41,7 @@ msgid ""
"\"."
msgstr "在畫面「%2$s」中的第 %1$i 個螢幕中已啟動另一個組合視窗管理員。"
#: ../src/core/bell.c:307
#: ../src/core/bell.c:320
msgid "Bell event"
msgstr "響鈴事件"
@ -50,76 +50,76 @@ msgstr "響鈴事件"
msgid "Unknown window information request: %d"
msgstr "未知的視窗資訊要求:%d"
#: ../src/core/delete.c:111
#, c-format
msgid "<tt>%s</tt> is not responding."
msgstr "<tt>%s</tt> 沒有回應。"
#: ../src/core/delete.c:114
#, c-format
msgid "%s is not responding."
msgstr "%s 沒有回應。"
#: ../src/core/delete.c:118
msgid "Application is not responding."
msgstr "應用程式沒有回應。"
#: ../src/core/delete.c:119
#: ../src/core/delete.c:123
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr "您可以選擇稍等一下,或者強制程式立即結束。"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Wait"
msgstr "等待(_W)"
#: ../src/core/delete.c:126
#: ../src/core/delete.c:130
msgid "_Force Quit"
msgstr "強制結束(_F)"
#: ../src/core/display.c:387
#: ../src/core/display.c:380
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "遺失複合視窗管理所需的 %s 延伸功能"
#: ../src/core/display.c:453
#: ../src/core/display.c:446
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "無法開啟 X Window 畫面‘%s\n"
#: ../src/core/keybindings.c:852
#: ../src/core/keybindings.c:844
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
"binding\n"
msgstr "其它程式已經使用了按鍵 %s 加上特殊按鍵 %x 作為按鍵組合\n"
#: ../src/core/main.c:206
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
msgstr "停用到作業階段管理程式的連線"
#: ../src/core/main.c:212
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "取代執行中的視窗管理員"
#: ../src/core/main.c:218
#: ../src/core/main.c:208
msgid "Specify session management ID"
msgstr "指定作業階段管理 ID"
#: ../src/core/main.c:223
#: ../src/core/main.c:213
msgid "X Display to use"
msgstr "使用的 X 畫面"
#: ../src/core/main.c:229
#: ../src/core/main.c:219
msgid "Initialize session from savefile"
msgstr "以 savefile 初始化作業階段"
#: ../src/core/main.c:235
#: ../src/core/main.c:225
msgid "Make X calls synchronous"
msgstr "使用同步方式調用 X 函式"
#: ../src/core/main.c:504
#: ../src/core/main.c:494
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "找不到佈景主題目錄:%s\n"
#: ../src/core/main.c:520
#: ../src/core/main.c:510
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -144,28 +144,28 @@ msgid "Print version"
msgstr "顯示版本"
#: ../src/core/mutter.c:60
msgid "Comma-separated list of compositor plugins"
msgstr "以逗號分隔的複合視窗外掛程式清單"
msgid "Mutter plugin to use"
msgstr "要使用的 Mutter 外掛程式"
#: ../src/core/prefs.c:1077
#: ../src/core/prefs.c:1065
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
msgstr "關閉了對不合規格的程式的支援。某些程式可能無法正常運作。\n"
#: ../src/core/prefs.c:1152
#: ../src/core/prefs.c:1140
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "無法從 GSettings 設定鍵 %2$s 分析字型描述文字「%1$s」\n"
#: ../src/core/prefs.c:1218
#: ../src/core/prefs.c:1206
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
"modifier\n"
msgstr "組態資料庫中的“%s”設定值不是有效的滑鼠按鈕修改功能鍵\n"
#: ../src/core/prefs.c:1739
#: ../src/core/prefs.c:1724
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -173,17 +173,17 @@ msgid ""
msgstr "組態資料庫中的“%s”不是按鍵組合“%s”的有效設定值\n"
# (Abel) take care of the same string in libwnck
#: ../src/core/prefs.c:1836
#: ../src/core/prefs.c:1821
#, c-format
msgid "Workspace %d"
msgstr "工作區 %d"
#: ../src/core/screen.c:730
#: ../src/core/screen.c:652
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "畫面‘%2$s中的第 %1$d 個螢幕無效\n"
#: ../src/core/screen.c:746
#: ../src/core/screen.c:668
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -193,18 +193,18 @@ msgstr ""
"換目前的視窗管理員。\n"
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
#: ../src/core/screen.c:773
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "無法在畫面“%2$s”中的第 %1$d 個螢幕進行視窗管理員選擇程序\n"
#: ../src/core/screen.c:828
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "畫面“%2$s”中的第 %1$d 個螢幕已經有了視窗總管\n"
#: ../src/core/screen.c:1013
#: ../src/core/screen.c:935
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "無法釋放畫面“%2$s”中的第 %1$d 個螢幕\n"
@ -262,44 +262,44 @@ msgid ""
"be restarted manually next time you log in."
msgstr "這些視窗不支援 &quot;儲存目前的設定&quot; ,必須在下次登入後自行啟動。"
#: ../src/core/util.c:111
#: ../src/core/util.c:80
#, c-format
msgid "Failed to open debug log: %s\n"
msgstr "無法開啟偵錯記錄檔:%s\n"
#: ../src/core/util.c:121
#: ../src/core/util.c:90
#, c-format
msgid "Failed to fdopen() log file %s: %s\n"
msgstr "無法 fdopen() 記錄檔 %s%s\n"
#: ../src/core/util.c:127
#: ../src/core/util.c:96
#, c-format
msgid "Opened log file %s\n"
msgstr "已開啟記錄檔 %s\n"
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "編譯 Mutter 時並沒有加入詳細偵錯模式的支援\n"
#: ../src/core/util.c:290
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "視窗管理員:"
#: ../src/core/util.c:438
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "視窗總管出現錯誤:"
#: ../src/core/util.c:471
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "視窗總管警告:"
#: ../src/core/util.c:499
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "視窗總管錯誤:"
#. first time through
#: ../src/core/window.c:7266
#: ../src/core/window.c:7234
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -315,7 +315,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7931
#: ../src/core/window.c:7899
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -324,22 +324,22 @@ msgstr ""
"視窗 %s 設定了 MWM 提示,表示它不可以調整大小,但又將大小下限定為 %d×%d 及將"
"大小上限定為 %d×%d這種做法不符合常理。\n"
#: ../src/core/window-props.c:309
#: ../src/core/window-props.c:310
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "程式設定了多餘的 _NET_WM_PID %lu\n"
#: ../src/core/window-props.c:426
#: ../src/core/window-props.c:429
#, c-format
msgid "%s (on %s)"
msgstr "%s在 %s"
#: ../src/core/window-props.c:1481
#: ../src/core/window-props.c:1484
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "%2$s 指定了無效的 WM_TRANSIENT_FOR 視窗 0x%1$lx。\n"
#: ../src/core/window-props.c:1492
#: ../src/core/window-props.c:1495
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "%2$s 的 WM_TRANSIENT_FOR 視窗 0x%1$lx 會造成迴圈。\n"
@ -375,82 +375,10 @@ msgid "Mutter"
msgstr "Mutter"
#: ../src/org.gnome.mutter.gschema.xml.in.h:1
msgid "Attach modal dialogs"
msgstr "附加模態對話盒"
#: ../src/org.gnome.mutter.gschema.xml.in.h:2
msgid "Cancel tab popup"
msgstr "取消分頁彈出項"
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
msgid ""
"Determines whether hidden windows (i.e., minimized windows and windows on "
"other workspaces than the current one) should be kept alive."
msgstr ""
"決定隱藏的視窗(如最小化的視窗和位於目前以外工作區的視窗)是否保持活動。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:4
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr "決定當視窗輪換時是否使用彈出式和強調框架。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
msgstr "決定工作區切換是否使用於所有螢幕的視窗或只用於主要螢幕的視窗。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr ""
"決定工作區以動態方式管理或是有固定數量的工作區 (以 org.gnome.desktop.wm."
"preferences 中的 num-workspaces 鍵值來決定)。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Draggable border width"
msgstr "可拖曳邊框寬度"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "在螢幕邊緣放下視窗時啟用邊緣拼貼"
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
"area. Dropping windows on the top screen edge maximizes them completely."
msgstr ""
"如果啟用,將視窗拖放到螢幕垂直邊緣時會讓它們垂直最大化並調整水平方向大小覆蓋"
"可用區域的一半。拖放視窗到螢幕頂端邊緣則會讓它們完全最大化。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid "Live Hidden Windows"
msgstr "活動中的隱藏 Windows"
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "Modifier to use for extended window management operations"
msgstr "用於延伸視窗管理操作程序的特殊按鍵"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid "No tab popup"
msgstr "沒有分頁彈出項"
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Select window from tab popup"
msgstr "從分頁彈出項選擇視窗"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value."
msgstr ""
"所有可拖曳邊框的總數。如果布景的可視邊框不夠,會加入隱形邊框來符合這個數值。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
#: ../src/org.gnome.mutter.gschema.xml.in.h:2
msgid ""
"This key will initiate the \"overlay\", which is a combination window "
"overview and application launching system. The default is intended to be the "
@ -461,7 +389,11 @@ msgstr ""
"要成為 PC 硬體上的「Windows key」。預期這個按鍵組含不是預設值就是設定為空字"
"串。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs"
msgstr "附加模態對話盒"
#: ../src/org.gnome.mutter.gschema.xml.in.h:4
msgid ""
"When true, instead of having independent titlebars, modal dialogs appear "
"attached to the titlebar of the parent window and are moved together with "
@ -470,14 +402,71 @@ msgstr ""
"當設為「true」將不會有獨立的標題列模態對話盒會附加在上層視窗的標題列並與"
"上層視窗一起移動。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "在螢幕邊緣放下視窗時啟用邊緣拼貼"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
"area. Dropping windows on the top screen edge maximizes them completely."
msgstr ""
"如果啟用,將視窗拖放到螢幕垂直邊緣時會讓它們垂直最大化並調整水平方向大小覆蓋"
"可用區域的一半。拖放視窗到螢幕頂端邊緣則會讓它們完全最大化。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "工作區以動態方式管理"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr ""
"決定工作區以動態方式管理或是有固定數量的工作區 (以 org.gnome.desktop.wm."
"preferences 中的 num-workspaces 鍵值來決定)。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "只有主要螢幕的工作區"
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
msgstr "決定工作區切換是否使用於所有螢幕的視窗或只用於主要螢幕的視窗。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr "沒有分頁彈出項"
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr "決定當視窗輪換時是否使用彈出式和強調框架。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Draggable border width"
msgstr "可拖曳邊框寬度"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value."
msgstr ""
"所有可拖曳邊框的總數。如果布景的可視邊框不夠,會加入隱形邊框來符合這個數值。"
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Select window from tab popup"
msgstr "從分頁彈出項選擇視窗"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
msgid "Cancel tab popup"
msgstr "取消分頁彈出項"
#: ../src/tools/mutter-message.c:123
#, c-format
msgid "Usage: %s\n"
@ -698,48 +687,48 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:253
#: ../src/ui/theme.c:234
msgid "top"
msgstr "頂"
#: ../src/ui/theme.c:255
#: ../src/ui/theme.c:236
msgid "bottom"
msgstr "底"
#: ../src/ui/theme.c:257
#: ../src/ui/theme.c:238
msgid "left"
msgstr "左"
#: ../src/ui/theme.c:259
#: ../src/ui/theme.c:240
msgid "right"
msgstr "右"
#: ../src/ui/theme.c:286
#: ../src/ui/theme.c:268
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "邊框的位置大小中沒有指定“%s”部分的大小"
#: ../src/ui/theme.c:305
#: ../src/ui/theme.c:287
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr "邊框的位置大小中沒有指定“%2$s”邊框中的“%1$s”部分"
#: ../src/ui/theme.c:342
#: ../src/ui/theme.c:324
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "按鈕的長寬比 %g 不合理"
#: ../src/ui/theme.c:354
#: ../src/ui/theme.c:336
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "邊框的位置大小規格內未有指定按鈕的大小"
#: ../src/ui/theme.c:1067
#: ../src/ui/theme.c:1049
#, c-format
msgid "Gradients should have at least two colors"
msgstr "漸層至少應該有兩種顏色"
#: ../src/ui/theme.c:1219
#: ../src/ui/theme.c:1201
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -748,14 +737,14 @@ msgstr ""
"GTK 自訂顏色規格規定必須有顏色名稱並加上封閉括號,例如 gtk:custom(foo,bar)"
"無法分析「%s」"
#: ../src/ui/theme.c:1235
#: ../src/ui/theme.c:1217
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
"_ are valid"
msgstr "gtk:custom 的 color_name 參數 '%c' 中有無效字元,只能使用 A-Za-z0-9-_ "
#: ../src/ui/theme.c:1249
#: ../src/ui/theme.c:1231
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -763,7 +752,7 @@ msgid ""
msgstr ""
"Gtk:custom 的格式是「gtk:custom(color_name,fallback)」,但「%s」不符合格式"
#: ../src/ui/theme.c:1294
#: ../src/ui/theme.c:1276
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -772,7 +761,7 @@ msgstr ""
"GTK 色彩規格規定必須在狀態外加上方括號,例如 gtk:fg[NORMAL],這裡 NORMAL 表示"
"狀態;無法分析“%s”"
#: ../src/ui/theme.c:1308
#: ../src/ui/theme.c:1290
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -781,148 +770,148 @@ msgstr ""
"GTK 色彩規格規定必須在狀態後加上閉方括號,例如 gtk:fg[NORMAL],這裡 NORMAL 表"
"示狀態;無法分析“%s”"
#: ../src/ui/theme.c:1319
#: ../src/ui/theme.c:1301
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "無法將“%s”理解為色彩規格中的狀態"
#: ../src/ui/theme.c:1332
#: ../src/ui/theme.c:1314
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "無法將“%s”理解為色彩規格中的色彩部分"
#: ../src/ui/theme.c:1361
#: ../src/ui/theme.c:1343
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
"format"
msgstr "指定混色的格式是“blend/背景顏色/前景顏色/透明度”,“%s”不符合規格"
#: ../src/ui/theme.c:1372
#: ../src/ui/theme.c:1354
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "無法理解“%s”作為混色的透明度數值"
#: ../src/ui/theme.c:1382
#: ../src/ui/theme.c:1364
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "混色的透明度數值“%s”不是在 0.0 至 1.0 之間"
#: ../src/ui/theme.c:1429
#: ../src/ui/theme.c:1411
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
msgstr "陰影的格式是“shade/基本顏色/比重”,但“%s”不符合格式"
#: ../src/ui/theme.c:1440
#: ../src/ui/theme.c:1422
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "在陰影顏色中無法將“%s”理解為陰影比重"
#: ../src/ui/theme.c:1450
#: ../src/ui/theme.c:1432
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "在陰影顏色中陰影比重“%s”是負數"
#: ../src/ui/theme.c:1479
#: ../src/ui/theme.c:1461
#, c-format
msgid "Could not parse color \"%s\""
msgstr "無法分析顏色“%s”"
#: ../src/ui/theme.c:1790
#: ../src/ui/theme.c:1778
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "座標表達式中出現不可接受的字元‘%s"
#: ../src/ui/theme.c:1817
#: ../src/ui/theme.c:1805
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
msgstr "座標表達式中出現無法分析的浮點小數‘%s"
#: ../src/ui/theme.c:1831
#: ../src/ui/theme.c:1819
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "座標表達式中出現無法分析的整數‘%s"
#: ../src/ui/theme.c:1953
#: ../src/ui/theme.c:1940
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
"\"%s\""
msgstr "在座標表達式中,以下文字的開始部分含有不明的運算符:“%s”"
#: ../src/ui/theme.c:2010
#: ../src/ui/theme.c:1997
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "座標表達式是空白的或是無法分析"
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "座標表達式中出現被 0 整除的錯誤"
#: ../src/ui/theme.c:2173
#: ../src/ui/theme.c:2162
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr "座標表達式中出現將浮點數使用於餘數運算符 (mod) 的錯誤"
#: ../src/ui/theme.c:2229
#: ../src/ui/theme.c:2218
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr "在座標表達式中,應該有運算子的地方出現了運算符“%s”"
#: ../src/ui/theme.c:2238
#: ../src/ui/theme.c:2227
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "在座標表達式中,應該有運算符的地方出現了運算子"
#: ../src/ui/theme.c:2246
#: ../src/ui/theme.c:2235
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "結束座標表達式的是一個運算符而非運算子"
#: ../src/ui/theme.c:2256
#: ../src/ui/theme.c:2245
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
"operand in between"
msgstr "在座標表達式中,運算符“%c”緊隨運算符“%c”出現但中間沒有任何運算子"
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "座標表達式中出現不明的變數或常數“%s”"
#: ../src/ui/theme.c:2506
#: ../src/ui/theme.c:2495
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "座標表達式分析器令緩衝溢位。"
#: ../src/ui/theme.c:2535
#: ../src/ui/theme.c:2524
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "座標表達式中的閉括號沒有相應的開括號"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2588
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr "座標表達式中的開括號沒有相應的閉括號"
#: ../src/ui/theme.c:2610
#: ../src/ui/theme.c:2599
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "座標表達式中似乎沒有任何運算符或運算子"
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "佈景主題中含有引致錯誤的表達式:%s\n"
#: ../src/ui/theme.c:4533
#: ../src/ui/theme.c:4498
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -931,25 +920,25 @@ msgstr ""
"此邊框款式必須指定 <button function=\"%s\" state=\"%s\" draw_ops=\"whatever"
"\"/>"
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
"缺少了 <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
#: ../src/ui/theme.c:5139
#: ../src/ui/theme.c:5082
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "無法載入佈景主題“%s”%s\n"
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "佈景主題“%s”未指定 <%s>"
#: ../src/ui/theme.c:5311
#: ../src/ui/theme.c:5254
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -958,13 +947,13 @@ msgstr ""
"在佈景主題“%2$s”中視窗類型“%1$s”沒有指定任何邊框款式。請加上 <window type="
"\"%3$s\" style_set=\"whatever\"/> 元素"
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr "自行定義的常數必須以大寫字母開始;但“%s”不是"
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "已定義了“%s”常數"
@ -1334,7 +1323,7 @@ msgstr "<%s> 元素內不可出現任何文字"
msgid "<%s> specified twice for this theme"
msgstr "<%s> 指定了這個佈景主題兩次"
#: ../src/ui/theme-parser.c:4348
#: ../src/ui/theme-parser.c:4334
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "無法佈景主題的有效檔案 %s\n"
@ -1537,6 +1526,190 @@ msgstr "y 的數值是 %d%d是預期中的數值"
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "分析 %d 座標表現需時 %g 秒(平均 %g 秒)\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Hide all normal windows"
msgstr "隱藏所有一般視窗"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move to workspace above"
msgstr "移至上方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move to workspace below"
msgstr "移至下方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move to workspace left"
msgstr "移至左方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move to workspace right"
msgstr "移至右方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace down"
msgstr "將視窗移至下方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "將視窗移至左方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right"
msgstr "將視窗移至右方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "將視窗移至上方的工作區"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Move window to workspace 1"
msgstr "將視窗移至第 1 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Move window to workspace 2"
msgstr "將視窗移至第 2 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Move window to workspace 3"
msgstr "將視窗移至第 3 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Move window to workspace 4"
msgstr "將視窗移至第 4 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Navigation"
msgstr "導航"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch applications"
msgstr "切換程式"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls"
msgstr "切換系統控制"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Switch system controls directly"
msgstr "直接切換系統控制"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "切換至第 1 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "切換至第 2 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "切換至第 3 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "切換至第 4 個工作區"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Switch windows directly"
msgstr "直接切換視窗"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Switch windows of an app directly"
msgstr "直接切換程式的視窗"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Switch windows of an application"
msgstr "切換程式的視窗"
#: ../src/50-mutter-system.xml.in.h:1
msgid "Show the activities overview"
msgstr "顯示活動概覽"
#: ../src/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "顯示執行指令提示"
#: ../src/50-mutter-system.xml.in.h:3
msgid "System"
msgstr "系統"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Activate the window menu"
msgstr "使用視窗選單"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Close window"
msgstr "關閉視窗"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Lower window below other windows"
msgstr "遮蔽某個視窗"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Maximize window"
msgstr "視窗最大化"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window horizontally"
msgstr "將視窗橫向最大化"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Maximize window vertically"
msgstr "將視窗縱向最大化"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Minimize window"
msgstr "視窗最小化"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Move window"
msgstr "移動視窗"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Raise window above other windows"
msgstr "令某個視窗覆蓋其它視窗"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Raise window if covered, otherwise lower it"
msgstr "若被其他視窗遮蔽就抬升它,否則將它降下"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "調整視窗大小"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Restore window"
msgstr "還原視窗"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Toggle fullscreen mode"
msgstr "切換全螢幕模式"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Toggle maximization state"
msgstr "切換最大化狀態"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Toggle shaded state"
msgstr "切換視窗捲起/放下狀態"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Toggle window on all workspaces or one"
msgstr "切換視窗顯示在所有工作區或是只顯示於其中之一"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "以逗號分隔的複合視窗外掛程式清單"
#~ msgid ""
#~ "Determines whether hidden windows (i.e., minimized windows and windows on "
#~ "other workspaces than the current one) should be kept alive."
#~ msgstr ""
#~ "決定隱藏的視窗(如最小化的視窗和位於目前以外工作區的視窗)是否保持活動。"
#~ msgid "Live Hidden Windows"
#~ msgstr "活動中的隱藏 Windows"
#~ msgid "Close Window"
#~ msgstr "關閉視窗"

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
group="system"
_name="Navigation"
wm_name="Mutter"
package="mutter">
<KeyListEntry name="move-to-workspace-1"
_description="Move window to workspace 1" />
<KeyListEntry name="move-to-workspace-2"
_description="Move window to workspace 2" />
<KeyListEntry name="move-to-workspace-3"
_description="Move window to workspace 3" />
<KeyListEntry name="move-to-workspace-4"
_description="Move window to workspace 4" />
<KeyListEntry name="move-to-workspace-left"
_description="Move window one workspace to the left" />
<KeyListEntry name="move-to-workspace-right"
_description="Move window one workspace to the right" />
<KeyListEntry name="move-to-workspace-up"
_description="Move window one workspace up" />
<KeyListEntry name="move-to-workspace-down"
_description="Move window one workspace down" />
<KeyListEntry name="switch-applications"
_description="Switch applications"/>
<KeyListEntry name="switch-windows"
_description="Switch windows"/>
<KeyListEntry name="switch-group"
_description="Switch windows of an application"/>
<KeyListEntry name="switch-panels"
_description="Switch system controls"/>
<KeyListEntry name="cycle-windows"
_description="Switch windows directly"/>
<KeyListEntry name="cycle-group"
_description="Switch windows of an app directly"/>
<KeyListEntry name="cycle-panels"
_description="Switch system controls directly"/>
<KeyListEntry name="show-desktop"
_description="Hide all normal windows"/>
<KeyListEntry name="switch-to-workspace-1"
_description="Switch to workspace 1" />
<KeyListEntry name="switch-to-workspace-2"
_description="Switch to workspace 2" />
<KeyListEntry name="switch-to-workspace-3"
_description="Switch to workspace 3" />
<KeyListEntry name="switch-to-workspace-4"
_description="Switch to workspace 4" />
<KeyListEntry name="switch-to-workspace-left"
_description="Move to workspace left" />
<KeyListEntry name="switch-to-workspace-right"
_description="Move to workspace right" />
<KeyListEntry name="switch-to-workspace-up"
_description="Move to workspace above" />
<KeyListEntry name="switch-to-workspace-down"
_description="Move to workspace below" />
</KeyListEntries>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
group="system"
_name="System"
wm_name="Mutter"
package="mutter">
<KeyListEntry name="panel-run-dialog" _description="Show the run command prompt"/>
<KeyListEntry name="panel-main-menu" _description="Show the activities overview"/>
</KeyListEntries>

View File

@ -1,14 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries schema="org.gnome.mutter.keybindings"
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
group="system"
_name="Windows"
wm_name="Mutter"
package="mutter">
<KeyListEntry name="activate-window-menu" _description="Activate the window menu"/>
<KeyListEntry name="toggle-fullscreen" _description="Toggle fullscreen mode"/>
<KeyListEntry name="toggle-maximized" _description="Toggle maximization state"/>
<KeyListEntry name="maximize" _description="Maximize window"/>
<KeyListEntry name="unmaximize" _description="Restore window"/>
<KeyListEntry name="toggle-shaded" _description="Toggle shaded state"/>
<KeyListEntry name="close" _description="Close window"/>
<KeyListEntry name="minimize" _description="Minimize window"/>
<KeyListEntry name="begin-move" _description="Move window"/>
<KeyListEntry name="begin-resize" _description="Resize window"/>
<KeyListEntry name="toggle-on-all-workspaces"
_description="Toggle window on all workspaces or one"/>
<KeyListEntry name="raise-or-lower" _description="Raise window if covered, otherwise lower it"/>
<KeyListEntry name="raise" _description="Raise window above other windows"/>
<KeyListEntry name="lower" _description="Lower window below other windows"/>
<KeyListEntry name="maximize-vertically" _description="Maximize window vertically"/>
<KeyListEntry name="maximize-horizontally" _description="Maximize window horizontally"/>
<KeyListEntry name="toggle-tiled-left"
schema="org.gnome.mutter.keybindings"
_description="View split on left"/>
<KeyListEntry name="toggle-tiled-right"
schema="org.gnome.mutter.keybindings"
_description="View split on right"/>
</KeyListEntries>

View File

@ -221,8 +221,8 @@ typelib_DATA = Meta-$(api_version).typelib
INTROSPECTION_GIRS = Meta-$(api_version).gir
Meta-$(api_version).gir: libmutter.la
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0
@META_GIR@_PACKAGES = clutter-1.0 gtk+-3.0
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0 Cogl-1.0
@META_GIR@_EXPORT_PACKAGES = libmutter
@META_GIR@_CFLAGS = $(INCLUDES)
@META_GIR@_LIBS = libmutter.la
@META_GIR@_FILES = \
@ -259,6 +259,8 @@ wmproperties_DATA = $(wmproperties_files)
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
xml_in_files = \
50-mutter-navigation.xml.in \
50-mutter-system.xml.in \
50-mutter-windows.xml.in
xml_DATA = $(xml_in_files:.xml.in=.xml)

View File

@ -157,23 +157,26 @@ get_output_window (MetaScreen *screen)
Window output, xroot;
XWindowAttributes attr;
long event_mask;
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
xroot = meta_screen_get_xroot (screen);
event_mask = FocusChangeMask |
ExposureMask |
EnterWindowMask | LeaveWindowMask |
PointerMotionMask |
PropertyChangeMask |
ButtonPressMask | ButtonReleaseMask |
KeyPressMask | KeyReleaseMask;
output = XCompositeGetOverlayWindow (xdisplay, xroot);
XISetMask (mask.mask, XI_KeyPress);
XISetMask (mask.mask, XI_KeyRelease);
XISetMask (mask.mask, XI_ButtonPress);
XISetMask (mask.mask, XI_ButtonRelease);
XISetMask (mask.mask, XI_Enter);
XISetMask (mask.mask, XI_Leave);
XISetMask (mask.mask, XI_FocusIn);
XISetMask (mask.mask, XI_FocusOut);
XISetMask (mask.mask, XI_Motion);
XISelectEvents (xdisplay, output, &mask, 1);
event_mask = ExposureMask | PropertyChangeMask;
if (XGetWindowAttributes (xdisplay, output, &attr))
{
event_mask |= attr.your_event_mask;
}
event_mask |= attr.your_event_mask;
XSelectInput (xdisplay, output, event_mask);
@ -358,14 +361,23 @@ meta_begin_modal_for_plugin (MetaScreen *screen,
if ((options & META_MODAL_POINTER_ALREADY_GRABBED) == 0)
{
result = XGrabPointer (xdpy, grab_window,
False, /* owner_events */
(ButtonPressMask | ButtonReleaseMask |
EnterWindowMask | LeaveWindowMask | PointerMotionMask),
GrabModeAsync, GrabModeAsync,
None, /* confine to */
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
XISetMask (mask.mask, XI_ButtonPress);
XISetMask (mask.mask, XI_ButtonRelease);
XISetMask (mask.mask, XI_Enter);
XISetMask (mask.mask, XI_Leave);
XISetMask (mask.mask, XI_Motion);
result = XIGrabDevice (xdpy,
META_VIRTUAL_CORE_POINTER_ID,
grab_window,
timestamp,
cursor,
timestamp);
XIGrabModeAsync, XIGrabModeAsync,
False, /* owner_events */
&mask);
if (result != Success)
goto fail;
@ -374,10 +386,20 @@ meta_begin_modal_for_plugin (MetaScreen *screen,
if ((options & META_MODAL_KEYBOARD_ALREADY_GRABBED) == 0)
{
result = XGrabKeyboard (xdpy, grab_window,
False, /* owner_events */
GrabModeAsync, GrabModeAsync,
timestamp);
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
XISetMask (mask.mask, XI_KeyPress);
XISetMask (mask.mask, XI_KeyRelease);
result = XIGrabDevice (xdpy,
META_VIRTUAL_CORE_KEYBOARD_ID,
grab_window,
timestamp,
None,
XIGrabModeAsync, XIGrabModeAsync,
False, /* owner_events */
&mask);
if (result != Success)
goto fail;
@ -397,9 +419,9 @@ meta_begin_modal_for_plugin (MetaScreen *screen,
fail:
if (pointer_grabbed)
XUngrabPointer (xdpy, timestamp);
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_POINTER_ID, timestamp);
if (keyboard_grabbed)
XUngrabKeyboard (xdpy, timestamp);
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_KEYBOARD_ID, timestamp);
return FALSE;
}
@ -415,8 +437,8 @@ meta_end_modal_for_plugin (MetaScreen *screen,
g_return_if_fail (compositor->modal_plugin == plugin);
XUngrabPointer (xdpy, timestamp);
XUngrabKeyboard (xdpy, timestamp);
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_POINTER_ID, timestamp);
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_KEYBOARD_ID, timestamp);
display->grab_op = META_GRAB_OP_NONE;
display->grab_window = NULL;
@ -456,8 +478,6 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
Window xroot = meta_screen_get_xroot (screen);
Window xwin;
gint width, height;
XWindowAttributes attr;
long event_mask;
guint n_retries;
guint max_retries;
@ -524,21 +544,29 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
XResizeWindow (xdisplay, xwin, width, height);
event_mask = FocusChangeMask |
ExposureMask |
EnterWindowMask | LeaveWindowMask |
PointerMotionMask |
PropertyChangeMask |
ButtonPressMask | ButtonReleaseMask |
KeyPressMask | KeyReleaseMask |
StructureNotifyMask;
{
long event_mask;
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
XWindowAttributes attr;
if (XGetWindowAttributes (xdisplay, xwin, &attr))
{
event_mask |= attr.your_event_mask;
}
XISetMask (mask.mask, XI_KeyPress);
XISetMask (mask.mask, XI_KeyRelease);
XISetMask (mask.mask, XI_ButtonPress);
XISetMask (mask.mask, XI_ButtonRelease);
XISetMask (mask.mask, XI_Enter);
XISetMask (mask.mask, XI_Leave);
XISetMask (mask.mask, XI_FocusIn);
XISetMask (mask.mask, XI_FocusOut);
XISetMask (mask.mask, XI_Motion);
XISelectEvents (xdisplay, xwin, &mask, 1);
XSelectInput (xdisplay, xwin, event_mask);
event_mask = ExposureMask | PropertyChangeMask | StructureNotifyMask;
if (XGetWindowAttributes (xdisplay, xwin, &attr))
event_mask |= attr.your_event_mask;
XSelectInput (xdisplay, xwin, event_mask);
}
info->window_group = meta_window_group_new (screen);
info->background_actor = meta_background_actor_new_for_screen (screen);
@ -557,9 +585,7 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
clutter_actor_hide (info->hidden_group);
info->plugin_mgr =
meta_plugin_manager_get (screen);
meta_plugin_manager_initialize (info->plugin_mgr);
info->plugin_mgr = meta_plugin_manager_new (screen);
/*
* Delay the creation of the overlay window as long as we can, to avoid
@ -697,18 +723,23 @@ meta_compositor_set_updates (MetaCompositor *compositor,
}
static gboolean
is_grabbed_event (XEvent *event)
is_grabbed_event (MetaDisplay *display,
XEvent *event)
{
switch (event->xany.type)
if (event->type == GenericEvent &&
event->xcookie.extension == display->xinput_opcode)
{
case ButtonPress:
case ButtonRelease:
case EnterNotify:
case LeaveNotify:
case MotionNotify:
case KeyPress:
case KeyRelease:
return TRUE;
XIEvent *xev = (XIEvent *) event->xcookie.data;
switch (xev->evtype)
{
case XI_Motion:
case XI_ButtonPress:
case XI_ButtonRelease:
case XI_KeyPress:
case XI_KeyRelease:
return TRUE;
}
}
return FALSE;
@ -732,7 +763,7 @@ meta_compositor_process_event (MetaCompositor *compositor,
XEvent *event,
MetaWindow *window)
{
if (compositor->modal_plugin && is_grabbed_event (event))
if (compositor->modal_plugin && is_grabbed_event (compositor->display, event))
{
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (compositor->modal_plugin);
@ -817,6 +848,19 @@ meta_compositor_process_event (MetaCompositor *compositor,
return FALSE;
}
gboolean
meta_compositor_filter_keybinding (MetaCompositor *compositor,
MetaScreen *screen,
MetaKeyBinding *binding)
{
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
if (info->plugin_mgr)
return meta_plugin_manager_filter_keybinding (info->plugin_mgr, binding);
return FALSE;
}
void
meta_compositor_show_window (MetaCompositor *compositor,
MetaWindow *window,
@ -871,29 +915,6 @@ meta_compositor_unmaximize_window (MetaCompositor *compositor,
meta_window_actor_unmaximize (window_actor, old_rect, new_rect);
}
void
meta_compositor_update_workspace_geometry (MetaCompositor *compositor,
MetaWorkspace *workspace)
{
#if 0
/* FIXME -- should do away with this function in favour of MetaWorkspace
* signal.
*/
MetaScreen *screen = meta_workspace_get_screen (workspace);
MetaCompScreen *info;
MetaPluginManager *mgr;
DEBUG_TRACE ("meta_compositor_update_workspace_geometry\n");
info = meta_screen_get_compositor_data (screen);
mgr = info->plugin_mgr;
if (!mgr || !workspace)
return;
meta_plugin_manager_update_workspace (mgr, workspace);
#endif
}
void
meta_compositor_switch_workspace (MetaCompositor *compositor,
MetaScreen *screen,

View File

@ -55,7 +55,7 @@ struct _MetaScreenBackground
float texture_width;
float texture_height;
CoglHandle texture;
CoglTexture *texture;
CoglMaterialWrapMode wrap_mode;
guint have_pixmap : 1;
};
@ -63,7 +63,8 @@ struct _MetaScreenBackground
struct _MetaBackgroundActorPrivate
{
MetaScreenBackground *background;
CoglHandle material;
CoglPipeline *pipeline;
cairo_region_t *visible_region;
float dim_factor;
};
@ -140,7 +141,7 @@ update_wrap_mode_of_actor (MetaBackgroundActor *self)
{
MetaBackgroundActorPrivate *priv = self->priv;
cogl_material_set_layer_wrap_mode (priv->material, 0, priv->background->wrap_mode);
cogl_pipeline_set_layer_wrap_mode (priv->pipeline, 0, priv->background->wrap_mode);
}
static void
@ -174,7 +175,7 @@ set_texture_on_actor (MetaBackgroundActor *self)
* the underlying X pixmap is already gone has the tendency to trigger
* X errors inside DRI. For safety, trap errors */
meta_error_trap_push (display);
cogl_material_set_layer (priv->material, 0, priv->background->texture);
cogl_pipeline_set_layer_texture (priv->pipeline, 0, priv->background->texture);
meta_error_trap_pop (display);
clutter_actor_queue_redraw (CLUTTER_ACTOR (self));
@ -210,7 +211,7 @@ set_texture (MetaScreenBackground *background,
update_wrap_mode (background);
}
/* Sets our material to paint with a 1x1 texture of the stage's background
/* Sets our pipeline to paint with a 1x1 texture of the stage's background
* color; doing this when we have no pixmap allows the application to turn
* off painting the stage. There might be a performance benefit to
* painting in this case with a solid color, but the normal solid color
@ -250,11 +251,7 @@ meta_background_actor_dispose (GObject *object)
priv->background = NULL;
}
if (priv->material != COGL_INVALID_HANDLE)
{
cogl_handle_unref (priv->material);
priv->material = COGL_INVALID_HANDLE;
}
g_clear_pointer(&priv->pipeline, cogl_object_unref);
G_OBJECT_CLASS (meta_background_actor_parent_class)->dispose (object);
}
@ -309,13 +306,13 @@ meta_background_actor_paint (ClutterActor *actor)
color_component = (int)(0.5 + opacity * priv->dim_factor);
cogl_material_set_color4ub (priv->material,
cogl_pipeline_set_color4ub (priv->pipeline,
color_component,
color_component,
color_component,
opacity);
cogl_set_source (priv->material);
cogl_set_source (priv->pipeline);
if (priv->visible_region)
{
@ -483,7 +480,8 @@ meta_background_actor_new_for_screen (MetaScreen *screen)
priv->background = meta_screen_background_get (screen);
priv->background->actors = g_slist_prepend (priv->background->actors, self);
priv->material = meta_create_texture_material (NULL);
/* A CoglMaterial and a CoglPipeline are the same thing */
priv->pipeline = (CoglPipeline*) meta_create_texture_material (NULL);
set_texture_on_actor (self);
update_wrap_mode_of_actor (self);
@ -625,3 +623,83 @@ meta_background_actor_screen_size_changed (MetaScreen *screen)
for (l = background->actors; l; l = l->next)
clutter_actor_queue_relayout (l->data);
}
/**
* meta_background_actor_add_glsl_snippet:
* @actor: a #MetaBackgroundActor
* @hook: where to insert the code
* @declarations: GLSL declarations
* @code: GLSL code
* @is_replace: wheter Cogl code should be replaced by the custom shader
*
* Adds a GLSL snippet to the pipeline used for drawing the background.
* See #CoglSnippet for details.
*/
void
meta_background_actor_add_glsl_snippet (MetaBackgroundActor *actor,
MetaSnippetHook hook,
const char *declarations,
const char *code,
gboolean is_replace)
{
MetaBackgroundActorPrivate *priv;
CoglSnippet *snippet;
g_return_if_fail (META_IS_BACKGROUND_ACTOR (actor));
priv = actor->priv;
if (is_replace)
{
snippet = cogl_snippet_new (hook, declarations, NULL);
cogl_snippet_set_replace (snippet, code);
}
else
{
snippet = cogl_snippet_new (hook, declarations, code);
}
if (hook == META_SNIPPET_HOOK_VERTEX ||
hook == META_SNIPPET_HOOK_FRAGMENT)
cogl_pipeline_add_snippet (priv->pipeline, snippet);
else
cogl_pipeline_add_layer_snippet (priv->pipeline, 0, snippet);
cogl_object_unref (snippet);
}
/**
* meta_background_actor_set_uniform_float:
* @actor: a #MetaBackgroundActor
* @uniform_name:
* @n_components: number of components (for vector uniforms)
* @count: number of uniforms (for array uniforms)
* @uniform: (array length=uniform_length): the float values to set
* @uniform_length: the length of @uniform. Must be exactly @n_components x @count,
* and is provided mainly for language bindings.
*
* Sets a new GLSL uniform to the provided value. This is mostly
* useful in congiunction with meta_background_actor_add_glsl_snippet().
*/
void
meta_background_actor_set_uniform_float (MetaBackgroundActor *actor,
const char *uniform_name,
int n_components,
int count,
const float *uniform,
int uniform_length)
{
MetaBackgroundActorPrivate *priv;
g_return_if_fail (META_IS_BACKGROUND_ACTOR (actor));
g_return_if_fail (uniform_length == n_components * count);
priv = actor->priv;
cogl_pipeline_set_uniform_float (priv->pipeline,
cogl_pipeline_get_uniform_location (priv->pipeline,
uniform_name),
n_components, count, uniform);
}

View File

@ -35,34 +35,32 @@
#include <clutter/x11/clutter-x11.h>
static GSList *plugin_types;
/*
* We have one "default plugin manager" that acts for the first screen,
* but also can be used before we open any screens, and additional
* plugin managers for each screen. (This is ugly. Probably we should
* have one plugin manager and only make the plugins per-screen.)
*/
static MetaPluginManager *default_plugin_manager;
static GType plugin_type = G_TYPE_NONE;
struct MetaPluginManager
{
MetaScreen *screen;
GList /* MetaPlugin */ *plugins; /* TODO -- maybe use hash table */
MetaScreen *screen;
MetaPlugin *plugin;
};
void
meta_plugin_manager_set_plugin_type (GType gtype)
{
if (plugin_type != G_TYPE_NONE)
meta_fatal ("Mutter plugin already set: %s", g_type_name (plugin_type));
plugin_type = gtype;
}
/*
* Loads the given plugin.
*/
void
meta_plugin_manager_load (MetaPluginManager *plugin_mgr,
const gchar *plugin_name)
meta_plugin_manager_load (const gchar *plugin_name)
{
const gchar *dpath = MUTTER_PLUGIN_DIR "/";
gchar *path;
MetaModule *module;
GType plugin_type;
if (g_path_is_absolute (plugin_name))
path = g_strdup (plugin_name);
@ -81,162 +79,57 @@ meta_plugin_manager_load (MetaPluginManager *plugin_mgr,
exit (1);
}
plugin_type = meta_module_get_plugin_type (module);
meta_plugin_manager_register (plugin_mgr, plugin_type);
meta_plugin_manager_set_plugin_type (meta_module_get_plugin_type (module));
g_type_module_unuse (G_TYPE_MODULE (module));
g_free (path);
}
/*
* Registers the given plugin type
*/
void
meta_plugin_manager_register (MetaPluginManager *plugin_mgr,
GType plugin_type)
{
MetaPlugin *plugin;
plugin_types = g_slist_prepend (plugin_types, GSIZE_TO_POINTER (plugin_type));
plugin = g_object_new (plugin_type, NULL);
plugin_mgr->plugins = g_list_prepend (plugin_mgr->plugins, plugin);
}
void
meta_plugin_manager_initialize (MetaPluginManager *plugin_mgr)
{
GList *iter;
if (!plugin_mgr->plugins)
{
/*
* If no plugins are specified, load the default plugin.
*/
meta_plugin_manager_load (plugin_mgr, "default");
}
for (iter = plugin_mgr->plugins; iter; iter = iter->next)
{
MetaPlugin *plugin = (MetaPlugin*) iter->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
g_object_set (plugin,
"screen", plugin_mgr->screen,
NULL);
if (klass->start)
klass->start (plugin);
}
}
static MetaPluginManager *
MetaPluginManager *
meta_plugin_manager_new (MetaScreen *screen)
{
MetaPluginManager *plugin_mgr;
MetaPluginClass *klass;
MetaPlugin *plugin;
plugin_mgr = g_new0 (MetaPluginManager, 1);
plugin_mgr->screen = screen;
plugin_mgr->plugin = plugin = g_object_new (plugin_type, "screen", screen, NULL);
if (screen)
g_object_set_data (G_OBJECT (screen), "meta-plugin-manager", plugin_mgr);
klass = META_PLUGIN_GET_CLASS (plugin);
if (klass->start)
klass->start (plugin);
return plugin_mgr;
}
MetaPluginManager *
meta_plugin_manager_get_default (void)
{
if (!default_plugin_manager)
{
default_plugin_manager = meta_plugin_manager_new (NULL);
}
return default_plugin_manager;
}
MetaPluginManager *
meta_plugin_manager_get (MetaScreen *screen)
{
MetaPluginManager *plugin_mgr;
plugin_mgr = g_object_get_data (G_OBJECT (screen), "meta-plugin-manager");
if (plugin_mgr)
return plugin_mgr;
if (!default_plugin_manager)
meta_plugin_manager_get_default ();
if (!default_plugin_manager->screen)
{
/* The default plugin manager is so far unused, we can recycle it */
default_plugin_manager->screen = screen;
g_object_set_data (G_OBJECT (screen), "meta-plugin-manager", default_plugin_manager);
return default_plugin_manager;
}
else
{
GSList *iter;
GType plugin_type;
MetaPlugin *plugin;
plugin_mgr = meta_plugin_manager_new (screen);
for (iter = plugin_types; iter; iter = iter->next)
{
plugin_type = (GType)GPOINTER_TO_SIZE (iter->data);
plugin = g_object_new (plugin_type, "screen", screen, NULL);
plugin_mgr->plugins = g_list_prepend (plugin_mgr->plugins, plugin);
}
return plugin_mgr;
}
}
static void
meta_plugin_manager_kill_window_effects (MetaPluginManager *plugin_mgr,
MetaWindowActor *actor)
{
GList *l = plugin_mgr->plugins;
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
while (l)
{
MetaPlugin *plugin = l->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (!meta_plugin_disabled (plugin)
&& klass->kill_window_effects)
klass->kill_window_effects (plugin, actor);
l = l->next;
}
if (klass->kill_window_effects)
klass->kill_window_effects (plugin, actor);
}
static void
meta_plugin_manager_kill_switch_workspace (MetaPluginManager *plugin_mgr)
{
GList *l = plugin_mgr->plugins;
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
while (l)
{
MetaPlugin *plugin = l->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (!meta_plugin_disabled (plugin)
&& (meta_plugin_features (plugin) & META_PLUGIN_SWITCH_WORKSPACE)
&& klass->kill_switch_workspace)
klass->kill_switch_workspace (plugin);
l = l->next;
}
if (klass->kill_switch_workspace)
klass->kill_switch_workspace (plugin);
}
/*
* Public method that the compositor hooks into for events that require
* no additional parameters.
*
* Returns TRUE if at least one of the plugins handled the event type (i.e.,
* Returns TRUE if the plugin handled the event type (i.e.,
* if the return value is FALSE, there will be no subsequent call to the
* manager completed() callback, and the compositor must ensure that any
* appropriate post-effect cleanup is carried out.
@ -246,60 +139,48 @@ meta_plugin_manager_event_simple (MetaPluginManager *plugin_mgr,
MetaWindowActor *actor,
unsigned long event)
{
GList *l = plugin_mgr->plugins;
gboolean retval = FALSE;
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
MetaDisplay *display = meta_screen_get_display (plugin_mgr->screen);
gboolean retval = FALSE;
if (display->display_opening)
return FALSE;
while (l)
switch (event)
{
MetaPlugin *plugin = l->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (!meta_plugin_disabled (plugin) &&
(meta_plugin_features (plugin) & event))
case META_PLUGIN_MINIMIZE:
if (klass->minimize)
{
retval = TRUE;
meta_plugin_manager_kill_window_effects (plugin_mgr,
actor);
switch (event)
{
case META_PLUGIN_MINIMIZE:
if (klass->minimize)
{
meta_plugin_manager_kill_window_effects (
plugin_mgr,
actor);
_meta_plugin_effect_started (plugin);
klass->minimize (plugin, actor);
}
break;
case META_PLUGIN_MAP:
if (klass->map)
{
meta_plugin_manager_kill_window_effects (
plugin_mgr,
actor);
_meta_plugin_effect_started (plugin);
klass->map (plugin, actor);
}
break;
case META_PLUGIN_DESTROY:
if (klass->destroy)
{
_meta_plugin_effect_started (plugin);
klass->destroy (plugin, actor);
}
break;
default:
g_warning ("Incorrect handler called for event %lu", event);
}
_meta_plugin_effect_started (plugin);
klass->minimize (plugin, actor);
}
break;
case META_PLUGIN_MAP:
if (klass->map)
{
retval = TRUE;
meta_plugin_manager_kill_window_effects (plugin_mgr,
actor);
l = l->next;
_meta_plugin_effect_started (plugin);
klass->map (plugin, actor);
}
break;
case META_PLUGIN_DESTROY:
if (klass->destroy)
{
retval = TRUE;
_meta_plugin_effect_started (plugin);
klass->destroy (plugin, actor);
}
break;
default:
g_warning ("Incorrect handler called for event %lu", event);
}
return retval;
@ -309,7 +190,7 @@ meta_plugin_manager_event_simple (MetaPluginManager *plugin_mgr,
* The public method that the compositor hooks into for maximize and unmaximize
* events.
*
* Returns TRUE if at least one of the plugins handled the event type (i.e.,
* Returns TRUE if the plugin handled the event type (i.e.,
* if the return value is FALSE, there will be no subsequent call to the
* manager completed() callback, and the compositor must ensure that any
* appropriate post-effect cleanup is carried out.
@ -323,57 +204,44 @@ meta_plugin_manager_event_maximize (MetaPluginManager *plugin_mgr,
gint target_width,
gint target_height)
{
GList *l = plugin_mgr->plugins;
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
MetaDisplay *display = meta_screen_get_display (plugin_mgr->screen);
gboolean retval = FALSE;
MetaDisplay *display = meta_screen_get_display (plugin_mgr->screen);
if (display->display_opening)
return FALSE;
while (l)
switch (event)
{
MetaPlugin *plugin = l->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (!meta_plugin_disabled (plugin) &&
(meta_plugin_features (plugin) & event))
case META_PLUGIN_MAXIMIZE:
if (klass->maximize)
{
retval = TRUE;
meta_plugin_manager_kill_window_effects (plugin_mgr,
actor);
switch (event)
{
case META_PLUGIN_MAXIMIZE:
if (klass->maximize)
{
meta_plugin_manager_kill_window_effects (
plugin_mgr,
actor);
_meta_plugin_effect_started (plugin);
klass->maximize (plugin, actor,
target_x, target_y,
target_width, target_height);
}
break;
case META_PLUGIN_UNMAXIMIZE:
if (klass->unmaximize)
{
meta_plugin_manager_kill_window_effects (
plugin_mgr,
actor);
_meta_plugin_effect_started (plugin);
klass->unmaximize (plugin, actor,
target_x, target_y,
target_width, target_height);
}
break;
default:
g_warning ("Incorrect handler called for event %lu", event);
}
_meta_plugin_effect_started (plugin);
klass->maximize (plugin, actor,
target_x, target_y,
target_width, target_height);
}
break;
case META_PLUGIN_UNMAXIMIZE:
if (klass->unmaximize)
{
retval = TRUE;
meta_plugin_manager_kill_window_effects (plugin_mgr,
actor);
l = l->next;
_meta_plugin_effect_started (plugin);
klass->unmaximize (plugin, actor,
target_x, target_y,
target_width, target_height);
}
break;
default:
g_warning ("Incorrect handler called for event %lu", event);
}
return retval;
@ -382,7 +250,7 @@ meta_plugin_manager_event_maximize (MetaPluginManager *plugin_mgr,
/*
* The public method that the compositor hooks into for desktop switching.
*
* Returns TRUE if at least one of the plugins handled the event type (i.e.,
* Returns TRUE if the plugin handled the event type (i.e.,
* if the return value is FALSE, there will be no subsequent call to the
* manager completed() callback, and the compositor must ensure that any
* appropriate post-effect cleanup is carried out.
@ -393,41 +261,43 @@ meta_plugin_manager_switch_workspace (MetaPluginManager *plugin_mgr,
gint to,
MetaMotionDirection direction)
{
GList *l = plugin_mgr->plugins;
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
MetaDisplay *display = meta_screen_get_display (plugin_mgr->screen);
gboolean retval = FALSE;
MetaDisplay *display = meta_screen_get_display (plugin_mgr->screen);
if (display->display_opening)
return FALSE;
while (l)
if (klass->switch_workspace)
{
MetaPlugin *plugin = l->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
retval = TRUE;
meta_plugin_manager_kill_switch_workspace (plugin_mgr);
if (!meta_plugin_disabled (plugin) &&
(meta_plugin_features (plugin) & META_PLUGIN_SWITCH_WORKSPACE))
{
if (klass->switch_workspace)
{
retval = TRUE;
meta_plugin_manager_kill_switch_workspace (plugin_mgr);
_meta_plugin_effect_started (plugin);
klass->switch_workspace (plugin, from, to, direction);
}
}
l = l->next;
_meta_plugin_effect_started (plugin);
klass->switch_workspace (plugin, from, to, direction);
}
return retval;
}
gboolean
meta_plugin_manager_filter_keybinding (MetaPluginManager *plugin_mgr,
MetaKeyBinding *binding)
{
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (klass->keybinding_filter)
return klass->keybinding_filter (plugin, binding);
return FALSE;
}
/*
* The public method that the compositor hooks into for desktop switching.
*
* Returns TRUE if at least one of the plugins handled the event type (i.e.,
* Returns TRUE if the plugin handled the event type (i.e.,
* if the return value is FALSE, there will be no subsequent call to the
* manager completed() callback, and the compositor must ensure that any
* appropriate post-effect cleanup is carried out.
@ -436,49 +306,20 @@ gboolean
meta_plugin_manager_xevent_filter (MetaPluginManager *plugin_mgr,
XEvent *xev)
{
GList *l;
gboolean have_plugin_xevent_func;
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (!plugin_mgr)
return FALSE;
l = plugin_mgr->plugins;
/* We need to make sure that clutter gets certain events, like
* ConfigureNotify on the stage window. If there is a plugin that
* provides an xevent_filter function, then it's the responsibility
* of that plugin to pass events to Clutter. Otherwise, we send the
* event directly to Clutter ourselves.
*
* What happens if there are two plugins with xevent_filter functions
* is undefined; in general, multiple competing plugins are something
* we don't support well or care much about.
*
* FIXME: Really, we should just always handle sending the event to
* clutter if a plugin doesn't report the event as handled by
* returning TRUE, but it doesn't seem worth breaking compatibility
* of the plugin interface right now to achieve this; the way it is
* now works fine in practice.
*/
have_plugin_xevent_func = FALSE;
while (l)
{
MetaPlugin *plugin = l->data;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (klass->xevent_filter)
{
have_plugin_xevent_func = TRUE;
if (klass->xevent_filter (plugin, xev) == TRUE)
return TRUE;
}
l = l->next;
}
if (!have_plugin_xevent_func)
if (klass->xevent_filter)
return klass->xevent_filter (plugin, xev);
else
return clutter_x11_handle_event (xev) != CLUTTER_X11_FILTER_CONTINUE;
return FALSE;
}

View File

@ -46,14 +46,9 @@
*/
typedef struct MetaPluginManager MetaPluginManager;
MetaPluginManager * meta_plugin_manager_get (MetaScreen *screen);
MetaPluginManager * meta_plugin_manager_get_default (void);
MetaPluginManager * meta_plugin_manager_new (MetaScreen *screen);
void meta_plugin_manager_load (MetaPluginManager *mgr,
const gchar *plugin_name);
void meta_plugin_manager_register (MetaPluginManager *mgr,
GType plugin_type);
void meta_plugin_manager_initialize (MetaPluginManager *mgr);
void meta_plugin_manager_load (const gchar *plugin_name);
gboolean meta_plugin_manager_event_simple (MetaPluginManager *mgr,
MetaWindowActor *actor,
@ -66,16 +61,15 @@ gboolean meta_plugin_manager_event_maximize (MetaPluginManager *mgr,
gint target_y,
gint target_width,
gint target_height);
void meta_plugin_manager_update_workspaces (MetaPluginManager *mgr);
void meta_plugin_manager_update_workspace (MetaPluginManager *mgr,
MetaWorkspace *w);
gboolean meta_plugin_manager_switch_workspace (MetaPluginManager *mgr,
gint from,
gint to,
MetaMotionDirection direction);
gboolean meta_plugin_manager_filter_keybinding (MetaPluginManager *mgr,
MetaKeyBinding *binding);
gboolean meta_plugin_manager_xevent_filter (MetaPluginManager *mgr,
XEvent *xev);

View File

@ -44,74 +44,17 @@ enum
{
PROP_0,
PROP_SCREEN,
PROP_FEATURES,
PROP_DISABLED,
PROP_DEBUG_MODE,
};
struct _MetaPluginPrivate
{
MetaScreen *screen;
gulong features;
gint running;
gboolean disabled : 1;
gboolean debug : 1;
};
static void
meta_plugin_set_features (MetaPlugin *plugin)
{
MetaPluginPrivate *priv = plugin->priv;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
priv->features = 0;
/*
* Feature flags: identify events that the plugin can handle; a plugin can
* handle one or more events.
*/
if (klass->minimize)
priv->features |= META_PLUGIN_MINIMIZE;
if (klass->maximize)
priv->features |= META_PLUGIN_MAXIMIZE;
if (klass->unmaximize)
priv->features |= META_PLUGIN_UNMAXIMIZE;
if (klass->map)
priv->features |= META_PLUGIN_MAP;
if (klass->destroy)
priv->features |= META_PLUGIN_DESTROY;
if (klass->switch_workspace)
priv->features |= META_PLUGIN_SWITCH_WORKSPACE;
}
static void
meta_plugin_constructed (GObject *object)
{
meta_plugin_set_features (META_PLUGIN (object));
if (G_OBJECT_CLASS (meta_plugin_parent_class)->constructed)
G_OBJECT_CLASS (meta_plugin_parent_class)->constructed (object);
}
static void
meta_plugin_dispose (GObject *object)
{
G_OBJECT_CLASS (meta_plugin_parent_class)->dispose (object);
}
static void
meta_plugin_finalize (GObject *object)
{
G_OBJECT_CLASS (meta_plugin_parent_class)->finalize (object);
}
static void
meta_plugin_set_property (GObject *object,
guint prop_id,
@ -125,9 +68,6 @@ meta_plugin_set_property (GObject *object,
case PROP_SCREEN:
priv->screen = g_value_get_object (value);
break;
case PROP_DISABLED:
priv->disabled = g_value_get_boolean (value);
break;
case PROP_DEBUG_MODE:
priv->debug = g_value_get_boolean (value);
break;
@ -150,15 +90,9 @@ meta_plugin_get_property (GObject *object,
case PROP_SCREEN:
g_value_set_object (value, priv->screen);
break;
case PROP_DISABLED:
g_value_set_boolean (value, priv->disabled);
break;
case PROP_DEBUG_MODE:
g_value_set_boolean (value, priv->debug);
break;
case PROP_FEATURES:
g_value_set_ulong (value, priv->features);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@ -171,9 +105,6 @@ meta_plugin_class_init (MetaPluginClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->constructed = meta_plugin_constructed;
gobject_class->finalize = meta_plugin_finalize;
gobject_class->dispose = meta_plugin_dispose;
gobject_class->set_property = meta_plugin_set_property;
gobject_class->get_property = meta_plugin_get_property;
@ -185,22 +116,6 @@ meta_plugin_class_init (MetaPluginClass *klass)
META_TYPE_SCREEN,
G_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
PROP_FEATURES,
g_param_spec_ulong ("features",
"Features",
"Plugin Features",
0 , G_MAXULONG, 0,
G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
PROP_DISABLED,
g_param_spec_boolean ("disabled",
"Plugin disabled",
"Plugin disabled",
FALSE,
G_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
PROP_DEBUG_MODE,
g_param_spec_boolean ("debug-mode",
@ -220,22 +135,6 @@ meta_plugin_init (MetaPlugin *self)
self->priv = priv = META_PLUGIN_GET_PRIVATE (self);
}
gulong
meta_plugin_features (MetaPlugin *plugin)
{
MetaPluginPrivate *priv = META_PLUGIN (plugin)->priv;
return priv->features;
}
gboolean
meta_plugin_disabled (MetaPlugin *plugin)
{
MetaPluginPrivate *priv = META_PLUGIN (plugin)->priv;
return priv->disabled;
}
gboolean
meta_plugin_running (MetaPlugin *plugin)
{
@ -396,7 +295,7 @@ meta_plugin_begin_modal (MetaPlugin *plugin,
}
/**
* meta_plugin_end_modal
* meta_plugin_end_modal:
* @plugin: a #MetaPlugin
* @timestamp: the time used for releasing grabs
*
@ -432,19 +331,3 @@ meta_plugin_get_screen (MetaPlugin *plugin)
return priv->screen;
}
/**
* meta_plugin_type_register:
* @plugin_type: a #MetaPlugin type
*
* Register @plugin_type as a compositor plugin type to be used.
* You must call this before calling meta_init().
*/
void
meta_plugin_type_register (GType plugin_type)
{
MetaPluginManager *plugin_manager;
plugin_manager = meta_plugin_manager_get_default ();
meta_plugin_manager_register (plugin_manager, plugin_type);
}

View File

@ -130,7 +130,7 @@ MetaShadowClassInfo default_shadow_classes[] = {
{ "popup-menu", { 1, -1, 0, 1, 128 }, { 1, -1, 0, 1, 128 } },
{ "dropdown-menu", { 1, 10, 0, 1, 128 }, { 1, 10, 0, 1, 128 } },
{ "attached", { 2, 50, 0, 1, 255 }, { 1, 50, 0, 1, 128 } }
{ "attached", { 1, -1, 0, 1, 128 }, { 1, -1, 0, 1, 128 } }
};
G_DEFINE_TYPE (MetaShadowFactory, meta_shadow_factory, G_TYPE_OBJECT);

View File

@ -1,11 +1,13 @@
/*
* shaped texture
*
* An actor to draw a texture clipped to a list of rectangles
* An actor to draw a masked texture.
*
* Authored By Neil Roberts <neil@linux.intel.com>
* and Jasper St. Pierre <jstpierre@mecheye.net>
*
* Copyright (C) 2008 Intel Corporation
* Copyright (C) 2012 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@ -30,13 +32,11 @@
#include <meta/meta-shaped-texture.h>
#include "meta-texture-tower.h"
#include "meta-texture-rectangle.h"
#include <clutter/clutter.h>
#include <cogl/cogl.h>
#include <cogl/cogl-texture-pixmap-x11.h>
#include <gdk/gdk.h> /* for gdk_rectangle_intersect() */
#include <string.h>
static void meta_shaped_texture_dispose (GObject *object);
@ -54,8 +54,6 @@ static void meta_shaped_texture_get_preferred_height (ClutterActor *self,
gfloat *min_height_p,
gfloat *natural_height_p);
static void meta_shaped_texture_dirty_mask (MetaShapedTexture *stex);
static gboolean meta_shaped_texture_get_paint_volume (ClutterActor *self, ClutterPaintVolume *volume);
G_DEFINE_TYPE (MetaShapedTexture, meta_shaped_texture,
@ -75,13 +73,8 @@ struct _MetaShapedTexturePrivate
CoglHandle material_unshaped;
cairo_region_t *clip_region;
cairo_region_t *shape_region;
cairo_region_t *overlay_region;
cairo_path_t *overlay_path;
guint tex_width, tex_height;
guint mask_width, mask_height;
guint create_mipmaps : 1;
};
@ -110,9 +103,6 @@ meta_shaped_texture_init (MetaShapedTexture *self)
priv = self->priv = META_SHAPED_TEXTURE_GET_PRIVATE (self);
priv->shape_region = NULL;
priv->overlay_path = NULL;
priv->overlay_region = NULL;
priv->paint_tower = meta_texture_tower_new ();
priv->texture = COGL_INVALID_HANDLE;
priv->mask_texture = COGL_INVALID_HANDLE;
@ -129,8 +119,6 @@ meta_shaped_texture_dispose (GObject *object)
meta_texture_tower_free (priv->paint_tower);
priv->paint_tower = NULL;
meta_shaped_texture_dirty_mask (self);
if (priv->material != COGL_INVALID_HANDLE)
{
cogl_handle_unref (priv->material);
@ -147,186 +135,12 @@ meta_shaped_texture_dispose (GObject *object)
priv->texture = COGL_INVALID_HANDLE;
}
meta_shaped_texture_set_shape_region (self, NULL);
meta_shaped_texture_set_mask_texture (self, COGL_INVALID_HANDLE);
meta_shaped_texture_set_clip_region (self, NULL);
meta_shaped_texture_set_overlay_path (self, NULL, NULL);
G_OBJECT_CLASS (meta_shaped_texture_parent_class)->dispose (object);
}
static void
meta_shaped_texture_dirty_mask (MetaShapedTexture *stex)
{
MetaShapedTexturePrivate *priv = stex->priv;
if (priv->mask_texture != COGL_INVALID_HANDLE)
{
cogl_handle_unref (priv->mask_texture);
priv->mask_texture = COGL_INVALID_HANDLE;
}
if (priv->material != COGL_INVALID_HANDLE)
cogl_material_set_layer (priv->material, 1, COGL_INVALID_HANDLE);
}
static void
install_overlay_path (MetaShapedTexture *stex,
guchar *mask_data,
int tex_width,
int tex_height,
int stride)
{
MetaShapedTexturePrivate *priv = stex->priv;
int i, n_rects;
cairo_t *cr;
cairo_rectangle_int_t rect;
cairo_surface_t *surface;
if (priv->overlay_region == NULL)
return;
surface = cairo_image_surface_create_for_data (mask_data,
CAIRO_FORMAT_A8,
tex_width,
tex_height,
stride);
cr = cairo_create (surface);
cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
n_rects = cairo_region_num_rectangles (priv->overlay_region);
for (i = 0; i < n_rects; i++)
{
cairo_region_get_rectangle (priv->overlay_region, i, &rect);
cairo_rectangle (cr, rect.x, rect.y, rect.width, rect.height);
}
cairo_fill_preserve (cr);
if (priv->overlay_path == NULL)
{
/* If we have an overlay region but not an overlay path, then we
* just need to clear the rectangles in the overlay region. */
goto out;
}
cairo_clip (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
cairo_set_source_rgba (cr, 1, 1, 1, 1);
cairo_append_path (cr, priv->overlay_path);
cairo_fill (cr);
out:
cairo_destroy (cr);
cairo_surface_destroy (surface);
}
static void
meta_shaped_texture_ensure_mask (MetaShapedTexture *stex)
{
MetaShapedTexturePrivate *priv = stex->priv;
CoglHandle paint_tex;
guint tex_width, tex_height;
paint_tex = priv->texture;
if (paint_tex == COGL_INVALID_HANDLE)
return;
tex_width = cogl_texture_get_width (paint_tex);
tex_height = cogl_texture_get_height (paint_tex);
/* If the mask texture we have was created for a different size then
recreate it */
if (priv->mask_texture != COGL_INVALID_HANDLE
&& (priv->mask_width != tex_width || priv->mask_height != tex_height))
meta_shaped_texture_dirty_mask (stex);
/* If we don't have a mask texture yet then create one */
if (priv->mask_texture == COGL_INVALID_HANDLE)
{
guchar *mask_data;
int i;
int n_rects;
int stride;
GLenum paint_gl_target;
/* If we have no shape region and no (or an empty) overlay region, we
* don't need to create a full mask texture, so quit early. */
if (priv->shape_region == NULL &&
(priv->overlay_region == NULL ||
cairo_region_num_rectangles (priv->overlay_region) == 0))
{
return;
}
stride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, tex_width);
/* Create data for an empty image */
mask_data = g_malloc0 (stride * tex_height);
n_rects = cairo_region_num_rectangles (priv->shape_region);
/* Fill in each rectangle. */
for (i = 0; i < n_rects; i ++)
{
cairo_rectangle_int_t rect;
cairo_region_get_rectangle (priv->shape_region, i, &rect);
gint x1 = rect.x, x2 = x1 + rect.width;
gint y1 = rect.y, y2 = y1 + rect.height;
guchar *p;
/* Clip the rectangle to the size of the texture */
x1 = CLAMP (x1, 0, (gint) tex_width - 1);
x2 = CLAMP (x2, x1, (gint) tex_width);
y1 = CLAMP (y1, 0, (gint) tex_height - 1);
y2 = CLAMP (y2, y1, (gint) tex_height);
/* Fill the rectangle */
for (p = mask_data + y1 * stride + x1;
y1 < y2;
y1++, p += stride)
memset (p, 255, x2 - x1);
}
install_overlay_path (stex, mask_data, tex_width, tex_height, stride);
cogl_texture_get_gl_texture (paint_tex, NULL, &paint_gl_target);
#ifdef GL_TEXTURE_RECTANGLE_ARB
if (paint_gl_target == GL_TEXTURE_RECTANGLE_ARB)
{
priv->mask_texture
= meta_texture_rectangle_new (tex_width, tex_height,
0, /* flags */
/* data format */
COGL_PIXEL_FORMAT_A_8,
/* internal GL format */
GL_ALPHA,
/* internal cogl format */
COGL_PIXEL_FORMAT_A_8,
/* rowstride */
stride,
mask_data);
}
else
#endif /* GL_TEXTURE_RECTANGLE_ARB */
priv->mask_texture = cogl_texture_new_from_data (tex_width, tex_height,
COGL_TEXTURE_NONE,
COGL_PIXEL_FORMAT_A_8,
COGL_PIXEL_FORMAT_ANY,
stride,
mask_data);
g_free (mask_data);
priv->mask_width = tex_width;
priv->mask_height = tex_height;
}
}
static void
meta_shaped_texture_paint (ClutterActor *actor)
{
@ -376,9 +190,9 @@ meta_shaped_texture_paint (ClutterActor *actor)
if (tex_width == 0 || tex_height == 0) /* no contents yet */
return;
if (priv->shape_region == NULL)
if (priv->mask_texture == COGL_INVALID_HANDLE)
{
/* No region means an unclipped shape. Use a single-layer texture. */
/* Use a single-layer texture if we don't have a mask. */
if (priv->material_unshaped == COGL_INVALID_HANDLE)
{
@ -391,8 +205,6 @@ meta_shaped_texture_paint (ClutterActor *actor)
}
else
{
meta_shaped_texture_ensure_mask (stex);
if (priv->material == COGL_INVALID_HANDLE)
{
if (G_UNLIKELY (material_template == COGL_INVALID_HANDLE))
@ -483,7 +295,7 @@ meta_shaped_texture_pick (ClutterActor *actor,
MetaShapedTexturePrivate *priv = stex->priv;
/* If there is no region then use the regular pick */
if (priv->shape_region == NULL)
if (priv->mask_texture == COGL_INVALID_HANDLE)
CLUTTER_ACTOR_CLASS (meta_shaped_texture_parent_class)
->pick (actor, color);
else if (clutter_actor_should_pick_paint (actor))
@ -503,8 +315,6 @@ meta_shaped_texture_pick (ClutterActor *actor,
if (tex_width == 0 || tex_height == 0) /* no contents yet */
return;
meta_shaped_texture_ensure_mask (stex);
cogl_set_source_color4ub (color->red, color->green, color->blue,
color->alpha);
@ -595,8 +405,8 @@ meta_shaped_texture_set_create_mipmaps (MetaShapedTexture *stex,
}
void
meta_shaped_texture_set_shape_region (MetaShapedTexture *stex,
cairo_region_t *region)
meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
CoglHandle mask_texture)
{
MetaShapedTexturePrivate *priv;
@ -604,19 +414,18 @@ meta_shaped_texture_set_shape_region (MetaShapedTexture *stex,
priv = stex->priv;
if (priv->shape_region != NULL)
if (priv->mask_texture != COGL_INVALID_HANDLE)
{
cairo_region_destroy (priv->shape_region);
priv->shape_region = NULL;
cogl_handle_unref (priv->mask_texture);
priv->mask_texture = COGL_INVALID_HANDLE;
}
if (region != NULL)
if (mask_texture != COGL_INVALID_HANDLE)
{
cairo_region_reference (region);
priv->shape_region = region;
priv->mask_texture = mask_texture;
cogl_handle_ref (priv->mask_texture);
}
meta_shaped_texture_dirty_mask (stex);
clutter_actor_queue_redraw (CLUTTER_ACTOR (stex));
}
@ -735,48 +544,6 @@ meta_shaped_texture_get_texture (MetaShapedTexture *stex)
return stex->priv->texture;
}
/**
* meta_shaped_texture_set_overlay_path:
* @stex: a #MetaShapedTexture
* @overlay_region: A region containing the parts of the mask to overlay.
* All rectangles in this region are wiped clear to full transparency,
* and the overlay path is clipped to this region.
* @overlay_path: (transfer full): This path will be painted onto the mask
* texture with a fully opaque source. Due to the lack of refcounting
* in #cairo_path_t, ownership of the path is assumed.
*/
void
meta_shaped_texture_set_overlay_path (MetaShapedTexture *stex,
cairo_region_t *overlay_region,
cairo_path_t *overlay_path)
{
MetaShapedTexturePrivate *priv;
g_return_if_fail (META_IS_SHAPED_TEXTURE (stex));
priv = stex->priv;
if (priv->overlay_region != NULL)
{
cairo_region_destroy (priv->overlay_region);
priv->overlay_region = NULL;
}
if (priv->overlay_path != NULL)
{
cairo_path_destroy (priv->overlay_path);
priv->overlay_path = NULL;
}
cairo_region_reference (overlay_region);
priv->overlay_region = overlay_region;
/* cairo_path_t does not have refcounting. */
priv->overlay_path = overlay_path;
meta_shaped_texture_dirty_mask (stex);
}
/**
* meta_shaped_texture_set_clip_region:
* @stex: a #MetaShapedTexture

View File

@ -5,7 +5,7 @@
*
* Authored By Neil Roberts <neil@linux.intel.com>
*
* Copyright (C) 2011 Intel Corporation
* Copyright (C) 2011, 2012 Intel Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@ -25,94 +25,77 @@
#include <config.h>
#define CLUTTER_ENABLE_EXPERIMENTAL_API
#define COGL_ENABLE_EXPERIMENTAL_API
#include <clutter/clutter.h>
#include "meta-texture-rectangle.h"
#ifdef GL_TEXTURE_RECTANGLE_ARB
static void (* pf_glGetIntegerv) (GLenum pname, GLint *params);
static void (* pf_glTexImage2D) (GLenum target, GLint level,
GLint internalFormat,
GLsizei width, GLsizei height,
GLint border, GLenum format, GLenum type,
const GLvoid *pixels);
static void (* pf_glGenTextures) (GLsizei n, GLuint *textures);
static void (* pf_glDeleteTextures) (GLsizei n, const GLuint *texture);
static void (* pf_glBindTexture) (GLenum target, GLuint texture);
static void
rectangle_texture_destroy_cb (void *user_data)
{
GLuint tex = GPOINTER_TO_UINT (user_data);
pf_glDeleteTextures (1, &tex);
}
#endif /* GL_TEXTURE_RECTANGLE_ARB */
CoglHandle
CoglTexture *
meta_texture_rectangle_new (unsigned int width,
unsigned int height,
CoglTextureFlags flags,
CoglPixelFormat format,
GLenum internal_gl_format,
GLenum internal_format,
CoglPixelFormat internal_format,
unsigned int rowstride,
const guint8 *data)
const guint8 *data,
GError **error)
{
CoglHandle cogl_tex = COGL_INVALID_HANDLE;
ClutterBackend *backend =
clutter_get_default_backend ();
CoglContext *context =
clutter_backend_get_cogl_context (backend);
CoglTextureRectangle *tex_rect;
#ifdef GL_TEXTURE_RECTANGLE_ARB
tex_rect = cogl_texture_rectangle_new_with_size (context,
width, height,
internal_format,
error);
if (tex_rect == NULL)
return NULL;
static CoglUserDataKey user_data_key;
GLint old_binding;
GLuint tex;
if (pf_glGenTextures == NULL)
{
pf_glGetIntegerv = (void *) cogl_get_proc_address ("glGetIntegerv");
pf_glTexImage2D = (void *) cogl_get_proc_address ("glTexImage2D");
pf_glGenTextures = (void *) cogl_get_proc_address ("glGenTextures");
pf_glDeleteTextures = (void *) cogl_get_proc_address ("glDeleteTextures");
pf_glBindTexture = (void *) cogl_get_proc_address ("glBindTexture");
}
pf_glGenTextures (1, &tex);
pf_glGetIntegerv (GL_TEXTURE_BINDING_RECTANGLE_ARB, &old_binding);
pf_glBindTexture (GL_TEXTURE_RECTANGLE_ARB, tex);
pf_glTexImage2D (GL_TEXTURE_RECTANGLE_ARB, 0,
internal_gl_format, width, height,
0, internal_gl_format,
GL_UNSIGNED_BYTE, NULL);
pf_glBindTexture (GL_TEXTURE_RECTANGLE_ARB, old_binding);
cogl_tex = cogl_texture_new_from_foreign (tex,
GL_TEXTURE_RECTANGLE_ARB,
width, height,
0, 0, /* no waste */
internal_format);
/* Cogl won't destroy the GL texture when a foreign texture is used
so we need to destroy it manually. We can set a destroy
notification callback to do this transparently */
cogl_object_set_user_data (cogl_tex,
&user_data_key,
GUINT_TO_POINTER (tex),
rectangle_texture_destroy_cb);
/* Use cogl_texture_set_region instead of uploading the data
directly with GL calls so that we can let Cogl deal with setting
the pixel store parameters and handling format conversion */
if (data)
cogl_texture_set_region (cogl_tex,
0, 0, /* src x/y */
0, 0, /* dst x/y */
width, height, /* dst width/height */
width, height, /* src width/height */
cogl_texture_set_region (COGL_TEXTURE (tex_rect),
0, 0, /* src_x/y */
0, 0, /* dst_x/y */
width, height, /* dst_width/height */
width, height, /* width/height */
format,
rowstride,
data);
#endif /* GL_TEXTURE_RECTANGLE_ARB */
return cogl_tex;
return COGL_TEXTURE (tex_rect);
}
static void
texture_rectangle_check_cb (CoglTexture *sub_texture,
const float *sub_texture_coords,
const float *meta_coords,
void *user_data)
{
gboolean *result = user_data;
if (cogl_is_texture_rectangle (sub_texture))
*result = TRUE;
}
/* Determines if the given texture is using a rectangle texture as its
* primitive texture type. Eventually this function could be replaced
* with cogl_texture_get_type if Cogl makes that public.
*
* http://git.gnome.org/browse/cogl/commit/?h=8012eee31
*/
gboolean
meta_texture_rectangle_check (CoglTexture *texture)
{
gboolean result = FALSE;
cogl_meta_texture_foreach_in_region (COGL_META_TEXTURE (texture),
0.0f, 0.0f, /* tx_1 / ty_1 */
1.0f, 1.0f, /* tx_2 / ty_2 */
COGL_PIPELINE_WRAP_MODE_REPEAT,
COGL_PIPELINE_WRAP_MODE_REPEAT,
texture_rectangle_check_cb,
&result);
return result;
}

View File

@ -30,15 +30,17 @@
G_BEGIN_DECLS
CoglHandle
CoglTexture *
meta_texture_rectangle_new (unsigned int width,
unsigned int height,
CoglTextureFlags flags,
CoglPixelFormat format,
GLenum internal_gl_format,
GLenum internal_format,
CoglPixelFormat internal_format,
unsigned int rowstride,
const guint8 *data);
const guint8 *data,
GError **error);
gboolean
meta_texture_rectangle_check (CoglTexture *texture);
G_END_DECLS

View File

@ -98,18 +98,6 @@ meta_texture_tower_free (MetaTextureTower *tower)
g_slice_free (MetaTextureTower, tower);
}
#ifdef GL_TEXTURE_RECTANGLE_ARB
static gboolean
texture_is_rectangle (CoglHandle texture)
{
GLuint gl_tex;
GLenum gl_target;
cogl_texture_get_gl_texture (texture, &gl_tex, &gl_target);
return gl_target == GL_TEXTURE_RECTANGLE_ARB;
}
#endif /* GL_TEXTURE_RECTANGLE_ARB */
/**
* meta_texture_tower_set_base_texture:
* @tower: a #MetaTextureTower
@ -354,13 +342,11 @@ get_paint_level (int width, int height)
return (int)(0.5 + lambda);
}
#ifdef GL_TEXTURE_RECTANGLE_ARB
static gboolean
is_power_of_two (int x)
{
return (x & (x - 1)) == 0;
}
#endif /* GL_TEXTURE_RECTANGLE_ARB */
static void
texture_tower_create_texture (MetaTextureTower *tower,
@ -368,25 +354,23 @@ texture_tower_create_texture (MetaTextureTower *tower,
int width,
int height)
{
#ifdef GL_TEXTURE_RECTANGLE_ARB
if ((!is_power_of_two (width) || !is_power_of_two (height)) &&
texture_is_rectangle (tower->textures[level - 1]))
meta_texture_rectangle_check (tower->textures[level - 1]))
{
tower->textures[level] =
meta_texture_rectangle_new (width, height,
0, /* flags */
/* data format */
TEXTURE_FORMAT,
/* internal GL format */
GL_RGBA,
/* internal cogl format */
TEXTURE_FORMAT,
/* rowstride */
width * 4,
/* data */
NULL,
/* error */
NULL);
}
else
#endif /* GL_TEXTURE_RECTANGLE_ARB */
{
tower->textures[level] = cogl_texture_new_with_size (width, height,
COGL_TEXTURE_NO_AUTO_MIPMAP,
@ -562,7 +546,7 @@ texture_tower_revalidate_client (MetaTextureTower *tower,
4 * dest_width,
dest_data);
if (dest_height < source_texture_height)
if (dest_texture_height < source_texture_height)
{
g_free (source_tmp1);
g_free (source_tmp2);

View File

@ -13,6 +13,7 @@
#define COGL_ENABLE_EXPERIMENTAL_API
#include <cogl/cogl-texture-pixmap-x11.h>
#include <gdk/gdk.h> /* for gdk_rectangle_union() */
#include <string.h>
#include <meta/display.h>
#include <meta/errors.h>
@ -24,6 +25,8 @@
#include "compositor-private.h"
#include "meta-shadow-factory-private.h"
#include "meta-window-actor-private.h"
#include "meta-texture-rectangle.h"
#include "region-utils.h"
enum {
POSITION_CHANGED,
@ -123,15 +126,10 @@ enum
PROP_META_WINDOW = 1,
PROP_META_SCREEN,
PROP_X_WINDOW,
PROP_X_WINDOW_ATTRIBUTES,
PROP_NO_SHADOW,
PROP_SHADOW_CLASS
};
#define DEFAULT_SHADOW_RADIUS 12
#define DEFAULT_SHADOW_X_OFFSET 0
#define DEFAULT_SHADOW_Y_OFFSET 8
static void meta_window_actor_dispose (GObject *object);
static void meta_window_actor_finalize (GObject *object);
static void meta_window_actor_constructed (GObject *object);
@ -750,70 +748,41 @@ meta_window_actor_has_shadow (MetaWindowActor *self)
* Always put a shadow around windows with a frame - This should override
* the restriction about not putting a shadow around ARGB windows.
*/
if (priv->window)
{
if (meta_window_get_frame (priv->window))
{
meta_verbose ("Window 0x%x has shadow because it has a frame\n",
(guint)priv->xwindow);
return TRUE;
}
}
if (meta_window_get_frame (priv->window))
return TRUE;
/*
* Do not add shadows to ARGB windows; eventually we should generate a
* shadow from the input shape for such windows.
*/
if (priv->argb32 || priv->opacity != 0xff)
{
meta_verbose ("Window 0x%x has no shadow as it is ARGB\n",
(guint)priv->xwindow);
return FALSE;
}
return FALSE;
/*
* Add shadows to override redirect windows (e.g., Gtk menus).
*/
if (priv->window->override_redirect)
{
meta_verbose ("Window 0x%x has shadow because it is override redirect.\n",
(guint)priv->xwindow);
return TRUE;
}
return TRUE;
/*
* Don't put shadow around DND icon windows
*/
if (window_type == META_WINDOW_DND ||
window_type == META_WINDOW_DESKTOP)
{
meta_verbose ("Window 0x%x has no shadow as it is DND or Desktop\n",
(guint)priv->xwindow);
return FALSE;
}
return FALSE;
if (window_type == META_WINDOW_MENU
#if 0
|| window_type == META_WINDOW_DROPDOWN_MENU
#endif
)
{
meta_verbose ("Window 0x%x has shadow as it is a menu\n",
(guint)priv->xwindow);
return TRUE;
}
return TRUE;
#if 0
if (window_type == META_WINDOW_TOOLTIP)
{
meta_verbose ("Window 0x%x has shadow as it is a tooltip\n",
(guint)priv->xwindow);
return TRUE;
}
return TRUE;
#endif
meta_verbose ("Window 0x%x has no shadow as it fell through\n",
(guint)priv->xwindow);
return FALSE;
}
@ -1219,31 +1188,36 @@ meta_window_actor_should_unredirect (MetaWindowActor *self)
MetaWindow *metaWindow = meta_window_actor_get_meta_window (self);
MetaScreen *screen = meta_window_get_screen (metaWindow);
MetaWindowActorPrivate *priv = self->priv;
int screen_width, screen_height;
MetaRectangle window_rect, monitor_rect;
int num_monitors = meta_screen_get_n_monitors (screen);
int i;
if (meta_window_is_override_redirect (metaWindow) && priv->opacity == 0xff && !priv->argb32)
if (!meta_window_is_override_redirect (metaWindow))
return FALSE;
if (priv->opacity != 0xff)
return FALSE;
if (priv->argb32)
return FALSE;
if (metaWindow->has_shape)
return FALSE;
meta_screen_get_size (screen, &screen_width, &screen_height);
meta_window_get_outer_rect (metaWindow, &window_rect);
if (window_rect.x == 0 && window_rect.y == 0 &&
window_rect.width == screen_width && window_rect.height == screen_height)
return TRUE;
for (i = 0; i < num_monitors; i++)
{
int screen_width, screen_height;
MetaRectangle window_rect;
meta_screen_get_size (screen, &screen_width, &screen_height);
meta_window_get_outer_rect (metaWindow, &window_rect);
if (window_rect.x == 0 && window_rect.y == 0 &&
window_rect.width == screen_width && window_rect.height == screen_height)
return TRUE;
else
{
int num_monitors = meta_screen_get_n_monitors (screen);
int i;
MetaRectangle monitor_rect;
for (i = 0; i < num_monitors; i++)
{
meta_screen_get_monitor_geometry (screen , i, &monitor_rect);
if (monitor_rect.x == window_rect.x && monitor_rect.y == window_rect.y &&
monitor_rect.width == window_rect.width && monitor_rect.height == window_rect.height)
return TRUE;
}
}
meta_screen_get_monitor_geometry (screen , i, &monitor_rect);
if (monitor_rect.x == window_rect.x && monitor_rect.y == window_rect.y &&
monitor_rect.width == window_rect.width && monitor_rect.height == window_rect.height)
return TRUE;
}
return FALSE;
@ -1715,7 +1689,7 @@ meta_window_actor_get_obscured_region (MetaWindowActor *self)
#if 0
/* Print out a region; useful for debugging */
static void
dump_region (cairo_region_t *region)
print_region (cairo_region_t *region)
{
int n_rects;
int i;
@ -1733,6 +1707,26 @@ dump_region (cairo_region_t *region)
}
#endif
#if 0
/* Dump a region to a PNG file; useful for debugging */
static void
see_region (cairo_region_t *region,
int width,
int height,
char *filename)
{
cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_A8, width, height);
cairo_t *cr = cairo_create (surface);
gdk_cairo_region (cr, region);
cairo_fill (cr);
cairo_surface_write_to_png (surface, filename);
cairo_destroy (cr);
cairo_surface_destroy (surface);
}
#endif
/**
* meta_window_actor_set_visible_region:
* @self: a #MetaWindowActor
@ -2023,121 +2017,197 @@ meta_window_actor_sync_visibility (MetaWindowActor *self)
}
}
static inline void
set_integral_bounding_rect (cairo_rectangle_int_t *rect,
double x, double y,
double width, double height)
{
rect->x = floor(x);
rect->y = floor(y);
rect->width = ceil(x + width) - rect->x;
rect->height = ceil(y + height) - rect->y;
}
#define TAU (2*M_PI)
static void
update_corners (MetaWindowActor *self,
MetaFrameBorders *borders)
install_corners (MetaWindow *window,
MetaFrameBorders *borders,
cairo_t *cr)
{
MetaWindowActorPrivate *priv = self->priv;
MetaRectangle outer;
cairo_rectangle_int_t corner_rects[4];
cairo_region_t *corner_region;
cairo_path_t *corner_path;
float top_left, top_right, bottom_left, bottom_right;
float x, y;
int x, y;
MetaRectangle outer;
/* need these to build a path */
cairo_t *cr;
cairo_surface_t *surface;
if (!priv->window->frame)
{
meta_shaped_texture_set_overlay_path (META_SHAPED_TEXTURE (priv->actor),
NULL, NULL);
return;
}
meta_window_get_outer_rect (priv->window, &outer);
meta_frame_get_corner_radiuses (priv->window->frame,
meta_frame_get_corner_radiuses (window->frame,
&top_left,
&top_right,
&bottom_left,
&bottom_right);
/* Unfortunately, cairo does not allow us to create a context
* without a surface. Create a 0x0 image surface to "paint to"
* so we can get the path. */
surface = cairo_image_surface_create (CAIRO_FORMAT_A8,
0, 0);
cr = cairo_create (surface);
meta_window_get_outer_rect (window, &outer);
/* top left */
x = borders->invisible.left;
y = borders->invisible.top;
set_integral_bounding_rect (&corner_rects[0],
x, y, top_left, top_left);
cairo_arc (cr,
x + top_left,
y + top_left,
top_left,
0, M_PI*2);
2 * TAU / 4,
3 * TAU / 4);
/* top right */
x = borders->invisible.left + outer.width - top_right;
y = borders->invisible.top;
set_integral_bounding_rect (&corner_rects[1],
x, y, top_right, top_right);
cairo_arc (cr,
x,
y + top_right,
top_right,
0, M_PI*2);
3 * TAU / 4,
4 * TAU / 4);
/* bottom right */
x = borders->invisible.left + outer.width - bottom_right;
y = borders->invisible.top + outer.height - bottom_right;
set_integral_bounding_rect (&corner_rects[2],
x, y, bottom_right, bottom_right);
cairo_arc (cr,
x,
y,
bottom_right,
0, M_PI*2);
0 * TAU / 4,
1 * TAU / 4);
/* bottom left */
x = borders->invisible.left;
y = borders->invisible.top + outer.height - bottom_left;
set_integral_bounding_rect (&corner_rects[3],
x, y, bottom_left, bottom_left);
cairo_arc (cr,
x + bottom_left,
y,
bottom_left,
0, M_PI*2);
1 * TAU / 4,
2 * TAU / 4);
corner_path = cairo_copy_path (cr);
cairo_set_source_rgba (cr, 1, 1, 1, 1);
cairo_fill (cr);
}
static cairo_region_t *
scan_visible_region (guchar *mask_data,
int stride,
cairo_region_t *scan_area)
{
int i, n_rects = cairo_region_num_rectangles (scan_area);
MetaRegionBuilder builder;
meta_region_builder_init (&builder);
for (i = 0; i < n_rects; i++)
{
int x, y;
cairo_rectangle_int_t rect;
cairo_region_get_rectangle (scan_area, i, &rect);
for (y = rect.y; y < (rect.y + rect.height); y++)
{
for (x = rect.x; x < (rect.x + rect.width); x++)
{
int w = x;
while (mask_data[y * stride + w] == 255 && w < (rect.x + rect.width))
w++;
if (w > 0)
{
meta_region_builder_add_rectangle (&builder, x, y, w - x, 1);
x = w;
}
}
}
}
return meta_region_builder_finish (&builder);
}
static void
build_and_scan_frame_mask (MetaWindowActor *self,
MetaFrameBorders *borders,
cairo_rectangle_int_t *client_area,
cairo_region_t *shape_region)
{
MetaWindowActorPrivate *priv = self->priv;
guchar *mask_data;
guint tex_width, tex_height;
CoglHandle paint_tex, mask_texture;
int stride;
cairo_t *cr;
cairo_surface_t *surface;
paint_tex = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor));
if (paint_tex == COGL_INVALID_HANDLE)
return;
tex_width = cogl_texture_get_width (paint_tex);
tex_height = cogl_texture_get_height (paint_tex);
stride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, tex_width);
/* Create data for an empty image */
mask_data = g_malloc0 (stride * tex_height);
surface = cairo_image_surface_create_for_data (mask_data,
CAIRO_FORMAT_A8,
tex_width,
tex_height,
stride);
cr = cairo_create (surface);
gdk_cairo_region (cr, shape_region);
cairo_fill (cr);
if (priv->window->frame != NULL)
{
cairo_region_t *frame_paint_region, *scanned_region;
cairo_rectangle_int_t rect = { 0, 0, tex_width, tex_height };
/* Make sure we don't paint the frame over the client window. */
frame_paint_region = cairo_region_create_rectangle (&rect);
cairo_region_subtract_rectangle (frame_paint_region, client_area);
gdk_cairo_region (cr, frame_paint_region);
cairo_clip (cr);
install_corners (priv->window, borders, cr);
cairo_surface_flush (surface);
scanned_region = scan_visible_region (mask_data, stride, frame_paint_region);
cairo_region_union (shape_region, scanned_region);
cairo_region_destroy (scanned_region);
cairo_region_destroy (frame_paint_region);
}
cairo_surface_destroy (surface);
cairo_destroy (cr);
cairo_surface_destroy (surface);
corner_region = cairo_region_create_rectangles (corner_rects, 4);
if (meta_texture_rectangle_check (paint_tex))
{
mask_texture = meta_texture_rectangle_new (tex_width, tex_height,
COGL_PIXEL_FORMAT_A_8,
COGL_PIXEL_FORMAT_A_8,
stride,
mask_data,
NULL /* error */);
}
else
{
/* Note: we don't allow slicing for this texture because we
* need to use it with multi-texturing which doesn't support
* sliced textures */
mask_texture = cogl_texture_new_from_data (tex_width, tex_height,
COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_A_8,
COGL_PIXEL_FORMAT_ANY,
stride,
mask_data);
}
meta_shaped_texture_set_overlay_path (META_SHAPED_TEXTURE (priv->actor),
corner_region, corner_path);
cairo_region_destroy (corner_region);
meta_shaped_texture_set_mask_texture (META_SHAPED_TEXTURE (priv->actor),
mask_texture);
cogl_handle_unref (mask_texture);
g_free (mask_data);
}
static void
@ -2147,54 +2217,31 @@ check_needs_reshape (MetaWindowActor *self)
MetaScreen *screen = priv->screen;
MetaDisplay *display = meta_screen_get_display (screen);
MetaFrameBorders borders;
cairo_region_t *region;
cairo_region_t *region = NULL;
cairo_rectangle_int_t client_area;
gboolean needs_mask;
if (!priv->needs_reshape)
return;
meta_shaped_texture_set_shape_region (META_SHAPED_TEXTURE (priv->actor), NULL);
meta_window_actor_clear_shape_region (self);
meta_frame_calc_borders (priv->window->frame, &borders);
region = meta_window_get_frame_bounds (priv->window);
if (region != NULL)
{
/* This returns the window's internal frame bounds region,
* so we need to copy it because we modify it below. */
region = cairo_region_copy (region);
}
else
{
/* If we have no region, we have no frame. We have no frame,
* so just use the bounding region instead */
region = cairo_region_copy (priv->bounding_region);
}
client_area.x = borders.total.left;
client_area.y = borders.total.top;
client_area.width = priv->window->rect.width;
client_area.height = priv->window->rect.height;
meta_shaped_texture_set_mask_texture (META_SHAPED_TEXTURE (priv->actor), COGL_INVALID_HANDLE);
meta_window_actor_clear_shape_region (self);
#ifdef HAVE_SHAPE
if (priv->window->has_shape)
{
/* Translate the set of XShape rectangles that we
* get from the X server to a cairo_region. */
Display *xdisplay = meta_display_get_xdisplay (display);
XRectangle *rects;
int n_rects, ordering;
cairo_rectangle_int_t client_area;
client_area.width = priv->window->rect.width;
client_area.height = priv->window->rect.height;
if (priv->window->frame)
{
client_area.x = borders.total.left;
client_area.y = borders.total.top;
}
else
{
client_area.x = 0;
client_area.y = 0;
}
/* Punch out client area. */
cairo_region_subtract_rectangle (region, &client_area);
meta_error_trap_push (display);
rects = XShapeGetRectangles (xdisplay,
@ -2207,28 +2254,45 @@ check_needs_reshape (MetaWindowActor *self)
if (rects)
{
int i;
cairo_rectangle_int_t *cairo_rects = g_new (cairo_rectangle_int_t, n_rects);
for (i = 0; i < n_rects; i ++)
{
cairo_rectangle_int_t rect = { rects[i].x + client_area.x,
rects[i].y + client_area.y,
rects[i].width,
rects[i].height };
cairo_region_union_rectangle (region, &rect);
cairo_rects[i].x = rects[i].x + client_area.x;
cairo_rects[i].y = rects[i].y + client_area.y;
cairo_rects[i].width = rects[i].width;
cairo_rects[i].height = rects[i].height;
}
XFree (rects);
region = cairo_region_create_rectangles (cairo_rects, n_rects);
g_free (cairo_rects);
}
}
#endif
meta_shaped_texture_set_shape_region (META_SHAPED_TEXTURE (priv->actor),
region);
needs_mask = (region != NULL) || (priv->window->frame != NULL);
if (region == NULL)
{
/* If we don't have a shape on the server, that means that
* we have an implicit shape of one rectangle covering the
* entire window. */
region = cairo_region_create_rectangle (&client_area);
}
if (needs_mask)
{
/* This takes the region, generates a mask using GTK+
* and scans the mask looking for all opaque pixels,
* adding it to region.
*/
build_and_scan_frame_mask (self, &borders, &client_area, region);
}
meta_window_actor_update_shape_region (self, region);
cairo_region_destroy (region);
update_corners (self, &borders);
priv->needs_reshape = FALSE;
meta_window_actor_invalidate_shadow (self);
}

View File

@ -26,9 +26,28 @@ struct _MetaWindowGroup
G_DEFINE_TYPE (MetaWindowGroup, meta_window_group, CLUTTER_TYPE_GROUP);
/* We want to find out if the window is "close enough" to
* 1:1 transform. We do that by converting the transformed coordinates
* to 24.8 fixed-point before checking if they look right.
/* This file uses pixel-aligned region computation to determine what
* can be clipped out. This only really works if everything is aligned
* to the pixel grid - not scaled or rotated and at integer offsets.
*
* (This could be relaxed - if we turned off filtering for unscaled
* windows then windows would be, by definition aligned to the pixel
* grid. And for rectangular windows without a shape, the outline that
* we draw for an unrotated window is always a rectangle because we
* don't use antialasing for the window boundary - with or without
* filtering, with or without a scale. But figuring out exactly
* what pixels will be drawn by the graphics system in these cases
* gets tricky, so we just go for the easiest part - no scale,
* and at integer offsets.)
*
* The way we check for pixel-aligned is by looking at the
* transformation into screen space of the allocation box of an actor
* and and checking if the corners are "close enough" to integral
* pixel values.
*/
/* The definition of "close enough" to integral pixel values is
* equality when we convert to 24.8 fixed-point.
*/
static inline int
round_to_fixed (float x)
@ -36,41 +55,24 @@ round_to_fixed (float x)
return roundf (x * 256);
}
/* We can only (easily) apply our logic for figuring out what a window
* obscures if is not transformed. This function does that check and
* as a side effect gets the position of the upper-left corner of the
* actors.
*
* (We actually could handle scaled and non-integrally positioned actors
* too as long as they weren't shaped - no filtering is done at the
* edges so a rectangle stays a rectangle. But the gain from that is
* small, especally since most of our windows are shaped. The simple
* case we handle here is the case that matters when the user is just
* using the desktop normally.)
*
* If we assume that the window group is untransformed (it better not
* be!) then we could also make this determination by checking directly
* if the actor itself is rotated, scaled, or at a non-integral position.
* However, the criterion for "close enough" in that case get trickier,
* since, for example, the allowed rotation depends on the size of
* actor. The approach we take here is to just require everything
* to be within 1/256th of a pixel.
/* This helper function checks if (according to our fixed point precision)
* the vertices @verts form a box of width @widthf and height @heightf
* located at integral coordinates. These coordinates are returned
* in @x_origin and @y_origin.
*/
static gboolean
actor_is_untransformed (ClutterActor *actor,
int *x_origin,
int *y_origin)
vertices_are_untransformed (ClutterVertex *verts,
float widthf,
float heightf,
int *x_origin,
int *y_origin)
{
gfloat widthf, heightf;
int width, height;
ClutterVertex verts[4];
int v0x, v0y, v1x, v1y, v2x, v2y, v3x, v3y;
int x, y;
clutter_actor_get_size (actor, &widthf, &heightf);
width = round_to_fixed (widthf); height = round_to_fixed (heightf);
clutter_actor_get_abs_allocation_vertices (actor, verts);
v0x = round_to_fixed (verts[0].x); v0y = round_to_fixed (verts[0].y);
v1x = round_to_fixed (verts[1].x); v1y = round_to_fixed (verts[1].y);
v2x = round_to_fixed (verts[2].x); v2y = round_to_fixed (verts[2].y);
@ -101,23 +103,118 @@ actor_is_untransformed (ClutterActor *actor,
return TRUE;
}
/* Check if an actor is "untransformed" - which actually means transformed by
* at most a integer-translation. The integer translation, if any, is returned.
*/
static gboolean
actor_is_untransformed (ClutterActor *actor,
int *x_origin,
int *y_origin)
{
gfloat widthf, heightf;
ClutterVertex verts[4];
clutter_actor_get_size (actor, &widthf, &heightf);
clutter_actor_get_abs_allocation_vertices (actor, verts);
return vertices_are_untransformed (verts, widthf, heightf, x_origin, y_origin);
}
/* Help macros to scale from OpenGL <-1,1> coordinates system to
* window coordinates ranging [0,window-size]. Borrowed from clutter-utils.c
*/
#define MTX_GL_SCALE_X(x,w,v1,v2) ((((((x) / (w)) + 1.0f) / 2.0f) * (v1)) + (v2))
#define MTX_GL_SCALE_Y(y,w,v1,v2) ((v1) - (((((y) / (w)) + 1.0f) / 2.0f) * (v1)) + (v2))
/* Check if we're painting the MetaWindowGroup "untransformed". This can
* differ from the result of actor_is_untransformed(window_group) if we're
* inside a clone paint. The integer translation, if any, is returned.
*/
static gboolean
painting_untransformed (MetaWindowGroup *window_group,
int *x_origin,
int *y_origin)
{
CoglMatrix modelview, projection, modelview_projection;
ClutterVertex vertices[4];
int width, height;
float viewport[4];
int i;
cogl_get_modelview_matrix (&modelview);
cogl_get_projection_matrix (&projection);
cogl_matrix_multiply (&modelview_projection,
&projection,
&modelview);
meta_screen_get_size (window_group->screen, &width, &height);
vertices[0].x = 0;
vertices[0].y = 0;
vertices[0].z = 0;
vertices[1].x = width;
vertices[1].y = 0;
vertices[1].z = 0;
vertices[2].x = 0;
vertices[2].y = height;
vertices[2].z = 0;
vertices[3].x = width;
vertices[3].y = height;
vertices[3].z = 0;
cogl_get_viewport (viewport);
for (i = 0; i < 4; i++)
{
float w = 1;
cogl_matrix_transform_point (&modelview_projection, &vertices[i].x, &vertices[i].y, &vertices[i].z, &w);
vertices[i].x = MTX_GL_SCALE_X (vertices[i].x, w,
viewport[2], viewport[0]);
vertices[i].y = MTX_GL_SCALE_Y (vertices[i].y, w,
viewport[3], viewport[1]);
}
return vertices_are_untransformed (vertices, width, height, x_origin, y_origin);
}
static void
meta_window_group_paint (ClutterActor *actor)
{
cairo_region_t *visible_region;
cairo_region_t *unredirected_window_region = NULL;
ClutterActor *stage;
cairo_rectangle_int_t visible_rect, unredirected_rect;
cairo_rectangle_int_t visible_rect;
GList *children, *l;
int paint_x_origin, paint_y_origin;
int actor_x_origin, actor_y_origin;
int paint_x_offset, paint_y_offset;
MetaWindowGroup *window_group = META_WINDOW_GROUP (actor);
MetaCompScreen *info = meta_screen_get_compositor_data (window_group->screen);
if (info->unredirected_window != NULL)
/* Normally we expect an actor to be drawn at it's position on the screen.
* However, if we're inside the paint of a ClutterClone, that won't be the
* case and we need to compensate. We look at the position of the window
* group under the current model-view matrix and the position of the actor.
* If they are both simply integer translations, then we can compensate
* easily, otherwise we give up.
*
* Possible cleanup: work entirely in paint space - we can compute the
* combination of the model-view matrix with the local matrix for each child
* actor and get a total transformation for that actor for how we are
* painting currently, and never worry about how actors are positioned
* on the stage.
*/
if (!painting_untransformed (window_group, &paint_x_origin, &paint_y_origin) ||
!actor_is_untransformed (actor, &actor_x_origin, &actor_y_origin))
{
meta_window_actor_get_shape_bounds (META_WINDOW_ACTOR (info->unredirected_window), &unredirected_rect);
unredirected_window_region = cairo_region_create_rectangle (&unredirected_rect);
CLUTTER_ACTOR_CLASS (meta_window_group_parent_class)->paint (actor);
return;
}
paint_x_offset = paint_x_origin - actor_x_origin;
paint_y_offset = paint_y_origin - actor_y_origin;
/* We walk the list from top to bottom (opposite of painting order),
* and subtract the opaque area of each window out of the visible
* region that we pass to the windows below.
@ -137,14 +234,23 @@ meta_window_group_paint (ClutterActor *actor)
visible_region = cairo_region_create_rectangle (&visible_rect);
if (unredirected_window_region)
cairo_region_subtract (visible_region, unredirected_window_region);
if (info->unredirected_window != NULL)
{
cairo_rectangle_int_t unredirected_rect;
MetaWindow *window = meta_window_actor_get_meta_window (info->unredirected_window);
meta_window_get_outer_rect (window, (MetaRectangle *)&unredirected_rect);
cairo_region_subtract_rectangle (visible_region, &unredirected_rect);
}
for (l = children; l; l = l->next)
{
if (!CLUTTER_ACTOR_IS_VISIBLE (l->data))
continue;
if (l->data == info->unredirected_window)
continue;
/* If an actor has effects applied, then that can change the area
* it paints and the opacity, so we no longer can figure out what
* portion of the actor is obscured and what portion of the screen
@ -172,6 +278,9 @@ meta_window_group_paint (ClutterActor *actor)
if (!actor_is_untransformed (CLUTTER_ACTOR (window_actor), &x, &y))
continue;
x += paint_x_offset;
y += paint_y_offset;
/* Temporarily move to the coordinate system of the actor */
cairo_region_translate (visible_region, - x, - y);
@ -190,15 +299,22 @@ meta_window_group_paint (ClutterActor *actor)
else if (META_IS_BACKGROUND_ACTOR (l->data))
{
MetaBackgroundActor *background_actor = l->data;
int x, y;
if (!actor_is_untransformed (CLUTTER_ACTOR (background_actor), &x, &y))
continue;
x += paint_x_offset;
y += paint_y_offset;
cairo_region_translate (visible_region, - x, - y);
meta_background_actor_set_visible_region (background_actor, visible_region);
cairo_region_translate (visible_region, x, y);
}
}
cairo_region_destroy (visible_region);
if (unredirected_window_region)
cairo_region_destroy (unredirected_window_region);
CLUTTER_ACTOR_CLASS (meta_window_group_parent_class)->paint (actor);
/* Now that we are done painting, unset the visible regions (they will
@ -209,7 +325,6 @@ meta_window_group_paint (ClutterActor *actor)
if (META_IS_WINDOW_ACTOR (l->data))
{
MetaWindowActor *window_actor = l->data;
window_actor = l->data;
meta_window_actor_reset_visible_regions (window_actor);
}
else if (META_IS_BACKGROUND_ACTOR (l->data))

View File

@ -112,8 +112,6 @@ struct _MetaDefaultPluginPrivate
ClutterActor *desktop2;
MetaPluginInfo info;
gboolean debug_mode : 1;
};
/*
@ -182,34 +180,6 @@ meta_default_plugin_get_property (GObject *object,
}
}
static void
start (MetaPlugin *plugin)
{
MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv;
guint destroy_timeout = DESTROY_TIMEOUT;
guint minimize_timeout = MINIMIZE_TIMEOUT;
guint maximize_timeout = MAXIMIZE_TIMEOUT;
guint map_timeout = MAP_TIMEOUT;
guint switch_timeout = SWITCH_TIMEOUT;
if (meta_plugin_debug_mode (plugin))
{
g_debug ("Plugin %s: Entering debug mode.", priv->info.name);
priv->debug_mode = TRUE;
/*
* Double the effect duration to make them easier to observe.
*/
destroy_timeout *= 2;
minimize_timeout *= 2;
maximize_timeout *= 2;
map_timeout *= 2;
switch_timeout *= 2;
}
}
static void
meta_default_plugin_class_init (MetaDefaultPluginClass *klass)
{
@ -221,7 +191,6 @@ meta_default_plugin_class_init (MetaDefaultPluginClass *klass)
gobject_class->set_property = meta_default_plugin_set_property;
gobject_class->get_property = meta_default_plugin_get_property;
plugin_class->start = start;
plugin_class->map = map;
plugin_class->minimize = minimize;
plugin_class->maximize = maximize;

View File

@ -43,34 +43,17 @@
/* Optimium performance seems to be with MAX_CHUNK_RECTANGLES=4; 8 is about 10% slower.
* But using 8 may be more robust to systems with slow malloc(). */
#define MAX_CHUNK_RECTANGLES 8
#define MAX_LEVELS 16
typedef struct
{
/* To merge regions in binary tree order, we need to keep track of
* the regions that we've already merged together at different
* levels of the tree. We fill in an array in the pattern:
*
* |a |
* |b |a |
* |c | |ab |
* |d |c |ab |
* |e | | |abcd|
*/
cairo_region_t *levels[MAX_LEVELS];
int n_levels;
} MetaRegionBuilder;
static void
void
meta_region_builder_init (MetaRegionBuilder *builder)
{
int i;
for (i = 0; i < MAX_LEVELS; i++)
for (i = 0; i < META_REGION_BUILDER_MAX_LEVELS; i++)
builder->levels[i] = NULL;
builder->n_levels = 1;
}
static void
void
meta_region_builder_add_rectangle (MetaRegionBuilder *builder,
int x,
int y,
@ -95,7 +78,7 @@ meta_region_builder_add_rectangle (MetaRegionBuilder *builder,
{
if (builder->levels[i] == NULL)
{
if (i < MAX_LEVELS)
if (i < META_REGION_BUILDER_MAX_LEVELS)
{
builder->levels[i] = builder->levels[i - 1];
builder->levels[i - 1] = NULL;
@ -115,7 +98,7 @@ meta_region_builder_add_rectangle (MetaRegionBuilder *builder,
}
}
static cairo_region_t *
cairo_region_t *
meta_region_builder_finish (MetaRegionBuilder *builder)
{
cairo_region_t *result = NULL;

View File

@ -63,6 +63,32 @@ struct _MetaRegionIterator {
cairo_rectangle_int_t next_rectangle;
};
typedef struct _MetaRegionBuilder MetaRegionBuilder;
#define META_REGION_BUILDER_MAX_LEVELS 16
struct _MetaRegionBuilder {
/* To merge regions in binary tree order, we need to keep track of
* the regions that we've already merged together at different
* levels of the tree. We fill in an array in the pattern:
*
* |a |
* |b |a |
* |c | |ab |
* |d |c |ab |
* |e | | |abcd|
*/
cairo_region_t *levels[META_REGION_BUILDER_MAX_LEVELS];
int n_levels;
};
void meta_region_builder_init (MetaRegionBuilder *builder);
void meta_region_builder_add_rectangle (MetaRegionBuilder *builder,
int x,
int y,
int width,
int height);
cairo_region_t * meta_region_builder_finish (MetaRegionBuilder *builder);
void meta_region_iterator_init (MetaRegionIterator *iter,
cairo_region_t *region);
gboolean meta_region_iterator_at_end (MetaRegionIterator *iter);

View File

@ -23,7 +23,8 @@
*/
/**
* \file bell.c Ring the bell or flash the screen
* SECTION:Bell
* @short_description: Ring the bell or flash the screen
*
* Sometimes, X programs "ring the bell", whatever that means. Mutter lets
* the user configure the bell to be audible or visible (aka visual), and
@ -57,6 +58,10 @@
#endif
/**
* bell_flash_screen:
* @display: The display which owns the screen (rather redundant)
* @screen: The screen to flash
*
* Flashes one entire screen. This is done by making a window the size of the
* whole screen (or reusing the old one, if it's still around), mapping it,
* painting it white and then black, and then unmapping it. We set saveunder so
@ -65,14 +70,12 @@
* Unlike frame flashes, we don't do fullscreen flashes with a timeout; rather,
* we do them in one go, because we don't have to rely on the theme code
* redrawing the frame for us in order to do the flash.
*
* \param display The display which owns the screen (rather redundant)
* \param screen The screen to flash
*
* \bug The way I read it, this appears not to do the flash
*/
/*
* Bug: The way I read it, this appears not to do the flash
* the first time we flash a particular display. Am I wrong?
*
* \bug This appears to destroy our current XSync status.
* Bug: This appears to destroy our current XSync status.
*/
static void
bell_flash_screen (MetaDisplay *display,
@ -137,14 +140,15 @@ bell_flash_screen (MetaDisplay *display,
}
/**
* bell_flash_fullscreen:
* @display: The display the event came in on
* @xkb_ev: The bell event
*
* Flashes one screen, or all screens, in response to a bell event.
* If the event is on a particular window, flash the screen that
* window is on. Otherwise, flash every screen on this display.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param display The display the event came in on
* \param xkb_ev The bell event
*/
#ifdef HAVE_XKB
static void
@ -182,17 +186,21 @@ bell_flash_fullscreen (MetaDisplay *display,
}
/**
* bell_unflash_frame:
* @data: The frame to unflash, cast to a gpointer so it can go into
* a callback function.
*
* Makes a frame be not flashed; this is the timeout half of
* bell_flash_window_frame(). This is done simply by clearing the
* flash flag and queuing a redraw of the frame.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param data The frame to unflash, cast to a gpointer so it can go into
* a callback function.
* \return Always FALSE, so we don't get called again.
*
* \bug This is the parallel to bell_flash_window_frame(), so it should
* Returns: Always FALSE, so we don't get called again.
*/
/*
* Bug: This is the parallel to bell_flash_window_frame(), so it should
* really be called meta_bell_unflash_window_frame().
*/
static gboolean
@ -205,6 +213,9 @@ bell_unflash_frame (gpointer data)
}
/**
* bell_flash_window_frame:
* @window: The window to flash
*
* Makes a frame flash and then return to normal shortly afterwards.
* This is done by setting a flag so that the theme
* code will temporarily draw the frame as focussed if it's unfocussed and
@ -212,8 +223,6 @@ bell_unflash_frame (gpointer data)
* that the flag can be unset and the frame re-redrawn.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param window The window to flash
*/
static void
bell_flash_window_frame (MetaWindow *window)
@ -231,11 +240,12 @@ bell_flash_window_frame (MetaWindow *window)
}
/**
* bell_flash_frame:
* @display: The display the bell event came in on
* @xkb_ev: The bell event we just received
*
* Flashes the frame of the focussed window. If there is no focussed window,
* flashes the screen.
*
* \param display The display the bell event came in on
* \param xkb_ev The bell event we just received
*/
static void
bell_flash_frame (MetaDisplay *display,
@ -261,15 +271,18 @@ bell_flash_frame (MetaDisplay *display,
}
/**
* bell_visual_notify:
* @display: The display the bell event came in on
* @xkb_ev: The bell event we just received
*
* Gives the user some kind of visual bell substitute, in response to a
* bell event. What this is depends on the "visual bell type" pref.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param display The display the bell event came in on
* \param xkb_ev The bell event we just received
*
* \bug This should be merged with meta_bell_notify().
*/
/*
* Bug: This should be merged with meta_bell_notify().
*/
static void
bell_visual_notify (MetaDisplay *display,
@ -407,12 +420,13 @@ meta_bell_shutdown (MetaDisplay *display)
}
/**
* meta_bell_notify_frame_destroy:
* @frame: The frame which is being destroyed
*
* Deals with a frame being destroyed. This is important because if we're
* using a visual bell, we might be flashing the edges of the frame, and
* so we'd have a timeout function waiting ready to un-flash them. If the
* frame's going away, we can tell the timeout not to bother.
*
* \param frame The frame which is being destroyed
*/
void
meta_bell_notify_frame_destroy (MetaFrame *frame)

View File

@ -1,17 +1,5 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/**
* \file bell.h Ring the bell or flash the screen
*
* Sometimes, X programs "ring the bell", whatever that means. Mutter lets
* the user configure the bell to be audible or visible (aka visual), and
* if it's visual it can be configured to be frame-flash or fullscreen-flash.
* We never get told about audible bells; X handles them just fine by itself.
*
* The visual bell was the result of a discussion in Bugzilla here:
* <http://bugzilla.gnome.org/show_bug.cgi?id=99886>.
*/
/*
* Copyright (C) 2002 Sun Microsystems Inc.
*

View File

@ -625,7 +625,6 @@ meta_rectangle_get_minimal_spanning_set_for_region (
*temp_rect = *basic_rect;
ret = g_list_prepend (NULL, temp_rect);
strut_iter = all_struts;
for (strut_iter = all_struts; strut_iter; strut_iter = strut_iter->next)
{
GList *rect_iter;

View File

@ -119,6 +119,7 @@ typedef struct
MetaRectangle orig;
MetaRectangle current;
MetaFrameBorders *borders;
gboolean must_free_borders;
ActionType action_type;
gboolean is_user_action;
@ -337,7 +338,7 @@ meta_window_constrain (MetaWindow *window,
* not gobject-style--gobject would be more pain than it's worth) or
* smart pointers would be so much nicer here. *shrug*
*/
if (!orig_borders)
if (info.must_free_borders)
g_free (info.borders);
}
@ -358,9 +359,15 @@ setup_constraint_info (ConstraintInfo *info,
/* Create a fake frame geometry if none really exists */
if (orig_borders && !window->fullscreen)
info->borders = orig_borders;
{
info->borders = orig_borders;
info->must_free_borders = FALSE;
}
else
info->borders = g_new0 (MetaFrameBorders, 1);
{
info->borders = g_new0 (MetaFrameBorders, 1);
info->must_free_borders = TRUE;
}
if (flags & META_IS_MOVE_ACTION && flags & META_IS_RESIZE_ACTION)
info->action_type = ACTION_MOVE_AND_RESIZE;
@ -564,6 +571,11 @@ place_window_if_needed(MetaWindow *window,
.083 * info->work_area_monitor.height;
}
/* idle_move_resize() uses the user_rect, so make sure it uses the
* placed coordinates (bug #556696).
*/
window->user_rect = info->current;
if (window->maximize_horizontally_after_placement ||
window->maximize_vertically_after_placement)
meta_window_maximize_internal (window,
@ -757,21 +769,12 @@ constrain_modal_dialog (MetaWindow *window,
return TRUE;
x = parent->rect.x + (parent->rect.width / 2 - info->current.width / 2);
y = 0;
y = parent->rect.y + (parent->rect.height / 2 - info->current.height / 2);
if (parent->frame)
{
MetaFrameBorders borders;
x += parent->frame->rect.x;
y += parent->frame->rect.y;
meta_frame_calc_borders (parent->frame, &borders);
y += borders.total.top;
y += info->borders->visible.top;
}
else
y = parent->rect.y + info->borders->visible.top;
constraint_already_satisfied = (x == info->current.x) && (y == info->current.y);

View File

@ -108,13 +108,12 @@ delete_ping_timeout_func (MetaDisplay *display,
/* Translators: %s is a window title */
if (window_title)
tmp = g_markup_printf_escaped (_("<tt>%s</tt> is not responding."),
window_title);
tmp = g_strdup_printf (_("“%s” is not responding."), window_title);
else
tmp = g_strdup (_("Application is not responding."));
window_content = g_strdup_printf (
"<big><b>%s</b></big>\n\n<i>%s</i>",
"<big><b>%s</b></big>\n\n%s",
tmp,
_("You may choose to wait a short while for it to "
"continue or force the application to quit entirely."));
@ -123,7 +122,8 @@ delete_ping_timeout_func (MetaDisplay *display,
meta_show_dialog ("--question",
window_content, NULL,
window->screen->screen_name,
_("_Wait"), _("_Force Quit"), window->xwindow,
_("_Wait"), _("_Force Quit"),
"face-sad-symbolic", window->xwindow,
NULL, NULL);
g_free (window_content);

View File

@ -172,6 +172,9 @@ struct _MetaDisplay
/* Pings which we're waiting for a reply from */
GSList *pending_pings;
/* Pending focus change */
guint focus_timeout_id;
/* Pending autoraise */
guint autoraise_timeout_id;
MetaWindow* autoraise_window;
@ -208,6 +211,7 @@ struct _MetaDisplay
GList* grab_old_window_stacking;
MetaEdgeResistanceData *grab_edge_resistance_data;
unsigned int grab_last_user_action_was_snap;
guint32 grab_timestamp;
/* we use property updates as sentinels for certain window focus events
* to avoid some race conditions on EnterNotify events
@ -280,7 +284,10 @@ struct _MetaDisplay
int damage_error_base;
int xfixes_event_base;
int xfixes_error_base;
int xinput_error_base;
int xinput_event_base;
int xinput_opcode;
#ifdef HAVE_STARTUP_NOTIFICATION
SnDisplay *sn_display;
#endif
@ -378,7 +385,6 @@ Cursor meta_display_create_x_cursor (MetaDisplay *display,
void meta_display_set_grab_op_cursor (MetaDisplay *display,
MetaScreen *screen,
MetaGrabOp op,
gboolean change_pointer,
Window grab_xwindow,
guint32 timestamp);
@ -426,6 +432,7 @@ int meta_resize_gravity_from_grab_op (MetaGrabOp op);
gboolean meta_grab_op_is_moving (MetaGrabOp op);
gboolean meta_grab_op_is_resizing (MetaGrabOp op);
gboolean meta_grab_op_is_mouse (MetaGrabOp op);
void meta_display_devirtualize_modifiers (MetaDisplay *display,
MetaVirtualModifier modifiers,

File diff suppressed because it is too large Load Diff

View File

@ -66,9 +66,9 @@ gboolean meta_window_grab_all_keys (MetaWindow *window,
guint32 timestamp);
void meta_window_ungrab_all_keys (MetaWindow *window,
guint32 timestamp);
gboolean meta_display_process_key_event (MetaDisplay *display,
MetaWindow *window,
XEvent *event);
gboolean meta_display_process_key_event (MetaDisplay *display,
MetaWindow *window,
XIDeviceEvent *event);
void meta_set_keybindings_disabled (gboolean setting);
void meta_display_process_mapping_event (MetaDisplay *display,
XEvent *event);

File diff suppressed because it is too large Load Diff

View File

@ -23,18 +23,19 @@
*/
/**
* \file
* Program startup.
* SECTION:main
* @short_description: Program startup.
*
* Functions which parse the command-line arguments, create the display,
* kick everything off and then close down Mutter when it's time to go.
*/
/**
* \mainpage
*
*
*
* Mutter - a boring window manager for the adult in you
*
* Many window managers are like Marshmallow Froot Loops; Mutter
* is like Cheerios.
* is like Frosted Flakes: it's still plain old corn, but dusted
* with some sugar.
*
* The best way to get a handle on how the whole system fits together
* is discussed in doc/code-overview.txt; if you're looking for functions
@ -59,7 +60,7 @@
#include <stdlib.h>
#include <sys/types.h>
#include <wait.h>
#include <sys/wait.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
@ -77,12 +78,12 @@
#include <girepository.h>
#endif
/**
/*
* The exit code we'll return to our parent process when we eventually die.
*/
static MetaExitCode meta_exit_code = META_EXIT_SUCCESS;
/**
/*
* Handle on the main loop, so that we have an easy way of shutting Mutter
* down.
*/
@ -92,14 +93,15 @@ static void prefs_changed_callback (MetaPreference pref,
gpointer data);
/**
* log_handler:
* @log_domain: the domain the error occurred in (we ignore this)
* @log_level: the log level so that we can filter out less
* important messages
* @message: the message to log
* @user_data: arbitrary data (we ignore this)
*
* Prints log messages. If Mutter was compiled with backtrace support,
* also prints a backtrace (see meta_print_backtrace()).
*
* \param log_domain the domain the error occurred in (we ignore this)
* \param log_level the log level so that we can filter out less
* important messages
* \param message the message to log
* \param user_data arbitrary data (we ignore this)
*/
static void
log_handler (const gchar *log_domain,
@ -108,14 +110,15 @@ log_handler (const gchar *log_domain,
gpointer user_data)
{
meta_warning ("Log level %d: %s\n", log_level, message);
meta_print_backtrace ();
}
/**
* meta_print_compilation_info:
*
* Prints a list of which configure script options were used to
* build this copy of Mutter. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose).
* (see meta_set_verbose()).
*/
static void
meta_print_compilation_info (void)
@ -125,21 +128,6 @@ meta_print_compilation_info (void)
#else
meta_verbose ("Compiled without shape extension\n");
#endif
#ifdef HAVE_XINERAMA
meta_topic (META_DEBUG_XINERAMA, "Compiled with Xinerama extension\n");
#else
meta_topic (META_DEBUG_XINERAMA, "Compiled without Xinerama extension\n");
#endif
#ifdef HAVE_XFREE_XINERAMA
meta_topic (META_DEBUG_XINERAMA, " (using XFree86 Xinerama)\n");
#else
meta_topic (META_DEBUG_XINERAMA, " (not using XFree86 Xinerama)\n");
#endif
#ifdef HAVE_SOLARIS_XINERAMA
meta_topic (META_DEBUG_XINERAMA, " (using Solaris Xinerama)\n");
#else
meta_topic (META_DEBUG_XINERAMA, " (not using Solaris Xinerama)\n");
#endif
#ifdef HAVE_XSYNC
meta_verbose ("Compiled with sync extension\n");
#else
@ -158,12 +146,14 @@ meta_print_compilation_info (void)
}
/**
* meta_print_self_identity:
*
* Prints the version number, the current timestamp (not the
* build date), the locale, the character encoding, and a list
* of configure script options that were used to build this
* copy of Mutter. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose).
* (see meta_set_verbose()).
*/
static void
meta_print_self_identity (void)
@ -188,7 +178,7 @@ meta_print_self_identity (void)
meta_print_compilation_info ();
}
/**
/*
* The set of possible options that can be set on Mutter's
* command line.
*/
@ -207,7 +197,7 @@ static GOptionEntry meta_options[] = {
NULL
},
{
"replace", 0, 0, G_OPTION_ARG_NONE,
"replace", 'r', 0, G_OPTION_ARG_NONE,
&opt_replace_wm,
N_("Replace the running window manager"),
NULL
@ -311,9 +301,11 @@ static GSourceFuncs event_funcs = {
static void
meta_clutter_init (void)
{
clutter_x11_enable_xinput ();
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
clutter_x11_disable_event_retrieval ();
if (CLUTTER_INIT_SUCCESS == clutter_init (NULL, NULL))
{
GSource *source = g_source_new (&event_funcs, sizeof (GSource));
@ -327,10 +319,12 @@ meta_clutter_init (void)
}
/**
* meta_select_display:
*
* Selects which display Mutter should use. It first tries to use
* display_name as the display. If display_name is NULL then
* @display_name as the display. If @display_name is %NULL then
* try to use the environment variable MUTTER_DISPLAY. If that
* also is NULL, use the default - :0.0
* also is %NULL, use the default - :0.0
*/
static void
meta_select_display (gchar *display_name)
@ -381,7 +375,7 @@ on_sigterm (void)
* meta_init: (skip)
*
* Initialize mutter. Call this after meta_get_option_context() and
* meta_plugin_type_register(), and before meta_run().
* meta_plugin_manager_set_plugin_type(), and before meta_run().
*/
void
meta_init (void)
@ -389,8 +383,6 @@ meta_init (void)
struct sigaction act;
sigset_t empty_mask;
GIOChannel *channel;
g_type_init ();
sigemptyset (&empty_mask);
act.sa_handler = SIG_IGN;
@ -560,13 +552,14 @@ meta_run (void)
}
/**
* meta_quit:
* @code: The success or failure code to return to the calling process.
*
* Stops Mutter. This tells the event loop to stop processing; it is
* rather dangerous to use this because this will leave the user with
* no window manager. We generally do this only if, for example, the
* session manager asks us to; we assume the session manager knows
* what it's talking about.
*
* \param code The success or failure code to return to the calling process.
*/
void
meta_quit (MetaExitCode code)
@ -579,13 +572,14 @@ meta_quit (MetaExitCode code)
}
/**
* prefs_changed_callback:
* @pref Which preference has changed
* @data Arbitrary data (which we ignore)
*
* Called on pref changes. (One of several functions of its kind and purpose.)
*
* \bug Why are these particular prefs handled in main.c and not others?
* Should they be?
*
* \param pref Which preference has changed
* \param data Arbitrary data (which we ignore)
* FIXME: Why are these particular prefs handled in main.c and not others?
* Should they be?
*/
static void
prefs_changed_callback (MetaPreference pref,

View File

@ -45,7 +45,7 @@ print_version (const gchar *option_name,
exit (0);
}
static gchar *mutter_plugins;
static gchar *plugin = "default";
GOptionEntry mutter_options[] = {
{
@ -55,10 +55,10 @@ GOptionEntry mutter_options[] = {
NULL
},
{
"mutter-plugins", 0, 0, G_OPTION_ARG_STRING,
&mutter_plugins,
N_("Comma-separated list of compositor plugins"),
"PLUGINS"
"mutter-plugin", 0, 0, G_OPTION_ARG_STRING,
&plugin,
N_("Mutter plugin to use"),
"PLUGIN",
},
{ NULL }
};
@ -77,20 +77,8 @@ main (int argc, char **argv)
exit (1);
}
if (mutter_plugins)
{
MetaPluginManager *mgr;
char **plugins = g_strsplit (mutter_plugins, ",", -1);
char **plugin;
mgr = meta_plugin_manager_get_default ();
for (plugin = plugins; *plugin; plugin++)
{
g_strstrip (*plugin);
meta_plugin_manager_load (mgr, *plugin);
}
g_strfreev (plugins);
}
if (plugin)
meta_plugin_manager_load (plugin);
meta_init ();
return meta_run ();

View File

@ -105,7 +105,7 @@ find_next_cascade (MetaWindow *window,
int window_width, window_height;
int cascade_stage;
MetaRectangle work_area;
const MetaMonitorInfo* current;
int current;
sorted = g_list_copy (windows);
sorted = g_list_sort (sorted, northwestcmp);
@ -137,7 +137,7 @@ find_next_cascade (MetaWindow *window,
*/
current = meta_screen_get_current_monitor (window->screen);
meta_window_get_work_area_for_monitor (window, current->number, &work_area);
meta_window_get_work_area_for_monitor (window, current, &work_area);
cascade_x = MAX (0, work_area.x);
cascade_y = MAX (0, work_area.y);
@ -815,7 +815,7 @@ meta_window_place (MetaWindow *window,
int w, h;
/* Warning, this function is a round trip! */
xi = meta_screen_get_current_monitor (window->screen);
xi = meta_screen_get_current_monitor_info (window->screen);
w = xi->rect.width;
h = xi->rect.height;
@ -860,7 +860,7 @@ meta_window_place (MetaWindow *window,
}
/* Warning, this is a round trip! */
xi = meta_screen_get_current_monitor (window->screen);
xi = meta_screen_get_current_monitor_info (window->screen);
/* "Origin" placement algorithm */
x = xi->rect.x;

View File

@ -53,7 +53,6 @@
#define KEY_GNOME_CURSOR_SIZE "cursor-size"
#define KEY_OVERLAY_KEY "overlay-key"
#define KEY_LIVE_HIDDEN_WINDOWS "live-hidden-windows"
#define KEY_WORKSPACES_ONLY_ON_PRIMARY "workspaces-only-on-primary"
#define KEY_NO_TAB_POPUP "no-tab-popup"
@ -73,6 +72,7 @@ static GHashTable *settings_schemas;
static gboolean use_system_font = FALSE;
static PangoFontDescription *titlebar_font = NULL;
static MetaVirtualModifier mouse_button_mods = Mod1Mask;
static MetaKeyCombo overlay_key_combo = { 0, 0, 0 };
static GDesktopFocusMode focus_mode = G_DESKTOP_FOCUS_MODE_CLICK;
static GDesktopFocusNewWindows focus_new_windows = G_DESKTOP_FOCUS_NEW_WINDOWS_SMART;
static gboolean raise_on_click = TRUE;
@ -87,6 +87,7 @@ static gboolean application_based = FALSE;
static gboolean disable_workarounds = FALSE;
static gboolean auto_raise = FALSE;
static gboolean auto_raise_delay = 500;
static gboolean focus_change_on_pointer_rest = FALSE;
static gboolean bell_is_visible = FALSE;
static gboolean bell_is_audible = TRUE;
static gboolean gnome_accessibility = FALSE;
@ -97,6 +98,7 @@ static int draggable_border_width = 10;
static gboolean resize_with_right_button = FALSE;
static gboolean edge_tiling = FALSE;
static gboolean force_fullscreen = TRUE;
static gboolean ignore_request_hide_titlebar = FALSE;
static GDesktopVisualBellType visual_bell_type = G_DESKTOP_VISUAL_BELL_FULLSCREEN_FLASH;
static MetaButtonLayout button_layout;
@ -104,7 +106,6 @@ static MetaButtonLayout button_layout;
/* NULL-terminated array */
static char **workspace_names = NULL;
static gboolean live_hidden_windows = FALSE;
static gboolean workspaces_only_on_primary = FALSE;
static gboolean no_tab_popup = FALSE;
@ -133,6 +134,7 @@ static gboolean titlebar_handler (GVariant*, gpointer*, gpointer);
static gboolean theme_name_handler (GVariant*, gpointer*, gpointer);
static gboolean mouse_button_mods_handler (GVariant*, gpointer*, gpointer);
static gboolean button_layout_handler (GVariant*, gpointer*, gpointer);
static gboolean overlay_key_handler (GVariant*, gpointer*, gpointer);
static void do_override (char *key, char *schema);
@ -165,36 +167,30 @@ typedef struct
gboolean *target;
} MetaBoolPreference;
/**
* MetaStringPreference:
* @handler: (allow-none): A handler. Many of the string preferences
* aren't stored as strings and need parsing; others of them have
* default values which can't be solved in the general case. If you
* include a function pointer here, it will be called instead of writing
* the string value out to the target variable.
* The function will be passed to g_settings_get_mapped() and should
* return %TRUE if the mapping was successful and %FALSE otherwise.
* In the former case the function is expected to handle the result
* of the conversion itself and call queue_changed() appropriately;
* in particular the @result (out) parameter as returned by
* g_settings_get_mapped() will be ignored in all cases.
* This may be %NULL. If it is, see "target", below.
* @target: (allow-none): Where to write the incoming string.
* This must be %NULL if the handler is non-%NULL.
* If the incoming string is %NULL, no change will be made.
*/
typedef struct
{
MetaBasePreference base;
/**
* A handler. Many of the string preferences aren't stored as
* strings and need parsing; others of them have default values
* which can't be solved in the general case. If you include a
* function pointer here, it will be called instead of writing
* the string value out to the target variable.
*
* The function will be passed to g_settings_get_mapped() and should
* return %TRUE if the mapping was successful and %FALSE otherwise.
* In the former case the function is expected to handle the result
* of the conversion itself and call queue_changed() appropriately;
* in particular the @result (out) parameter as returned by
* g_settings_get_mapped() will be ignored in all cases.
*
* This may be NULL. If it is, see "target", below.
*/
GSettingsGetMapping handler;
/**
* Where to write the incoming string.
*
* This must be NULL if the handler is non-NULL.
* If the incoming string is NULL, no change will be made.
*/
gchar **target;
} MetaStringPreference;
typedef struct
@ -309,6 +305,13 @@ static MetaBoolPreference preferences_bool[] =
},
&auto_raise,
},
{
{ "focus-change-on-pointer-rest",
SCHEMA_MUTTER,
META_PREF_FOCUS_CHANGE_ON_POINTER_REST,
},
&focus_change_on_pointer_rest
},
{
{ "visual-bell",
SCHEMA_GENERAL,
@ -351,13 +354,6 @@ static MetaBoolPreference preferences_bool[] =
},
&edge_tiling,
},
{
{ KEY_LIVE_HIDDEN_WINDOWS,
SCHEMA_MUTTER,
META_PREF_LIVE_HIDDEN_WINDOWS,
},
&live_hidden_windows,
},
{
{ "workspaces-only-on-primary",
SCHEMA_MUTTER,
@ -417,6 +413,14 @@ static MetaStringPreference preferences_string[] =
NULL,
&cursor_theme,
},
{
{ "overlay-key",
SCHEMA_MUTTER,
META_PREF_KEYBINDINGS,
},
overlay_key_handler,
NULL,
},
{ { NULL, 0, 0 }, NULL },
};
@ -692,13 +696,13 @@ handle_preference_update_int (GSettings *settings,
*/
void
meta_prefs_add_listener (MetaPrefsChangedFunc func,
gpointer data)
gpointer user_data)
{
MetaPrefsListener *l;
l = g_new (MetaPrefsListener, 1);
l->func = func;
l->data = data;
l->data = user_data;
listeners = g_list_prepend (listeners, l);
}
@ -709,7 +713,7 @@ meta_prefs_add_listener (MetaPrefsChangedFunc func,
*/
void
meta_prefs_remove_listener (MetaPrefsChangedFunc func,
gpointer data)
gpointer user_data)
{
GList *tmp;
@ -719,7 +723,7 @@ meta_prefs_remove_listener (MetaPrefsChangedFunc func,
MetaPrefsListener *l = tmp->data;
if (l->func == func &&
l->data == data)
l->data == user_data)
{
g_free (l);
listeners = g_list_delete_link (listeners, tmp);
@ -931,9 +935,9 @@ do_override (char *key,
/**
* meta_prefs_override_preference_schema
* meta_prefs_override_preference_schema:
* @key: the preference name
* @schema: new schema for preference %key
* @schema: new schema for preference @key
*
* Specify a schema whose keys are used to override the standard Metacity
* keys. This might be used if a plugin expected a different value for
@ -1034,10 +1038,6 @@ settings_changed (GSettings *settings,
else
handle_preference_update_string (settings, key);
}
else if (g_str_equal (key, KEY_OVERLAY_KEY))
{
queue_changed (META_PREF_KEYBINDINGS);
}
else
{
/* Someone added a preference of an unhandled type */
@ -1062,6 +1062,8 @@ bindings_changed (GSettings *settings,
}
/**
* maybe_give_disable_workaround_warning:
*
* Special case: give a warning the first time disable_workarounds
* is turned on.
*/
@ -1491,6 +1493,39 @@ button_layout_handler (GVariant *value,
return TRUE;
}
static gboolean
overlay_key_handler (GVariant *value,
gpointer *result,
gpointer data)
{
MetaKeyCombo combo;
const gchar *string_value;
*result = NULL; /* ignored */
string_value = g_variant_get_string (value, NULL);
if (string_value && meta_ui_parse_accelerator (string_value, &combo.keysym,
&combo.keycode,
&combo.modifiers))
;
else
{
meta_topic (META_DEBUG_KEYBINDINGS,
"Failed to parse value for overlay-key\n");
return FALSE;
}
if (overlay_key_combo.keysym != combo.keysym ||
overlay_key_combo.keycode != combo.keycode ||
overlay_key_combo.modifiers != combo.modifiers)
{
overlay_key_combo = combo;
queue_changed (META_PREF_KEYBINDINGS);
}
return TRUE;
}
const PangoFontDescription*
meta_prefs_get_titlebar_font (void)
{
@ -1581,6 +1616,9 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_AUTO_RAISE_DELAY:
return "AUTO_RAISE_DELAY";
case META_PREF_FOCUS_CHANGE_ON_POINTER_REST:
return "FOCUS_CHANGE_ON_POINTER_REST";
case META_PREF_BUTTON_LAYOUT:
return "BUTTON_LAYOUT";
@ -1617,9 +1655,6 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_FORCE_FULLSCREEN:
return "FORCE_FULLSCREEN";
case META_PREF_LIVE_HIDDEN_WINDOWS:
return "LIVE_HIDDEN_WINDOWS";
case META_PREF_WORKSPACES_ONLY_ON_PRIMARY:
return "WORKSPACES_ONLY_ON_PRIMARY";
@ -1652,8 +1687,6 @@ meta_prefs_set_num_workspaces (int n_workspaces)
static GHashTable *key_bindings;
static MetaKeyCombo overlay_key_combo = { 0, 0, 0 };
static void
meta_key_pref_free (MetaKeyPref *pref)
{
@ -1665,37 +1698,22 @@ meta_key_pref_free (MetaKeyPref *pref)
g_free (pref);
}
/* These bindings are for modifiers alone, so they need special handling */
static void
init_special_bindings (void)
{
char *val;
/* Default values for bindings which are global, but take special handling */
meta_ui_parse_accelerator ("Super_L", &overlay_key_combo.keysym,
&overlay_key_combo.keycode,
&overlay_key_combo.modifiers);
val = g_settings_get_string (SETTINGS (SCHEMA_MUTTER), KEY_OVERLAY_KEY);
if (val && meta_ui_parse_accelerator (val, &overlay_key_combo.keysym,
&overlay_key_combo.keycode,
&overlay_key_combo.modifiers))
;
else
{
meta_topic (META_DEBUG_KEYBINDINGS,
"Failed to parse value for overlay_key\n");
}
g_free (val);
}
static void
init_bindings (void)
{
MetaKeyPref *pref;
key_bindings = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
(GDestroyNotify)meta_key_pref_free);
init_special_bindings ();
pref = g_new0 (MetaKeyPref, 1);
pref->name = g_strdup ("overlay-key");
pref->action = META_KEYBINDING_ACTION_OVERLAY_KEY;
pref->bindings = g_slist_prepend (pref->bindings, &overlay_key_combo);
pref->builtin = 1;
g_hash_table_insert (key_bindings, g_strdup ("overlay-key"), pref);
}
static void
@ -2004,7 +2022,8 @@ meta_prefs_remove_keybinding (const char *name)
/**
* meta_prefs_get_keybindings:
* Return: (element-type MetaKeyPref) (transfer container):
*
* Returns: (element-type MetaKeyPref) (transfer container):
*/
GList *
meta_prefs_get_keybindings ()
@ -2048,6 +2067,12 @@ meta_prefs_get_auto_raise_delay (void)
return auto_raise_delay;
}
gboolean
meta_prefs_get_focus_change_on_pointer_rest ()
{
return focus_change_on_pointer_rest;
}
gboolean
meta_prefs_get_gnome_accessibility ()
{
@ -2112,13 +2137,13 @@ meta_prefs_get_window_binding (const char *name,
g_assert_not_reached ();
}
guint
gint
meta_prefs_get_mouse_button_resize (void)
{
return resize_with_right_button ? 3: 2;
}
guint
gint
meta_prefs_get_mouse_button_menu (void)
{
return resize_with_right_button ? 2: 3;
@ -2130,27 +2155,6 @@ meta_prefs_get_force_fullscreen (void)
return force_fullscreen;
}
gboolean
meta_prefs_get_live_hidden_windows (void)
{
#if 0
return live_hidden_windows;
#else
return TRUE;
#endif
}
void
meta_prefs_set_live_hidden_windows (gboolean whether)
{
MetaBasePreference *pref;
find_pref (preferences_bool, sizeof(MetaBoolPreference),
KEY_LIVE_HIDDEN_WINDOWS, &pref);
g_settings_set_boolean (SETTINGS (pref->schema), KEY_LIVE_HIDDEN_WINDOWS,
whether);
}
gboolean
meta_prefs_get_workspaces_only_on_primary (void)
{
@ -2185,3 +2189,15 @@ meta_prefs_set_force_fullscreen (gboolean whether)
{
force_fullscreen = whether;
}
gboolean
meta_prefs_get_ignore_request_hide_titlebar (void)
{
return ignore_request_hide_titlebar;
}
void
meta_prefs_set_ignore_request_hide_titlebar (gboolean whether)
{
ignore_request_hide_titlebar = whether;
}

View File

@ -156,8 +156,6 @@ void meta_screen_manage_all_windows (MetaScreen *scree
void meta_screen_foreach_window (MetaScreen *screen,
MetaScreenWindowFunc func,
gpointer data);
void meta_screen_queue_frame_redraws (MetaScreen *screen);
void meta_screen_queue_window_resizes (MetaScreen *screen);
void meta_screen_set_cursor (MetaScreen *screen,
MetaCursor cursor);
@ -186,7 +184,7 @@ void meta_screen_tile_preview_hide (MetaScreen *screen);
MetaWindow* meta_screen_get_mouse_window (MetaScreen *screen,
MetaWindow *not_this_one);
const MetaMonitorInfo* meta_screen_get_current_monitor (MetaScreen *screen);
const MetaMonitorInfo* meta_screen_get_current_monitor_info (MetaScreen *screen);
const MetaMonitorInfo* meta_screen_get_monitor_for_rect (MetaScreen *screen,
MetaRectangle *rect);
const MetaMonitorInfo* meta_screen_get_monitor_for_window (MetaScreen *screen,

View File

@ -41,12 +41,8 @@
#include <meta/compositor.h>
#include "mutter-enum-types.h"
#ifdef HAVE_SOLARIS_XINERAMA
#include <X11/extensions/xinerama.h>
#endif
#ifdef HAVE_XFREE_XINERAMA
#include <X11/extensions/Xinerama.h>
#endif
#ifdef HAVE_RANDR
#include <X11/extensions/Xrandr.h>
#endif
@ -83,7 +79,6 @@ enum
enum
{
RESTACKED,
TOGGLE_RECORDING,
WORKSPACE_ADDED,
WORKSPACE_REMOVED,
WORKSPACE_SWITCHED,
@ -230,14 +225,6 @@ meta_screen_class_init (MetaScreenClass *klass)
NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_POINTER);
screen_signals[TOGGLE_RECORDING] =
g_signal_new ("toggle-recording",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
0,
NULL, NULL, NULL,
G_TYPE_NONE, 0);
screen_signals[WORKAREAS_CHANGED] =
g_signal_new ("workareas-changed",
G_TYPE_FROM_CLASS (object_class),
@ -324,13 +311,20 @@ set_wm_icon_size_hint (MetaScreen *screen)
#define N_VALS 6
gulong vals[N_VALS];
/* We've bumped the real icon size up to 96x96, but
* we really should not add these sorts of constraints
* on clients still using the legacy WM_HINTS interface.
*/
#define LEGACY_ICON_SIZE 32
/* min width, min height, max w, max h, width inc, height inc */
vals[0] = META_ICON_WIDTH;
vals[1] = META_ICON_HEIGHT;
vals[2] = META_ICON_WIDTH;
vals[3] = META_ICON_HEIGHT;
vals[0] = LEGACY_ICON_SIZE;
vals[1] = LEGACY_ICON_SIZE;
vals[2] = LEGACY_ICON_SIZE;
vals[3] = LEGACY_ICON_SIZE;
vals[4] = 0;
vals[5] = 0;
#undef LEGACY_ICON_SIZE
XChangeProperty (screen->display->xdisplay, screen->xroot,
screen->display->atom_WM_ICON_SIZE,
@ -487,7 +481,6 @@ reload_monitor_infos (MetaScreen *screen)
screen->monitor_infos[1].rect.width = screen->rect.width / 2;
}
#ifdef HAVE_XFREE_XINERAMA
if (screen->n_monitor_infos == 0 &&
XineramaIsActive (display->xdisplay))
{
@ -557,74 +550,10 @@ reload_monitor_infos (MetaScreen *screen)
else if (screen->n_monitor_infos > 0)
{
meta_topic (META_DEBUG_XINERAMA,
"No XFree86 Xinerama extension or XFree86 Xinerama inactive on display %s\n",
"No Xinerama extension or Xinerama inactive on display %s\n",
display->name);
}
#else
meta_topic (META_DEBUG_XINERAMA,
"Mutter compiled without XFree86 Xinerama support\n");
#endif /* HAVE_XFREE_XINERAMA */
#ifdef HAVE_SOLARIS_XINERAMA
/* This code from GDK, Copyright (C) 2002 Sun Microsystems */
if (screen->n_monitor_infos == 0 &&
XineramaGetState (screen->display->xdisplay,
screen->number))
{
XRectangle monitors[MAXFRAMEBUFFERS];
unsigned char hints[16];
int result;
int n_monitors;
int i;
n_monitors = 0;
result = XineramaGetInfo (screen->display->xdisplay,
screen->number,
monitors, hints,
&n_monitors);
/* Yes I know it should be Success but the current implementation
* returns the num of monitor
*/
if (result > 0)
{
g_assert (n_monitors > 0);
screen->monitor_infos = g_new0 (MetaMonitorInfo, n_monitors);
screen->n_monitor_infos = n_monitors;
i = 0;
while (i < n_monitors)
{
screen->monitor_infos[i].number = i;
screen->monitor_infos[i].rect.x = monitors[i].x;
screen->monitor_infos[i].rect.y = monitors[i].y;
screen->monitor_infos[i].rect.width = monitors[i].width;
screen->monitor_infos[i].rect.height = monitors[i].height;
meta_topic (META_DEBUG_XINERAMA,
"Monitor %d is %d,%d %d x %d\n",
screen->monitor_infos[i].number,
screen->monitor_infos[i].rect.x,
screen->monitor_infos[i].rect.y,
screen->monitor_infos[i].rect.width,
screen->monitor_infos[i].rect.height);
++i;
}
}
}
else if (screen->n_monitor_infos == 0)
{
meta_topic (META_DEBUG_XINERAMA,
"No Solaris Xinerama extension or Solaris Xinerama inactive on display %s\n",
display->name);
}
#else
meta_topic (META_DEBUG_XINERAMA,
"Mutter compiled without Solaris Xinerama support\n");
#endif /* HAVE_SOLARIS_XINERAMA */
/* If no Xinerama, fill in the single screen info so
* we can use the field unconditionally
*/
@ -699,7 +628,6 @@ meta_screen_new (MetaDisplay *display,
MetaScreen *screen;
Window xroot;
Display *xdisplay;
XWindowAttributes attr;
Window new_wm_sn_owner;
Window current_wm_sn_owner;
gboolean replace_current_wm;
@ -814,15 +742,29 @@ meta_screen_new (MetaDisplay *display,
/* We need to or with the existing event mask since
* gtk+ may be interested in other events.
*/
XGetWindowAttributes (xdisplay, xroot, &attr);
XSelectInput (xdisplay,
xroot,
SubstructureRedirectMask | SubstructureNotifyMask |
ColormapChangeMask | PropertyChangeMask |
LeaveWindowMask | EnterWindowMask |
KeyPressMask | KeyReleaseMask |
FocusChangeMask | StructureNotifyMask |
ExposureMask | attr.your_event_mask);
{
long event_mask;
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
XWindowAttributes attr;
XISetMask (mask.mask, XI_KeyPress);
XISetMask (mask.mask, XI_KeyRelease);
XISetMask (mask.mask, XI_Enter);
XISetMask (mask.mask, XI_Leave);
XISetMask (mask.mask, XI_FocusIn);
XISetMask (mask.mask, XI_FocusOut);
XISetMask (mask.mask, XI_Motion);
XISelectEvents (xdisplay, xroot, &mask, 1);
event_mask = (SubstructureRedirectMask | SubstructureNotifyMask |
StructureNotifyMask | ColormapChangeMask | PropertyChangeMask);
if (XGetWindowAttributes (xdisplay, xroot, &attr))
event_mask |= attr.your_event_mask;
XSelectInput (xdisplay, xroot, event_mask);
}
if (meta_error_trap_pop_with_return (display) != Success)
{
meta_warning (_("Screen %d on display \"%s\" already has a window manager\n"),
@ -1294,31 +1236,6 @@ meta_screen_foreach_window (MetaScreen *screen,
g_slist_free (winlist);
}
static void
queue_draw (MetaScreen *screen, MetaWindow *window, gpointer data)
{
if (window->frame)
meta_frame_queue_draw (window->frame);
}
void
meta_screen_queue_frame_redraws (MetaScreen *screen)
{
meta_screen_foreach_window (screen, queue_draw, NULL);
}
static void
queue_resize (MetaScreen *screen, MetaWindow *window, gpointer data)
{
meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
}
void
meta_screen_queue_window_resizes (MetaScreen *screen)
{
meta_screen_foreach_window (screen, queue_resize, NULL);
}
int
meta_screen_get_n_workspaces (MetaScreen *screen)
{
@ -1567,7 +1484,30 @@ update_num_workspaces (MetaScreen *screen,
MetaWorkspace *last_remaining;
gboolean need_change_space;
new_num = meta_prefs_get_num_workspaces ();
if (meta_prefs_get_dynamic_workspaces ())
{
int n_items;
gulong *list;
n_items = 0;
list = NULL;
if (meta_prop_get_cardinal_list (screen->display, screen->xroot,
screen->display->atom__NET_NUMBER_OF_DESKTOPS,
&list, &n_items))
{
new_num = list[0];
meta_XFree (list);
}
else
{
new_num = 1;
}
}
else
{
new_num = meta_prefs_get_num_workspaces ();
}
g_assert (new_num > 0);
@ -2157,7 +2097,7 @@ meta_screen_get_natural_monitor_list (MetaScreen *screen,
visited[i] = FALSE;
}
current = meta_screen_get_current_monitor (screen);
current = meta_screen_get_current_monitor_info (screen);
monitor_queue = g_queue_new ();
g_queue_push_tail (monitor_queue, (gpointer) current);
visited[current->number] = TRUE;
@ -2224,10 +2164,26 @@ meta_screen_get_natural_monitor_list (MetaScreen *screen,
}
const MetaMonitorInfo*
meta_screen_get_current_monitor_info (MetaScreen *screen)
{
int monitor_index;
monitor_index = meta_screen_get_current_monitor (screen);
return &screen->monitor_infos[monitor_index];
}
/**
* meta_screen_get_current_monitor:
* @screen: a #MetaScreen
*
* Gets the index of the monitor that currently has the mouse pointer.
*
* Return value: a monitor index
*/
int
meta_screen_get_current_monitor (MetaScreen *screen)
{
if (screen->n_monitor_infos == 1)
return &screen->monitor_infos[0];
return 0;
/* Sadly, we have to do it this way. Yuck.
*/
@ -2269,7 +2225,7 @@ meta_screen_get_current_monitor (MetaScreen *screen)
screen->last_monitor_index);
}
return &screen->monitor_infos[screen->last_monitor_index];
return screen->last_monitor_index;
}
/**
@ -2965,6 +2921,22 @@ meta_screen_resize (MetaScreen *screen,
reload_monitor_infos (screen);
set_desktop_geometry_hint (screen);
/* Resize the guard window to fill the screen again. */
if (screen->guard_window != None)
{
XWindowChanges changes;
changes.x = 0;
changes.y = 0;
changes.width = width;
changes.height = height;
XConfigureWindow(screen->display->xdisplay,
screen->guard_window,
CWX | CWY | CWWidth | CWHeight,
&changes);
}
if (screen->display->compositor)
meta_compositor_sync_screen_size (screen->display->compositor,
screen, width, height);
@ -3463,9 +3435,10 @@ meta_screen_get_screen_number (MetaScreen *screen)
/**
* meta_screen_get_display:
* Retrieve the display associated with screen.
* @screen: A #MetaScreen
*
* Retrieve the display associated with screen.
*
* Returns: (transfer none): Display
*/
MetaDisplay *
@ -3497,8 +3470,11 @@ meta_screen_get_size (MetaScreen *screen,
int *width,
int *height)
{
*width = screen->rect.width;
*height = screen->rect.height;
if (width != NULL)
*width = screen->rect.width;
if (height != NULL)
*height = screen->rect.height;
}
/**
@ -3580,6 +3556,15 @@ meta_screen_get_active_workspace (MetaScreen *screen)
return screen->active_workspace;
}
void
meta_screen_focus_default_window (MetaScreen *screen,
guint32 timestamp)
{
meta_workspace_focus_default_window (screen->active_workspace,
NULL,
timestamp);
}
void
meta_screen_restacked (MetaScreen *screen)
{

View File

@ -1811,7 +1811,7 @@ warn_about_lame_clients_and_finish_interact (gboolean shutdown)
"you log in."),
"240",
meta_get_display()->active_screen->screen_name,
NULL, NULL,
NULL, NULL, NULL,
None,
columns,
lame_details);

View File

@ -394,6 +394,8 @@ meta_stack_tracker_free (MetaStackTracker *tracker)
g_queue_foreach (tracker->queued_requests, (GFunc)meta_stack_op_free, NULL);
g_queue_free (tracker->queued_requests);
tracker->queued_requests = NULL;
g_free (tracker);
}
static void

View File

@ -1,7 +1,8 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/**
* \file stack.c Which windows cover which other windows
* SECTION:stack
* @short_description: Which windows cover which other windows
*/
/*
@ -340,7 +341,7 @@ get_standalone_layer (MetaWindow *window)
windows_on_different_monitor (window,
window->display->expected_focus_window))))
layer = META_LAYER_FULLSCREEN;
else if (window->wm_state_above)
else if (window->wm_state_above && !META_WINDOW_MAXIMIZED (window))
layer = META_LAYER_TOP;
else
layer = META_LAYER_NORMAL;
@ -799,6 +800,8 @@ apply_constraints (Constraint **constraints,
}
/**
* stack_do_window_deletions:
*
* Go through "deleted" and take the matching windows
* out of "windows".
*/
@ -899,6 +902,8 @@ stack_do_window_additions (MetaStack *stack)
}
/**
* stack_do_relayer:
*
* Update the layers that windows are in
*/
static void
@ -944,6 +949,8 @@ stack_do_relayer (MetaStack *stack)
}
/**
* stack_do_constrain:
*
* Update stack_position and layer to reflect transiency
* constraints
*/
@ -976,6 +983,8 @@ stack_do_constrain (MetaStack *stack)
}
/**
* stack_do_resort:
*
* Sort stack->sorted with layers having priority over stack_position.
*/
static void
@ -994,6 +1003,8 @@ stack_do_resort (MetaStack *stack)
}
/**
* stack_ensure_sorted:
*
* Puts the stack into canonical form.
*
* Honour the removed and added lists of the stack, and then recalculate
@ -1013,6 +1024,8 @@ stack_ensure_sorted (MetaStack *stack)
}
/**
* raise_window_relative_to_managed_windows:
*
* This function is used to avoid raising a window above popup
* menus and other such things.
*
@ -1113,6 +1126,8 @@ raise_window_relative_to_managed_windows (MetaScreen *screen,
}
/**
* stack_sync_to_server:
*
* Order the windows on the X server to be the same as in our structure.
* We do this using XRestackWindows if we don't know the previous order,
* or XConfigureWindow on a few particular windows if we do and can figure

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