Compare commits

...

114 Commits

Author SHA1 Message Date
d317c1c7e8 Consistently use meta_grab_op_is_resizing() for _NET_WM_SYNC_REQUEST
In different places we checked the grab op differently when determing
whether we are using _NET_WM_SYNC_REQUEST. This was somewhat covered
up previously by the fact that we only had a sync alarm when using
_NET_WM_SYNC_REQUEST, but that is no longer the case, so consistently
use meta_grab_op_is_resizing() everywhere.
2013-01-30 15:47:52 -05:00
cf72589635 Distinguish "no delay" frames from spontaneous drawing
When a client is drawing as hard as possible (without sleeping
between frames) we need to draw as soon possible, since sleeping
will decrease the effective frame rate shown to the user, and
can also result in the system never kicking out of power-saving
mode because it doesn't look fully utilized.

Use the amount the client increments the counter value by when
ending the frame to distinguish these cases:

 - Increment by 1: a no-delay frame
 - Increment by more than 1: a non-urgent frame, handle normally

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
3ae070720d Send _NET_WM_FRAME_TIMINGS messages
We previously had timestamp information stubbed out in
_NET_WM_FRAME_DRAWN. Instead of this, add a high-resolution timestamp
in _NET_WM_FRAME_DRAWN then send a _NET_WM_FRAME_TIMINGS message
after when we have complete frame timing information, representing
the "presentation time" of the frame as an offset from the timestamp
in _NET_WM_FRAME_DRAWN.

To provide maximum space in the messages,_NET_WM_FRAME_DRAWN and
_NET_WM_FRAME_TIMINGS are not done as WM_PROTOCOLS messages but
have their own message types.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
4b332640eb Add meta_compositor_monotonic_time_to_server_time()
Add a function to convert from g_get_monotonic_time() to a
"high-resolution server timestamp" with microsecond precision.
These timestamps will be used when communicating frame timing
information to the client.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
0d36f4f1dd Use XSyncSetPriority()
Use XSyncSetPriority() to prioritize the compositor above applications
for X server priority. In practice, this makes little difference because
the Xorg "smart scheduler" will schedule in a single application for
time slices that exceed the frame drawing time, but it's theoretically
right and might make a difference if the X server scheduler is improved.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
0c2491e3c9 Use clutter_stage_set_sync_delay()
Using a "sync delay" where we wait for 2 ms after the vblank before
starting to draw the next frame provides for much more predictable
latency for applications. An application can know that if it completes
a frame any time between 8ms before the vblank to the vblank,
it will reliably be drawn on the following vblank period, rather than
having an unpredictable latency depending on whether the compositor
is currently busy drawing a frame or not.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
6de7f4ce36 Enable CLUTTER / COGL_ENABLE_EXPERIMENTAL_API globally
Instead of defining CLUTTER_ENABLE_EXPERIMENTAL_API and
COGL_ENABLE_EXPERIMENTAL_API in individual source files, enable
them on the command line. We weren't tracking exactly what pieces of
experimental API we were using and we were using the experimental
API in most source files that used Clutter and Cogl, so the
local #defines were annoying rather than useful.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
5f77669ba8 Handle _NET_WM_SYNC_REQUEST_COUNTER updates without redraw
It's possible that a client might update the (extended)
_NET_WM_SYNC_REQUEST_COUNTER counter twice without actually drawing
anything. In that case, we still should send a _NET_WM_FRAME_DRAWN
message since it's hard for a client to know every case in which
no damage is generated. For now, do it the easy way by forcing a
stage repaint.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
7a9663500e MetaWindow: always resize the frame first when we have synchronization
Resizing the frame triggers creation of a new backing pixmap for the
window, so we should do that first before we resize the client window
and mess up the contents of the old backing pixmap.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
4f79c70002 Send _NET_WM_FRAME_DRAWN messages
When the application provides the extended second counter for
_NET_WM_SYNC_REQUEST, send a client message with completion
information after the next redraw after each counter update
by the application.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
81c42a8944 Add support for an extended style of _NET_WM_SYNC_REQUEST_COUNTER
If an application provides two values in _NET_WM_SYNC_REQUEST_COUNTER,
use that as a signal that the applications wants an extended behavior
where it can update the counter as well as the window manager. If the
application updates the counter to an odd value, updates of the
window are frozen until the counter is updated again to an even value.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
8d9c83ddcf Support properties with lists of XSyncCounter
Add META_PROP_VALUE_SYNC_COUNTER_LIST for a property that contains
multiple XSyncCounter values.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
5b6020e90d Move sync alarms to be per-window and permanent
Instead of creating a new alarm each time we resize a window
interactively, create an alarm the first time we resize a window
and keep it around permanently until we unmanage the window.
Doing it this way will be useful when we allow the application to
spontaneously generate sync request updates to indicate
frames it is drawing.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:52 -05:00
8b57ecebda Implement freezing of updates during resize
Replace the unused meta_compositor_set_updates() with
a reversed-meaning meta_compositor_set_updates_frozen(), and use
it to implement freezing application window updates during
interactive resizing. This avoids drawing new areas of the window
with blank content before the application has a chance to repaint.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:51 -05:00
f6c3e48aa5 MetaWindowActor: Use guint for bitfields
A 1-bit boolean (int) bitfield has the values 0 and -1. Use
guint instead for bitfield values.

https://bugzilla.gnome.org/show_bug.cgi?id=685463
2013-01-30 15:47:51 -05:00
06e31e4c03 Updated Norwegian bokmål translation 2013-01-29 19:34:12 +01:00
869a137c2f Updated Norwegian bokmål translation 2013-01-21 12:13:29 +01:00
f4e4a05a9e Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
2013-01-20 18:46:02 +09:00
df15843407 Use meta_window_located_on_workspace() in more places
https://bugzilla.gnome.org/show_bug.cgi?id=691744
2013-01-18 15:45:05 -05:00
d8eb47e2b7 window: Make meta_window_located_on_workspace() public
We have some code in gnome-shell that does the equivalent of:

    window.get_workspace() == workspace || window.is_on_all_workspaces();

which is a bit unwieldy. We already have a method in mutter,
so use that and document it.

https://bugzilla.gnome.org/show_bug.cgi?id=691744
2013-01-18 15:45:05 -05:00
e28a36affd window-actor: Merge two simple methods
With some recent changes to how mask textures are constructed from
shapes, a helper method we made was only called in one place, allowing
us to drop a reference/destroy, and remove a double clear.

https://bugzilla.gnome.org/show_bug.cgi?id=679901
2013-01-18 00:28:54 -05:00
53534b4ded window-actor: Remove custom region destruction methods with g_clear_pointer
https://bugzilla.gnome.org/show_bug.cgi?id=679901
2013-01-18 00:28:54 -05:00
079dd60e3d window-actor: Clean up finalization code with simple uses of g_clear_pointer
While not a massive change by itself, adding new code to use g_clear_pointer
without porting existing usage looks strange.

https://bugzilla.gnome.org/show_bug.cgi?id=679901
2013-01-18 00:28:54 -05:00
5d12f00b3b window-actor: Speed up mask creation
Due to a conditional error, meta_region_builder_add_rectangle was called
on every single blank pixel, rather than at the end of spans. With the new
rename, it's fairly clear to see the error. Fix the check to ensure that
we no longer make extraneous calls to meta_region_builder_add_rectangle.

https://bugzilla.gnome.org/show_bug.cgi?id=691874
2013-01-17 16:33:54 -05:00
95f3bb3b81 window-actor: Rename variable in scanning function
"w" usually stands for "width", but here it stands for the end X bound,
so we'll rename it to the more traditional "x2".

https://bugzilla.gnome.org/show_bug.cgi?id=691874
2013-01-17 16:33:53 -05:00
2bfe6d2da5 build: Bump Clutter requirement
We now rely on XInput being enabled by default, which has only been
the case since 1.13.2.
2013-01-17 13:22:39 +01:00
27e0e44d8b Don't allow multiline window titles
https://bugzilla.gnome.org/show_bug.cgi?id=683056
2013-01-16 14:25:11 -05:00
7e5fb3e1a0 Assamese translation updated 2013-01-16 14:25:59 +05:30
2ac17cc7ba Updated Belarusian translation. 2013-01-15 20:26:09 +03:00
7b32b7fcd1 Updated Spanish translation 2013-01-15 14:36:01 +01:00
2fcd75eadd Bump version to 3.7.4
Update NEWS.
2013-01-15 00:45:27 +01:00
8094c0ab23 Updated Slovenian translation 2013-01-13 11:59:25 +01:00
831cf9a83a Updated Bulgarian translation 2013-01-12 06:33:42 +02:00
47be4fdf07 theme: Add the .background style class back to frames
GtkWindow added the BACKGROUND style class to all windows, which the
CSS file selects on to set a background color for all windows. Without
this, the background color becomes undefined, and thus window frames
look like they have "glitchy" graphics.

https://bugzilla.gnome.org/show_bug.cgi?id=690317
2013-01-11 12:40:07 -05:00
9b34545bd5 theme: Fix a memory leak
Commit 5c33b0d tried to copy/paste the code that constructed
classes, but for some reason didn't copy the theme name.

https://bugzilla.gnome.org/show_bug.cgi?id=690317
2013-01-11 12:40:07 -05:00
e5317cc7a0 theme: Remove a bunch of unused *_to_string methods
These were there just for consistency's sake.
2013-01-11 17:40:23 +01:00
b8887a6c3a keybindings: Rebrand "minimize" as "hide"
The minimize action does not make much sense without a window list,
which is why its default keybinding was removed in bug 643609;
getting the focused window out of the way quickly can still be useful
though, so change the description to "Hide window" instead, which does
not imply a window list. We will then assign a default shortcut again.

https://bugzilla.gnome.org/show_bug.cgi?id=682887
2013-01-11 16:22:29 +01:00
a6c51addac prefs: Annotate meta_prefs_get_button_layout()
https://bugzilla.gnome.org/show_bug.cgi?id=689263
2013-01-10 00:10:50 +01:00
54a3847a5e common: Annotate MetaButtonLayout
https://bugzilla.gnome.org/show_bug.cgi?id=689263
2013-01-10 00:10:50 +01:00
5a8473e226 prefs: Do not leave junk values in unused button_layout fields
MetaButtonLayout is extremely unfriendly for introspection: its fields
are arrays of a fixed length, but the actual length is determined by
a custom stop value (e.g. not NULL / 0).
Without API changes this will never work nicely in introspection, but
we can at least make it work; start by filling up unused fields with
the stop value rather than leaving it at random values.

https://bugzilla.gnome.org/show_bug.cgi?id=689263
2013-01-10 00:10:50 +01:00
5c33b0d768 theme-viewer: use the same GtkStyleContext as mutter usually renders
https://bugzilla.gnome.org/show_bug.cgi?id=690317
2013-01-09 14:06:24 -05:00
22a3126a2b theme: Make meta_frame_draw_theme take a GtkStyleContext instead of a widget
The style context of the widget is rarely what we want. We won't
fix this to be a MetaFrames style context yet; this just changes
the internal API.

https://bugzilla.gnome.org/show_bug.cgi?id=690317
2013-01-09 14:06:24 -05:00
9596c24f83 plugin-manager: Remove a bogus check
We dereference the plugin_mgr in the initializer above,
so it's wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=690609
2013-01-09 14:06:24 -05:00
86d6baf30f Updated Bulgarian translation 2013-01-09 06:15:06 +02:00
3a3be74e37 Remove some server calls for core devices
These were missed in the first porting.

https://bugzilla.gnome.org/show_bug.cgi?id=691363
2013-01-08 15:54:50 -05:00
f57d64337b display: Use XI2 constants for mode/detail focus event values
This makes no function difference, except conceptual clarity.

https://bugzilla.gnome.org/show_bug.cgi?id=691363
2013-01-08 15:54:50 -05:00
e69fcc860c display: Remove some more core events
I apparently forgot to remove these.

https://bugzilla.gnome.org/show_bug.cgi?id=691363
2013-01-08 15:54:50 -05:00
afbca61524 main: Remove call to clutter_x11_enable_xinput
The call is deprecated and is called by default upstream.

https://bugzilla.gnome.org/show_bug.cgi?id=691363
2013-01-08 15:54:50 -05:00
66d37e06ba compositor: Remove unused code fetching _XSETROOT_ID
We don't use this atom anywhere, so don't bother fetching it.

https://bugzilla.gnome.org/show_bug.cgi?id=691363
2013-01-08 15:54:50 -05:00
7e2d6cb6ec README: Minor update, really just to trigger a rebuild
...after cogl bumped soname.
2013-01-05 14:16:57 -05:00
b9f775fe02 ui: Suppress warnings from -Werror=maybe-uninitialized 2013-01-03 17:30:44 +01:00
90cf43da9f display: Expose the xinput opcode
This is needed by the shell to filter out certain events

https://bugzilla.gnome.org/show_bug.cgi?id=690590
2013-01-02 13:41:56 -05:00
bab51cbbe4 Remove unnecessary python check
A grep for fix-meta-rectangle.py in the source tree comes up
empty, and building mutter works just fine without AM_PATH_PYTHON.

https://bugzilla.gnome.org/show_bug.cgi?id=690956
2013-01-02 08:01:14 -05:00
e782426736 Assamese translation updated 2012-12-27 21:33:18 +05:30
1071e9970f Updated Brazilian Portuguese Translation 2012-12-27 03:56:51 -02:00
5d64bdf3d9 Updated Polish translation 2012-12-26 21:41:21 +01:00
8012a315e3 Updated Hebrew translation. 2012-12-26 19:50:51 +02:00
acd6df34da Updated Spanish translation 2012-12-26 11:59:29 +01:00
6431abbc85 Check that the application is responding when activating a window
Currently, we ping windows only when attempting to delete them, but
if the application is not responding, we want to show the dialog
as soon as possible. Given that we cannot be passively notified that
the window stopped responding with the current X11 protocol, a good
workaround is to ping the window when activating it.
If the window stops responding while active, it is expected the user
will try to switch window or open the overview, and when coming back
he'll get the failure dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=684340
2012-12-25 18:39:10 +01:00
57ff0f7071 MetaWindow: add a public method for checking if the application is responding
Add meta_window_check_alive(), which is a simple wrapper over
meta_display_ping_window(), and takes care of showing the "Application
is not responding dialog" if needed.

https://bugzilla.gnome.org/show_bug.cgi?id=684340
2012-12-25 18:39:09 +01:00
2a2ac52726 automaximize: Make it optional
Make automaximize optional by adding a gsetting "auto-maximize"
(defaults to true).

https://bugzilla.gnome.org/show_bug.cgi?id=680990
2012-12-25 13:37:22 +01:00
a91eeb24d4 update Punjabi Translation for master 2012-12-25 08:50:47 +05:30
581960abc8 Updated Galician translations 2012-12-24 23:03:34 +01:00
3a307b5d24 Update Arabic translation 2012-12-24 13:19:00 +02:00
4e21d5d610 ui: Don't use deprecated GtkStyleContext API
Update for deprecations.

https://bugzilla.gnome.org/show_bug.cgi?id=690593
2012-12-23 03:17:26 -05:00
02c2cf1960 Updated Spanish translation 2012-12-21 12:26:57 +01:00
748064678f prefs: drop errnoneous semi-colon
This fixes a compiler warning and spurious
enqueuing of WORKSPACE_NAMES change.

https://bugzilla.gnome.org/show_bug.cgi?id=690573
2012-12-20 14:27:26 -05:00
982d554450 Updated Hebrew translation. 2012-12-20 13:29:07 +02:00
0e5f8997cf [l10n] Updated Estonian translation 2012-12-19 18:23:18 +02:00
6111d3ee4a window: recompute modal dialog attached status when the window type changes
We want to maintain the invariant that an attached modal dialog is always
of type MODAL_DIALOG, so recompute is_attached_dialog() when the window
type changes.

https://bugzilla.gnome.org/show_bug.cgi?id=690454
2012-12-18 23:18:58 +01:00
3876a1a192 Support bypass compositor hints
Add support for _NET_WM_BYPASS_COMPOSITOR and _NET_WM_DONT_BYPASS_COMPOSITOR
as proposed here: https://mail.gnome.org/archives/wm-spec-list/2012-February/msg00010.html

https://bugzilla.gnome.org/show_bug.cgi?id=683020
2012-12-18 19:02:34 +01:00
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
64 changed files with 9747 additions and 9224 deletions

38
NEWS
View File

@ -1,3 +1,41 @@
3.7.4
=====
* Add support for bypass compositor hints [Adel; #683020]
* Make automaximization optional [Adel; #680990]
* Add method for checking if the application is responding [Giovanni; #684340]
* Expose the xinput opcode [Jasper; #690590]
* Rebrand "minimize" as "hide" [Florian; #682887]
* Misc bug fixes and cleanups [Giovanni, Ray, Jasper, Matthias, Debarshi,
Florian, Rui; #690454, #690573, #690593, #690956, #691363, #690609, #690317,
#689263]
Contributors:
Giovanni Campagna, Matthias Clasen, Adel Gadllah, Rui Matos, Florian Müllner,
Debarshi Ray, Jasper St. Pierre, Ray Strode
Translations:
Mattias Põldaru [et], Yaron Shahrabani [he], Daniel Mustieles [es],
Khaled Hosny [ar], Fran Diéguez [gl], A S Alam [pa], Piotr Drąg [pl],
Rafael Ferreira [pt_BR], Nilamdyuti Goswami [as], Alexander Shopov [bg],
Matej Urbančič [sl]
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]

18
README
View File

@ -1,16 +1,10 @@
Metacity is not a meta-City as in an urban center, but rather
Meta-ness as in the state of being meta. i.e. metacity : meta as
opacity : opaque. Also it may have something to do with the Meta key
on UNIX keyboards.
The original codebase named "Metacity" is not a meta-City as in an
urban center, but rather Meta-ness as in the state of being
meta. i.e. metacity : meta as opacity : opaque. Also it may have
something to do with the Meta key on UNIX keyboards.
The first release of Metacity was version 2.3. Metacity has no need for
your petty hangups about version numbers.
The stable releases so far are 2.4.x, 2.6.x, 2.8.[01], 2.8.1.x, 2.8.5-,
2.10.x, 2.12.x, 2.14.x, 2.16.x.
Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x, 2.11.x, 2.13.x,
2.15.x, 2.17.x.
Since then, it has been renamed mutter after a rebase on top of
clutter as a compositing manager.
COMPILING MUTTER
===

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

@ -2,7 +2,7 @@ AC_PREREQ(2.50)
m4_define([mutter_major_version], [3])
m4_define([mutter_minor_version], [7])
m4_define([mutter_micro_version], [2])
m4_define([mutter_micro_version], [4])
m4_define([mutter_version],
[mutter_major_version.mutter_minor_version.mutter_micro_version])
@ -72,8 +72,8 @@ MUTTER_PC_MODULES="
pango >= 1.2.0
cairo >= 1.10.0
gsettings-desktop-schemas >= 3.3.0
xcomposite >= 0.2 xfixes xrender xdamage
$CLUTTER_PACKAGE >= 1.9.10
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
$CLUTTER_PACKAGE >= 1.13.2
cogl-1.0 >= 1.9.6
"
@ -361,9 +361,6 @@ if test "x$enable_debug" = "xyes"; then
CFLAGS="$CFLAGS -g -O"
fi
# For fix-meta-rectangle.py
AM_PATH_PYTHON([2.5])
#### Warnings (last since -Werror can disturb other tests)
# Stay command-line compatible with the gnome-common configure option. Here

501
po/ar.po
View File

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity.HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-14 23:57+0200\n"
"PO-Revision-Date: 2012-08-14 23:59+0200\n"
"POT-Creation-Date: 2012-12-24 13:14+0200\n"
"PO-Revision-Date: 2012-12-24 13:17+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n"
@ -22,21 +22,197 @@ msgstr ""
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Virtaal 0.7.0\n"
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "الإبحار"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "انقل النافذة إلى مساحة العمل 1"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "انقل النافذة إلى مساحة العمل 2"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "انقل النافذة إلى مساحة العمل 3"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "انقل النافذة إلى مساحة العمل 4"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "انقل النافذة مساحة عمل واحدة إلى اليسار"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the right"
msgstr "انقل النافذة مساحة عمل واحدة إلى اليمين"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace up"
msgstr "انقل النافذة مساحة عمل واحدة إلى الأعلى"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "انقل النافذة مساحة عمل واحدة إلى الأسفل"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "تنقل بين التطبيقات"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "تنقل بين النوافذ"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "تنقل بين نوافذ التطبيق"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "تنقل بين تحكمات النظام"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "تنقل بين النوافذ مباشرة"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "تنقل بين نوافذ التطبيق مباشرة"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "تنقل بين تحكمات النظام مباشرة"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
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 "Move to workspace left"
msgstr "انقل لمساحة العمل على اليسار"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "انقل لمساحة العمل على اليمين"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "انقل لمساحة العمل أعلى"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "انقل لمساحة العمل أسفل"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
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 "Show the activities overview"
msgstr "أظهر نظرة عامة على الأنشطة"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "النوافذ"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "فعّل قائمة النافذة"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "بدّل نمط ملء الشاشة"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "بدّل حالة التكبير"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "كبّر النّافذة"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "استعد النّافذة"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "بدّل حالة الإخفاء"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "أغلق النّافذة"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Minimize window"
msgstr "صغّر النّافذة"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "انقل النّافذة"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "حجّم النّافذة"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "بدّل حالة ظهور النافذة على جميع مساحات العمل أو واحدة منها"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "ارفع النافذة إذا كانت أخرى تغطيها، أو أخفضها في ما عدا ذلك"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "ارفع النافذة فوق النوافذ الأخرى"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "اخفض النافذة تحت النوافذ الأخرى"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "كبّر النافذة رأسيا"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "كبّر النافذة أفقيا"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "المنظور مقسوم على اليمين"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
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
#: ../src/compositor/compositor.c:512
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@ -52,40 +228,40 @@ msgstr "حدث جرس"
msgid "Unknown window information request: %d"
msgstr "طلب معلومات نافذة مجهول: %d"
#: ../src/core/delete.c:114
#: ../src/core/delete.c:111
#, c-format
msgid "%s is not responding."
msgstr "%s لا يستجيب"
msgid "%s is not responding."
msgstr "%s لا يستجيب."
#: ../src/core/delete.c:118
#: ../src/core/delete.c:113
msgid "Application is not responding."
msgstr "لا يستجيب التطبيق"
#: ../src/core/delete.c:123
#: ../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."
msgstr "ربما ترغب في الانتظار قليلا ليُكمِل أو إجبار التطبيق على الإنهاء كُلّية."
#: ../src/core/delete.c:130
#: ../src/core/delete.c:125
msgid "_Wait"
msgstr "ا_نتظر"
#: ../src/core/delete.c:130
#: ../src/core/delete.c:125
msgid "_Force Quit"
msgstr "أ_جبر الإنهاء"
#: ../src/core/display.c:380
#: ../src/core/display.c:394
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب"
#: ../src/core/display.c:446
#: ../src/core/display.c:491
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\n"
#: ../src/core/keybindings.c:844
#: ../src/core/keybindings.c:876
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -116,12 +292,12 @@ msgstr "ابدأ الجلسة من ملف محفوظ"
msgid "Make X calls synchronous"
msgstr "اجعل نداءات س متزامنة"
#: ../src/core/main.c:494
#: ../src/core/main.c:496
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "فشلت قراءة دليل السِمات : %s\n"
#: ../src/core/main.c:510
#: ../src/core/main.c:512
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -149,7 +325,7 @@ msgstr "اطبع الإصدارة"
msgid "Mutter plugin to use"
msgstr "ملحق مَتَر الذي سيُستخدم"
#: ../src/core/prefs.c:1065
#: ../src/core/prefs.c:1079
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -157,12 +333,12 @@ msgstr ""
"عطّلت الحلول الجزئيّة للتطبيقات المعطوبة . ربما لن تتصرف بعض التطبيقات "
"بسلامة.\n"
#: ../src/core/prefs.c:1140
#: ../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:1206
#: ../src/core/prefs.c:1220
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -170,7 +346,7 @@ msgid ""
msgstr ""
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لمغير أزرار الفأرة\n"
#: ../src/core/prefs.c:1724
#: ../src/core/prefs.c:1757
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -179,17 +355,17 @@ msgstr ""
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لارتباط المفتاح \"%s"
"\"\n"
#: ../src/core/prefs.c:1821
#: ../src/core/prefs.c:1854
#, c-format
msgid "Workspace %d"
msgstr "مساحة العمل %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "الشاشة %d على العرض '%s' غير صحيحة\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:674
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -198,18 +374,18 @@ msgstr ""
"الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل "
"--replace لتحُلّ محلّ مدير النوافذ الحالي.\n"
#: ../src/core/screen.c:695
#: ../src/core/screen.c:701
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n"
#: ../src/core/screen.c:750
#: ../src/core/screen.c:770
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n"
#: ../src/core/screen.c:935
#: ../src/core/screen.c:955
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n"
@ -306,7 +482,7 @@ msgid "Window manager error: "
msgstr "خطأ مدير النوافذ: "
#. first time through
#: ../src/core/window.c:7234
#: ../src/core/window.c:7275
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -322,7 +498,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7899
#: ../src/core/window.c:7941
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -331,22 +507,22 @@ msgstr ""
"ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم "
"الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n"
#: ../src/core/window-props.c:310
#: ../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:429
#: ../src/core/window-props.c:393
#, c-format
msgid "%s (on %s)"
msgstr "%s (على %s)"
#: ../src/core/window-props.c:1484
#: ../src/core/window-props.c:1448
#, 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:1495
#: ../src/core/window-props.c:1459
#, fuzzy, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
@ -448,20 +624,31 @@ msgid ""
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Draggable border width"
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 ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
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:17
msgid "Select window from tab popup"
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid "Cancel tab popup"
msgstr ""
@ -716,8 +903,8 @@ 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:fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:fg"
"[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
#: ../src/ui/theme.c:1217
#, c-format
@ -731,7 +918,8 @@ msgstr ""
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
"fit the format"
msgstr "تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
msgstr ""
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
#: ../src/ui/theme.c:1276
#, c-format
@ -1456,11 +1644,11 @@ msgstr "تصاميم الأزرار"
msgid "Benchmark"
msgstr "علامة إهتداء"
#: ../src/ui/theme-viewer.c:944
#: ../src/ui/theme-viewer.c:949
msgid "Window Title Goes Here"
msgstr "عنوان النافذة يكون هنا"
#: ../src/ui/theme-viewer.c:1047
#: ../src/ui/theme-viewer.c:1052
#, c-format
msgid ""
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
@ -1470,258 +1658,43 @@ msgstr ""
"دفعت %d إطارات في %g ثوان بإتجاه العميل (%g ملي ثانية لكل إطار) و %g ثواني "
"بوقت ساعة حائطية مع مصادر خادوم X (%g ملي ثانية لكل إطار)\n"
#: ../src/ui/theme-viewer.c:1266
#: ../src/ui/theme-viewer.c:1271
msgid "position expression test returned TRUE but set error"
msgstr "أرجع إختبار تعبير الموقع TRUE لكنه لم يكتشف الخطأ"
#: ../src/ui/theme-viewer.c:1268
#: ../src/ui/theme-viewer.c:1273
msgid "position expression test returned FALSE but didn't set error"
msgstr "أرجع إختبار تعبير الموقع خطأ لكنه لم يكتشف الخطأ"
#: ../src/ui/theme-viewer.c:1272
#: ../src/ui/theme-viewer.c:1277
msgid "Error was expected but none given"
msgstr "تُرُقِّب خطأ لكن لم يعطى أي خطأ"
#: ../src/ui/theme-viewer.c:1274
#: ../src/ui/theme-viewer.c:1279
#, c-format
msgid "Error %d was expected but %d given"
msgstr "تُرقّب %d لكن أعطى %d"
#: ../src/ui/theme-viewer.c:1280
#: ../src/ui/theme-viewer.c:1285
#, c-format
msgid "Error not expected but one was returned: %s"
msgstr "لم يُترقب خطأ لكنه أرجع واحدًا: %s"
#: ../src/ui/theme-viewer.c:1284
#: ../src/ui/theme-viewer.c:1289
#, c-format
msgid "x value was %d, %d was expected"
msgstr "قيمة س كانت %d، تُرُقِّب %d"
#: ../src/ui/theme-viewer.c:1287
#: ../src/ui/theme-viewer.c:1292
#, c-format
msgid "y value was %d, %d was expected"
msgstr "قيمة ص كانت %d، تُرُقَِب %d"
#: ../src/ui/theme-viewer.c:1352
#: ../src/ui/theme-viewer.c:1357
#, 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: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-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
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:4
#, fuzzy
msgid "Maximize window"
msgstr "كبّر النّافذة"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "استعد النّافذة"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "بدّل حالة الإخفاء"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr "صغّر النّافذة"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "أغلق النّافذة"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "انقل النّافذة"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
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: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:6
#, fuzzy
msgid "Move window one workspace down"
msgstr "انقل النافذة مساحة عمل واحدة إلى الأسفل"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "ارفع النافذة فوق النوافذ الأخرى"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "اخفض النافذة تحت النوافذ الأخرى"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "كبّر النافذة عموديا"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "كبّر النافذة أفقيا"
#: ../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: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 "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:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "ارفع النافذة إذا كانت أخرى تغطيها، أو أخفضها في ما عدا ذلك"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "بدّل حالة ظهور النافذة على جميع مساحات العمل أو واحدة منها"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "قائمة بملحقات المزج مفصولة بفاصلة"

898
po/as.po

File diff suppressed because it is too large Load Diff

580
po/be.po
View File

@ -4,33 +4,209 @@ 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-10-11 14:32+0000\n"
"POT-Creation-Date: 2013-01-11 15:23+0000\n"
"PO-Revision-Date: 2012-10-13 17:44+0300\n"
"Last-Translator: Ігар Грачышка <ihar.hrachyshka@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Pootle 2.1.6\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "Навігацыя"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "Перамясціць акно ў прастору 1"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Перамясціць акно ў прастору 2"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Перамясціць акно ў прастору 3"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Перамясціць акно ў прастору 4"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "Перамясціць акно ў прастору злева ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the right"
msgstr "Перамясціць акно ў прастору справа ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace up"
msgstr "Перамясціць акно ў прастору зверху ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "Перамясціць акно ў прастору знізу ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "Пераключэнне праграм"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "Пераключэнне вокнаў"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "Пераключэнне вокнаў праграмы"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "Пераключэнне паміж сістэмнымі элементамі кіравання"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "Непасрэднае пераключэнне вокнаў"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "Непасрэднае пераключэнне вокнаў праграмы"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "Непасрэднае пераключэнне паміж сістэмнымі элементамі кіравання"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
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 "Move to workspace left"
msgstr "Перамясціць на прастору працы злева"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "Перамясціць на прастору працы справа"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "Перамясціць на прастору працы зверху"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "Перамясціць на прастору працы знізу"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
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 "Show the activities overview"
msgstr "Паказаць агляд дзейнасцяў"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Вокны"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "Адкрыць меню акна"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Перамяніць рэжым \"на ўвесь экран\""
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Перамяніць максімалізацыю акна"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Максімалізаваць акно"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Аднавіць былы памер акна"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Перамяніць скручанасць акна ў загаловак"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Закрыць акно"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Hide window"
msgstr "Схаваць акно"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Перамясціць акно"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Змяніць памер акна"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "Перамяніць, ці бачнае акно на ўсіх прасторах працы"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "Узняць акно, калі яно закрыта іншымі вокнамі, іначай апусціць яго"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "Узняць акно над астатнімі"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Апусціць акно пад астатнія"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Вертыкальна максімалізаваць акно"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Гарызантальна максімалізаваць акно"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "Падзяліць прагляд злева"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
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
#: ../src/compositor/compositor.c:512
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@ -47,42 +223,42 @@ msgstr "Падзея з сігналам"
msgid "Unknown window information request: %d"
msgstr "Невядомы запыт інфармацыі пра акно: %d"
#: ../src/core/delete.c:113
#: ../src/core/delete.c:111
#, c-format
msgid "%s is not responding."
msgstr "%s не адказвае на запыты."
msgid "%s is not responding."
msgstr "\"%s\" не адказвае на запыты."
#: ../src/core/delete.c:117
#: ../src/core/delete.c:113
msgid "Application is not responding."
msgstr "Праграма не адказвае на запыты."
#: ../src/core/delete.c:122
#: ../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."
msgstr ""
"Вы можаце альбо крыху пачакаць адказу, альбо змусіць праграму да выхаду."
#: ../src/core/delete.c:129
#: ../src/core/delete.c:125
msgid "_Wait"
msgstr "_Пачакаць"
#: ../src/core/delete.c:129
#: ../src/core/delete.c:125
msgid "_Force Quit"
msgstr "_Змусіць да выхаду"
#: ../src/core/display.c:396
#: ../src/core/display.c:394
#, c-format
msgid "Missing %s extension required for compositing"
msgstr ""
"Адсутнічае пашырэнне \"%s\", патрэбнае для ажыццяўлення кампазітнага вываду"
#: ../src/core/display.c:492
#: ../src/core/display.c:491
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Не ўдалося адкрыць X-дысплей аконнай сістэмы \"%s\"\n"
#: ../src/core/keybindings.c:853
#: ../src/core/keybindings.c:876
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -152,7 +328,7 @@ msgstr "Вывесці нумар версіі праграмы"
msgid "Mutter plugin to use"
msgstr "Патрэбны плугін Mutter"
#: ../src/core/prefs.c:1079
#: ../src/core/prefs.c:1087
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -160,12 +336,12 @@ msgstr ""
"Асаблівыя паводзіны для некаторых хібных праграм выключаныя. Некаторыя "
"праграмы могуць перастаць працаваць, як мае быць.\n"
#: ../src/core/prefs.c:1154
#: ../src/core/prefs.c:1162
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "Не ўдалося разабраць азначэнне шрыфту \"%s\" з GSettings-ключа %s\n"
#: ../src/core/prefs.c:1220
#: ../src/core/prefs.c:1228
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -174,7 +350,7 @@ msgstr ""
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
"мадыфікатар мышынай кнопкі\n"
#: ../src/core/prefs.c:1747
#: ../src/core/prefs.c:1780
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -183,17 +359,17 @@ msgstr ""
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
"клавіятурны скарот \"%s\"\n"
#: ../src/core/prefs.c:1844
#: ../src/core/prefs.c:1877
#, c-format
msgid "Workspace %d"
msgstr "Прастора працы %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Экран %d на дысплеі \"%s\" хібны\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:674
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -202,19 +378,19 @@ msgstr ""
"Экран %d на дысплеі \"%s\" ужо мае аконнага кіраўніка. Каб замяніць яго "
"новым, дадайце опцыю --replace.\n"
#: ../src/core/screen.c:695
#: ../src/core/screen.c:701
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr ""
"Не ўдалося пераняць вылучэнне кіраўніка вокнаў для экрана %d дысплея \"%s\"\n"
#: ../src/core/screen.c:750
#: ../src/core/screen.c:770
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Экран %d на дысплеі \"%s\" ужо мае кіраўніка вокнаў\n"
#: ../src/core/screen.c:935
#: ../src/core/screen.c:955
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Не ўдалося вызваліць экран %d на дысплеі \"%s\"\n"
@ -314,7 +490,7 @@ msgid "Window manager error: "
msgstr "Памылка кіраўніка вокнаў: "
#. first time through
#: ../src/core/window.c:7237
#: ../src/core/window.c:7279
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -330,7 +506,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7902
#: ../src/core/window.c:7945
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -503,10 +679,20 @@ msgstr ""
"будуць дададзена дадатковая нябачная рамка, каб задаволіць гэту настройку."
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows"
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid ""
"If enabled, monitor nearly monitor sized windows automatically get maximized "
"when mapped."
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
msgid "Select window from tab popup"
msgstr "Выбраць акно з выплыўнога акенца"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
msgid "Cancel tab popup"
msgstr "Закрыць выплыўное акенца"
@ -714,49 +900,49 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:234
#: ../src/ui/theme.c:235
msgid "top"
msgstr "верхнюю"
#: ../src/ui/theme.c:236
#: ../src/ui/theme.c:237
msgid "bottom"
msgstr "ніжнюю"
#: ../src/ui/theme.c:238
#: ../src/ui/theme.c:239
msgid "left"
msgstr "левую"
#: ../src/ui/theme.c:240
#: ../src/ui/theme.c:241
msgid "right"
msgstr "правую"
#: ../src/ui/theme.c:268
#: ../src/ui/theme.c:269
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "апісанне геаметрыі рамкі акна не вызначае %s граніцу"
#: ../src/ui/theme.c:287
#: ../src/ui/theme.c:288
#, c-format
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
msgstr ""
"апісанне геаметрыі рамкі акна не вызначае %s граніцу для аблямоўкі \"%s\""
#: ../src/ui/theme.c:324
#: ../src/ui/theme.c:325
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "Прапорцыі кнопкі %g не маюць сэнсу"
#: ../src/ui/theme.c:336
#: ../src/ui/theme.c:337
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "Апісанне геаметрыі рамкі акна не вызначае памер кнопак"
#: ../src/ui/theme.c:1049
#: ../src/ui/theme.c:1050
#, c-format
msgid "Gradients should have at least two colors"
msgstr "Градыент мусіць мець прынамсі два колеры"
#: ../src/ui/theme.c:1201
#: ../src/ui/theme.c:1202
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -765,7 +951,7 @@ msgstr ""
"Уласная спецыфікацыя колеру GTK мусіць змяшчаць назвы асноўнага і запаснога "
"колераў у дужках, напрыклад, gtk:custom(foo,bar). Не ўдалося разабраць \"%s\""
#: ../src/ui/theme.c:1217
#: ../src/ui/theme.c:1218
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
@ -774,7 +960,7 @@ msgstr ""
"Хібны знак \"%c\" у параметры color_name спецыфікацыі gtk:custom, дазволеныя "
"толькі A-Za-z0-9-_"
#: ../src/ui/theme.c:1231
#: ../src/ui/theme.c:1232
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -783,7 +969,7 @@ msgstr ""
"Фармат gtk:custom: \"gtk:custom(назваолеруапасны_колер)\"; \"%s\" не "
"адпавядае фармату"
#: ../src/ui/theme.c:1276
#: ../src/ui/theme.c:1277
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -792,7 +978,7 @@ msgstr ""
"Спецыфікацыя колеру GTK мусіць мець стан у квадратных дужках, напрыклад, gtk:"
"fg[NORMAL], дзе NORMAL - гэта стан. Не ўдалося разабраць \"%s\""
#: ../src/ui/theme.c:1290
#: ../src/ui/theme.c:1291
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -802,17 +988,17 @@ msgstr ""
"напрыклад, gtk:fg[NORMAL], дзе NORMAL - гэта стан. Не ўдалося разабраць \"%s"
"\""
#: ../src/ui/theme.c:1301
#: ../src/ui/theme.c:1302
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "Незразумелы стан \"%s\" у спецыфікацыі колеру"
#: ../src/ui/theme.c:1314
#: ../src/ui/theme.c:1315
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "Незразумелы складнік колеру \"%s\" у спецыфікацыі колеру"
#: ../src/ui/theme.c:1343
#: ../src/ui/theme.c:1344
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@ -821,58 +1007,58 @@ msgstr ""
"Фармат змяшанага колеру - \"blend/bg_color/fg_color/alpha\". \"%s\" не "
"адпавядае фармату."
#: ../src/ui/theme.c:1354
#: ../src/ui/theme.c:1355
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "Не ўдалося разабраць значэнне альфа \"%s\" ў змяшаным колеры"
#: ../src/ui/theme.c:1364
#: ../src/ui/theme.c:1365
#, 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:1411
#: ../src/ui/theme.c:1412
#, 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:1422
#: ../src/ui/theme.c:1423
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "Не ўдалося разабраць каэфіцыент ценю \"%s\" у зацененым колеры"
#: ../src/ui/theme.c:1432
#: ../src/ui/theme.c:1433
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "Каэфіцыент ценю \"%s\" у зацененым колеры адмоўны"
#: ../src/ui/theme.c:1461
#: ../src/ui/theme.c:1462
#, c-format
msgid "Could not parse color \"%s\""
msgstr "Не ўдалося разабраць колер \"%s\""
#: ../src/ui/theme.c:1778
#: ../src/ui/theme.c:1779
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "Каардынатны выраз змяшчае забаронены знак \"%s\""
#: ../src/ui/theme.c:1805
#: ../src/ui/theme.c:1806
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
msgstr "Каардынатны выраз змяшчае незразумелы лік з нефіксаванай коскай \"%s\""
#: ../src/ui/theme.c:1819
#: ../src/ui/theme.c:1820
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "Каардынатны выраз змяшчае незразумелы цэлы лік \"%s\""
#: ../src/ui/theme.c:1940
#: ../src/ui/theme.c:1941
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@ -880,17 +1066,17 @@ msgid ""
msgstr ""
"Каардынатны выраз змяшчае невядомы аператар у пачатку гэтага тэксту: \"%s\""
#: ../src/ui/theme.c:1997
#: ../src/ui/theme.c:1998
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "Каардынатны выраз пусты ці незразумелы"
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "Каардынатны выраз вымагае дзялення на нуль"
#: ../src/ui/theme.c:2162
#: ../src/ui/theme.c:2163
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
@ -898,24 +1084,24 @@ msgstr ""
"Каардынатны выраз спрабуе ўжыць аператар дзялення па модулі для ліку з "
"нефіксаванай коскай"
#: ../src/ui/theme.c:2218
#: ../src/ui/theme.c:2219
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr ""
"У каардынатным выразе ўжыты аператар \"%s\" там, дзе мусіў быць аперанд"
#: ../src/ui/theme.c:2227
#: ../src/ui/theme.c:2228
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "У каардынатным выразе ўжыты аперанд там, дзе мусіў быць аператар"
#: ../src/ui/theme.c:2235
#: ../src/ui/theme.c:2236
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "Каардынатны выраз заканчваецца аператарам, а не аперандам"
#: ../src/ui/theme.c:2245
#: ../src/ui/theme.c:2246
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@ -924,41 +1110,41 @@ msgstr ""
"У каардынатным выразе за аператарам \"%c\" ідзе аператар \"%c\", але паміж "
"імі няма аперанда"
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "У каардынатным выразе невядомая зменная альбо канстанта \"%s\""
#: ../src/ui/theme.c:2495
#: ../src/ui/theme.c:2496
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "Прылада для разбору каардынатных выразаў перапоўніла свой буфер."
#: ../src/ui/theme.c:2524
#: ../src/ui/theme.c:2525
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr ""
"У каардынатным выразе ўжытыя дужкі, якія закрываюцца, але няма тых, якія б "
"адкрываліся"
#: ../src/ui/theme.c:2588
#: ../src/ui/theme.c:2589
#, c-format
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr ""
"У каардынатным выразе ўжытыя дужкі, якія адкрываюцца, але няма тых, якія б "
"закрываліся"
#: ../src/ui/theme.c:2599
#: ../src/ui/theme.c:2600
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "У каардынатным выразе няма ні аператараў, ні аперандаў"
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr "Матыў аздаблення змяшчае выраз, які стаў прычынай памылкі: %s\n"
#: ../src/ui/theme.c:4498
#: ../src/ui/theme.c:4499
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -967,25 +1153,25 @@ msgstr ""
"Для гэтага стылю рамкі трэба вызначыць <button function=\"%s\" state=\"%s\" "
"draw_ops=\"whatever\"/>"
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
#, 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:5082
#: ../src/ui/theme.c:5083
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "Не ўдалося загрузіць матыў аздаблення \"%s\": %s\n"
#: ../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
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "Для матыву аздаблення \"%2$s\" не прызначана <%1$s>"
#: ../src/ui/theme.c:5254
#: ../src/ui/theme.c:5255
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -994,7 +1180,7 @@ msgstr ""
"Стыль рамкі не вызначаны для вокнаў тыпу \"%s\" для матыву аздаблення \"%s"
"\". Дадайце <window type=\"%s\" style_set=\"штосьці\"/>."
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#: ../src/ui/theme.c:5659 ../src/ui/theme.c:5721 ../src/ui/theme.c:5784
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
@ -1002,7 +1188,7 @@ msgstr ""
"Назвы канстантаў, вызначаных карыстальнікам, мусяць пачынацца з вялікай "
"літары. \"%s\" не адпавядае гэтаму патрабаванню."
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#: ../src/ui/theme.c:5667 ../src/ui/theme.c:5729 ../src/ui/theme.c:5792
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "Канстанта \"%s\" ужо азначана"
@ -1519,31 +1705,31 @@ msgstr "Памылка загрузкі матыву аздаблення: %s\n"
msgid "Loaded theme \"%s\" in %g seconds\n"
msgstr "Матыў аздаблення \"%s\" загружаны за %g секунд\n"
#: ../src/ui/theme-viewer.c:870
#: ../src/ui/theme-viewer.c:871
msgid "Normal Title Font"
msgstr "Звычайны шрыфт загалоўка"
#: ../src/ui/theme-viewer.c:876
#: ../src/ui/theme-viewer.c:877
msgid "Small Title Font"
msgstr "Маленькі шрыфт загалоўка"
#: ../src/ui/theme-viewer.c:882
#: ../src/ui/theme-viewer.c:883
msgid "Large Title Font"
msgstr "Вялікі шрыфт загалоўка"
#: ../src/ui/theme-viewer.c:887
#: ../src/ui/theme-viewer.c:888
msgid "Button Layouts"
msgstr "Размяшчэнне кнопак"
#: ../src/ui/theme-viewer.c:892
#: ../src/ui/theme-viewer.c:893
msgid "Benchmark"
msgstr "Выпрабаванне"
#: ../src/ui/theme-viewer.c:944
#: ../src/ui/theme-viewer.c:949
msgid "Window Title Goes Here"
msgstr "Месца для загалоўка акна"
#: ../src/ui/theme-viewer.c:1047
#: ../src/ui/theme-viewer.c:1055
#, c-format
msgid ""
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
@ -1554,256 +1740,42 @@ msgstr ""
"і %g секунд каляндарнага часу, уключна з рэсурсамі X-сервера (%g мілісекунд "
"на рамку)\n"
#: ../src/ui/theme-viewer.c:1266
#: ../src/ui/theme-viewer.c:1275
msgid "position expression test returned TRUE but set error"
msgstr "выпрабаванне выразу пазіцыі вярнула TRUE, але паведаміла аб памылцы"
#: ../src/ui/theme-viewer.c:1268
#: ../src/ui/theme-viewer.c:1277
msgid "position expression test returned FALSE but didn't set error"
msgstr ""
"выпрабаванне выразу пазіцыі вярнула FALSE, але не паведаміла аб памылцы"
#: ../src/ui/theme-viewer.c:1272
#: ../src/ui/theme-viewer.c:1281
msgid "Error was expected but none given"
msgstr "Чакалася памылка, але звесткі не атрыманыя"
#: ../src/ui/theme-viewer.c:1274
#: ../src/ui/theme-viewer.c:1283
#, c-format
msgid "Error %d was expected but %d given"
msgstr "Чакалася памылка %d, але атрымана %d"
#: ../src/ui/theme-viewer.c:1280
#: ../src/ui/theme-viewer.c:1289
#, c-format
msgid "Error not expected but one was returned: %s"
msgstr "Атрымана нечаканая памылка: %s"
#: ../src/ui/theme-viewer.c:1284
#: ../src/ui/theme-viewer.c:1293
#, c-format
msgid "x value was %d, %d was expected"
msgstr "X-значэнне было %d, а чакалася %d"
#: ../src/ui/theme-viewer.c:1287
#: ../src/ui/theme-viewer.c:1296
#, c-format
msgid "y value was %d, %d was expected"
msgstr "Y-значэнне было %d, а чакалася %d"
#: ../src/ui/theme-viewer.c:1352
#: ../src/ui/theme-viewer.c:1361
#, 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 "Navigation"
msgstr "Навігацыя"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Перамясціць акно ў прастору 1"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Перамясціць акно ў прастору 2"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Перамясціць акно ў прастору 3"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Перамясціць акно ў прастору 4"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Перамясціць акно ў прастору злева ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Перамясціць акно ў прастору справа ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace up"
msgstr "Перамясціць акно ў прастору зверху ад дзейнай"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace down"
msgstr "Перамясціць акно ў прастору знізу ад дзейнай"
#: ../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 "Перамяшчацца паміж вокнамі праграмы"
#: ../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 "Гарызантальна максімалізаваць акно"

592
po/bg.po

File diff suppressed because it is too large Load Diff

586
po/es.po

File diff suppressed because it is too large Load Diff

136
po/et.po
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-10-17 20:44+0000\n"
"PO-Revision-Date: 2012-10-21 20:48+0300\n"
"POT-Creation-Date: 2012-12-18 22:30+0000\n"
"PO-Revision-Date: 2012-12-19 18:06+0300\n"
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
"Language-Team: Estonian <>\n"
"Language: et\n"
@ -24,9 +24,141 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
msgid "Navigation"
msgstr "Navigeerimine"
msgid "Move window to workspace 1"
msgstr "Akna liigutamine 1. tööalale"
msgid "Move window to workspace 2"
msgstr "Akna liigutamine 2. tööalale"
msgid "Move window to workspace 3"
msgstr "Akna liigutamine 3. tööalale"
msgid "Move window to workspace 4"
msgstr "Akna liigutamine 4. tööalale"
msgid "Move window one workspace to the left"
msgstr "Akna tõstmine vasakpoolsele tööalale"
msgid "Move window one workspace to the right"
msgstr "Akna tõstmine parempoolsele tööalale"
msgid "Move window one workspace up"
msgstr "Akna tõstmine ülemisele tööalale"
msgid "Move window one workspace down"
msgstr "Akna tõstmine alumisele tööalale"
msgid "Switch applications"
msgstr "Rakenduste vahetamine"
msgid "Switch windows"
msgstr "Akende vahetamine"
msgid "Switch windows of an application"
msgstr "Rakenduse akende vahetamine"
msgid "Switch system controls"
msgstr "Süsteemi juhtalade vahetamine"
msgid "Switch windows directly"
msgstr "Akende kohene vahetamine"
msgid "Switch windows of an app directly"
msgstr "Rakenduse akende kohene vahetamine"
msgid "Switch system controls directly"
msgstr "Süsteemi juhtalade kohene vahetamine"
msgid "Hide all normal windows"
msgstr "Kõigi tavaliste akende peitmine"
msgid "Switch to workspace 1"
msgstr "1. tööalale liikumine"
msgid "Switch to workspace 2"
msgstr "2. tööalale liikumine"
msgid "Switch to workspace 3"
msgstr "3. tööalale liikumine"
msgid "Switch to workspace 4"
msgstr "4. tööalale liikumine"
msgid "Move to workspace left"
msgstr "Vasakpoolsele tööalale liikumine"
msgid "Move to workspace right"
msgstr "Parempoolsele tööalale liikumine"
msgid "Move to workspace above"
msgstr "Ülemisele tööalale liikumine"
msgid "Move to workspace below"
msgstr "Alumisele tööalale liikumine"
msgid "System"
msgstr "Süsteem"
msgid "Show the run command prompt"
msgstr "Käsuviiba kuvamine"
msgid "Show the activities overview"
msgstr "Tegevuste ülevaate avamine"
msgid "Windows"
msgstr "Aknad"
msgid "Activate the window menu"
msgstr "Aknamenüü avamine"
msgid "Toggle fullscreen mode"
msgstr "Täisekraanoleku vahetamine"
msgid "Toggle maximization state"
msgstr "Maksimeeritud oleku vahetamine"
msgid "Maximize window"
msgstr "Akna maksimeerimine"
msgid "Restore window"
msgstr "Akna taastamine"
msgid "Toggle shaded state"
msgstr "Varjatud oleku vahetamine"
msgid "Close window"
msgstr "Akna sulgemine"
msgid "Minimize window"
msgstr "Akna minimeerimine"
msgid "Move window"
msgstr "Akna liigutamine"
msgid "Resize window"
msgstr "Akna suuruse muutmine"
msgid "Toggle window on all workspaces or one"
msgstr "Akna kõigil või ühel tööalal olemise vahetamine"
msgid "Raise window if covered, otherwise lower it"
msgstr "Akna tõstmine, kui see on kaetud, muul juhul langetamine"
msgid "Raise window above other windows"
msgstr "Akna tõstmine teiste kohale"
msgid "Lower window below other windows"
msgstr "Akna langetamine teiste taha"
msgid "Maximize window vertically"
msgstr "Akna vertikaalne maksimeerimine"
msgid "Maximize window horizontally"
msgstr "Akna horisontaalne maksimeerimine"
msgid "View split on left"
msgstr "Vaade poolitatakse vasakult"

451
po/gl.po
View File

@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-10-16 17:05+0200\n"
"PO-Revision-Date: 2012-10-16 17:06+0200\n"
"POT-Creation-Date: 2012-12-24 22:58+0100\n"
"PO-Revision-Date: 2012-12-24 23:03+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n"
@ -25,21 +25,197 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "Navegación"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "Mover xanela ao espazo de traballo 1"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Mover xanela ao espazo de traballo 2"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Mover xanela ao espazo de traballo 3"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Mover xanela ao espazo de traballo 4"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "Mover xanela un espazo de traballo cara á esquerda"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the right"
msgstr "Mover xanela un espazo de traballo cara á dereita"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace up"
msgstr "Mover xanela un espazo de traballo cara a arriba"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "Mover xanela un espazo de traballo cara a abaixo"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "Cambiar entre aplicativos"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "Cambiar xanelas"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "Cambiar entre as xanelas dun aplicativo"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "Cambiar entre os controles do sistema"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "Cambiar xanelas directamente"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "Cambiar entre as xanelas dun aplicativo directamente"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "Cambiar entre os controles do sistema directamente"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
msgstr "Ocultar todas as xanelas normais"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "Cambiar ao espazo de traballo 1"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "Cambiar ao espazo de traballo 2"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "Cambiar ao espazo de traballo 3"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "Cambiar ao espazo de traballo 4"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Move to workspace left"
msgstr "Mover ao espazo da esquerda"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "Mover ao espazo da dereita"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "Mover ao espazo de arriba"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "Mover ao espazo de traballo de abaixo"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "Sistema"
#: ../src/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "Mostrar o diálogo de executar orde"
#: ../src/50-mutter-system.xml.in.h:3
msgid "Show the activities overview"
msgstr "Mostrar a vista xeral de actividades"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Xanelas"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "View split on left"
msgstr "Ver división á esquerda"
msgid "Activate the window menu"
msgstr "Activar o menú da xanela"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Trocar modo de pantalla completa"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Trocar o estado maximizado"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Maximizar xanela"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Restaurar xanela"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Trocar o estado ensombrecido"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Pechar xanela"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Minimize window"
msgstr "Minimizar xanela"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Mover xanela"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Redimensionar xanela"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "Trocar que a xanela apareza en tódolos espazos de traballo ou nun"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "Elevar a xanela se está cuberta por outra, en caso contrario baixala"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "Subir a xanela por enriba doutras xanelas"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Baixar xanela debaixo doutras xanelas"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Maximizar xanela verticalmente"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Maximizar xanela horizontalmente"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "Dividir vista á esquerda"
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
msgstr "Ver división á dereita"
msgstr "Dividir vista á dereita"
#. 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
#: ../src/compositor/compositor.c:512
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@ -82,17 +258,17 @@ msgstr "Espe_rar"
msgid "_Force Quit"
msgstr "_Forzar a saída"
#: ../src/core/display.c:396
#: ../src/core/display.c:394
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Falta a extensión %s que se require para a composición"
#: ../src/core/display.c:493
#: ../src/core/display.c:491
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Produciuse un erro ao abrir a visualización do X Window System «%s»\n"
#: ../src/core/keybindings.c:853
#: ../src/core/keybindings.c:876
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -125,12 +301,12 @@ msgstr "Inicializar sesión desde o ficheiro de salvagarda"
msgid "Make X calls synchronous"
msgstr "Facer que as chamadas a X sexan sincrónicas"
#: ../src/core/main.c:494
#: ../src/core/main.c:496
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Produciuse un erro ao dixitalizar o directorio de temas: %s\n"
#: ../src/core/main.c:510
#: ../src/core/main.c:512
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -185,7 +361,7 @@ msgstr ""
"«%s» atopados na base de datos de configuración non é un valor correcto para "
"o modificador do botón do rato\n"
#: ../src/core/prefs.c:1747
#: ../src/core/prefs.c:1757
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -194,17 +370,17 @@ msgstr ""
"«%s» atopados na base de datos de configuración non é un valor correcto para "
"a combinación de teclas «%s»\n"
#: ../src/core/prefs.c:1844
#: ../src/core/prefs.c:1854
#, c-format
msgid "Workspace %d"
msgstr "Espazo de traballo %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "A pantalla %d na visualización «%s» non é válida\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:674
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -213,7 +389,7 @@ msgstr ""
"A visualización %d na pantalla «%s» ten xa un xestor de xanelas, tente usar "
"a opción --replace para substituír o xestor de xanelas.\n"
#: ../src/core/screen.c:695
#: ../src/core/screen.c:701
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@ -221,12 +397,12 @@ msgstr ""
"Non foi posíbel obter a selección do xestor de xanelas na pantalla %d na "
"visualización «%s»\n"
#: ../src/core/screen.c:750
#: ../src/core/screen.c:770
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "A visualización %d na pantalla «%s» ten xa un xestor de xanelas\n"
#: ../src/core/screen.c:935
#: ../src/core/screen.c:955
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Non foi posíbel liberar a visualización %d na pantalla «%s»\n"
@ -323,7 +499,7 @@ msgid "Window manager error: "
msgstr "Erro do xestor de xanelas: "
#. first time through
#: ../src/core/window.c:7237
#: ../src/core/window.c:7275
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -339,7 +515,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7902
#: ../src/core/window.c:7941
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -1556,11 +1732,11 @@ msgstr "Disposición dos botóns"
msgid "Benchmark"
msgstr "Banco de probas"
#: ../src/ui/theme-viewer.c:944
#: ../src/ui/theme-viewer.c:949
msgid "Window Title Goes Here"
msgstr "O título da xanela vai aquí"
#: ../src/ui/theme-viewer.c:1047
#: ../src/ui/theme-viewer.c:1052
#, c-format
msgid ""
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
@ -1571,262 +1747,47 @@ msgstr ""
"marco) e %g segundos de tempo estándar incluíndo recursos do servidor X (%g "
"milisegundos por marco)\n"
#: ../src/ui/theme-viewer.c:1266
#: ../src/ui/theme-viewer.c:1271
msgid "position expression test returned TRUE but set error"
msgstr ""
"a proba de expresión da posición devolveu TRUE mais estabeleceu un erro"
#: ../src/ui/theme-viewer.c:1268
#: ../src/ui/theme-viewer.c:1273
msgid "position expression test returned FALSE but didn't set error"
msgstr ""
"a proba de expresión da posición devolveu FALSE mais estabeleceu un erro"
#: ../src/ui/theme-viewer.c:1272
#: ../src/ui/theme-viewer.c:1277
msgid "Error was expected but none given"
msgstr "Esperábase un erro, mais non se deu ningún"
#: ../src/ui/theme-viewer.c:1274
#: ../src/ui/theme-viewer.c:1279
#, c-format
msgid "Error %d was expected but %d given"
msgstr "Esperábase un erro %d mais deuse %d"
#: ../src/ui/theme-viewer.c:1280
#: ../src/ui/theme-viewer.c:1285
#, c-format
msgid "Error not expected but one was returned: %s"
msgstr "Non se esperaba ningún erro mais devolveuse un: %s"
#: ../src/ui/theme-viewer.c:1284
#: ../src/ui/theme-viewer.c:1289
#, c-format
msgid "x value was %d, %d was expected"
msgstr "o valor x era %d, esperábase %d"
#: ../src/ui/theme-viewer.c:1287
#: ../src/ui/theme-viewer.c:1292
#, c-format
msgid "y value was %d, %d was expected"
msgstr "o valor y era %d, esperábase %d"
#: ../src/ui/theme-viewer.c:1352
#: ../src/ui/theme-viewer.c:1357
#, c-format
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr ""
"%d expresións de coordenadas interpretadas en %g segundos (%g segundos de "
"media)\n"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Cambiar ao espazo de traballo 1"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Cambiar ao espazo de traballo 2"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Cambiar ao espazo de traballo 3"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Cambiar ao espazo de traballo 4"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Activate the window menu"
msgstr "Activar o menú da xanela"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Alternar o modo de pantalla completa"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Toggle maximization state"
msgstr "Alternar o estado maximizado"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window"
msgstr "Maximizar a xanela"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Restore window"
msgstr "Restaurar a xanela"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Toggle shaded state"
msgstr "Alternar o estado ensombrecido"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Minimize window"
msgstr "Minimizar a xanela"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Close window"
msgstr "Pechar a xanela"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Move window"
msgstr "Mover a xanela"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Redimensionar a xanela"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Mover a xanela ao espazo de traballo 1"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Mover a xanela ao espazo de traballo 2"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Mover a xanela ao espazo de traballo 3"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Mover a xanela ao espazo de traballo 4"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Mover a xanela un espazo de traballo cara á esquerda"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Mover a xanela un espazo de traballo cara á dereita"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace up"
msgstr "Mover a xanela un espazo de traballo cara a arriba"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace down"
msgstr "Mover a xanela un espazo de traballo cara a abaixo"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Raise window above other windows"
msgstr "Subir a xanela por enriba doutras xanelas"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Lower window below other windows"
msgstr "Baixar unha xanela debaixo doutras xanelas"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Maximize window vertically"
msgstr "Maximizar a xanela verticalmente"
#: ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Maximizar a xanela horizontalmente"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr "Navegación"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Switch applications"
msgstr "Cambiar entre aplicativos"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Switch windows of an application"
msgstr "Cambiar entre as xanelas dun aplicativo"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Switch system controls"
msgstr "Cambiar entre os controles do sistema"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Switch windows directly"
msgstr "Cambiar xanelas directamente"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Moverse entre as xanelas dun aplicativo directamente"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch system controls directly"
msgstr "Moverse entre os controles do sistema directamente"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Hide all normal windows"
msgstr "Agochar todas as xanelas normais"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Move to workspace left"
msgstr "Mover ao espazo da esquerda"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Move to workspace right"
msgstr "Mover ao espazo da dereita"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Move to workspace above"
msgstr "Mover ao espazo de arriba"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Move to workspace below"
msgstr "Mover ao espazo de abaixo"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "System"
msgstr "Sistema"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Mostrar o diálogo de executar orde"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "Show the activities overview"
msgstr "Mostrar a vista previa das actividades"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Trocar que a xanela apareza en tódolos espazos de traballo ou nun"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "Elevar a xanela se está cuberta por outra, en caso contrario baixala"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "Lista de separadas por comas dos complementos do compositor"

641
po/he.po
View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity.HEAD.he\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-07 18:40+0200\n"
"PO-Revision-Date: 2012-11-07 18:40+0200\n"
"POT-Creation-Date: 2012-12-26 19:50+0200\n"
"PO-Revision-Date: 2012-12-26 19:50+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <he@li.org>\n"
"Language: he\n"
@ -19,24 +19,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "ניווט"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "העברת החלון למרחב עבודה 1"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "העברת החלון למרחב עבודה 2"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "העברה למרחב עבודה 3"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "העברה למרחב עבודה 4"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "העברת החלון לשולחן העבודה שמשמאל"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the right"
msgstr "העברת החלון לשולחן העבודה שמימין"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace up"
msgstr "העברת החלון לשולחן העבודה שמלמעלה"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "העברת החלון לשולחן העבודה שמלמטה"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "החלפה בין יישומים"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "החלפת חלונות"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "החלפה בין חלונות של יישום"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "החלפה בין פקדי המערכת"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "החלפת החלונות באופן ישיר"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "החלפת חלונות של יישום באופן ישיר"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "החלפת פקדי המערכת באופן ישיר"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
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 "Move to workspace left"
msgstr "העברה למרחב העבודה לשמאל"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "העברה למרחב העבודה לימין"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "העברה למרחב העבודה שמלמעלה"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "העברה למרחב העבודה שמלמטה"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
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 "Show the activities overview"
msgstr "הצגת סקירת הפעילויות"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "חלונות"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "הפעלת תפריט החלון"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "הפעלה/כיבוי מצב מסך מלא"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "הפעלה/כיבוי מצב הגדלה"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "הגדלת חלון"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "שחזור חלון"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "החלפת מצב ההצללה"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "סגירת חלון"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Minimize window"
msgstr "מזעור חלון"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "הזזת חלון"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "שינוי גודל חלון"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "החלפת המצב בין האם החלון מופיע במרחב עבודה אחד או בכולם"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "הגבהת החלון אם הוא מכוסה, אחרת יש להנמיכו"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "הגבהת החלון מעל לחלונות אחרים"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "הנמכת החלון מתחת לחלונות אחרים"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "הגדלת החלון אנכית"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "הגדלת החלון אופקית"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "פיצול הצפייה משמאל"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
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
#: ../src/compositor/compositor.c:512
#, c-format
msgid "Another compositing manager is already running on screen %i on display \"%s\"."
msgstr "מנהל תצוגת חלונות אחר כבר פועל במסך %i בתצוגה \"%s\"."
msgstr "מנהל תצוגת חלונות אחר כבר פועל במסך %i בתצוגה „%s“."
#: ../src/core/bell.c:320
msgid "Bell event"
@ -68,20 +244,20 @@ msgstr "ה_מתנה"
msgid "_Force Quit"
msgstr "_אילוץ סגירה"
#: ../src/core/display.c:399
#: ../src/core/display.c:394
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Missing %s extension required for compositing"
#: ../src/core/display.c:496
#: ../src/core/display.c:491
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Failed to open X Window System display '%s'\n"
#: ../src/core/keybindings.c:853
#: ../src/core/keybindings.c:876
#, c-format
msgid "Some other program is already using the key %s with modifiers %x as a binding\n"
msgstr "תוכנית אחרת כבר משתמשת במקש %s עם המקש %x כצירוף\n"
msgstr "תכנית אחרת כבר משתמשת במקש %s עם המקש %x כצירוף\n"
#: ../src/core/main.c:196
msgid "Disable connection to session manager"
@ -107,12 +283,12 @@ msgstr "Initialize session from savefile"
msgid "Make X calls synchronous"
msgstr "Make X calls synchronous"
#: ../src/core/main.c:494
#: ../src/core/main.c:496
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Failed to scan themes directory: %s\n"
#: ../src/core/main.c:510
#: ../src/core/main.c:512
#, c-format
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -138,51 +314,51 @@ msgstr "Print version"
msgid "Mutter plugin to use"
msgstr "תוסף ה־mutter לשימוש"
#: ../src/core/prefs.c:1079
#: ../src/core/prefs.c:1087
msgid "Workarounds for broken applications disabled. Some applications may not behave properly.\n"
msgstr "Workarounds for broken applications disabled. Some applications may not behave properly.\n"
#: ../src/core/prefs.c:1154
#: ../src/core/prefs.c:1162
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr "Could not parse font description \"%s\" from GSettings key %s\n"
#: ../src/core/prefs.c:1220
#: ../src/core/prefs.c:1228
#, c-format
msgid "\"%s\" found in configuration database is not a valid value for mouse button modifier\n"
msgstr "\"%s\" found in configuration database is not a valid value for mouse button modifier\n"
#: ../src/core/prefs.c:1747
#: ../src/core/prefs.c:1768
#, c-format
msgid "\"%s\" found in configuration database is not a valid value for keybinding \"%s\"\n"
msgstr "\"%s\" found in configuration database is not a valid value for keybinding \"%s\"\n"
#: ../src/core/prefs.c:1844
#: ../src/core/prefs.c:1865
#, c-format
msgid "Workspace %d"
msgstr "סביבת עבודה %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Screen %d on display '%s' is invalid\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:674
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager; try using the --replace option to replace the current window manager.\n"
msgstr "Screen %d on display \"%s\" already has a window manager; try using the --replace option to replace the current window manager.\n"
#: ../src/core/screen.c:695
#: ../src/core/screen.c:701
#, c-format
msgid "Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "Could not acquire window manager selection on screen %d display \"%s\"\n"
#: ../src/core/screen.c:750
#: ../src/core/screen.c:770
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Screen %d on display \"%s\" already has a window manager\n"
#: ../src/core/screen.c:935
#: ../src/core/screen.c:955
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Could not release screen %d on display \"%s\"\n"
@ -279,7 +455,7 @@ msgid "Window manager error: "
msgstr "Window manager error: "
#. first time through
#: ../src/core/window.c:7240
#: ../src/core/window.c:7277
#, c-format
msgid "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER window as specified in the ICCCM.\n"
msgstr "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER window as specified in the ICCCM.\n"
@ -291,7 +467,7 @@ msgstr "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADE
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7905
#: ../src/core/window.c:7943
#, 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 "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"
@ -411,10 +587,18 @@ msgid "The amount of total draggable borders. If the theme's visible borders are
msgstr "The amount of total draggable borders. If the theme's visible borders are not enough, invisible borders will be added to meet this value."
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows"
msgstr "Auto maximize nearly monitor sized windows"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid "If enabled, monitor nearly monitor sized windows automatically get maximized when mapped."
msgstr "If enabled, monitor nearly monitor sized windows automatically get maximized when mapped."
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
msgid "Select window from tab popup"
msgstr "Select window from tab popup"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
msgid "Cancel tab popup"
msgstr "Cancel tab popup"
@ -426,79 +610,79 @@ msgstr "שימוש: %s\n"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:69
msgid "Mi_nimize"
msgstr "_מזער"
msgstr "מזור"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:71
msgid "Ma_ximize"
msgstr "ה_גדל"
msgstr "ה_גדלה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:73
msgid "Unma_ximize"
msgstr "_שחזר"
msgstr "_שחזור"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:75
msgid "Roll _Up"
msgstr "גלול _מעלה"
msgstr "גלילה למע_לה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:77
msgid "_Unroll"
msgstr "גלול _חזרה"
msgstr "גלילה ב_חזרה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:79
msgid "_Move"
msgstr "_הזז"
msgstr "ה_זזה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:81
msgid "_Resize"
msgstr "_שנה גודל"
msgstr "_שינוי גודל"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:83
msgid "Move Titlebar On_screen"
msgstr "הזז את שורת הכותרת אל ה_מסך"
msgstr "הזזת שורת הכותרת אל המ_סך"
#. separator
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:86
#: ../src/ui/menu.c:88
msgid "Always on _Top"
msgstr "תמיד מ_למעלה"
msgstr "_תמיד עליון"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:90
msgid "_Always on Visible Workspace"
msgstr "_הראה בכל סביבות העבודה"
msgstr "ה_צגה בכל מרחבי העבודה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:92
msgid "_Only on This Workspace"
msgstr "רק בסביבת עבודה ו"
msgstr "_רק במרחב עבודה זה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:94
msgid "Move to Workspace _Left"
msgstr "הזז חלון לסביבת העבודה ה_שמאלית"
msgstr "הזזת החלון למרחב העבודה ה_שמאלי"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:96
msgid "Move to Workspace R_ight"
msgstr "הזז חלון לסביבת העבודה ה_ימנית"
msgstr "הזזת החלון למרחב העבודה ה_ימני"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:98
msgid "Move to Workspace _Up"
msgstr "הזז חלון לסביבת העבודה למעלה"
msgstr "הזזת החלון למרחב העבודה ש_למעלה"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:100
msgid "Move to Workspace _Down"
msgstr "הזז חלון לסביבת העבודה למטה"
msgstr "הזזת החלון למרחב העבודה שלמ_טה"
#. separator
#. Translators: Translate this string the same way as you do in libwnck!
@ -509,21 +693,21 @@ msgstr "_סגור"
#: ../src/ui/menu.c:204
#, c-format
msgid "Workspace %d%n"
msgstr "סביבת עבודה %d%n"
msgstr "מרחב עבודה %d%n"
#: ../src/ui/menu.c:214
#, c-format
msgid "Workspace 1_0"
msgstr "סביבת עבודה 1_0"
msgstr "מרחב עבודה 1_0"
#: ../src/ui/menu.c:216
#, c-format
msgid "Workspace %s%d"
msgstr "סביבת עבודה %s%d"
msgstr "מרחב עבודה %s%d"
#: ../src/ui/menu.c:397
msgid "Move to Another _Workspace"
msgstr "הזז חלון לסביבת עבודה אחרת"
msgstr "הזז חלון למרחב עבודה אחר"
#. This is the text that should appear next to menu accelerators
#. * that use the shift key. If the text on this key isn't typically
@ -896,13 +1080,13 @@ msgstr "Attribute \"%s\" is invalid on <%s> element in this context"
#: ../src/ui/theme-parser.c:594
#, c-format
msgid "Could not parse \"%s\" as an integer"
msgstr "לא ניתן להעביר את \"%s\" כמספר שלם"
msgstr "לא ניתן להעביר את „%s“ כמספר שלם"
#: ../src/ui/theme-parser.c:603
#: ../src/ui/theme-parser.c:658
#, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr "לא ניתן להבין את התוים \"%s\" במחרוזת \"%s\""
msgstr "לא ניתן להבין את התווים „%s“ במחרוזת „%s“"
#: ../src/ui/theme-parser.c:613
#, c-format
@ -1282,74 +1466,74 @@ msgstr "כל ה_מעגנים"
#: ../src/ui/theme-viewer.c:109
msgid "Des_ktop"
msgstr "ש_ולחן עבודה"
msgstr "_שולחן עבודה"
#: ../src/ui/theme-viewer.c:115
msgid "Open another one of these windows"
msgstr "Open another one of these windows"
msgstr "פתיחת חלון נוסף מהסגנון הזה"
#: ../src/ui/theme-viewer.c:117
msgid "This is a demo button with an 'open' icon"
msgstr "This is a demo button with an 'open' icon"
msgstr "זהו לחצן הדגמה עם סמל של „פתיחה“"
#: ../src/ui/theme-viewer.c:119
msgid "This is a demo button with a 'quit' icon"
msgstr "This is a demo button with a 'quit' icon"
msgstr "זהו לחצן הדגמה עם סמל של „יציאה“"
#: ../src/ui/theme-viewer.c:248
msgid "This is a sample message in a sample dialog"
msgstr "This is a sample message in a sample dialog"
msgstr "זוהי הודעת הדגמה בתיבת דו־שיח מדומה"
#: ../src/ui/theme-viewer.c:328
#, c-format
msgid "Fake menu item %d\n"
msgstr "Fake menu item %d\n"
msgstr "פריט תפריט מדומה %d\n"
#: ../src/ui/theme-viewer.c:363
msgid "Border-only window"
msgstr "Border-only window"
msgstr "חלון עם מסגרת בלבד"
#: ../src/ui/theme-viewer.c:365
msgid "Bar"
msgstr "Bar"
msgstr "סרגל"
#: ../src/ui/theme-viewer.c:382
msgid "Normal Application Window"
msgstr "Normal Application Window"
msgstr "חלון יישום רגיל"
#: ../src/ui/theme-viewer.c:386
msgid "Dialog Box"
msgstr "Dialog Box"
msgstr "תיבת דו־שיח"
#: ../src/ui/theme-viewer.c:390
msgid "Modal Dialog Box"
msgstr "Modal Dialog Box"
msgstr "תיבת דו־שיח חוסמת"
#: ../src/ui/theme-viewer.c:394
msgid "Utility Palette"
msgstr "Utility Palette"
msgstr "פלטת כלי"
#: ../src/ui/theme-viewer.c:398
msgid "Torn-off Menu"
msgstr "Torn-off Menu"
msgstr "תפריט נתלש"
#: ../src/ui/theme-viewer.c:402
msgid "Border"
msgstr "Border"
msgstr "מסגרת"
#: ../src/ui/theme-viewer.c:406
msgid "Attached Modal Dialog"
msgstr "Attached Modal Dialog"
msgstr "חלון חוסם מוצמד"
#: ../src/ui/theme-viewer.c:739
#, c-format
msgid "Button layout test %d"
msgstr "Button layout test %d"
msgstr "בדיקת פריסת לחצנים %d"
#: ../src/ui/theme-viewer.c:768
#, c-format
msgid "%g milliseconds to draw one window frame"
msgstr "%g milliseconds to draw one window frame"
msgstr "%g מילישניות לציור של מסגרת חלון אחת"
#: ../src/ui/theme-viewer.c:813
#, c-format
@ -1368,369 +1552,70 @@ msgstr "Loaded theme \"%s\" in %g seconds\n"
#: ../src/ui/theme-viewer.c:870
msgid "Normal Title Font"
msgstr "Normal Title Font"
msgstr "גופן כותרת רגילה"
#: ../src/ui/theme-viewer.c:876
msgid "Small Title Font"
msgstr "Small Title Font"
msgstr "גופן כותרת קטנה"
#: ../src/ui/theme-viewer.c:882
msgid "Large Title Font"
msgstr "Large Title Font"
msgstr "גופן כותרת גדולה"
#: ../src/ui/theme-viewer.c:887
msgid "Button Layouts"
msgstr "Button Layouts"
msgstr "פריסת לחצנים"
#: ../src/ui/theme-viewer.c:892
msgid "Benchmark"
msgstr "Benchmark"
msgstr "מדידת ביצועים"
#: ../src/ui/theme-viewer.c:944
#: ../src/ui/theme-viewer.c:949
msgid "Window Title Goes Here"
msgstr "Window Title Goes Here"
msgstr "כותרת החלון מופיעה כאן"
#: ../src/ui/theme-viewer.c:1047
#: ../src/ui/theme-viewer.c:1052
#, c-format
msgid "Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g seconds wall clock time including X server resources (%g milliseconds per frame)\n"
msgstr "Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g seconds wall clock time including X server resources (%g milliseconds per frame)\n"
#: ../src/ui/theme-viewer.c:1266
#: ../src/ui/theme-viewer.c:1271
msgid "position expression test returned TRUE but set error"
msgstr "position expression test returned TRUE but set error"
#: ../src/ui/theme-viewer.c:1268
#: ../src/ui/theme-viewer.c:1273
msgid "position expression test returned FALSE but didn't set error"
msgstr "position expression test returned FALSE but didn't set error"
#: ../src/ui/theme-viewer.c:1272
#: ../src/ui/theme-viewer.c:1277
msgid "Error was expected but none given"
msgstr "Error was expected but none given"
#: ../src/ui/theme-viewer.c:1274
#: ../src/ui/theme-viewer.c:1279
#, c-format
msgid "Error %d was expected but %d given"
msgstr "Error %d was expected but %d given"
#: ../src/ui/theme-viewer.c:1280
#: ../src/ui/theme-viewer.c:1285
#, c-format
msgid "Error not expected but one was returned: %s"
msgstr "Error not expected but one was returned: %s"
#: ../src/ui/theme-viewer.c:1284
#: ../src/ui/theme-viewer.c:1289
#, c-format
msgid "x value was %d, %d was expected"
msgstr "x value was %d, %d was expected"
#: ../src/ui/theme-viewer.c:1287
#: ../src/ui/theme-viewer.c:1292
#, c-format
msgid "y value was %d, %d was expected"
msgstr "y value was %d, %d was expected"
#: ../src/ui/theme-viewer.c:1352
#: ../src/ui/theme-viewer.c:1357
#, c-format
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
#: ../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-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הפעלת תפריט החלון\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הפעלת החלון הפעיל"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"כניסה למצב מסך מלא\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הפעלה/כיבוי מצב מסך מלא"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr "הפעלה/כיבוי מצב הגדלה"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Maximize window\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הגדלת חלון"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Restore window\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"שחזור חלון"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Toggle shaded state\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"החלפת מצב ההצללה"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Minimize window\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"מזעור חלון"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Close window\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"סגירת חלון"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הזזת חלון"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Resize window\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"שינוי גודל חלון"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window to workspace 1\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברה למרחב עבודה 1"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window to workspace 2\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברה למרחב עבודה 2"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window to workspace 3\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברה למרחב עבודה 3"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window to workspace 4\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברה למרחב עבודה 4"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the left"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window one workspace to the left\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברת החלון לשולחן העבודה שמשמאל"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window one workspace to the right\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברת החלון לשולחן העבודה שמימין"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace up"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window one workspace up\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברת החלון לשולחן העבודה שמלמעלה"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace down"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Move window one workspace down\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"העברת החלון לשולחן העבודה שמלמטה"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Raise window above other windows\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הגבהת החלון מעל לחלונות אחרים"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Lower window below other windows\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הנמכת החלון מתחת לחלונות אחרים"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Maximize window vertically\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"הגדלת החלון אנכית"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr ""
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\n"
"Maximize window horizontally\n"
"#-#-#-#-# he.po (metacity.HEAD.he) #-#-#-#-#\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: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 "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:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "הגבהת החלון אם הוא מכוסה, אחרת יש להנמיכו"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "החלפת המצב בין האם החלון מופיע במרחב עבודה אחד או בכולם"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "Comma-separated list of compositor plugins"

223
po/kn.po
View File

@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: metacity.HEAD\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-08-06 23:35+0000\n"
"PO-Revision-Date: 2012-10-05 17:14+0530\n"
"POT-Creation-Date: 2012-12-13 11:57+0000\n"
"PO-Revision-Date: 2012-12-13 17:43+0530\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: Kannada <en@li.org>\n"
"Language: kn\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.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/50-mutter-windows.xml.in.h:1
@ -49,19 +49,18 @@ msgstr "ಘಂಟೆಯ ಶಬ್ಧ"
#: ../src/core/core.c:157
#, c-format
msgid "Unknown window information request: %d"
msgstr "ಗೊತ್ತಿರದ ವಿಂಡೊ ಮಾಹಿತಿಯ ಮನವಿ: %d"
msgstr "ಗೊತ್ತಿರದ ಕಿಟಕಿಯ ಮಾಹಿತಿಯ ಮನವಿ: %d"
#: ../src/core/delete.c:114
#, fuzzy, c-format
#| msgid "<tt>%s</tt> is not responding."
#: ../src/core/delete.c:113
#, c-format
msgid "%s is not responding."
msgstr "<tt>%s</tt> ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ."
msgstr "%s ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ."
#: ../src/core/delete.c:118
#: ../src/core/delete.c:117
msgid "Application is not responding."
msgstr "ಅನ್ವಯವು ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ."
#: ../src/core/delete.c:123
#: ../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."
@ -69,25 +68,25 @@ msgstr ""
"ಅನ್ವಯವು ಮುಂದುವರೆಯುವ ವರೆಗೆ ಕೊಂಚ ಸಮಯ ನೀವು ಕಾಯಬಹುದು ಅಥವ ಅದು ಸಂಪೂರ್ಣವಾಗಿ ಮುಚ್ಚಿ "
"ಹೋಗುವಂತೆ ಒತ್ತಾಯಿಸಬಹುದು."
#: ../src/core/delete.c:130
#: ../src/core/delete.c:129
msgid "_Wait"
msgstr "ನಿರೀಕ್ಷಿಸು(_W)"
msgstr "ನಿರೀಕ್ಷಿಸು (_W)"
#: ../src/core/delete.c:130
#: ../src/core/delete.c:129
msgid "_Force Quit"
msgstr "ಬಲವಂತವಾಗಿ ಮುಚ್ಚು(_F)"
msgstr "ಬಲವಂತವಾಗಿ ಮುಚ್ಚು (_F)"
#: ../src/core/display.c:380
#: ../src/core/display.c:399
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "ಕಂಪೋಸಿಟಿಂಗ್ ಮಾಡಲು ಅಗತ್ಯವಿರುವ %s ವಿಸ್ತರಣೆಯು ಕಾಣಿಸುತ್ತಿಲ್ಲ"
#: ../src/core/display.c:446
#: ../src/core/display.c:496
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "X ವಿಂಡೊ ಗಣಕ ಪ್ರದರ್ಶಕ '%s' ಅನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲತೆ\n"
msgstr "X ಕಿಟಕಿ ಗಣಕ ಪ್ರದರ್ಶಕ '%s' ಅನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲತೆ\n"
#: ../src/core/keybindings.c:844
#: ../src/core/keybindings.c:853
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -102,7 +101,7 @@ msgstr "ಅಧಿವೇಶನ ನಿರ್ವಾಹಕದೊಂದಿಗೆ ಸ
#: ../src/core/main.c:202
msgid "Replace the running window manager"
msgstr "ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿರುವ ವಿಂಡೊ ವ್ಯವಸ್ಥಾಪಕವನ್ನು ಬದಲಾಯಿಸಿ"
msgstr "ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿರುವ ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕವನ್ನು ಬದಲಾಯಿಸಿ"
#: ../src/core/main.c:208
msgid "Specify session management ID"
@ -155,9 +154,9 @@ msgstr "ಮುದ್ರಿಸಬಹುದಾದ ಆವೃತ್ತಿ"
#: ../src/core/mutter.c:60
msgid "Mutter plugin to use"
msgstr ""
msgstr "ಬಳಸಬೇಕಿರುವ Mutter ಪ್ಲಗ್ಇನ್"
#: ../src/core/prefs.c:1065
#: ../src/core/prefs.c:1079
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -166,14 +165,14 @@ msgstr ""
"ಸರಿಯಾಗಿ "
"ಕೆಲಸ ಮಾಡದೆ ಇರಬಹುದು.\n"
#: ../src/core/prefs.c:1140
#: ../src/core/prefs.c:1154
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr ""
"\"%s\" ಎಂಬ ಅಕ್ಷರಶೈಲಿ ವಿವರಣೆಯನ್ನು %s ಎಂಬ GSettings ಕೀಲಿಯಿಂದ ಇಂದ ಪಾರ್ಸ್ "
"ಮಾಡಲಾಗಿಲ್ಲ\n"
#: ../src/core/prefs.c:1206
#: ../src/core/prefs.c:1220
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -183,7 +182,7 @@ msgstr ""
"ಮಾನ್ಯವಾದ "
"ಮೌಲ್ಯವಲ್ಲ\n"
#: ../src/core/prefs.c:1724
#: ../src/core/prefs.c:1747
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -192,7 +191,7 @@ msgstr ""
"ಸಂರಚನಾ ದತ್ತಸಂಚಯದಲ್ಲಿ ಕಂಡುಬಂದಂತಹ \"%s\" ಕೀಲಿಬೈಂಡಿಂಗ್ \"%s\" ಗೆ ಒಂದು ಮಾನ್ಯವಾದ "
"ಮೌಲ್ಯವಲ್ಲ\n"
#: ../src/core/prefs.c:1821
#: ../src/core/prefs.c:1844
#, c-format
msgid "Workspace %d"
msgstr "ಕಾರ್ಯಕ್ಷೇತ್ರ %d"
@ -208,23 +207,23 @@ msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
"replace option to replace the current window manager.\n"
msgstr ""
"ತೆರೆ %d ಯು (ಪ್ರದರ್ಶಕ \"%s\" ದಲ್ಲಿನ) ಈಗಾಗಲೆ ಒಂದು ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕವನ್ನು "
"ತೆರೆ %d ಯು (ಪ್ರದರ್ಶಕ \"%s\" ದಲ್ಲಿನ) ಈಗಾಗಲೆ ಒಂದು ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕವನ್ನು "
"ಹೊಂದಿದೆ; --"
"replace ಅನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಸಕ್ತ ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕವನ್ನು ಬದಲಾಯಿಸಿ.\n"
"replace ಅನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಸಕ್ತ ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕವನ್ನು ಬದಲಾಯಿಸಿ.\n"
#: ../src/core/screen.c:695
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr ""
"ತೆರೆ %d ಯಲ್ಲಿನ ಪ್ರದರ್ಶಕ \"%s\" ದಲ್ಲಿನ ವಿಂಡೊ ವ್ಯವಸ್ಥಾಪಕದ ಆಯ್ಕೆಯನ್ನು "
"ತೆರೆ %d ಯಲ್ಲಿನ ಪ್ರದರ್ಶಕ \"%s\" ದಲ್ಲಿನ ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕದ ಆಯ್ಕೆಯನ್ನು "
"ಪಡೆಯಲಾಗಲಿಲ್ಲ\n"
#: ../src/core/screen.c:750
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr ""
"ತೆರೆ %d ಯು (ಪ್ರದರ್ಶಕ \"%s\" ದಲ್ಲಿನ) ಈಗಾಗಲೆ ಒಂದು ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕವನ್ನು "
"ತೆರೆ %d ಯು (ಪ್ರದರ್ಶಕ \"%s\" ದಲ್ಲಿನ) ಈಗಾಗಲೆ ಒಂದು ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕವನ್ನು "
"ಹೊಂದಿದೆ\n"
#: ../src/core/screen.c:935
@ -286,7 +285,7 @@ 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;ವುದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ "
"ಈ ಕಿಟಕಿಗಳು &quot;ಪ್ರಸಕ್ತ ಸಿದ್ಧತೆಗಳನ್ನು ಉಳಿಸು&quot;ವುದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ "
"ಹಾಗು "
"ನೀವು ಮುಂದಿನ ಬಾರಿ ಪ್ರವೇಶಿಸಿದಾಗ ಕೈಯಾರೆ ಅದನ್ನು ಮರಳಿ ಆರಂಭಿಸಬೇಕಾಗುತ್ತದೆ."
@ -308,32 +307,32 @@ msgstr "ದಾಖಲೆ ಕಡತ %s ಅನ್ನು ತೆರೆಯಲಾಗಿ
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
#, c-format
msgid "Mutter was compiled without support for verbose mode\n"
msgstr ""
msgstr "ವರ್ಬೋಸ್ ಕ್ರಮಕ್ಕಾಗಿನ ಬೆಂಬಲವಿಲ್ಲದೆ Mutter ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n"
#: ../src/core/util.c:259
msgid "Window manager: "
msgstr "ವಿಂಡೊ ವ್ಯವಸ್ಥಾಪಕ: "
msgstr "ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕ: "
#: ../src/core/util.c:407
msgid "Bug in window manager: "
msgstr "ವಿಂಡೊ ವ್ಯವಸ್ಥಾಪಕದಲ್ಲಿ ಒಂದು ತೊಂದರೆ: "
msgstr "ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕದಲ್ಲಿ ಒಂದು ತೊಂದರೆ: "
#: ../src/core/util.c:438
msgid "Window manager warning: "
msgstr "ವಿಂಡೊ ವ್ಯವಸ್ಥಾಪಕ ಎಚ್ಚರಿಕೆ: "
msgstr "ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕ ಎಚ್ಚರಿಕೆ: "
#: ../src/core/util.c:466
msgid "Window manager error: "
msgstr "ವಿಂಡೊ ವ್ಯವಸ್ಥಾಪಕ ದೋಷ: "
msgstr "ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕ ದೋಷ: "
#. first time through
#: ../src/core/window.c:7234
#: ../src/core/window.c:7237
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
"window as specified in the ICCCM.\n"
msgstr ""
"ICCCM ಇಂದ ಸೂಚಿಸಲಾದ WM_CLIENT_LEADER ವಿಂಡೋದ ಬದಲಿಗೆ ವಿಂಡೊ %s ತಾನೆ ಸ್ವತಃ "
"ICCCM ಇಂದ ಸೂಚಿಸಲಾದ WM_CLIENT_LEADER ಕಿಟಕಿದ ಬದಲಿಗೆ ಕಿಟಕಿ %s ತಾನೆ ಸ್ವತಃ "
"SM_CLIENT_ID ಅನ್ನು ಸಿದ್ಧಗೊಳಿಸುತ್ತದೆ.\n"
#. We ignore mwm_has_resize_func because WM_NORMAL_HINTS is the
@ -343,37 +342,38 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7899
#: ../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"
msgstr ""
"ವಿಂಡೋ %s ಗಾತ್ರವನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ ಎಂದು ಸೂಚಿಸಲು ಒಂದು MWM ಸುಳಿವನ್ನು "
"ಕಿಟಕಿ %s ಗಾತ್ರವನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ ಎಂದು ಸೂಚಿಸಲು ಒಂದು MWM ಸುಳಿವನ್ನು "
"ನೀಡುತ್ತದೆ, "
"ಆದರೆ ಕನಿಷ್ಟ ಗಾತ್ರ %d x %d ಹಾಗು ಗರಿಷ್ಟ ಗಾತ್ರ %d x %d ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ; "
"ಇದಕ್ಕೆ "
"ಯಾವುದೆ ಅರ್ಥವಿರುವುದಿಲ್ಲ.\n"
#: ../src/core/window-props.c:310
#: ../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:429
#: ../src/core/window-props.c:393
#, c-format
msgid "%s (on %s)"
msgstr "%s (%s ನಲ್ಲಿ)"
#: ../src/core/window-props.c:1484
#: ../src/core/window-props.c:1448
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "ಅಮಾನ್ಯವಾದ WM_TRANSIENT_FOR ವಿಂಡೋ 0x%lx ಅನ್ನು %s ಗಾಗಿ ಸೂಚಿಸಲಾಗಿದೆ.\n"
msgstr "ಅಮಾನ್ಯವಾದ WM_TRANSIENT_FOR ಕಿಟಕಿ 0x%lx ಅನ್ನು %s ಗಾಗಿ ಸೂಚಿಸಲಾಗಿದೆ.\n"
#: ../src/core/window-props.c:1495
#: ../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"
#: ../src/core/xprops.c:155
#, c-format
@ -384,18 +384,24 @@ msgid ""
"This is most likely an application bug, not a window manager bug.\n"
"The window has title=\"%s\" class=\"%s\" name=\"%s\"\n"
msgstr ""
"ಕಿಟಕಿ 0x%lx ವು %s ಗುಣವನ್ನು ಹೊಂದಿದೆ\n"
"ಅದು ಬಗೆ %s ವಿನ್ಯಾಸ %d ಅನ್ನು ಹೊಂದಿರಬೇಕು ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿತ್ತು\n"
"ಹಾಗು ಬಗೆ %s ಬಗೆ %d n_items %d ಅನ್ನು ಹೊಂದಿದೆ.\n"
"ಇದಕ್ಕೆ ಕಾರಣ ಬಹುಷಃ ಅನ್ವಯದಲ್ಲಿನ ಒಂದು ದೋಷವಾಗಿರಬಹುದೆ ಹೊರತು ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪಕದ "
"ದೋಷವಲ್ಲ.\n"
"ಕಿಟಕಿ ಶೀರ್ಷಿಕೆ=\"%s\" ವರ್ಗ=\"%s\" ಹೆಸರು=\"%s\"\n"
#: ../src/core/xprops.c:411
#, c-format
msgid "Property %s on window 0x%lx contained invalid UTF-8\n"
msgstr "ಗುಣ %s ವು (ವಿಂಡೋ 0x%lx ದಲ್ಲಿನ) ಅಮಾನ್ಯವಾದ UTF-8 ಅನ್ನು ಹೊಂದಿದೆ\n"
msgstr "ಗುಣ %s ವು (ಕಿಟಕಿ 0x%lx ದಲ್ಲಿನ) ಅಮಾನ್ಯವಾದ UTF-8 ಅನ್ನು ಹೊಂದಿದೆ\n"
#: ../src/core/xprops.c:494
#, c-format
msgid ""
"Property %s on window 0x%lx contained invalid UTF-8 for item %d in the list\n"
msgstr ""
"ಗುಣ %s ವು (ವಿಂಡೋ 0x%lx ದಲ್ಲಿನ) ಪಟ್ಟಿಯಲ್ಲಿನ ಅಂಶ %d ಕ್ಕಾಗಿ ಅಮಾನ್ಯವಾದ UTF-8 "
"ಗುಣ %s ವು (ಕಿಟಕಿ 0x%lx ದಲ್ಲಿನ) ಪಟ್ಟಿಯಲ್ಲಿನ ಅಂಶ %d ಕ್ಕಾಗಿ ಅಮಾನ್ಯವಾದ UTF-8 "
"ಅನ್ನು "
"ಹೊಂದಿದೆ\n"
@ -405,7 +411,7 @@ msgstr "Mutter"
#: ../src/org.gnome.mutter.gschema.xml.in.h:1
msgid "Modifier to use for extended window management operations"
msgstr ""
msgstr "ವಿಸ್ತರಿಸಲಾದ ಕಿಟಕಿ ವ್ಯವಸ್ಥಾಪನಾ ಕಾರ್ಯಗಳಲ್ಲಿ ಬಳಸಬೇಕಿರುವ ಮಾರ್ಪಡಕ"
#: ../src/org.gnome.mutter.gschema.xml.in.h:2
msgid ""
@ -414,10 +420,15 @@ msgid ""
"\"Windows key\" on PC hardware. It's expected that this binding either the "
"default or set to the empty string."
msgstr ""
"ಈ ಕೀಲಿಯು \"ಓವರ್ಲೇ\" ಅನ್ನು ಆರಂಭಿಸುತ್ತದೆ, ಈ ಸಂಯೋಜನಾ ಕಿಟಕಿಯ ಅವಲೋಕನ ಮತ್ತು ಅನ್ವಯ "
"ಆರಂಭಿಸುವ ವ್ಯವಸ್ಥೆಯಾಗಿರುತ್ತದೆ. ಪೂರ್ವನಿಯೋಜಿತವು PC ಯ ಯಂತ್ರಾಂಶದಲ್ಲಿನ \"ವಿಂಡೋಸ್ "
"ಕೀಲಿ\" "
"ಆಗಿರುತ್ತದೆ. ಈ ಬೈಂಡಿಂಗ್ ಒಂದು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿರಬೇಕು ಅಥವ ಖಾಲಿ ವಾಕ್ಯಾಂಶಕ್ಕೆ "
"ಸೂಚಿತಗೊಂಡಿರಬೇಕು ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ."
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs"
msgstr ""
msgstr "ಮೋಡಲ್ ಸಂವಾದಗಳನ್ನು ಲಗತ್ತಿಸು"
#: ../src/org.gnome.mutter.gschema.xml.in.h:4
msgid ""
@ -425,10 +436,13 @@ 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 "Enable edge tiling when dropping windows on screen edges"
msgstr ""
msgstr "ಕಿಟಕಿಗಳನ್ನು ತೆರೆಯ ಅಂಚಿನಲ್ಲಿ ಬೀಳಿಸುವಾಗ ಅಂಚಿನ ಟೈಲಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು"
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
@ -436,10 +450,15 @@ msgid ""
"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 ""
msgstr "ಕಾರ್ಯಸ್ಥಳಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ"
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
@ -447,6 +466,11 @@ msgid ""
"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"
@ -457,32 +481,52 @@ 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 ""
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 ""
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 ""
"true ಗೆ ಹೊಂದಿಸಲಾಗಿದ್ದಲ್ಲಿ, ಮತ್ತು ಗಮನದ ಸ್ಥಿತಿಯು \"sloppy\" ಅಥವ \"mouse\" "
"ಆಗಿದ್ದಲ್ಲಿ, ಒಂದು ಕಿಟಕಿಗೆ ಪ್ರವೇಶಿಸುವಾಗ ಗಮನವು ಕೂಡಲೆ ಬದಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಸೂಚಕವು "
"ಚಲಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದ ನಂತರ ಬದಲಾಗುತ್ತದೆ."
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr "ಎಳೆಯಬಹುದಾದ ಅಂಚಿನ ಅಗಲ"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
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:17
msgid "Select window from tab popup"
msgstr "ಟ್ಯಾಬ್ ಪುಟಿಕೆಯಿಂದ ಕಿಟಕಿಯನ್ನು ಆರಿಸು"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid "Cancel tab popup"
msgstr "ಟ್ಯಾಬ್ ಪುಟಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸು"
@ -494,17 +538,17 @@ msgstr "ಬಳಕೆ: %s\n"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:69
msgid "Mi_nimize"
msgstr "ಕುಗ್ಗಿಸು(_n)"
msgstr "ಕುಗ್ಗಿಸು (_n)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:71
msgid "Ma_ximize"
msgstr "ಹಿಗ್ಗಿಸು(_x)"
msgstr "ಹಿಗ್ಗಿಸು (_x)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:73
msgid "Unma_ximize"
msgstr "ಹಿಗ್ಗಿಸಬೇಡ(_x)"
msgstr "ಹಿಗ್ಗಿಸಬೇಡ (_x)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:75
@ -514,17 +558,17 @@ msgstr "ಉರುಳಿಸು (_U)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:77
msgid "_Unroll"
msgstr "ಸುತ್ತಿ (_U)"
msgstr "ಸುತ್ತ (_U)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:79
msgid "_Move"
msgstr "ಜರುಗಿಸು(_M)"
msgstr "ಜರುಗಿಸು (_M)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:81
msgid "_Resize"
msgstr "ಗಾತ್ರ ಬದಲಾಯಿಸು(_R)"
msgstr "ಗಾತ್ರ ಬದಲಾಯಿಸು (_R)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:83
@ -535,12 +579,12 @@ msgstr "ಶೀರ್ಷಿಕೆಪಟ್ಟಿಯನ್ನು ತೆರೆಯ
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:86 ../src/ui/menu.c:88
msgid "Always on _Top"
msgstr "ಯಾವಾಗಲೂ ಮೇಲ್ಭಾಗದಲ್ಲಿ(_T)"
msgstr "ಯಾವಾಗಲೂ ಮೇಲ್ಭಾಗದಲ್ಲಿ (_T)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:90
msgid "_Always on Visible Workspace"
msgstr "ಯಾವಾಗಲೂ ಕಾಣಿಸುವ ಕಾರ್ಯಕ್ಷೇತ್ರದಲ್ಲಿ(_A)"
msgstr "ಯಾವಾಗಲೂ ಕಾಣಿಸುವ ಕಾರ್ಯಕ್ಷೇತ್ರದಲ್ಲಿ (_A)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:92
@ -550,28 +594,28 @@ msgstr "ಕೇವಲ ಈ ಕಾರ್ಯಕ್ಷೇತ್ರದಲ್ಲಿ (_O
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:94
msgid "Move to Workspace _Left"
msgstr "ಎಡಭಾಗದ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು(_L)"
msgstr "ಎಡಭಾಗದ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು (_L)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:96
msgid "Move to Workspace R_ight"
msgstr "ಬಲಭಾಗದ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು(_i)"
msgstr "ಬಲಭಾಗದ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು (_i)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:98
msgid "Move to Workspace _Up"
msgstr "ಮೇಲಿನ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು(_U)"
msgstr "ಮೇಲಿನ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು (_U)"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:100
msgid "Move to Workspace _Down"
msgstr "ಕೆಳಗಿನ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು(_D)"
msgstr "ಕೆಳಗಿನ ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು (_D)"
#. separator
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:104
msgid "_Close"
msgstr "ಮುಚ್ಚು(_C)"
msgstr "ಮುಚ್ಚು (_C)"
#: ../src/ui/menu.c:204
#, c-format
@ -590,7 +634,7 @@ msgstr "ಕಾರ್ಯಕ್ಷೇತ್ರ %s%d"
#: ../src/ui/menu.c:397
msgid "Move to Another _Workspace"
msgstr "ಇನ್ನೊಂದು ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು(_W)"
msgstr "ಇನ್ನೊಂದು ಕಾರ್ಯಕ್ಷೇತ್ರಕ್ಕೆ ವರ್ಗಾಯಿಸು (_W)"
#. This is the text that should appear next to menu accelerators
#. * that use the shift key. If the text on this key isn't typically
@ -737,6 +781,9 @@ 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:1217
#, c-format
@ -744,6 +791,8 @@ 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:1231
#, c-format
@ -751,6 +800,8 @@ msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
"fit the format"
msgstr ""
"Gtk:ಅಗತ್ಯಾನುಗುಣ ವಿನ್ಯಾಸವು \"gtk:custom(color_name,fallback)\" ಆಗಿರುತ್ತದೆ, \"%s"
"\" ಎನ್ನುವುದು ವಿನ್ಯಾಸಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ"
#: ../src/ui/theme.c:1276
#, c-format
@ -976,7 +1027,7 @@ msgstr "\"%s\" ಥೀಮನ್ನು ಲೋಡ್‍ ಮಾಡಲು ವಿಫ
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr ""
msgstr "ಯಾವುದೆ <%s> ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ (ಪರಿಸರವಿನ್ಯಾಸ \"%s\" ಕ್ಕಾಗಿ)"
#: ../src/ui/theme.c:5254
#, c-format
@ -1119,7 +1170,7 @@ msgstr "ಗೊತ್ತಿರದ style_set \"%s\", <%s> ಘಟಕದಲ್ಲಿ
#: ../src/ui/theme-parser.c:1283
#, c-format
msgid "Window type \"%s\" has already been assigned a style set"
msgstr "ವಿಂಡೋ ಬಗೆ \"%s\" ಈಗಾಗಲೆ ಶೈಲಿ ಜೋಡಿಯನ್ನು ನಿಯೋಜಿಸಿದೆ"
msgstr "ಕಿಟಕಿ ಬಗೆ \"%s\" ಈಗಾಗಲೆ ಶೈಲಿ ಜೋಡಿಯನ್ನು ನಿಯೋಜಿಸಿದೆ"
#: ../src/ui/theme-parser.c:1313 ../src/ui/theme-parser.c:1377
#: ../src/ui/theme-parser.c:1603 ../src/ui/theme-parser.c:2838
@ -1241,12 +1292,12 @@ msgstr ""
#: ../src/ui/theme-parser.c:3073
#, c-format
msgid "\"%s\" is not a valid value for focus attribute"
msgstr "\"%s\" ಯು ಗಮನ ಗುಣ ವಿಶೇಷಕ್ಕೆ ಒಂದು ಮಾನ್ಯವಾ ಮೌಲ್ಯವಲ್ಲ"
msgstr "\"%s\" ಯು ಗಮನ ಗುಣ ವಿಶೇಷಕ್ಕೆ ಒಂದು ಮಾನ್ಯವಾ ಮೌಲ್ಯವಲ್ಲ"
#: ../src/ui/theme-parser.c:3082
#, c-format
msgid "\"%s\" is not a valid value for state attribute"
msgstr "\"%s\" ಯು ಸ್ಥಿತಿ ಗುಣ ವಿಶೇಷಕ್ಕೆ ಒಂದು ಮಾನ್ಯವಾ ಮೌಲ್ಯವಲ್ಲ"
msgstr "\"%s\" ಯು ಸ್ಥಿತಿ ಗುಣ ವಿಶೇಷಕ್ಕೆ ಒಂದು ಮಾನ್ಯವಾ ಮೌಲ್ಯವಲ್ಲ"
#: ../src/ui/theme-parser.c:3092
#, c-format
@ -1256,7 +1307,7 @@ msgstr "\"%s\" ಎಂದು ಕರೆಯಲ್ಪಡುವ ಒಂದು ಶೈ
#: ../src/ui/theme-parser.c:3113 ../src/ui/theme-parser.c:3136
#, c-format
msgid "\"%s\" is not a valid value for resize attribute"
msgstr "\"%s\" ಯು ಗಾತ್ರ ಬದಲಾವಣೆ ಗುಣ ವಿಶೇಷಕ್ಕೆ ಒಂದು ಮಾನ್ಯವಾ ಮೌಲ್ಯವಲ್ಲ"
msgstr "\"%s\" ಯು ಗಾತ್ರ ಬದಲಾವಣೆ ಗುಣ ವಿಶೇಷಕ್ಕೆ ಒಂದು ಮಾನ್ಯವಾ ಮೌಲ್ಯವಲ್ಲ"
#: ../src/ui/theme-parser.c:3147
#, c-format
@ -1324,11 +1375,15 @@ msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml"
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 ""
"ಪರಿಸರ ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಆವೃತ್ತಿ %s ಅಗತ್ಯವಿದೆ ಆದರೆ ಇತ್ತೀಚಿನ ಬೆಂಬಲಿತ ಪರಿಸರವಿನ್ಯಾಸ "
"ಆವೃತ್ತಿಯು %d.%d ಆಗಿದೆ"
#: ../src/ui/theme-parser.c:3562
#, c-format
@ -1391,7 +1446,7 @@ msgstr "%s ಥೀಮ್‍ಗೆ ಒಂದು ಮಾನ್ಯವಾದ ಕಡತ
#: ../src/ui/theme-viewer.c:99
msgid "_Windows"
msgstr "ವಿಂಡೋಗಳು (_W)"
msgstr "ಕಿಟಕಿಗಳು (_W)"
#: ../src/ui/theme-viewer.c:100
msgid "_Dialog"
@ -1435,7 +1490,7 @@ msgstr "ಗಣಕತೆರೆ (_k)"
#: ../src/ui/theme-viewer.c:115
msgid "Open another one of these windows"
msgstr "ಈ ವಿಂಡೋಗಳಲ್ಲಿ ಬೇರೊಂದನ್ನು ತೆರೆ"
msgstr "ಈ ಕಿಟಕಿಗಳಲ್ಲಿ ಬೇರೊಂದನ್ನು ತೆರೆ"
#: ../src/ui/theme-viewer.c:117
msgid "This is a demo button with an 'open' icon"
@ -1456,7 +1511,7 @@ msgstr "ನಕಲಿ ಮೆನು ಅಂಶ %d\n"
#: ../src/ui/theme-viewer.c:363
msgid "Border-only window"
msgstr "ಅಂಚು ಮಾತ್ರ ಇರುವ ವಿಂಡೊ"
msgstr "ಅಂಚು ಮಾತ್ರ ಇರುವ ಕಿಟಕಿ"
#: ../src/ui/theme-viewer.c:365
msgid "Bar"
@ -1464,7 +1519,7 @@ msgstr "ಪಟ್ಟಿ"
#: ../src/ui/theme-viewer.c:382
msgid "Normal Application Window"
msgstr "ಸಾಮಾನ್ಯ ಅನ್ವಯ ವಿಂಡೊ"
msgstr "ಸಾಮಾನ್ಯ ಅನ್ವಯ ಕಿಟಕಿ"
#: ../src/ui/theme-viewer.c:386
msgid "Dialog Box"
@ -1498,7 +1553,7 @@ msgstr "ಗುಂಡಿ ಲೇಔಟ್ ಪರೀಕ್ಷೆ %d"
#: ../src/ui/theme-viewer.c:768
#, c-format
msgid "%g milliseconds to draw one window frame"
msgstr "ಒಂದು ವಿಂಡೋ ಚೌಕಟ್ಟನ್ನು ಚಿತ್ರಿಸಲು ಸಮಯ %g ಮಿಲಿಸೆಕೆಂಡುಗಳು"
msgstr "ಒಂದು ಕಿಟಕಿ ಚೌಕಟ್ಟನ್ನು ಚಿತ್ರಿಸಲು ಸಮಯ %g ಮಿಲಿಸೆಕೆಂಡುಗಳು"
#: ../src/ui/theme-viewer.c:813
#, c-format
@ -1537,7 +1592,7 @@ msgstr "ಮೈಲಿಗಲ್ಲು"
#: ../src/ui/theme-viewer.c:944
msgid "Window Title Goes Here"
msgstr "ವಿಂಡೊ ಶೀರ್ಷಿಕೆಯು ಹೀಗೆ ಇರುತ್ತದೆ"
msgstr "ಕಿಟಕಿ ಶೀರ್ಷಿಕೆಯು ಹೀಗೆ ಇರುತ್ತದೆ"
#: ../src/ui/theme-viewer.c:1047
#, c-format
@ -2007,14 +2062,6 @@ msgstr ""
#~ msgid "Enable Visual Bell"
#~ msgstr "ಗೋಚರ ಗಂಟೆಯನ್ನು ಶಕ್ತಗೊಳಿಸು"
#, fuzzy
#~ msgid ""
#~ "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
#~ "the focused window will be automatically raised after a delay specified "
#~ "by the auto_raise_delay key. This is not related to clicking on a window "
#~ "to raise it, nor to entering a window during drag-and-drop."
#~ msgstr " ವಿಂಡೊ ನಂತರ auto ನಲ್ಲಿ ವಿಂಡೊ ವಿಂಡೊ."
#, fuzzy
#~ msgid ""
#~ "If true, ignore the titlebar_font option, and use the standard "

571
po/nb.po
View File

@ -1,13 +1,13 @@
# Norwegian bokmål translation of mutter.
# Copyright © 2002-2004 Free Software Foundation, Inc.
# Kjartan Maraas <kmaraas@gnome.org>, 2002-2012.
# Kjartan Maraas <kmaraas@gnome.org>, 2002-2013.
#
msgid ""
msgstr ""
"Project-Id-Version: mutter 3.6.x\n"
"Project-Id-Version: mutter 3.7.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-10-22 19:51+0200\n"
"PO-Revision-Date: 2012-10-22 19:52+0200\n"
"POT-Creation-Date: 2013-01-29 19:33+0100\n"
"PO-Revision-Date: 2013-01-29 19:34+0100\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-no@lister.ping.uio.no>\n"
"Language: \n"
@ -15,21 +15,197 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "Navigering"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "Flytt vindu til arbeidsområde 1"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Flytt vindu til arbeidsområde 2"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Flytt vindu til arbeidsområde 3"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Flytt vindu til arbeidsområde 4"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "Flytt vindu ett arbeidsområde til venstre"
#: ../src/50-mutter-navigation.xml.in.h:7
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
msgid "Move window one workspace up"
msgstr "Flytt vindu ett arbeidsområde opp"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "Flytt vindu ett arbeidsområde ned"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "Bytt programmer"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "Bytt vinduer"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "Bytt mellom et programs vinduer"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "Bytt systemkontroller"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "Bytt vinduer direkte"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "Bytt mellom et programs vinduer direkte"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "Bytt systemkontroller direkte"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
msgstr "Skjul alle normale vinduer"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "Bytt til arbeidsområde 1"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "Bytt til arbeidsområde 2"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "Bytt til arbeidsområde 3"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "Bytt til arbeidsområde 4"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Move to workspace left"
msgstr "Flytt til arbeidsområdet til venstre"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "Flytt til arbeidsområdet til høyre"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "Flytt til arbeidsområdet over"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "Flytt til arbeidsområdet under"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "System"
#: ../src/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "Vis kommandolinje"
#: ../src/50-mutter-system.xml.in.h:3
msgid "Show the activities overview"
msgstr "Vis oversikt over aktiviteter"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Vinduer"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "Aktiver vindumenyen"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Slå av/på fullskjermmodus"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Endre tilstand for maksimering"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Maksimer vindu"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Gjenopprett vindu"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Endre tilstand for skyggelegging"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Lukk vindu"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Hide window"
msgstr "Skjul vindu"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Flytt vindu"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Endre størrelse på vindu"
#: ../src/50-mutter-windows.xml.in.h:12
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
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
msgid "Raise window above other windows"
msgstr "Hev vinduet over andre vinduer"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Senk vinduet under andre vinduer"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Maksimer vinduet vertikalt"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Maksimer vinduet horisontalt"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "Visning delt til venstre"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
msgstr "Visning delt til høyre"
#. 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
#: ../src/compositor/compositor.c:512
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@ -70,17 +246,17 @@ msgstr "_Vent"
msgid "_Force Quit"
msgstr "_Tvungen nedstenging"
#: ../src/core/display.c:396
#: ../src/core/display.c:394
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Mangler utvidelsen %s som kreves for komposittfunksjon"
#: ../src/core/display.c:493
#: ../src/core/display.c:491
#, 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:853
#: ../src/core/keybindings.c:876
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -148,7 +324,7 @@ msgstr "Skriv versjonsnummer"
msgid "Mutter plugin to use"
msgstr "Mutter-tillegg som skal brukes"
#: ../src/core/prefs.c:1079
#: ../src/core/prefs.c:1087
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -156,12 +332,12 @@ msgstr ""
"Funksjonalitet for å gå rundt ødelagte programmer er deaktivert. Noen "
"programmer vil kanskje ikke oppføre seg korrekt.\n"
#: ../src/core/prefs.c:1154
#: ../src/core/prefs.c:1162
#, 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:1220
#: ../src/core/prefs.c:1228
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -170,7 +346,7 @@ msgstr ""
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for endring av "
"musknapp\n"
#: ../src/core/prefs.c:1747
#: ../src/core/prefs.c:1780
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -179,17 +355,17 @@ msgstr ""
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for "
"tastaturbinding «%s»\n"
#: ../src/core/prefs.c:1844
#: ../src/core/prefs.c:1877
#, c-format
msgid "Workspace %d"
msgstr "Arbeidsområde %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Skjerm %d på display «%s» er ugyldig\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:674
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -198,19 +374,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:695
#: ../src/core/screen.c:701
#, 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:750
#: ../src/core/screen.c:770
#, 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:935
#: ../src/core/screen.c:955
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Kunne ikke slippe skjerm %d på display «%s»\n"
@ -307,7 +483,7 @@ msgid "Window manager error: "
msgstr "Feil i vindushåndterer: "
#. first time through
#: ../src/core/window.c:7237
#: ../src/core/window.c:7287
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -323,7 +499,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7902
#: ../src/core/window.c:7953
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -492,10 +668,20 @@ msgstr ""
"kanter legges til for å imøtekomme denne verdien."
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows"
msgstr "Maksimer vinduer automatisk hvis de er nesten like store som skjermen"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid ""
"If enabled, monitor nearly monitor sized windows automatically get maximized "
"when mapped."
msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
msgid "Select window from tab popup"
msgstr "Fjern vindu fra tabulatordialog"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
msgid "Cancel tab popup"
msgstr "Avbryt tabulatordialog"
@ -703,48 +889,48 @@ msgstr "Mod5"
msgid "%d x %d"
msgstr "%d x %d"
#: ../src/ui/theme.c:234
#: ../src/ui/theme.c:235
msgid "top"
msgstr "topp"
#: ../src/ui/theme.c:236
#: ../src/ui/theme.c:237
msgid "bottom"
msgstr "bunn"
#: ../src/ui/theme.c:238
#: ../src/ui/theme.c:239
msgid "left"
msgstr "venstre"
#: ../src/ui/theme.c:240
#: ../src/ui/theme.c:241
msgid "right"
msgstr "høyre"
#: ../src/ui/theme.c:268
#: ../src/ui/theme.c:269
#, c-format
msgid "frame geometry does not specify \"%s\" dimension"
msgstr "rammegeometrien spesifiserer ikke «%s»-dimensjon"
#: ../src/ui/theme.c:287
#: ../src/ui/theme.c:288
#, 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:324
#: ../src/ui/theme.c:325
#, c-format
msgid "Button aspect ratio %g is not reasonable"
msgstr "Aspektrate %g for knapp er ikke fornuftig"
#: ../src/ui/theme.c:336
#: ../src/ui/theme.c:337
#, c-format
msgid "Frame geometry does not specify size of buttons"
msgstr "Rammegeometrien spesifiserer ikke størrelse på knapper"
#: ../src/ui/theme.c:1049
#: ../src/ui/theme.c:1050
#, c-format
msgid "Gradients should have at least two colors"
msgstr "Gradienter må ha minst to farger"
#: ../src/ui/theme.c:1201
#: ../src/ui/theme.c:1202
#, c-format
msgid ""
"GTK custom color specification must have color name and fallback in "
@ -753,7 +939,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:1217
#: ../src/ui/theme.c:1218
#, c-format
msgid ""
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
@ -762,7 +948,7 @@ msgstr ""
"Ugyldig tegn «%c» i parameter color_name for gtk:custom, kun A-Za-z0-9-_ er "
"gyldig"
#: ../src/ui/theme.c:1231
#: ../src/ui/theme.c:1232
#, c-format
msgid ""
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
@ -771,7 +957,7 @@ msgstr ""
"Gtk:custom-format er «gtk:custom(color_name,fallback)», «%s» passer ikke i "
"formatet"
#: ../src/ui/theme.c:1276
#: ../src/ui/theme.c:1277
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@ -780,7 +966,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:1290
#: ../src/ui/theme.c:1291
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@ -789,17 +975,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:1301
#: ../src/ui/theme.c:1302
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "Forsto ikke tilstand «%s» i fargespesifikasjonen"
#: ../src/ui/theme.c:1314
#: ../src/ui/theme.c:1315
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "Forsto ikke fargekomponent «%s» i fargespesifikasjonen"
#: ../src/ui/theme.c:1343
#: ../src/ui/theme.c:1344
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@ -808,56 +994,56 @@ msgstr ""
"Blandingsformat er «blend/bg_color/fg_color/alpha», «%s» passer ikke i "
"formatet"
#: ../src/ui/theme.c:1354
#: ../src/ui/theme.c:1355
#, 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:1364
#: ../src/ui/theme.c:1365
#, 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:1411
#: ../src/ui/theme.c:1412
#, 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:1422
#: ../src/ui/theme.c:1423
#, 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:1432
#: ../src/ui/theme.c:1433
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "Skyggefaktor «%s» i skyggelagt farge er negativ"
#: ../src/ui/theme.c:1461
#: ../src/ui/theme.c:1462
#, c-format
msgid "Could not parse color \"%s\""
msgstr "Kunne ikke lese farge «%s»"
#: ../src/ui/theme.c:1778
#: ../src/ui/theme.c:1779
#, 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:1805
#: ../src/ui/theme.c:1806
#, 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:1819
#: ../src/ui/theme.c:1820
#, 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:1940
#: ../src/ui/theme.c:1941
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@ -866,39 +1052,39 @@ msgstr ""
"Koordinatuttrykket inneholdt en ukjent operator ved begynnelsen av denne "
"teksten: «%s»"
#: ../src/ui/theme.c:1997
#: ../src/ui/theme.c:1998
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr "Koordinatuttrykket var tomt eller ble ikke forstått"
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr "Koordinatuttrykket resulterer i divisjon med null"
#: ../src/ui/theme.c:2162
#: ../src/ui/theme.c:2163
#, 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:2218
#: ../src/ui/theme.c:2219
#, 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:2227
#: ../src/ui/theme.c:2228
#, 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:2235
#: ../src/ui/theme.c:2236
#, 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:2245
#: ../src/ui/theme.c:2246
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@ -907,38 +1093,38 @@ msgstr ""
"Koordinatuttrykket har en operator «%c» etter en operator «%c» og ingen "
"operand mellom dem."
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "Koordinatuttrykket haddeen ukjent variabel eller konstant «%s»"
#: ../src/ui/theme.c:2495
#: ../src/ui/theme.c:2496
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr "Tolkeren for koordinatuttrykk oversteg buffergrensen."
#: ../src/ui/theme.c:2524
#: ../src/ui/theme.c:2525
#, 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:2588
#: ../src/ui/theme.c:2589
#, 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:2599
#: ../src/ui/theme.c:2600
#, 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:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
#, 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:4498
#: ../src/ui/theme.c:4499
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@ -947,25 +1133,25 @@ msgstr ""
"<button function=«%s» state=«%s» draw_ops=«ett-eller-annet»/> må "
"spesifiseres for denne rammestilen"
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
#, 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:5082
#: ../src/ui/theme.c:5083
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "Klarte ikke å laste tema «%s»: %s\n"
#: ../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
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "<%s> er ikke satt for tema «%s»"
#: ../src/ui/theme.c:5254
#: ../src/ui/theme.c:5255
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@ -974,14 +1160,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:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
#, 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:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "Konstant «%s» er allerede definert"
@ -1493,31 +1679,31 @@ msgstr "Feil under lasting av tema: %s\n"
msgid "Loaded theme \"%s\" in %g seconds\n"
msgstr "Lastet tema «%s» på %g sekunder\n"
#: ../src/ui/theme-viewer.c:870
#: ../src/ui/theme-viewer.c:871
msgid "Normal Title Font"
msgstr "Normal tittelskrift"
#: ../src/ui/theme-viewer.c:876
#: ../src/ui/theme-viewer.c:877
msgid "Small Title Font"
msgstr "Liten tittelskrift"
#: ../src/ui/theme-viewer.c:882
#: ../src/ui/theme-viewer.c:883
msgid "Large Title Font"
msgstr "Stor tittelskrift"
#: ../src/ui/theme-viewer.c:887
#: ../src/ui/theme-viewer.c:888
msgid "Button Layouts"
msgstr "Knappeplasseringer"
#: ../src/ui/theme-viewer.c:892
#: ../src/ui/theme-viewer.c:893
msgid "Benchmark"
msgstr "Ytelsestest"
#: ../src/ui/theme-viewer.c:944
#: ../src/ui/theme-viewer.c:949
msgid "Window Title Goes Here"
msgstr "Vindutittel skal her"
#: ../src/ui/theme-viewer.c:1047
#: ../src/ui/theme-viewer.c:1055
#, c-format
msgid ""
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
@ -1528,254 +1714,39 @@ msgstr ""
"%g sekunder på klokken inklusive ressurser på X-tjener (%g millisekunder per "
"ramme)\n"
#: ../src/ui/theme-viewer.c:1266
#: ../src/ui/theme-viewer.c:1275
msgid "position expression test returned TRUE but set error"
msgstr "test av posisjonsuttrykk returnerte TRUE, men satte en feilkode"
#: ../src/ui/theme-viewer.c:1268
#: ../src/ui/theme-viewer.c:1277
msgid "position expression test returned FALSE but didn't set error"
msgstr "test av posisjonsuttrykk returnerte FALSE, men satte ikke en feilkode"
#: ../src/ui/theme-viewer.c:1272
#: ../src/ui/theme-viewer.c:1281
msgid "Error was expected but none given"
msgstr "Feil var ventet men ingen ble gitt"
#: ../src/ui/theme-viewer.c:1274
#: ../src/ui/theme-viewer.c:1283
#, c-format
msgid "Error %d was expected but %d given"
msgstr "Feil %d var ventet men %d ble gitt"
#: ../src/ui/theme-viewer.c:1280
#: ../src/ui/theme-viewer.c:1289
#, c-format
msgid "Error not expected but one was returned: %s"
msgstr "Feil ikke ventet men en ble returnert: %s"
#: ../src/ui/theme-viewer.c:1284
#: ../src/ui/theme-viewer.c:1293
#, c-format
msgid "x value was %d, %d was expected"
msgstr "x-verdi var %d, %d var ventet"
#: ../src/ui/theme-viewer.c:1287
#: ../src/ui/theme-viewer.c:1296
#, c-format
msgid "y value was %d, %d was expected"
msgstr "y-verdi var %d, %d var ventet"
#: ../src/ui/theme-viewer.c:1352
#: ../src/ui/theme-viewer.c:1361
#, 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"

3012
po/or.po

File diff suppressed because it is too large Load Diff

538
po/pa.po
View File

@ -16,32 +16,203 @@ msgstr ""
"Project-Id-Version: metacity.gnome-2-26\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-08-06 23:35+0000\n"
"PO-Revision-Date: 2012-08-22 08:59+0530\n"
"POT-Creation-Date: 2012-12-13 21:38+0000\n"
"PO-Revision-Date: 2012-12-25 08:50+0530\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
"Language: pa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 1.4\n"
"X-Generator: Lokalize 1.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"\n"
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "ਨੇਵੀਗੇਸ਼ਨ"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ੨ ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ੩ ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "ਵਿੰਡੋ ਨੂੰ ਇੱਕ ਵਰਕਸਪੇਸ ਖੱਬੇ ਵੱਲ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the right"
msgstr "ਵਿੰਡੋ ਨੂੰ ਇੱਕ ਵਰਕਸਪੇਸ ਸੱਜੇ ਵੱਲ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace up"
msgstr "ਵਿੰਡੋ ਨੂੰ ਇੱਕ ਵਰਕਸਪੇਸ ਉੱਤੇ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "ਵਿੰਡੋ ਨੂੰ ਇੱਕ ਵਰਕਸਪੇਸ ਹੇਠਾਂ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "ਵਿੰਡੋਜ਼ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਦੀਆਂ ਵਿੰਡੋਜ਼ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "ਸਿਸਟਮ ਕੰਟਰੋਲ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "ਵਿੰਡੋਜ਼ ਸਿੱਧੀਆਂ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਵਿੰਡੋਜ਼ ਸਿੱਧੀ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "ਸਿਸਟਮ ਕੰਟਰੋਲ ਸਿੱਧੇ ਬਦਲੋ"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
msgstr "ਸਭ ਸਧਾਰਨ ਵਿੰਡੋਜ਼ ਓਹਲੇ ਕਰੋ"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "ਵਰਕਸਪੇਸ ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "ਵਰਕਸਪੇਸ ੨ ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "ਵਰਕਸਪੇਸ ੩ ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "ਵਰਕਸਪੇਸ ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Move to workspace left"
msgstr "ਖੱਬੇ ਵਰਕਸਪੇਸ 'ਚ ਭੇਜੋ"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "ਸੱਜੇ ਵਰਕਸਪੇਸ 'ਚ ਭੇਜੋ"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "ਉੱਤੇ ਵਰਕਸਪੇਸ 'ਚ ਭੇਜੋ"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "ਹੇਠਾਂ ਵਰਕਸਪੇਸ 'ਚ ਭੇਜੋ"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
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 "Show the activities overview"
msgstr "ਸਰਗਰਮੀ ਸੰਖੇਪ ਜਾਣਕਾਰੀ ਵੇਖੋ"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋਜ਼"
msgstr "ਵਿੰਡੋਜ਼"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "ਐਕਟਿਵੇਟ ਵਿੰਡੋ ਮੇਨੂ"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "ਪੂਰੀ ਸਕਰੀਨ ਮੋਡ ਬਦਲੋ"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "ਅਧਿਕਤਮ ਸਥਿਤੀ ਬਦਲੋ"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "ਵਿੰਡੋ ਮੁੜ-ਸਟੋਰ"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "ਰੰਗਤ ਸਥਿਤੀ ਬਦਲੋ"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Minimize window"
msgstr "ਵਿੰਡੋ ਘੱਟੋ-ਘੱਟ"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "ਵਿੰਡੋ ਹਿਲਾਓ"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "ਵਿੰਡੋ ਮੁੜ-ਅਕਾਰ"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "ਵਿੰਡੋ ਸਭ ਵਰਕਸਪੇਸ ਜਾਂ ਇੱਕ ਵਿੱਚ ਬਦਲੋ"
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "ਵਿੰਡੋ ਉਭਾਰੋ, ਜੇ ਢੱਕੀ ਹੈ, ਨਹੀਂ ਤਾਂ ਹੇਠਾਂ ਭੇਜੋ"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "ਵਿੰਡੋ ਨੂੰ ਹੋਰ ਵਿੰਡੋਜ਼ ਤੋਂ ਉੱਤੇ ਲਿਆਓ"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "ਵਿੰਡੋ ਨੂੰ ਹੋਰ ਵਿੰਡੋ ਤੋਂ ਹੇਠਾਂ ਲੈ ਜਾਉ"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "ਵਿੰਡੋ ਖੜਵੇਂ ਰੂਪ ਵਿੱਚ ਵੱਧੋ-ਵੱਧ"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "ਵਿੰਡੋ ਲੇਟਵੇਂ ਰੂਪ ਵਿੱਚ ਵੱਧੋ-ਵੱਧ"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "ਖੱਬੇ ਪਾਸੇ ਵੰਡ ਵੇਖੋ"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
msgstr "ਸੱਜੇ ਪਾਸੇ ਵੰਡ ਵੇਖੋ"
@ -65,17 +236,17 @@ msgstr "ਘੰਟੀ ਈਵੈਂਟ"
msgid "Unknown window information request: %d"
msgstr "ਅਣਜਾਣ ਵਿੰਡੋ ਜਾਣਕਾਰੀ ਮੰਗ: %d"
#: ../src/core/delete.c:114
#: ../src/core/delete.c:111
#, c-format
#| msgid "<tt>%s</tt> is not responding."
msgid "%s is not responding."
msgstr "%s ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਹੀ ਹੈ।"
#| msgid "%s is not responding."
msgid "%s is not responding."
msgstr "\"%s\" ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਹੀ ਹੈ।"
#: ../src/core/delete.c:118
#: ../src/core/delete.c:113
msgid "Application is not responding."
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਹੀ ਹੈ।"
#: ../src/core/delete.c:123
#: ../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."
@ -83,25 +254,25 @@ msgstr ""
"ਤੁਸੀਂ ਇਸ ਲਈ ਕੁਝ ਸਮੇਂ ਵਾਸਤੇ ਉਡੀਕ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਕਾਰਜ ਨੂੰ ਧੱਕੇ ਨਾਲ ਬੰਦ ਕਰ ਸਕਦੇ "
"ਹੋ।"
#: ../src/core/delete.c:130
#: ../src/core/delete.c:125
msgid "_Wait"
msgstr "ਉਡੀਕੋ(_W)"
#: ../src/core/delete.c:130
#: ../src/core/delete.c:125
msgid "_Force Quit"
msgstr "ਧੱਕੇ ਨਾਲ ਬੰਦ(_F)"
#: ../src/core/display.c:380
#: ../src/core/display.c:397
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "ਕੰਪੋਜ਼ਿਸ਼ਨਿੰਗ ਲਈ %s ਐਕਸਟੈਨਸ਼ਨ ਗੁੰਮ ਹੈ"
#: ../src/core/display.c:446
#: ../src/core/display.c:494
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "X ਵਿੰਡੋ ਸਿਸਟਮ ਡਿਸਪਲੇਅ '%s' ਨੂੰ ਖੋਲਣ ਵਿੱਚ ਅਸਮਰਥ\n"
#: ../src/core/keybindings.c:844
#: ../src/core/keybindings.c:860
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -164,11 +335,10 @@ msgid "Print version"
msgstr "ਵਰਜਨ ਛਾਪੋ"
#: ../src/core/mutter.c:60
#| msgid "Clutter Plugins"
msgid "Mutter plugin to use"
msgstr "ਵਰਤਣ ਲਈ ਮੁੱਟਰ ਪਲੱਗਇਨ"
#: ../src/core/prefs.c:1065
#: ../src/core/prefs.c:1079
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -176,13 +346,13 @@ msgstr ""
"ਖਰਾਬ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਜੁਗਾੜ ਬੰਦ ਕੀਤਾ ਹੈ। ਕੁਝ ਐਪਲੀਕੇਸ਼ਨ ਚੰਗੀ ਤਰਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦੇ "
"ਹਨ।\n"
#: ../src/core/prefs.c:1140
#: ../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:1206
#: ../src/core/prefs.c:1220
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -190,7 +360,7 @@ msgid ""
msgstr ""
"ਸੰਰਚਨਾ ਡਾਟਾਬੇਸ ਵਿੱਚ ਲੱਭੀ ਹੋਈ \"%s\" ਮਾਊਸ ਬਟਨ ਸੋਧਕ ਲਈ ਯੋਗ ਕੀਮਤ ਨਹੀਂ ਹੈ\n"
#: ../src/core/prefs.c:1724
#: ../src/core/prefs.c:1757
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -199,17 +369,17 @@ msgstr ""
"ਸੰਰਚਨਾ ਡਾਟਾਬੇਸ ਵਿੱਚ ਲੱਭੀ ਹੋਈ \"%s\" ਸਵਿੱਚ-ਬਾਈਡਿੰਗ \"%s\" ਲਈ ਯੋਗ ਕੀਮਤ ਨਹੀਂ "
"ਹੈ\n"
#: ../src/core/prefs.c:1821
#: ../src/core/prefs.c:1854
#, c-format
msgid "Workspace %d"
msgstr "ਵਰਕਸਪੇਸ %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:659
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "ਡਿਸਪਲੇਅ '%2$s' ਉੱਤੇ ਸਕਰੀਨ %1$d ਗਲਤ ਹੈ\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:675
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -219,18 +389,18 @@ msgstr ""
"--replace "
"ਮੌਜੂਦਾ ਵਿੰਡੋ ਮੈਨੇਜਰ ਵਰਤੋਂ।\n"
#: ../src/core/screen.c:695
#: ../src/core/screen.c:702
#, 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:750
#: ../src/core/screen.c:757
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "ਡਿਸਪਲੇਅ \"%2$s\" ਉੱਤੇ ਸਕਰੀਨ %1$d ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਵਿੰਡੋ ਮੈਨੇਜਰ ਹੈ\n"
#: ../src/core/screen.c:935
#: ../src/core/screen.c:942
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "ਡਿਸਪਲੇਅ \"%2$s\" ਉੱਤੇ ਸਕਰੀਨ %1$d ਰੀਲਿਜ਼ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ\n"
@ -328,7 +498,7 @@ msgid "Window manager error: "
msgstr "ਵਿੰਡੋ ਮੈਨੇਜਰ ਗਲਤੀ: "
#. first time through
#: ../src/core/window.c:7234
#: ../src/core/window.c:7240
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -344,7 +514,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7899
#: ../src/core/window.c:7905
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -354,22 +524,22 @@ msgstr ""
"ਆਕਾਰ %d x %d ਅਤੇ "
"ਵੱਧ ਤੋਂ ਵੱਧ ਆਕਾਰ %d x %d ਸੈੱਟ ਕਰਦਾ ਹੈ, ਪਰ ਇਹ ਦਾ ਜ਼ਿਆਦਾ ਮਤਲਬ ਨਹੀਂ ਹੈ।\n"
#: ../src/core/window-props.c:310
#: ../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:429
#: ../src/core/window-props.c:393
#, c-format
msgid "%s (on %s)"
msgstr "%s (%s ਉੱਤੇ)"
#: ../src/core/window-props.c:1484
#: ../src/core/window-props.c:1448
#, 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:1495
#: ../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"
@ -491,10 +661,29 @@ 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 focused window will be automatically raised after a delay specified "
#| "by the auto_raise_delay key. This is not related to clicking on a window "
#| "to raise it, nor to entering a window during drag-and-drop."
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 ""
"ਜੇ ਇਹ ਸਹੀਂ ਹੋਵੇ ਤਾਂ ਫੋਕਸ ਢੰਗ ਜਾਂ ਤਾਂ \"ਸਲੋਪੀ\" ਜਾਂ \"ਮਾਊਂਸ\" ਹੁੰਦਾ ਹੈ ਤਾਂ "
"ਫੋਕਸ ਹੋਇਆ ਵਿੰਡੋ "
"auto_raise_delay ਕੁੰਜੀ ਵਲੋਂ ਦਿੱਤੇ ਇੱਕ ਅੰਤਰਾਲ ਬਾਅਦ ਆਟੋਮੈਟਿਕ ਹੀ ਉਭਾਰਿਆ ਜਾਵੇਗਾ।"
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr "ਡਰੈਗ ਹੋਣ ਯੋਗ ਬਾਰਡਰ ਚੌੜਾਈ"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
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."
@ -503,11 +692,11 @@ msgstr ""
"ਅਦਿੱਖ ਬਾਰਡਰ "
"ਨੂੰ ਇਹ ਮੁੱਲ ਦੇ ਬਰਾਬਰ ਕਰਨ ਲਈ ਵਧਾਇਆ ਜਾਵੇਗਾ।"
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
msgid "Select window from tab popup"
msgstr "ਟੈਬ ਪੋਪਅੱਪ ਤੋਂ ਵਿੰਡੋ ਚੁਣੋ"
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid "Cancel tab popup"
msgstr "ਟੈਬ ਪੋਪਅੱਪ ਰੱਦ ਕਰੋ"
@ -1586,261 +1775,6 @@ 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:18
#, fuzzy
msgid "Switch to workspace 1"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ ਵਿੱਚ ਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ 1 ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 2"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ ੨ ਵਿੱਚ ਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ 2 ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 3"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ ੩ ਵਿੱਚ ਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ 3 ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Switch to workspace 4"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ ਵਿੱਚ ਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਰਕਸਪੇਸ 4 ਵਿੱਚ ਜਾਓ"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਮੇਨੂ ਐਕਟੀਵੇਟ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\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 "ਅਧਿਕਤਮ ਸਥਿਤੀ ਕਰੋ"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr "ਵਿੰਡੋ ਅਧਿਕਤਮ"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "ਵਿੰਡੋ ਮੁੜ-ਸਟੋਰ"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "ਰੰਗਤ ਸਥਿਤੀ ਕਰੋ"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਘੱਟੋ-ਘੱਟ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਅਲਪੀਕਰਨ"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "ਵਿੰਡੋ ਹਿਲਾਓ"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "ਵਿੰਡੋ ਮੁੜ-ਅਕਾਰ"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ਵਿੱਚ ਲਿਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ 1 ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ੨ ਵਿੱਚ ਲਿਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ 2 ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ੩ ਵਿੱਚ ਲਿਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ 3 ਵਿੱਚ ਲਿਜਾਓ"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr ""
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ ਵਿੱਚ ਲਿਜਾਓ\n"
"#-#-#-#-# pa.po (metacity.gnome-2-26) #-#-#-#-#\n"
"ਵਿੰਡੋ ਨੂੰ ਵਰਕਸਪੇਸ 4 ਵਿੱਚ ਲਿਜਾਓ"
#: ../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:6
#, fuzzy
msgid "Move window one workspace down"
msgstr "ਵਿੰਡੋ ਨੂੰ ਇੱਕ ਵਰਕਸਪੇਸ ਹੇਠਾਂ ਲਿਜਾਓ"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "ਹੋਰ ਵਿੰਡੋ ਤੋਂ ਉੱਪਰਲੀ ਵਿੰਡੋ ਉਠਾਓ"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "ਹੋਰ ਵਿੰਡੋ ਹੇਠਾਂ ਥੱਲੇ ਵਾਲੀ ਵਿੰਡੋ"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "ਵਿੰਡੋ ਲੰਬਕਾਰੀ ਅਧਿਕਤਮ"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "ਵਿੰਡੋ ਖਿਤਿਜੀ ਅਧਿਕਤਮ"
#: ../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: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 "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:10
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr "ਵਿੰਡੋ ਉਭਾਰੋ, ਜੇ ਢੱਕੀ ਹੈ, ਨਹੀਂ ਤਾਂ ਹੇਠਾਂ ਭੇਜੋ"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "ਵਿੰਡੋ ਸਭ ਵਰਕਸਪੇਸ ਜਾਂ ਇੱਕ ਵਿੱਚ ਬਦਲੋ"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "ਕਾਮਿਆਂ ਨਾਲ ਵੱਖ ਕੀਤੀ ਕੰਪੋਜ਼ਿਤਰ ਪਲੱਗਇਨ ਦੀ ਲਿਸਟ"
@ -2280,16 +2214,6 @@ msgstr "ਵਿੰਡੋ ਸਭ ਵਰਕਸਪੇਸ ਜਾਂ ਇੱਕ ਵਿ
#~ msgid "Enable Visual Bell"
#~ msgstr "ਦਿੱਖ ਘੰਟੀ ਯੋਗ ਕਰੋ"
#~ msgid ""
#~ "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
#~ "the focused window will be automatically raised after a delay specified "
#~ "by the auto_raise_delay key. This is not related to clicking on a window "
#~ "to raise it, nor to entering a window during drag-and-drop."
#~ msgstr ""
#~ "ਜੇ ਇਹ ਸਹੀਂ ਹੋਵੇ ਤਾਂ ਫੋਕਸ ਢੰਗ ਜਾਂ ਤਾਂ \"ਸਲੋਪੀ\" ਜਾਂ \"ਮਾਊਂਸ\" ਹੁੰਦਾ ਹੈ ਤਾਂ ਫੋਕਸ ਹੋਇਆ ਵਿੰਡੋ "
#~ "auto_raise_delay ਕੁੰਜੀ ਵਲੋਂ ਦਿੱਤੇ ਇੱਕ ਅੰਤਰਾਲ ਬਾਅਦ ਆਟੋਮੈਟਿਕ ਹੀ ਉਭਾਰਿਆ ਜਾਵੇਗਾ। ਇਹ "
#~ "ਉਭਾਰਨ ਲਈ ਵਿੰਡੋ ਉੱਤੇ ਨਿਰਭਰ ਨਹੀਂ ਹੈ ਅਤੇ ਨਾ ਹੀ ਚੁੱਕਣ ਅਤੇ ਸੁੱਟਣ ਸਮੇਂ ਇੱਕ ਵਿੰਡੋ ਉੱਤੇ ਵੀ ਨਹੀਂ।"
#~ msgid ""
#~ "If true, ignore the titlebar_font option, and use the standard "
#~ "application font for window titles."

487
po/pl.po
View File

@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-10-12 19:01+0200\n"
"PO-Revision-Date: 2012-10-12 19:05+0200\n"
"POT-Creation-Date: 2012-12-26 21:39+0100\n"
"PO-Revision-Date: 2012-12-26 21:40+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n"
@ -28,21 +28,199 @@ msgstr ""
"X-Poedit-Language: Polish\n"
"X-Poedit-Country: Poland\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "Nawigacja"
#: ../src/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "Przeniesienie okna na 1. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Przeniesienie okna na 2. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Przeniesienie okna na 3. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Przeniesienie okna na 4. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:6
msgid "Move window one workspace to the left"
msgstr "Przeniesienie okna o obszar roboczy w lewo"
#: ../src/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the right"
msgstr "Przeniesienie okna o obszar roboczy w prawo"
#: ../src/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace up"
msgstr "Przeniesienie okna o obszar roboczy w górę"
#: ../src/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace down"
msgstr "Przeniesienie okna o obszar roboczy w dół"
#: ../src/50-mutter-navigation.xml.in.h:10
msgid "Switch applications"
msgstr "Przełączenie programów"
#: ../src/50-mutter-navigation.xml.in.h:11
msgid "Switch windows"
msgstr "Przełączenie okien"
#: ../src/50-mutter-navigation.xml.in.h:12
msgid "Switch windows of an application"
msgstr "Przełączenie między oknami programu"
#: ../src/50-mutter-navigation.xml.in.h:13
msgid "Switch system controls"
msgstr "Przełączenie kontroli systemowej"
#: ../src/50-mutter-navigation.xml.in.h:14
msgid "Switch windows directly"
msgstr "Bezpośrednie przełączenie między oknami"
#: ../src/50-mutter-navigation.xml.in.h:15
msgid "Switch windows of an app directly"
msgstr "Bezpośrednie przełączenie między oknami programu"
#: ../src/50-mutter-navigation.xml.in.h:16
msgid "Switch system controls directly"
msgstr "Bezpośrednie przełączenie kontroli systemowej"
#: ../src/50-mutter-navigation.xml.in.h:17
msgid "Hide all normal windows"
msgstr "Ukrycie wszystkich zwykłych okien"
#: ../src/50-mutter-navigation.xml.in.h:18
msgid "Switch to workspace 1"
msgstr "Przełączenie na 1. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:19
msgid "Switch to workspace 2"
msgstr "Przełączenie na 2. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:20
msgid "Switch to workspace 3"
msgstr "Przełączenie na 3. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:21
msgid "Switch to workspace 4"
msgstr "Przełączenie na 4. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:22
msgid "Move to workspace left"
msgstr "Przeniesienie na lewy obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:23
msgid "Move to workspace right"
msgstr "Przeniesienie na prawy obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:24
msgid "Move to workspace above"
msgstr "Przeniesienie na górny obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:25
msgid "Move to workspace below"
msgstr "Przeniesienie na dolny obszar roboczy"
#: ../src/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "System"
#: ../src/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "Wyświetlenie okna wykonania polecenia"
#: ../src/50-mutter-system.xml.in.h:3
msgid "Show the activities overview"
msgstr "Wyświetlenie podglądu aktywności"
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Okna"
#: ../src/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "Otwarcie menu okna"
#: ../src/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Przełączenie trybu pełnoekranowego"
#: ../src/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Przełączenie stanu maksymalizacji"
#: ../src/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Maksymalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Przywrócenie okna"
#: ../src/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Przełączenie trybu zwinięcia"
#: ../src/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Zamknięcie okna"
#: ../src/50-mutter-windows.xml.in.h:9
msgid "Minimize window"
msgstr "Minimalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Przeniesienie okna"
#: ../src/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Zmiana rozmiaru okna"
#: ../src/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr ""
"Przełączenie obecności okna na wszystkich obszarach roboczych lub jednym "
#: ../src/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr ""
"Wysunięcie okna, jeśli jest zasłonięte, odsunięcie w przeciwnym wypadku"
#: ../src/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "Wysunięcie okna przed pozostałe"
#: ../src/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Odsunięcie okna pod pozostałe"
#: ../src/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Pionowa maksymalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Pozioma maksymalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "Podział widoku po lewej"
#: ../src/50-mutter-windows.xml.in.h:3
#: ../src/50-mutter-windows.xml.in.h:19
msgid "View split on right"
msgstr "Podział widoku po prawej"
#. 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
#: ../src/compositor/compositor.c:512
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@ -59,41 +237,41 @@ msgstr "Zdarzenie sygnału dźwiękowego"
msgid "Unknown window information request: %d"
msgstr "Żądanie nieznanej informacji okna: %d"
#: ../src/core/delete.c:113
#: ../src/core/delete.c:111
#, c-format
msgid "%s is not responding."
msgstr "Okno %s nie odpowiada."
msgid "%s is not responding."
msgstr "Okno \"%s\" nie odpowiada."
#: ../src/core/delete.c:117
#: ../src/core/delete.c:113
msgid "Application is not responding."
msgstr "Program nie odpowiada."
#: ../src/core/delete.c:122
#: ../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."
msgstr "Można poczekać chwilę dłużej lub wymusić zakończenie programu."
#: ../src/core/delete.c:129
#: ../src/core/delete.c:125
msgid "_Wait"
msgstr "_Czekaj"
#: ../src/core/delete.c:129
#: ../src/core/delete.c:125
msgid "_Force Quit"
msgstr "_Zakończ"
#: ../src/core/display.c:396
#: ../src/core/display.c:394
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Brak rozszerzenia %s, wymaganego przez składanie"
#: ../src/core/display.c:492
#: ../src/core/display.c:491
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr ""
"Otwarcie połączenia z ekranem \"%s\" systemu X Window się nie powiodło\n"
#: ../src/core/keybindings.c:853
#: ../src/core/keybindings.c:876
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@ -126,12 +304,12 @@ msgstr "Inicjuje sesję z zapisanego pliku"
msgid "Make X calls synchronous"
msgstr "Synchroniczne wywołania X"
#: ../src/core/main.c:494
#: ../src/core/main.c:496
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Przejrzenie katalogu z motywami się nie powiodło: %s\n"
#: ../src/core/main.c:510
#: ../src/core/main.c:512
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
@ -163,7 +341,7 @@ msgstr "Wyświetla wersję"
msgid "Mutter plugin to use"
msgstr "Używana wtyczka programu Mutter"
#: ../src/core/prefs.c:1079
#: ../src/core/prefs.c:1087
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@ -171,14 +349,14 @@ msgstr ""
"Obejścia dla błędnie działających programów są wyłączone. Niektóre z nich "
"mogą się zachowywać w sposób nieprzewidywalny.\n"
#: ../src/core/prefs.c:1154
#: ../src/core/prefs.c:1162
#, c-format
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr ""
"Nie można przetworzyć opisu czcionki \"%s\", powiązanego z kluczem GSettings "
"%s\n"
#: ../src/core/prefs.c:1220
#: ../src/core/prefs.c:1228
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@ -187,7 +365,7 @@ msgstr ""
"Wartość \"%s\", odnaleziona w bazie danych konfiguracji nie opisuje "
"prawidłowo modyfikatora przycisku myszy\n"
#: ../src/core/prefs.c:1747
#: ../src/core/prefs.c:1768
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@ -196,17 +374,17 @@ msgstr ""
"Wartość \"%s\", odnaleziona w bazie danych konfiguracji nie opisuje "
"prawidłowo skrótu klawiszowego \"%s\"\n"
#: ../src/core/prefs.c:1844
#: ../src/core/prefs.c:1865
#, c-format
msgid "Workspace %d"
msgstr "Obszar roboczy %d"
#: ../src/core/screen.c:652
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Podekran %d ekranu \"%s\" jest nieprawidłowy\n"
#: ../src/core/screen.c:668
#: ../src/core/screen.c:674
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@ -215,7 +393,7 @@ msgstr ""
"Na podekranie %d ekranu \"%s\" działa już menedżer okien. Aby zastąpić "
"działającego menedżera okien, proszę spróbować użyć opcji --replace.\n"
#: ../src/core/screen.c:695
#: ../src/core/screen.c:701
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@ -223,12 +401,12 @@ msgstr ""
"Nie można uzyskać zaznaczenia menedżera okien na podekranie %d ekranu \"%s"
"\"\n"
#: ../src/core/screen.c:750
#: ../src/core/screen.c:770
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Na podekranie %d ekranu \"%s\" działa już menedżer okien\n"
#: ../src/core/screen.c:935
#: ../src/core/screen.c:955
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Nie można zwolnić podekranu %d ekranu \"%s\"\n"
@ -328,7 +506,7 @@ msgid "Window manager error: "
msgstr "Błąd menedżera okien: "
#. first time through
#: ../src/core/window.c:7237
#: ../src/core/window.c:7277
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -344,7 +522,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7902
#: ../src/core/window.c:7943
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -522,10 +700,24 @@ msgstr ""
"krawędzie, aby spełnić tę wartość."
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows"
msgstr ""
"Automatyczne maksymalizowanie okien o rozmiarze zbliżonym do rozmiaru "
"monitora"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
msgid ""
"If enabled, monitor nearly monitor sized windows automatically get maximized "
"when mapped."
msgstr ""
"Jeśli jest włączone, to okna o rozmiarze zbliżonym do rozmiaru monitora "
"zostają automatycznie maksymalizowane podczas mapowania."
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
msgid "Select window from tab popup"
msgstr "Wybór okna z wyskakującego okna dla tabulacji"
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
msgid "Cancel tab popup"
msgstr "Anulowanie wyskakującego okna dla tabulacji"
@ -1576,12 +1768,12 @@ msgstr "Układy przycisków"
msgid "Benchmark"
msgstr "Test wydajności"
#: ../src/ui/theme-viewer.c:944
#: ../src/ui/theme-viewer.c:949
msgid "Window Title Goes Here"
msgstr "Tutaj znajduje się tytuł okna"
# FIXME - bełkot
#: ../src/ui/theme-viewer.c:1047
#: ../src/ui/theme-viewer.c:1052
#, c-format
msgid ""
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
@ -1592,258 +1784,41 @@ msgstr ""
"%g sekund rzeczywistych, włączając w to zasoby serwera X (%g milisekund na "
"ramkę)\n"
#: ../src/ui/theme-viewer.c:1266
#: ../src/ui/theme-viewer.c:1271
msgid "position expression test returned TRUE but set error"
msgstr "Test wyrażenia pozycji zwrócił wartość PRAWDA, lecz ustawił błąd"
#: ../src/ui/theme-viewer.c:1268
#: ../src/ui/theme-viewer.c:1273
msgid "position expression test returned FALSE but didn't set error"
msgstr "Test wyrażenia pozycji zwrócił wartość FAŁSZ, lecz nie ustawił błędu"
#: ../src/ui/theme-viewer.c:1272
#: ../src/ui/theme-viewer.c:1277
msgid "Error was expected but none given"
msgstr "Oczekiwano błędu, lecz nie otrzymano żadnego"
#: ../src/ui/theme-viewer.c:1274
#: ../src/ui/theme-viewer.c:1279
#, c-format
msgid "Error %d was expected but %d given"
msgstr "Oczekiwano błędu %d, lecz otrzymano %d"
#: ../src/ui/theme-viewer.c:1280
#: ../src/ui/theme-viewer.c:1285
#, c-format
msgid "Error not expected but one was returned: %s"
msgstr "Nie oczekiwano błędu, lecz został on zwrócony: %s"
#: ../src/ui/theme-viewer.c:1284
#: ../src/ui/theme-viewer.c:1289
#, c-format
msgid "x value was %d, %d was expected"
msgstr "Wartością X było %d, oczekiwano wartości %d"
#: ../src/ui/theme-viewer.c:1287
#: ../src/ui/theme-viewer.c:1292
#, c-format
msgid "y value was %d, %d was expected"
msgstr "Wartością Y było %d, oczekiwano wartości %d"
#: ../src/ui/theme-viewer.c:1352
#: ../src/ui/theme-viewer.c:1357
#, c-format
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
msgstr ""
"Wyrażenia współrzędnych %d zostało przetworzone w %g sekund (średnio %g "
"sekund)\n"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Navigation"
msgstr "Nawigacja"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Przeniesienie okna na 1. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Przeniesienie okna na 2. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Przeniesienie okna na 3. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Przeniesienie okna na 4. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Przeniesienie okna o obszar roboczy w lewo"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Przeniesienie okna o obszar roboczy w prawo"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace up"
msgstr "Przeniesienie okna o obszar roboczy w górę"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace down"
msgstr "Przeniesienie okna o obszar roboczy w dół"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Switch applications"
msgstr "Przełączenie programów"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Switch windows of an application"
msgstr "Przełączenie między oknami programu"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Switch system controls"
msgstr "Przełączenie kontroli systemowej"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Switch windows directly"
msgstr "Bezpośrednie przełączenie między oknami"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Bezpośrednie przełączenie między oknami programu"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch system controls directly"
msgstr "Bezpośrednie przełączenie kontroli systemowej"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Hide all normal windows"
msgstr "Ukrycie wszystkich zwykłych okien"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Przełączenie na 1. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Przełączenie na 2. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Przełączenie na 3. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Przełączenie na 4. obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Move to workspace left"
msgstr "Przeniesienie na lewy obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Move to workspace right"
msgstr "Przeniesienie na prawy obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Move to workspace above"
msgstr "Przeniesienie na górny obszar roboczy"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Move to workspace below"
msgstr "Przeniesienie na dolny obszar roboczy"
#: ../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 "Wyświetlenie okna wykonania polecenia"
#: ../src/50-mutter-system.xml.in.h:3
#, fuzzy
msgid "Show the activities overview"
msgstr "Wyświetlenie podglądu aktywności"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Activate the window menu"
msgstr "Otwarcie menu okna"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Przełączenie trybu pełnoekranowego"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Toggle maximization state"
msgstr "Przełączenie trybu maksymalizacji"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window"
msgstr "Maksymalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Restore window"
msgstr "Przywrócenie okna"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Toggle shaded state"
msgstr "Przełączenie trybu zwinięcia"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Close window"
msgstr "Zamknięcie okna"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Minimize window"
msgstr "Minimalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:10
#, fuzzy
msgid "Move window"
msgstr "Przeniesienie okna"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Zmiana rozmiaru okna"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr ""
"Przełączenie obecności okna na wszystkich obszarach roboczych lub jednym "
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Raise window if covered, otherwise lower it"
msgstr ""
"Wysunięcie okna, jeśli jest zasłonięte, odsunięcie w przeciwnym wypadku"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Raise window above other windows"
msgstr "Wysunięcie okna przed pozostałe"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Lower window below other windows"
msgstr "Odsunięcie okna pod pozostałe"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Maximize window vertically"
msgstr "Pionowa maksymalizacja okna"
#: ../src/50-mutter-windows.xml.in.h:17
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Pozioma maksymalizacja okna"

View File

@ -10,7 +10,7 @@
# Rodrigo Flores <rodrigomarquesflores@gmail.com>, 2007.
# Djavan Fagundes <djavanf@gnome.org>, 2008, 2009, 2011.
# Vladimir Melo <vmelo@gnome.org>, 2009.
# Antonio Fernandes C. Neto <fernandesn@gnome.org>, 2010.
# Antonio Fernandes C. Neto <fernandes@pelivre.org>, 2010.
# Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011.
# Enrico Nicoletto <liverig@gmail.com>, 2012.
#
@ -19,8 +19,8 @@ msgstr ""
"Project-Id-Version: metacity\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-10-26 13:53+0000\n"
"PO-Revision-Date: 2012-10-12 23:18-0300\n"
"POT-Creation-Date: 2012-12-13 12:15+0000\n"
"PO-Revision-Date: 2012-11-21 05:02-0300\n"
"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n"
@ -30,7 +30,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 0.6.1\n"
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
#: ../src/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Janelas"
@ -61,16 +61,16 @@ msgstr "Evento de som"
msgid "Unknown window information request: %d"
msgstr "Informação solicitada de janela desconhecida: %d"
#: ../src/core/delete.c:111
#, c-format
msgid "“%s” is not responding."
msgstr "\"%s\" não está respondendo."
#: ../src/core/delete.c:113
#, c-format
msgid "%s is not responding."
msgstr "%s não está respondendo."
#: ../src/core/delete.c:117
msgid "Application is not responding."
msgstr "O aplicativo não está respondendo."
#: ../src/core/delete.c:118
#: ../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."
@ -78,20 +78,20 @@ msgstr ""
"Você pode escolher aguardar um pouco e continuar ou forçar o aplicativo a "
"sair completamente."
#: ../src/core/delete.c:125
#: ../src/core/delete.c:129
msgid "_Wait"
msgstr "_Esperar"
#: ../src/core/delete.c:125
#: ../src/core/delete.c:129
msgid "_Force Quit"
msgstr "_Forçar sair"
#: ../src/core/display.c:396
#: ../src/core/display.c:399
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Faltando extensão %s necessária para composição"
#: ../src/core/display.c:493
#: ../src/core/display.c:496
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Falha ao abrir a exibição \"%s\" do X Window System\n"
@ -329,7 +329,7 @@ msgid "Window manager error: "
msgstr "Erro do gerenciador de janelas: "
#. first time through
#: ../src/core/window.c:7240
#: ../src/core/window.c:7237
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@ -345,7 +345,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:7905
#: ../src/core/window.c:7902
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@ -495,7 +495,7 @@ msgstr ""
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
msgid "Delay focus changes until the pointer stops moving"
msgstr "Atrasar a alteração do foco até o ponteiro parar de mover"
msgstr "Atrasar alterações de foco até que o ponteiro pare de mover"
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
@ -504,8 +504,8 @@ msgid ""
"after the pointer stops moving."
msgstr ""
"Se verdadeiro, e o modo de foco for \"sloppy\" ou \"mouse\", o foco não será "
"alterado imediatamente ao entrar em uma janela, e sim somente após o "
"ponteiro parar de mover."
"alterado imediatamente quando o ponteiro do mouse entrar na janela, e sim "
"quando parar de mover."
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
@ -1621,222 +1621,6 @@ msgstr ""
"%d expressões de coordenadas analisadas em %g segundos (%g segundos em "
"média)\n"
#: ../src/50-mutter-navigation.xml.in.h:18
#, fuzzy
msgid "Switch to workspace 1"
msgstr "Trocar para o espaço de trabalho 1"
#: ../src/50-mutter-navigation.xml.in.h:19
#, fuzzy
msgid "Switch to workspace 2"
msgstr "Trocar para o espaço de trabalho 2"
#: ../src/50-mutter-navigation.xml.in.h:20
#, fuzzy
msgid "Switch to workspace 3"
msgstr "Trocar para o espaço de trabalho 3"
#: ../src/50-mutter-navigation.xml.in.h:21
#, fuzzy
msgid "Switch to workspace 4"
msgstr "Trocar para o espaço de trabalho 4"
#: ../src/50-mutter-windows.xml.in.h:1
#, fuzzy
msgid "Activate the window menu"
msgstr "Ativar o menu da janela"
#: ../src/50-mutter-windows.xml.in.h:13
#, fuzzy
msgid "Toggle fullscreen mode"
msgstr "Alternar modo de tela inteira"
#: ../src/50-mutter-windows.xml.in.h:14
#, fuzzy
msgid "Toggle maximization state"
msgstr "Alternar estado de maximização"
#: ../src/50-mutter-windows.xml.in.h:4
#, fuzzy
msgid "Maximize window"
msgstr "Maximizar a janela"
#: ../src/50-mutter-windows.xml.in.h:12
#, fuzzy
msgid "Restore window"
msgstr "Restaurar janela"
#: ../src/50-mutter-windows.xml.in.h:15
#, fuzzy
msgid "Toggle shaded state"
msgstr "Alternar estado sombreado"
#: ../src/50-mutter-windows.xml.in.h:7
#, fuzzy
msgid "Minimize window"
msgstr "Minimizar a janela"
#: ../src/50-mutter-windows.xml.in.h:2
#, fuzzy
msgid "Close window"
msgstr "Fechar a janela"
#: ../src/50-mutter-windows.xml.in.h:8
#, fuzzy
msgid "Move window"
msgstr "Mover a janela"
#: ../src/50-mutter-windows.xml.in.h:11
#, fuzzy
msgid "Resize window"
msgstr "Redimensionar a janela"
#: ../src/50-mutter-navigation.xml.in.h:10
#, fuzzy
msgid "Move window to workspace 1"
msgstr "Mover a janela para o espaço de trabalho 1"
#: ../src/50-mutter-navigation.xml.in.h:11
#, fuzzy
msgid "Move window to workspace 2"
msgstr "Mover a janela para o espaço de trabalho 2"
#: ../src/50-mutter-navigation.xml.in.h:12
#, fuzzy
msgid "Move window to workspace 3"
msgstr "Mover a janela para o espaço de trabalho 3"
#: ../src/50-mutter-navigation.xml.in.h:13
#, fuzzy
msgid "Move window to workspace 4"
msgstr "Mover a janela para o espaço de trabalho 4"
#: ../src/50-mutter-navigation.xml.in.h:7
#, fuzzy
msgid "Move window one workspace to the left"
msgstr "Mover a janela um espaço de trabalho à esquerda"
#: ../src/50-mutter-navigation.xml.in.h:8
#, fuzzy
msgid "Move window one workspace to the right"
msgstr "Mover a janela um espaço de trabalho à direita"
#: ../src/50-mutter-navigation.xml.in.h:9
#, fuzzy
msgid "Move window one workspace up"
msgstr "Mover a janela um espaço de trabalho acima"
#: ../src/50-mutter-navigation.xml.in.h:6
#, fuzzy
msgid "Move window one workspace down"
msgstr "Mover a janela um espaço de trabalho abaixo"
#: ../src/50-mutter-windows.xml.in.h:9
#, fuzzy
msgid "Raise window above other windows"
msgstr "Elevar a janela para frente das outras"
#: ../src/50-mutter-windows.xml.in.h:3
#, fuzzy
msgid "Lower window below other windows"
msgstr "Colocar a janela atrás das outras"
#: ../src/50-mutter-windows.xml.in.h:6
#, fuzzy
msgid "Maximize window vertically"
msgstr "Maximizar a janela verticalmente"
#: ../src/50-mutter-windows.xml.in.h:5
#, fuzzy
msgid "Maximize window horizontally"
msgstr "Maximizar a janela horizontalmente"
#: ../src/50-mutter-navigation.xml.in.h:1
#, fuzzy
msgid "Hide all normal windows"
msgstr "Ocultar todas as janelas normais"
#: ../src/50-mutter-navigation.xml.in.h:2
#, fuzzy
msgid "Move to workspace above"
msgstr "Mover para o espaço de trabalho acima"
#: ../src/50-mutter-navigation.xml.in.h:3
#, fuzzy
msgid "Move to workspace below"
msgstr "Mover para o espaço de trabalho abaixo"
#: ../src/50-mutter-navigation.xml.in.h:4
#, fuzzy
msgid "Move to workspace left"
msgstr "Mover para o espaço de trabalho à esquerda"
#: ../src/50-mutter-navigation.xml.in.h:5
#, fuzzy
msgid "Move to workspace right"
msgstr "Mover para o espaço de trabalho à direita"
#: ../src/50-mutter-navigation.xml.in.h:14
#, fuzzy
msgid "Navigation"
msgstr "Navegação"
#: ../src/50-mutter-navigation.xml.in.h:15
#, fuzzy
msgid "Switch applications"
msgstr "Alterna aplicativos"
#: ../src/50-mutter-navigation.xml.in.h:16
#, fuzzy
msgid "Switch system controls"
msgstr "Alterna controles do sistema"
#: ../src/50-mutter-navigation.xml.in.h:17
#, fuzzy
msgid "Switch system controls directly"
msgstr "Alterna controles do sistema diretamente"
#: ../src/50-mutter-navigation.xml.in.h:22
#, fuzzy
msgid "Switch windows directly"
msgstr "Alterna janelas diretamente"
#: ../src/50-mutter-navigation.xml.in.h:23
#, fuzzy
msgid "Switch windows of an app directly"
msgstr "Alterna janelas de um aplicativo diretamente"
#: ../src/50-mutter-navigation.xml.in.h:24
#, fuzzy
msgid "Switch windows of an application"
msgstr "Alterna janelas de um aplicativo"
#: ../src/50-mutter-system.xml.in.h:1
#, fuzzy
msgid "Show the activities overview"
msgstr "Mostra a visão geral das atividades"
#: ../src/50-mutter-system.xml.in.h:2
#, fuzzy
msgid "Show the run command prompt"
msgstr "Mostrar o prompt de 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 ""
"Elevar janela se ela estiver coberta por outra; caso contrário, baixe-a"
#: ../src/50-mutter-windows.xml.in.h:16
#, fuzzy
msgid "Toggle window on all workspaces or one"
msgstr "Alternar janela em todos os espaços de trabalho ou em um"
#~ msgid "Comma-separated list of compositor plugins"
#~ msgstr "Lista de plugins de composição separados por vírgula"
@ -1850,6 +1634,18 @@ msgstr "Alternar janela em todos os espaços de trabalho ou em um"
#~ msgid "Live Hidden Windows"
#~ msgstr "Janelas ocultas ativas"
#~ msgid "Switch to workspace 1"
#~ msgstr "Trocar para o espaço de trabalho 1"
#~ msgid "Switch to workspace 2"
#~ msgstr "Trocar para o espaço de trabalho 2"
#~ msgid "Switch to workspace 3"
#~ msgstr "Trocar para o espaço de trabalho 3"
#~ msgid "Switch to workspace 4"
#~ msgstr "Trocar para o espaço de trabalho 4"
#~ msgid "Switch to workspace 5"
#~ msgstr "Trocar para o espaço de trabalho 5"
@ -1950,13 +1746,55 @@ msgstr "Alternar janela em todos os espaços de trabalho ou em um"
#~ msgid "Run a terminal"
#~ msgstr "Executar um terminal"
#~ msgid "Activate the window menu"
#~ msgstr "Ativar o menu da janela"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Alternar modo de tela inteira"
#~ msgid "Toggle maximization state"
#~ msgstr "Alternar estado de maximização"
#~ msgid "Toggle whether a window will always be visible over other windows"
#~ msgstr "Alternar se uma janela será sempre visível sobre as outras"
#~ msgid "Maximize window"
#~ msgstr "Maximizar a janela"
#~ msgid "Restore window"
#~ msgstr "Restaurar janela"
#~ msgid "Toggle shaded state"
#~ msgstr "Alternar estado sombreado"
#~ msgid "Minimize window"
#~ msgstr "Minimizar a janela"
#~ msgid "Close window"
#~ msgstr "Fechar a janela"
#~ msgid "Move window"
#~ msgstr "Mover a janela"
#~ msgid "Resize window"
#~ msgstr "Redimensionar a janela"
#~ msgid "Toggle whether window is on all workspaces or just one"
#~ msgstr ""
#~ "Alternar se a janela está em todos os espaços de trabalho ou em apenas um"
#~ msgid "Move window to workspace 1"
#~ msgstr "Mover a janela para o espaço de trabalho 1"
#~ msgid "Move window to workspace 2"
#~ msgstr "Mover a janela para o espaço de trabalho 2"
#~ msgid "Move window to workspace 3"
#~ msgstr "Mover a janela para o espaço de trabalho 3"
#~ msgid "Move window to workspace 4"
#~ msgstr "Mover a janela para o espaço de trabalho 4"
#~ msgid "Move window to workspace 5"
#~ msgstr "Mover a janela para o espaço de trabalho 5"
@ -1981,11 +1819,35 @@ msgstr "Alternar janela em todos os espaços de trabalho ou em um"
#~ msgid "Move window to workspace 12"
#~ msgstr "Mover a janela para o espaço de trabalho 12"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Mover a janela um espaço de trabalho à esquerda"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Mover a janela um espaço de trabalho à direita"
#~ msgid "Move window one workspace up"
#~ msgstr "Mover a janela um espaço de trabalho acima"
#~ msgid "Move window one workspace down"
#~ msgstr "Mover a janela um espaço de trabalho abaixo"
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
#~ msgstr ""
#~ "Elevar a janela se ela estiver coberta por outra; caso contrário, abaixá-"
#~ "la"
#~ msgid "Raise window above other windows"
#~ msgstr "Elevar a janela para frente das outras"
#~ msgid "Lower window below other windows"
#~ msgstr "Colocar a janela atrás das outras"
#~ msgid "Maximize window vertically"
#~ msgstr "Maximizar a janela verticalmente"
#~ msgid "Maximize window horizontally"
#~ msgstr "Maximizar a janela horizontalmente"
#~ msgid "Move window to north-west (top left) corner"
#~ msgstr "Mover a janela para o canto superior esquerdo"

1106
po/sl.po

File diff suppressed because it is too large Load Diff

752
po/ta.po

File diff suppressed because it is too large Load Diff

1760
po/ug.po

File diff suppressed because it is too large Load Diff

View File

@ -29,9 +29,12 @@
<KeyListEntry name="move-to-workspace-down"
_description="Move window one workspace down" />
<KeyListEntry name="switch-windows"
<KeyListEntry name="switch-applications"
_description="Switch applications"/>
<KeyListEntry name="switch-windows"
_description="Switch windows"/>
<KeyListEntry name="switch-group"
_description="Switch windows of an application"/>

View File

@ -19,7 +19,7 @@
<KeyListEntry name="close" _description="Close window"/>
<KeyListEntry name="minimize" _description="Minimize window"/>
<KeyListEntry name="minimize" _description="Hide window"/>
<KeyListEntry name="begin-move" _description="Move window"/>

View File

@ -6,6 +6,8 @@ lib_LTLIBRARIES = libmutter.la
SUBDIRS=wm-tester tools compositor/plugins
INCLUDES= \
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
-DCOGL_ENABLE_EXPERIMENTAL_API \
$(MUTTER_CFLAGS) \
-I$(srcdir) \
-I$(srcdir)/core \

View File

@ -18,7 +18,6 @@ struct _MetaCompositor
MetaDisplay *display;
Atom atom_x_root_pixmap;
Atom atom_x_set_root;
Atom atom_net_wm_window_opacity;
guint repaint_func_id;
@ -26,9 +25,13 @@ struct _MetaCompositor
MetaPlugin *modal_plugin;
gboolean show_redraw : 1;
gboolean debug : 1;
gboolean no_mipmaps : 1;
gint64 server_time_query_time;
gint64 server_time_offset;
guint server_time_is_monotonic_time : 1;
guint show_redraw : 1;
guint debug : 1;
guint no_mipmaps : 1;
};
struct _MetaCompScreen
@ -42,6 +45,9 @@ struct _MetaCompScreen
GHashTable *windows_by_xid;
Window output;
CoglOnscreen *onscreen;
CoglFrameClosure *frame_closure;
/* Used for unredirecting fullscreen windows */
guint disable_unredirect_count;
MetaWindowActor *unredirected_window;
@ -54,6 +60,8 @@ struct _MetaCompScreen
MetaPluginManager *plugin_mgr;
};
#define META_SYNC_DELAY 2
void meta_switch_workspace_completed (MetaScreen *screen);
gboolean meta_begin_modal_for_plugin (MetaScreen *screen,
@ -66,6 +74,9 @@ void meta_end_modal_for_plugin (MetaScreen *screen,
MetaPlugin *plugin,
guint32 timestamp);
gint64 meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
gint64 monotonic_time);
void meta_check_end_modal (MetaScreen *screen);
#endif /* META_COMPOSITOR_PRIVATE_H */

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;
@ -445,6 +467,16 @@ meta_check_end_modal (MetaScreen *screen)
}
}
static void
after_stage_paint (ClutterActor *stage,
MetaCompScreen *info)
{
GList *l;
for (l = info->windows; l; l = l->next)
meta_window_actor_post_paint (l->data);
}
void
meta_compositor_manage_screen (MetaCompositor *compositor,
MetaScreen *screen)
@ -456,8 +488,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;
@ -516,6 +546,11 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
meta_screen_set_cm_selection (screen);
info->stage = clutter_stage_new ();
g_signal_connect_after (info->stage, "paint",
G_CALLBACK (after_stage_paint), info);
/* Wait 6-ms after vblank before starting to draw next frame */
clutter_stage_set_sync_delay (CLUTTER_STAGE (info->stage), META_SYNC_DELAY);
meta_screen_get_size (screen, &width, &height);
clutter_actor_realize (info->stage);
@ -524,21 +559,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);
@ -688,25 +731,38 @@ meta_compositor_remove_window (MetaCompositor *compositor,
}
void
meta_compositor_set_updates (MetaCompositor *compositor,
MetaWindow *window,
gboolean updates)
meta_compositor_set_updates_frozen (MetaCompositor *compositor,
MetaWindow *window,
gboolean updates_frozen)
{
MetaWindowActor *window_actor;
DEBUG_TRACE ("meta_compositor_set_updates_frozen\n");
window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
if (!window_actor)
return;
meta_window_actor_set_updates_frozen (window_actor, updates_frozen);
}
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;
@ -730,7 +786,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);
@ -1149,6 +1205,39 @@ meta_compositor_sync_screen_size (MetaCompositor *compositor,
width, height);
}
static void
frame_callback (CoglOnscreen *onscreen,
CoglFrameEvent event,
CoglFrameInfo *frame_info,
void *user_data)
{
MetaCompScreen *info = user_data;
GList *l;
if (event == COGL_FRAME_EVENT_COMPLETE)
{
gint64 presentation_time_cogl = cogl_frame_info_get_presentation_time (frame_info);
gint64 presentation_time;
if (presentation_time_cogl != 0)
{
CoglContext *context = cogl_framebuffer_get_context (COGL_FRAMEBUFFER (onscreen));
gint64 current_time_cogl = cogl_get_clock_time (context);
gint64 now = g_get_monotonic_time ();
presentation_time =
now + (presentation_time_cogl - current_time_cogl) / 1000;
}
else
{
presentation_time = 0;
}
for (l = info->windows; l; l = l->next)
meta_window_actor_frame_complete (l->data, frame_info, presentation_time);
}
}
static void
pre_paint_windows (MetaCompScreen *info)
{
@ -1156,6 +1245,15 @@ pre_paint_windows (MetaCompScreen *info)
MetaWindowActor *top_window;
MetaWindowActor *expected_unredirected_window = NULL;
if (info->onscreen == NULL)
{
info->onscreen = COGL_ONSCREEN (cogl_get_draw_framebuffer ());
info->frame_closure = cogl_onscreen_add_frame_callback (info->onscreen,
frame_callback,
info,
NULL);
}
if (info->windows == NULL)
return;
@ -1237,7 +1335,6 @@ meta_compositor_new (MetaDisplay *display)
{
char *atom_names[] = {
"_XROOTPMAP_ID",
"_XSETROOT_ID",
"_NET_WM_WINDOW_OPACITY",
};
Atom atoms[G_N_ELEMENTS(atom_names)];
@ -1264,8 +1361,7 @@ meta_compositor_new (MetaDisplay *display)
compositor);
compositor->atom_x_root_pixmap = atoms[0];
compositor->atom_x_set_root = atoms[1];
compositor->atom_net_wm_window_opacity = atoms[2];
compositor->atom_net_wm_window_opacity = atoms[1];
compositor->repaint_func_id = clutter_threads_add_repaint_func (meta_repaint_func,
compositor,
@ -1360,3 +1456,51 @@ meta_compositor_flash_screen (MetaCompositor *compositor,
"signal-after::completed", flash_in_completed, flash,
NULL);
}
/**
* meta_compositor_monotonic_time_to_server_time:
* @display: a #MetaDisplay
* @monotonic_time: time in the units of g_get_monotonic_time()
*
* _NET_WM_FRAME_DRAWN and _NET_WM_FRAME_TIMINGS messages represent time
* as a "high resolution server time" - this is the server time interpolated
* to microsecond resolution. The advantage of this time representation
* is that if X server is running on the same computer as a client, and
* the Xserver uses 'clock_gettime(CLOCK_MONOTONIC, ...)' for the server
* time, the client can detect this, and all such clients will share a
* a time representation with high accuracy. If there is not a common
* time source, then the time synchronization will be less accurate.
*/
gint64
meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
gint64 monotonic_time)
{
MetaCompositor *compositor = display->compositor;
if (compositor->server_time_query_time == 0 ||
(!compositor->server_time_is_monotonic_time &&
monotonic_time > compositor->server_time_query_time + 10000000)) /* 10 seconds */
{
guint32 server_time = meta_display_get_current_time_roundtrip (display);
gint64 server_time_usec = (gint64)server_time * 1000;
gint64 current_monotonic_time = g_get_monotonic_time ();
compositor->server_time_query_time = current_monotonic_time;
/* If the server time is within a second of the monotonic time,
* we assume that they are identical. This seems like a big margin,
* but we want to be as robust as possible even if the system
* is under load and our processing of the server response is
* delayed.
*/
if (server_time_usec > current_monotonic_time - 1000000 &&
server_time_usec < current_monotonic_time + 1000000)
compositor->server_time_is_monotonic_time = TRUE;
compositor->server_time_offset = server_time_usec - current_monotonic_time;
}
if (compositor->server_time_is_monotonic_time)
return monotonic_time;
else
return monotonic_time + compositor->server_time_offset;
}

View File

@ -25,10 +25,8 @@
#include <config.h>
#define COGL_ENABLE_EXPERIMENTAL_API
#include <cogl/cogl-texture-pixmap-x11.h>
#define CLUTTER_ENABLE_EXPERIMENTAL_API
#include <clutter/clutter.h>
#include <X11/Xatom.h>

View File

@ -309,9 +309,6 @@ meta_plugin_manager_xevent_filter (MetaPluginManager *plugin_mgr,
MetaPlugin *plugin = plugin_mgr->plugin;
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
if (!plugin_mgr)
return FALSE;
/* 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

View File

@ -27,9 +27,6 @@
#include <config.h>
#define CLUTTER_ENABLE_EXPERIMENTAL_API
#define COGL_ENABLE_EXPERIMENTAL_API
#include <meta/meta-shaped-texture.h>
#include "meta-texture-tower.h"

View File

@ -25,9 +25,6 @@
#include <config.h>
#define CLUTTER_ENABLE_EXPERIMENTAL_API
#define COGL_ENABLE_EXPERIMENTAL_API
#include <clutter/clutter.h>
#include "meta-texture-rectangle.h"

View File

@ -28,6 +28,10 @@ void meta_window_actor_process_damage (MetaWindowActor *self,
XDamageNotifyEvent *event);
void meta_window_actor_pre_paint (MetaWindowActor *self);
void meta_window_actor_post_paint (MetaWindowActor *self);
void meta_window_actor_frame_complete (MetaWindowActor *self,
CoglFrameInfo *frame_info,
gint64 presentation_time);
void meta_window_actor_invalidate_shadow (MetaWindowActor *self);
@ -45,6 +49,8 @@ void meta_window_actor_update_shape (MetaWindowActor *self);
void meta_window_actor_update_opacity (MetaWindowActor *self);
void meta_window_actor_mapped (MetaWindowActor *self);
void meta_window_actor_unmapped (MetaWindowActor *self);
void meta_window_actor_set_updates_frozen (MetaWindowActor *self,
gboolean updates_frozen);
cairo_region_t *meta_window_actor_get_obscured_region (MetaWindowActor *self);

View File

@ -10,7 +10,6 @@
#include <X11/extensions/Xrender.h>
#include <clutter/x11/clutter-x11.h>
#define COGL_ENABLE_EXPERIMENTAL_API
#include <cogl/cogl-texture-pixmap-x11.h>
#include <gdk/gdk.h> /* for gdk_rectangle_union() */
#include <string.h>
@ -97,6 +96,9 @@ struct _MetaWindowActorPrivate
gint map_in_progress;
gint destroy_in_progress;
/* List of FrameData for recent frames */
GList *frames;
guint visible : 1;
guint mapped : 1;
guint argb32 : 1;
@ -106,11 +108,16 @@ struct _MetaWindowActorPrivate
guint needs_damage_all : 1;
guint received_damage : 1;
/* If set, the client needs to be sent a _NET_WM_FRAME_DRAWN
* client message using the most recent frame in ->frames */
guint needs_frame_drawn : 1;
guint needs_pixmap : 1;
guint needs_reshape : 1;
guint recompute_focused_shadow : 1;
guint recompute_unfocused_shadow : 1;
guint size_changed : 1;
guint updates_frozen : 1;
guint needs_destroy : 1;
@ -121,6 +128,15 @@ struct _MetaWindowActorPrivate
guint unredirected : 1;
};
typedef struct _FrameData FrameData;
struct _FrameData
{
int64_t frame_counter;
guint64 sync_request_serial;
gint64 frame_drawn_time;
};
enum
{
PROP_META_WINDOW = 1,
@ -151,12 +167,16 @@ static gboolean meta_window_actor_get_paint_volume (ClutterActor *actor,
static void meta_window_actor_detach (MetaWindowActor *self);
static gboolean meta_window_actor_has_shadow (MetaWindowActor *self);
static void meta_window_actor_clear_shape_region (MetaWindowActor *self);
static void meta_window_actor_clear_bounding_region (MetaWindowActor *self);
static void meta_window_actor_clear_shadow_clip (MetaWindowActor *self);
static void meta_window_actor_handle_updates (MetaWindowActor *self);
G_DEFINE_TYPE (MetaWindowActor, meta_window_actor, CLUTTER_TYPE_GROUP);
static void
frame_data_free (FrameData *frame)
{
g_slice_free (FrameData, frame);
}
static void
meta_window_actor_class_init (MetaWindowActorClass *klass)
{
@ -384,33 +404,14 @@ meta_window_actor_dispose (GObject *object)
meta_window_actor_detach (self);
meta_window_actor_clear_shape_region (self);
meta_window_actor_clear_bounding_region (self);
meta_window_actor_clear_shadow_clip (self);
g_clear_pointer (&priv->shape_region, cairo_region_destroy);
g_clear_pointer (&priv->bounding_region, cairo_region_destroy);
g_clear_pointer (&priv->shadow_clip, cairo_region_destroy);
if (priv->shadow_class != NULL)
{
g_free (priv->shadow_class);
priv->shadow_class = NULL;
}
if (priv->focused_shadow != NULL)
{
meta_shadow_unref (priv->focused_shadow);
priv->focused_shadow = NULL;
}
if (priv->unfocused_shadow != NULL)
{
meta_shadow_unref (priv->unfocused_shadow);
priv->unfocused_shadow = NULL;
}
if (priv->shadow_shape != NULL)
{
meta_window_shape_unref (priv->shadow_shape);
priv->shadow_shape = NULL;
}
g_clear_pointer (&priv->shadow_class, g_free);
g_clear_pointer (&priv->focused_shadow, meta_shadow_unref);
g_clear_pointer (&priv->unfocused_shadow, meta_shadow_unref);
g_clear_pointer (&priv->shadow_shape, meta_window_shape_unref);
if (priv->damage != None)
{
@ -423,17 +424,12 @@ meta_window_actor_dispose (GObject *object)
info->windows = g_list_remove (info->windows, (gconstpointer) self);
if (priv->window)
{
g_object_unref (priv->window);
priv->window = NULL;
}
g_clear_object (&priv->window);
/*
* Release the extra reference we took on the actor.
*/
g_object_unref (priv->actor);
priv->actor = NULL;
g_clear_object (&priv->actor);
G_OBJECT_CLASS (meta_window_actor_parent_class)->dispose (object);
}
@ -691,7 +687,7 @@ meta_window_actor_get_paint_volume (ClutterActor *actor,
/* The paint volume is computed before paint functions are called
* so our bounds might not be updated yet. Force an update. */
meta_window_actor_pre_paint (self);
meta_window_actor_handle_updates (self);
meta_window_actor_get_shape_bounds (self, &bounds);
@ -953,12 +949,31 @@ meta_window_actor_thaw (MetaWindowActor *self)
if (self->priv->freeze_count)
return;
/* We ignore moves and resizes on frozen windows */
meta_window_actor_sync_actor_position (self);
/* We do this now since we might be going right back into the
* frozen state */
meta_window_actor_handle_updates (self);
/* Since we ignore damage events while a window is frozen for certain effects
* we may need to issue an update_area() covering the whole pixmap if we
* don't know what real damage has happened. */
if (self->priv->needs_damage_all)
meta_window_actor_damage_all (self);
else if (self->priv->needs_frame_drawn != 0)
{
/* A frame was marked by the client without actually doing any damage;
* we need to make sure that the pre_paint/post_paint functions
* get called, enabling us to send a _NET_WM_FRAME_DRAWN. We do a
* 1-pixel redraw to get consistent timing with non-empty frames.
*/
if (self->priv->mapped && !self->priv->needs_pixmap)
{
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
clutter_actor_queue_redraw_with_clip (self->priv->actor, &clip);
}
}
}
gboolean
@ -1193,18 +1208,26 @@ meta_window_actor_should_unredirect (MetaWindowActor *self)
int num_monitors = meta_screen_get_n_monitors (screen);
int i;
if (!meta_window_is_override_redirect (metaWindow))
if (meta_window_requested_dont_bypass_compositor (metaWindow))
return FALSE;
if (!meta_window_is_override_redirect (metaWindow) &&
!meta_window_requested_bypass_compositor (metaWindow))
return FALSE;
if (priv->opacity != 0xff)
return FALSE;
if (priv->argb32)
if (priv->argb32 && !meta_window_requested_bypass_compositor (metaWindow))
return FALSE;
if (metaWindow->has_shape)
return FALSE;
if (meta_window_requested_bypass_compositor (metaWindow) &&
meta_window_is_fullscreen (metaWindow))
return TRUE;
meta_screen_get_size (screen, &screen_width, &screen_height);
meta_window_get_outer_rect (metaWindow, &window_rect);
@ -1299,6 +1322,12 @@ meta_window_actor_destroy (MetaWindowActor *self)
clutter_actor_destroy (CLUTTER_ACTOR (self));
}
static gboolean
is_frozen (MetaWindowActor *self)
{
return self->priv->freeze_count ? TRUE : FALSE;
}
void
meta_window_actor_sync_actor_position (MetaWindowActor *self)
{
@ -1307,6 +1336,9 @@ meta_window_actor_sync_actor_position (MetaWindowActor *self)
meta_window_get_input_rect (priv->window, &window_rect);
if (is_frozen (self))
return;
if (priv->last_width != window_rect.width ||
priv->last_height != window_rect.height)
{
@ -1503,6 +1535,9 @@ meta_window_actor_new (MetaWindow *window)
if (priv->mapped)
meta_window_actor_queue_create_pixmap (self);
meta_window_actor_set_updates_frozen (self,
meta_window_updates_are_frozen (priv->window));
meta_window_actor_sync_actor_position (self);
/* Hang our compositor window state off the MetaWindow for fast retrieval */
@ -1548,42 +1583,6 @@ meta_window_actor_unmapped (MetaWindowActor *self)
priv->needs_pixmap = FALSE;
}
static void
meta_window_actor_clear_shape_region (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
if (priv->shape_region)
{
cairo_region_destroy (priv->shape_region);
priv->shape_region = NULL;
}
}
static void
meta_window_actor_clear_bounding_region (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
if (priv->bounding_region)
{
cairo_region_destroy (priv->bounding_region);
priv->bounding_region = NULL;
}
}
static void
meta_window_actor_clear_shadow_clip (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
if (priv->shadow_clip)
{
cairo_region_destroy (priv->shadow_clip);
priv->shadow_clip = NULL;
}
}
static void
meta_window_actor_update_bounding_region_and_borders (MetaWindowActor *self,
int width,
@ -1624,7 +1623,7 @@ meta_window_actor_update_bounding_region_and_borders (MetaWindowActor *self,
priv->last_borders = borders;
meta_window_actor_clear_bounding_region (self);
g_clear_pointer (&priv->bounding_region, cairo_region_destroy);
priv->bounding_region = cairo_region_create_rectangle (&bounding_rectangle);
@ -1633,33 +1632,6 @@ meta_window_actor_update_bounding_region_and_borders (MetaWindowActor *self,
g_signal_emit (self, signals[SIZE_CHANGED], 0);
}
static void
meta_window_actor_update_shape_region (MetaWindowActor *self,
cairo_region_t *region)
{
MetaWindowActorPrivate *priv = self->priv;
meta_window_actor_clear_shape_region (self);
/* region must be non-null */
priv->shape_region = region;
cairo_region_reference (region);
/* Our "shape_region" is called the "bounding region" in the X Shape
* Extension Documentation.
*
* Our "bounding_region" is called the "bounding rectangle", which defines
* the shape of the window as if it the window was unshaped.
*
* The X Shape extension requires that the "bounding region" can never
* extend outside the "bounding rectangle", and says it must be implicitly
* clipped before rendering. The region we get back hasn't been clipped.
* We explicitly clip the region here.
*/
if (priv->bounding_region != NULL)
cairo_region_intersect (priv->shape_region, priv->bounding_region);
}
/**
* meta_window_actor_get_obscured_region:
* @self: a #MetaWindowActor
@ -1768,7 +1740,7 @@ meta_window_actor_set_visible_region_beneath (MetaWindowActor *self,
if (appears_focused ? priv->focused_shadow : priv->unfocused_shadow)
{
meta_window_actor_clear_shadow_clip (self);
g_clear_pointer (&priv->shadow_clip, cairo_region_destroy);
priv->shadow_clip = cairo_region_copy (beneath_region);
if (clip_shadow_under_window (self))
@ -1793,7 +1765,7 @@ meta_window_actor_reset_visible_regions (MetaWindowActor *self)
meta_shaped_texture_set_clip_region (META_SHAPED_TEXTURE (priv->actor),
NULL);
meta_window_actor_clear_shadow_clip (self);
g_clear_pointer (&priv->shadow_clip, cairo_region_destroy);
}
static void
@ -1955,12 +1927,6 @@ check_needs_shadow (MetaWindowActor *self)
meta_shadow_unref (old_shadow);
}
static gboolean
is_frozen (MetaWindowActor *self)
{
return self->priv->freeze_count ? TRUE : FALSE;
}
void
meta_window_actor_process_damage (MetaWindowActor *self,
XDamageNotifyEvent *event)
@ -2105,14 +2071,14 @@ scan_visible_region (guchar *mask_data,
{
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++;
int x2 = x;
while (mask_data[y * stride + x2] == 255 && x2 < (rect.x + rect.width))
x2++;
if (w > 0)
if (x2 > x)
{
meta_region_builder_add_rectangle (&builder, x, y, w - x, 1);
x = w;
meta_region_builder_add_rectangle (&builder, x, y, x2 - x, 1);
x = x2;
}
}
}
@ -2232,7 +2198,7 @@ check_needs_reshape (MetaWindowActor *self)
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);
g_clear_pointer (&priv->shape_region, cairo_region_destroy);
#ifdef HAVE_SHAPE
if (priv->window->has_shape)
@ -2290,8 +2256,21 @@ check_needs_reshape (MetaWindowActor *self)
build_and_scan_frame_mask (self, &borders, &client_area, region);
}
meta_window_actor_update_shape_region (self, region);
cairo_region_destroy (region);
priv->shape_region = region;
/* Our "shape_region" is called the "bounding region" in the X Shape
* Extension Documentation.
*
* Our "bounding_region" is called the "bounding rectangle", which defines
* the shape of the window as if it the window was unshaped.
*
* The X Shape extension requires that the "bounding region" can never
* extend outside the "bounding rectangle", and says it must be implicitly
* clipped before rendering. The region we get back hasn't been clipped.
* We explicitly clip the region here.
*/
if (priv->bounding_region != NULL)
cairo_region_intersect (priv->shape_region, priv->bounding_region);
priv->needs_reshape = FALSE;
meta_window_actor_invalidate_shadow (self);
@ -2312,8 +2291,8 @@ meta_window_actor_update_shape (MetaWindowActor *self)
clutter_actor_queue_redraw (priv->actor);
}
void
meta_window_actor_pre_paint (MetaWindowActor *self)
static void
meta_window_actor_handle_updates (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
MetaScreen *screen = priv->screen;
@ -2365,6 +2344,160 @@ meta_window_actor_pre_paint (MetaWindowActor *self)
check_needs_pixmap (self);
check_needs_reshape (self);
check_needs_shadow (self);
if (priv->window->needs_frame_drawn)
{
FrameData *frame = g_slice_new0 (FrameData);
priv->needs_frame_drawn = TRUE;
frame->sync_request_serial = priv->window->sync_request_serial;
priv->frames = g_list_prepend (priv->frames, frame);
priv->window->needs_frame_drawn = FALSE;
if (priv->window->no_delay_frame)
{
ClutterActor *stage = clutter_actor_get_stage (CLUTTER_ACTOR (self));
clutter_stage_skip_sync_delay (CLUTTER_STAGE (stage));
}
}
}
void
meta_window_actor_pre_paint (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
GList *l;
meta_window_actor_handle_updates (self);
for (l = priv->frames; l != NULL; l = l->next)
{
FrameData *frame = l->data;
if (frame->frame_counter == 0)
{
CoglOnscreen *onscreen = COGL_ONSCREEN (cogl_get_draw_framebuffer());
frame->frame_counter = cogl_onscreen_get_frame_counter (onscreen);
}
}
}
void
meta_window_actor_post_paint (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
if (priv->needs_frame_drawn)
{
MetaScreen *screen = priv->screen;
MetaDisplay *display = meta_screen_get_display (screen);
Display *xdisplay = meta_display_get_xdisplay (display);
XClientMessageEvent ev = { 0, };
FrameData *frame = priv->frames->data;
frame->frame_drawn_time = meta_compositor_monotonic_time_to_server_time (display,
g_get_monotonic_time ());
ev.type = ClientMessage;
ev.window = meta_window_get_xwindow (priv->window);
ev.message_type = display->atom__NET_WM_FRAME_DRAWN;
ev.format = 32;
ev.data.l[0] = frame->sync_request_serial & G_GUINT64_CONSTANT(0xffffffff);
ev.data.l[1] = frame->sync_request_serial >> 32;
ev.data.l[2] = frame->frame_drawn_time & G_GUINT64_CONSTANT(0xffffffff);
ev.data.l[3] = frame->frame_drawn_time >> 32;
meta_error_trap_push (display);
XSendEvent (xdisplay, ev.window, False, 0, (XEvent*) &ev);
XFlush (xdisplay);
meta_error_trap_pop (display);
priv->needs_frame_drawn = FALSE;
}
}
static void
send_frame_timings (MetaWindowActor *self,
FrameData *frame,
CoglFrameInfo *frame_info,
gint64 presentation_time)
{
MetaWindowActorPrivate *priv = self->priv;
MetaDisplay *display = meta_screen_get_display (priv->screen);
Display *xdisplay = meta_display_get_xdisplay (display);
float refresh_rate;
gint64 refresh_interval;
XClientMessageEvent ev = { 0, };
ev.type = ClientMessage;
ev.window = meta_window_get_xwindow (priv->window);
ev.message_type = display->atom__NET_WM_FRAME_TIMINGS;
ev.format = 32;
ev.data.l[0] = frame->sync_request_serial & G_GUINT64_CONSTANT(0xffffffff);
ev.data.l[1] = frame->sync_request_serial >> 32;
refresh_rate = cogl_frame_info_get_refresh_rate (frame_info);
if (refresh_rate != 0.0)
refresh_interval = (int) (0.5 + 1000000 / refresh_rate);
else
refresh_interval = 0;
if (presentation_time != 0)
{
gint64 presentation_time_server = meta_compositor_monotonic_time_to_server_time (display,
presentation_time);
gint64 presentation_time_offset = presentation_time_server - frame->frame_drawn_time;
if (presentation_time_offset == 0)
presentation_time_offset = 1;
if ((gint32)presentation_time_offset == presentation_time_offset)
ev.data.l[2] = presentation_time_offset;
}
if (refresh_interval != 0 && (gint32)refresh_interval == refresh_interval)
{
ev.data.l[3] = refresh_interval;
}
ev.data.l[4] = 1000 * META_SYNC_DELAY;
meta_error_trap_push (display);
XSendEvent (xdisplay, ev.window, False, 0, (XEvent*) &ev);
XFlush (xdisplay);
meta_error_trap_pop (display);
}
void
meta_window_actor_frame_complete (MetaWindowActor *self,
CoglFrameInfo *frame_info,
gint64 presentation_time)
{
MetaWindowActorPrivate *priv = self->priv;
GList *l;
for (l = priv->frames; l;)
{
GList *l_next = l->next;
FrameData *frame = l->data;
if (frame->frame_counter == cogl_frame_info_get_frame_counter (frame_info))
{
if (frame->frame_drawn_time != 0)
{
priv->frames = g_list_delete_link (priv->frames, l);
send_frame_timings (self, frame, frame_info, presentation_time);
frame_data_free (frame);
}
}
l = l_next;
}
}
void
@ -2399,3 +2532,21 @@ meta_window_actor_update_opacity (MetaWindowActor *self)
self->priv->opacity = opacity;
clutter_actor_set_opacity (self->priv->actor, opacity);
}
void
meta_window_actor_set_updates_frozen (MetaWindowActor *self,
gboolean updates_frozen)
{
MetaWindowActorPrivate *priv = self->priv;
updates_frozen = updates_frozen != FALSE;
if (priv->updates_frozen != updates_frozen)
{
priv->updates_frozen = updates_frozen;
if (updates_frozen)
meta_window_actor_freeze (self);
else
meta_window_actor_thaw (self);
}
}

View File

@ -571,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,

View File

@ -133,6 +133,18 @@ delete_ping_timeout_func (MetaDisplay *display,
g_child_watch_add (dialog_pid, dialog_exited, window);
}
void
meta_window_check_alive (MetaWindow *window,
guint32 timestamp)
{
meta_display_ping_window (window->display,
window,
timestamp,
delete_ping_reply_func,
delete_ping_timeout_func,
window);
}
void
meta_window_delete (MetaWindow *window,
guint32 timestamp)
@ -156,13 +168,8 @@ meta_window_delete (MetaWindow *window,
}
meta_error_trap_pop (window->display);
meta_display_ping_window (window->display,
window,
timestamp,
delete_ping_reply_func,
delete_ping_timeout_func,
window);
meta_window_check_alive (window, timestamp);
if (window->has_focus)
{
/* FIXME Clean this up someday

View File

@ -211,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
@ -222,8 +223,7 @@ struct _MetaDisplay
guint32 last_bell_time;
#endif
#ifdef HAVE_XSYNC
/* alarm monitoring client's _NET_WM_SYNC_REQUEST_COUNTER */
XSyncAlarm grab_sync_request_alarm;
gint64 grab_sync_counter_wait_serial;
#endif
int grab_resize_timeout_id;
@ -283,7 +283,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
@ -366,6 +369,16 @@ void meta_display_register_x_window (MetaDisplay *display,
void meta_display_unregister_x_window (MetaDisplay *display,
Window xwindow);
#ifdef HAVE_XSYNC
MetaWindow* meta_display_lookup_sync_alarm (MetaDisplay *display,
XSyncAlarm alarm);
void meta_display_register_sync_alarm (MetaDisplay *display,
XSyncAlarm *alarmp,
MetaWindow *window);
void meta_display_unregister_sync_alarm (MetaDisplay *display,
XSyncAlarm alarm);
#endif /* HAVE_XSYNC */
void meta_display_notify_window_created (MetaDisplay *display,
MetaWindow *window);
@ -381,7 +394,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);
@ -429,6 +441,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

@ -303,7 +303,7 @@ meta_clutter_init (void)
{
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));

View File

@ -847,10 +847,9 @@ meta_window_place (MetaWindow *window,
{
MetaWindow *w = tmp->data;
if (meta_window_showing_on_its_workspace (w) &&
w != window &&
(window->workspace == w->workspace ||
window->on_all_workspaces || w->on_all_workspaces))
if (w != window &&
meta_window_showing_on_its_workspace (w) &&
meta_window_located_on_workspace (w, window->workspace))
windows = g_list_prepend (windows, w);
tmp = tmp->next;

View File

@ -99,6 +99,7 @@ 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 gboolean auto_maximize = TRUE;
static GDesktopVisualBellType visual_bell_type = G_DESKTOP_VISUAL_BELL_FULLSCREEN_FLASH;
static MetaButtonLayout button_layout;
@ -368,6 +369,13 @@ static MetaBoolPreference preferences_bool[] =
},
&no_tab_popup,
},
{
{ "auto-maximize",
SCHEMA_MUTTER,
META_PREF_AUTO_MAXIMIZE,
},
&auto_maximize,
},
{ { NULL, 0, 0 }, NULL },
};
@ -1007,7 +1015,7 @@ settings_changed (GSettings *settings,
/* String array, handled separately */
if (strcmp (key, KEY_WORKSPACE_NAMES) == 0)
{
if (update_workspace_names ());
if (update_workspace_names ())
queue_changed (META_PREF_WORKSPACE_NAMES);
return;
}
@ -1387,8 +1395,11 @@ button_layout_handler (GVariant *value,
g_strfreev (buttons);
}
new_layout.left_buttons[i] = META_BUTTON_FUNCTION_LAST;
new_layout.left_buttons_has_spacer[i] = FALSE;
for (; i < MAX_BUTTONS_PER_CORNER; i++)
{
new_layout.left_buttons[i] = META_BUTTON_FUNCTION_LAST;
new_layout.left_buttons_has_spacer[i] = FALSE;
}
i = 0;
if (sides != NULL && sides[0] != NULL && sides[1] != NULL)
@ -1446,8 +1457,11 @@ button_layout_handler (GVariant *value,
g_strfreev (buttons);
}
new_layout.right_buttons[i] = META_BUTTON_FUNCTION_LAST;
new_layout.right_buttons_has_spacer[i] = FALSE;
for (; i < MAX_BUTTONS_PER_CORNER; i++)
{
new_layout.right_buttons[i] = META_BUTTON_FUNCTION_LAST;
new_layout.right_buttons_has_spacer[i] = FALSE;
}
g_strfreev (sides);
@ -1466,8 +1480,11 @@ button_layout_handler (GVariant *value,
else
rtl_layout.right_buttons_has_spacer[j - 1] = new_layout.left_buttons_has_spacer[i - j - 1];
}
rtl_layout.right_buttons[j] = META_BUTTON_FUNCTION_LAST;
rtl_layout.right_buttons_has_spacer[j] = FALSE;
for (; j < MAX_BUTTONS_PER_CORNER; j++)
{
rtl_layout.right_buttons[j] = META_BUTTON_FUNCTION_LAST;
rtl_layout.right_buttons_has_spacer[j] = FALSE;
}
for (i = 0; new_layout.right_buttons[i] != META_BUTTON_FUNCTION_LAST; i++);
for (j = 0; j < i; j++)
@ -1478,8 +1495,11 @@ button_layout_handler (GVariant *value,
else
rtl_layout.left_buttons_has_spacer[j - 1] = new_layout.right_buttons_has_spacer[i - j - 1];
}
rtl_layout.left_buttons[j] = META_BUTTON_FUNCTION_LAST;
rtl_layout.left_buttons_has_spacer[j] = FALSE;
for (; j < MAX_BUTTONS_PER_CORNER; j++)
{
rtl_layout.left_buttons[j] = META_BUTTON_FUNCTION_LAST;
rtl_layout.left_buttons_has_spacer[j] = FALSE;
}
new_layout = rtl_layout;
}
@ -1666,6 +1686,9 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_DYNAMIC_WORKSPACES:
return "DYNAMIC_WORKSPACES";
case META_PREF_AUTO_MAXIMIZE:
return "AUTO_MAXIMIZE";
}
return "(unknown)";
@ -1912,6 +1935,10 @@ meta_prefs_change_workspace_name (int num,
g_variant_builder_end (&builder));
}
/**
* meta_prefs_get_button_layout:
* @button_layout: (out):
*/
void
meta_prefs_get_button_layout (MetaButtonLayout *button_layout_p)
{
@ -2091,6 +2118,12 @@ meta_prefs_get_edge_tiling ()
return edge_tiling;
}
gboolean
meta_prefs_get_auto_maximize (void)
{
return auto_maximize;
}
MetaKeyBindingAction
meta_prefs_get_keybinding_action (const char *name)
{
@ -2137,13 +2170,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;

View File

@ -311,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,
@ -621,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;
@ -736,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"),
@ -1943,24 +1963,29 @@ meta_screen_get_mouse_window (MetaScreen *screen,
{
MetaWindow *window;
Window root_return, child_return;
int root_x_return, root_y_return;
int win_x_return, win_y_return;
unsigned int mask_return;
double root_x_return, root_y_return;
double win_x_return, win_y_return;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
if (not_this_one)
meta_topic (META_DEBUG_FOCUS,
"Focusing mouse window excluding %s\n", not_this_one->desc);
meta_error_trap_push (screen->display);
XQueryPointer (screen->display->xdisplay,
screen->xroot,
&root_return,
&child_return,
&root_x_return,
&root_y_return,
&win_x_return,
&win_y_return,
&mask_return);
XIQueryPointer (screen->display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
screen->xroot,
&root_return,
&child_return,
&root_x_return,
&root_y_return,
&win_x_return,
&win_y_return,
&buttons,
&mods,
&group);
meta_error_trap_pop (screen->display);
window = meta_stack_get_default_focus_window_at_point (screen->stack,
@ -2171,23 +2196,32 @@ meta_screen_get_current_monitor (MetaScreen *screen)
if (screen->display->monitor_cache_invalidated)
{
Window root_return, child_return;
int win_x_return, win_y_return;
unsigned int mask_return;
double win_x_return, win_y_return;
double root_x_return, root_y_return;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
int i;
MetaRectangle pointer_position;
screen->display->monitor_cache_invalidated = FALSE;
XIQueryPointer (screen->display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
screen->xroot,
&root_return,
&child_return,
&root_x_return,
&root_y_return,
&win_x_return,
&win_y_return,
&buttons,
&mods,
&group);
pointer_position.x = root_x_return;
pointer_position.y = root_y_return;
pointer_position.width = pointer_position.height = 1;
XQueryPointer (screen->display->xdisplay,
screen->xroot,
&root_return,
&child_return,
&pointer_position.x,
&pointer_position.y,
&win_x_return,
&win_y_return,
&mask_return);
screen->last_monitor_index = 0;
for (i = 0; i < screen->n_monitor_infos; i++)
@ -3536,6 +3570,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

@ -336,14 +336,32 @@ struct _MetaWindow
/* if non-NULL, the bounds of the window frame */
cairo_region_t *frame_bounds;
/* if TRUE, we are freezing updates during a resize */
guint updates_frozen_for_resize : 1;
/* if TRUE, the we have the new form of sync request counter which
* also handles application frames */
guint extended_sync_request_counter : 1;
/* if TRUE, we still need to send a _NET_WM_FRAME_DRAWN message for the
* last update the sync request counter */
guint needs_frame_drawn : 1;
/* if TRUE, the frame that was just drawn was drawn without any delay
* on the client's part and thus is high-priority - if we add delay
* we might cause the client to miss it's target frame rate */
guint no_delay_frame : 1;
/* Note: can be NULL */
GSList *struts;
#ifdef HAVE_XSYNC
/* XSync update counter */
XSyncCounter sync_request_counter;
guint sync_request_serial;
gint64 sync_request_serial;
GTimeVal sync_request_time;
/* alarm monitoring client's _NET_WM_SYNC_REQUEST_COUNTER */
XSyncAlarm sync_request_alarm;
#endif
/* Number of UnmapNotify that are caused by us, if
@ -413,6 +431,10 @@ struct _MetaWindow
/* The currently complementary tiled window, if any */
MetaWindow *tile_match;
/* Bypass compositor hints */
guint bypass_compositor : 1;
guint dont_bypass_compositor : 1;
};
struct _MetaWindowClass
@ -562,7 +584,8 @@ gboolean meta_window_property_notify (MetaWindow *window,
gboolean meta_window_client_message (MetaWindow *window,
XEvent *event);
gboolean meta_window_notify_focus (MetaWindow *window,
XEvent *event);
XIEnterEvent *event);
void meta_window_lost_focus (MetaWindow *window);
void meta_window_set_current_workspace_hint (MetaWindow *window);
@ -580,14 +603,16 @@ void meta_window_shove_titlebar_onscreen (MetaWindow *window);
void meta_window_set_gravity (MetaWindow *window,
int gravity);
#ifdef HAVE_XSYNC
void meta_window_update_sync_request_counter (MetaWindow *window,
gint64 new_counter_value);
#endif /* HAVE_XSYNC */
void meta_window_handle_mouse_grab_op_event (MetaWindow *window,
XEvent *event);
XIDeviceEvent *xev);
GList* meta_window_get_workspaces (MetaWindow *window);
gboolean meta_window_located_on_workspace (MetaWindow *window,
MetaWorkspace *workspace);
void meta_window_get_work_area_current_monitor (MetaWindow *window,
MetaRectangle *area);
void meta_window_get_work_area_for_monitor (MetaWindow *window,
@ -616,6 +641,8 @@ void meta_window_refresh_resize_popup (MetaWindow *window);
void meta_window_free_delete_dialog (MetaWindow *window);
void meta_window_create_sync_request_alarm (MetaWindow *window);
void meta_window_destroy_sync_request_alarm (MetaWindow *window);
void meta_window_update_keyboard_resize (MetaWindow *window,
gboolean update_cursor);
@ -648,4 +675,6 @@ gboolean meta_window_can_tile_side_by_side (MetaWindow *window);
void meta_window_compute_tile_match (MetaWindow *window);
gboolean meta_window_updates_are_frozen (MetaWindow *window);
#endif

View File

@ -882,12 +882,32 @@ reload_update_counter (MetaWindow *window,
{
if (value->type != META_PROP_VALUE_INVALID)
{
#ifdef HAVE_XSYNC
XSyncCounter counter = value->v.xcounter;
meta_window_destroy_sync_request_alarm (window);
window->sync_request_counter = None;
window->sync_request_counter = counter;
meta_verbose ("Window has _NET_WM_SYNC_REQUEST_COUNTER 0x%lx\n",
window->sync_request_counter);
#ifdef HAVE_XSYNC
if (value->v.xcounter_list.n_counters == 0)
{
meta_warning ("_NET_WM_SYNC_REQUEST_COUNTER is empty\n");
return;
}
if (value->v.xcounter_list.n_counters == 1)
{
window->sync_request_counter = value->v.xcounter_list.counters[0];
window->extended_sync_request_counter = FALSE;
}
else
{
window->sync_request_counter = value->v.xcounter_list.counters[1];
window->extended_sync_request_counter = TRUE;
}
meta_verbose ("Window has _NET_WM_SYNC_REQUEST_COUNTER 0x%lx (extended=%s)\n",
window->sync_request_counter,
window->extended_sync_request_counter ? "true" : "false");
if (window->extended_sync_request_counter)
meta_window_create_sync_request_alarm (window);
#endif
}
}
@ -1584,6 +1604,58 @@ reload_gtk_hide_titlebar_when_maximized (MetaWindow *window,
}
}
static void
reload_bypass_compositor (MetaWindow *window,
MetaPropValue *value,
gboolean initial)
{
gboolean requested_value = FALSE;
gboolean current_value = window->bypass_compositor;
if (value->type != META_PROP_VALUE_INVALID)
{
requested_value = ((int) value->v.cardinal == 1);
meta_verbose ("Request to bypass compositor for window %s.\n", window->desc);
}
if (requested_value == current_value)
return;
if (requested_value && window->dont_bypass_compositor)
{
meta_verbose ("Setting bypass and dont compositor for same window (%s) makes no sense, ignoring.\n", window->desc);
return;
}
window->bypass_compositor = requested_value;
}
static void
reload_dont_bypass_compositor (MetaWindow *window,
MetaPropValue *value,
gboolean initial)
{
gboolean requested_value = FALSE;
gboolean current_value = window->dont_bypass_compositor;
if (value->type != META_PROP_VALUE_INVALID)
{
requested_value = ((int) value->v.cardinal == 1);
meta_verbose ("Request to don't bypass compositor for window %s.\n", window->desc);
}
if (requested_value == current_value)
return;
if (requested_value && window->bypass_compositor)
{
meta_verbose ("Setting bypass and dont compositor for same window (%s) makes no sense, ignoring.\n", window->desc);
return;
}
window->dont_bypass_compositor = requested_value;
}
#define RELOAD_STRING(var_name, propname) \
static void \
reload_ ## var_name (MetaWindow *window, \
@ -1656,7 +1728,7 @@ meta_display_init_window_prop_hooks (MetaDisplay *display)
{ XA_WM_ICON_NAME, META_PROP_VALUE_TEXT_PROPERTY, reload_wm_icon_name, TRUE, FALSE },
{ display->atom__NET_WM_DESKTOP, META_PROP_VALUE_CARDINAL, reload_net_wm_desktop, TRUE, FALSE },
{ display->atom__NET_STARTUP_ID, META_PROP_VALUE_UTF8, reload_net_startup_id, TRUE, FALSE },
{ display->atom__NET_WM_SYNC_REQUEST_COUNTER, META_PROP_VALUE_SYNC_COUNTER, reload_update_counter, TRUE, FALSE },
{ display->atom__NET_WM_SYNC_REQUEST_COUNTER, META_PROP_VALUE_SYNC_COUNTER_LIST, reload_update_counter, TRUE, TRUE },
{ XA_WM_NORMAL_HINTS, META_PROP_VALUE_SIZE_HINTS, reload_normal_hints, TRUE, FALSE },
{ display->atom_WM_PROTOCOLS, META_PROP_VALUE_ATOM_LIST, reload_wm_protocols, TRUE, FALSE },
{ XA_WM_HINTS, META_PROP_VALUE_WM_HINTS, reload_wm_hints, TRUE, FALSE },
@ -1683,6 +1755,8 @@ meta_display_init_window_prop_hooks (MetaDisplay *display)
{ display->atom__NET_WM_WINDOW_TYPE, META_PROP_VALUE_INVALID, reload_net_wm_window_type, FALSE, TRUE },
{ display->atom__NET_WM_STRUT, META_PROP_VALUE_INVALID, reload_struts, FALSE, FALSE },
{ display->atom__NET_WM_STRUT_PARTIAL, META_PROP_VALUE_INVALID, reload_struts, FALSE, FALSE },
{ display->atom__NET_WM_BYPASS_COMPOSITOR, META_PROP_VALUE_CARDINAL, reload_bypass_compositor, FALSE, FALSE },
{ display->atom__NET_WM_DONT_BYPASS_COMPOSITOR, META_PROP_VALUE_CARDINAL, reload_dont_bypass_compositor, FALSE, FALSE },
{ 0 },
};

View File

@ -366,7 +366,7 @@ meta_window_class_init (MetaWindowClass *klass)
PROP_ICON,
g_param_spec_object ("icon",
"Icon",
"32 pixel sized icon",
"96 pixel sized icon",
GDK_TYPE_PIXBUF,
G_PARAM_READABLE));
@ -922,9 +922,7 @@ meta_window_new_with_attrs (MetaDisplay *display,
XAddToSaveSet (display->xdisplay, xwindow);
meta_error_trap_pop_with_return (display);
event_mask =
PropertyChangeMask | EnterWindowMask | LeaveWindowMask |
FocusChangeMask | ColormapChangeMask;
event_mask = PropertyChangeMask | ColormapChangeMask;
if (attrs->override_redirect)
event_mask |= StructureNotifyMask;
@ -934,6 +932,18 @@ meta_window_new_with_attrs (MetaDisplay *display,
*/
XSelectInput (display->xdisplay, xwindow, attrs->your_event_mask | event_mask);
{
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
XISetMask (mask.mask, XI_Enter);
XISetMask (mask.mask, XI_Leave);
XISetMask (mask.mask, XI_FocusIn);
XISetMask (mask.mask, XI_FocusOut);
XISelectEvents (display->xdisplay, xwindow, &mask, 1);
}
has_shape = FALSE;
#ifdef HAVE_SHAPE
if (META_DISPLAY_HAS_SHAPE (display))
@ -1005,6 +1015,7 @@ meta_window_new_with_attrs (MetaDisplay *display,
window->sync_request_serial = 0;
window->sync_request_time.tv_sec = 0;
window->sync_request_time.tv_usec = 0;
window->sync_request_alarm = None;
#endif
window->screen = screen;
@ -1808,6 +1819,8 @@ meta_window_unmanage (MetaWindow *window,
if (!window->override_redirect)
meta_stack_remove (window->screen->stack, window);
meta_window_destroy_sync_request_alarm (window);
if (window->frame)
meta_window_destroy_frame (window);
@ -2099,6 +2112,14 @@ set_net_wm_state (MetaWindow *window)
}
}
/**
* meta_window_located_on_workspace:
* @window: a #MetaWindow
* @workspace: a #MetaWorkspace
*
* Returns whether @window is displayed on @workspace, or whether it
* will be displayed on all workspaces.
*/
gboolean
meta_window_located_on_workspace (MetaWindow *window,
MetaWorkspace *workspace)
@ -3010,7 +3031,7 @@ meta_window_show (MetaWindow *window)
if (!window->placed)
{
if (window->showing_for_first_time && window->has_maximize_func)
if (meta_prefs_get_auto_maximize() && window->showing_for_first_time && window->has_maximize_func)
{
MetaRectangle work_area;
meta_window_get_work_area_for_monitor (window, window->monitor->number, &work_area);
@ -3630,6 +3651,28 @@ meta_window_is_on_primary_monitor (MetaWindow *window)
return window->monitor->is_primary;
}
/**
* meta_window_requested_bypass_compositor:
*
* Return value: %TRUE if the window requested to bypass the compositor
*/
gboolean
meta_window_requested_bypass_compositor (MetaWindow *window)
{
return window->bypass_compositor;
}
/**
* meta_window_requested_dont_bypass_compositor:
*
* Return value: %TRUE if the window requested to opt out of unredirecting
*/
gboolean
meta_window_requested_dont_bypass_compositor (MetaWindow *window)
{
return window->dont_bypass_compositor;
}
void
meta_window_tile (MetaWindow *window)
{
@ -4215,6 +4258,8 @@ window_activate (MetaWindow *window,
"Focusing window %s due to activation\n",
window->desc);
meta_window_focus (window, timestamp);
meta_window_check_alive (window, timestamp);
}
/* This function exists since most of the functionality in window_activate
@ -4389,16 +4434,112 @@ static_gravity_works (MetaDisplay *display)
return display->static_gravity_works;
}
void
meta_window_create_sync_request_alarm (MetaWindow *window)
{
#ifdef HAVE_XSYNC
XSyncAlarmAttributes values;
XSyncValue init;
if (window->sync_request_counter == None ||
window->sync_request_alarm != None)
return;
meta_error_trap_push_with_return (window->display);
/* In the old style, we're responsible for setting the initial
* value of the counter. In the new (extended style), the counter
* value is initialized by the client before mapping the window
*/
if (window->extended_sync_request_counter)
{
if (!XSyncQueryCounter(window->display->xdisplay,
window->sync_request_counter,
&init))
{
meta_error_trap_pop_with_return (window->display);
window->sync_request_counter = None;
return;
}
window->sync_request_serial =
XSyncValueLow32 (init) + ((gint64)XSyncValueHigh32 (init) << 32);
/* if the value is odd, the window starts off with updates frozen */
meta_compositor_set_updates_frozen (window->display->compositor, window,
meta_window_updates_are_frozen (window));
}
else
{
XSyncIntToValue (&init, 0);
XSyncSetCounter (window->display->xdisplay,
window->sync_request_counter, init);
window->sync_request_serial = 0;
}
values.trigger.counter = window->sync_request_counter;
values.trigger.test_type = XSyncPositiveComparison;
/* Initialize to one greater than the current value */
values.trigger.value_type = XSyncRelative;
XSyncIntToValue (&values.trigger.wait_value, 1);
/* After triggering, increment test_value by this until
* until the test condition is false */
XSyncIntToValue (&values.delta, 1);
/* we want events (on by default anyway) */
values.events = True;
window->sync_request_alarm = XSyncCreateAlarm (window->display->xdisplay,
XSyncCACounter |
XSyncCAValueType |
XSyncCAValue |
XSyncCATestType |
XSyncCADelta |
XSyncCAEvents,
&values);
if (meta_error_trap_pop_with_return (window->display) == Success)
meta_display_register_sync_alarm (window->display, &window->sync_request_alarm, window);
else
{
window->sync_request_alarm = None;
window->sync_request_counter = None;
}
#endif
}
void
meta_window_destroy_sync_request_alarm (MetaWindow *window)
{
#ifdef HAVE_XSYNC
if (window->sync_request_alarm != None)
{
/* Has to be unregistered _before_ clearing the structure field */
meta_display_unregister_sync_alarm (window->display, window->sync_request_alarm);
XSyncDestroyAlarm (window->display->xdisplay,
window->sync_request_alarm);
window->sync_request_alarm = None;
}
#endif /* HAVE_XSYNC */
}
#ifdef HAVE_XSYNC
static void
send_sync_request (MetaWindow *window)
{
XSyncValue value;
XClientMessageEvent ev;
gint64 wait_serial;
window->sync_request_serial++;
/* For the old style of _NET_WM_SYNC_REQUEST_COUNTER, we just have to
* increase the value, but for the new "extended" style we need to
* pick an even (unfrozen) value sufficiently ahead of the last serial
* that we received from the client; the same code still works
* for the old style */
wait_serial = window->sync_request_serial + 240;
XSyncIntToValue (&value, window->sync_request_serial);
window->display->grab_sync_counter_wait_serial = wait_serial;
ev.type = ClientMessage;
ev.window = window->xwindow;
@ -4411,8 +4552,9 @@ send_sync_request (MetaWindow *window)
* want to use _roundtrip, though?
*/
ev.data.l[1] = meta_display_get_current_time (window->display);
ev.data.l[2] = XSyncValueLow32 (value);
ev.data.l[3] = XSyncValueHigh32 (value);
ev.data.l[2] = wait_serial & G_GUINT64_CONSTANT(0xffffffff);
ev.data.l[3] = wait_serial >> 32;
ev.data.l[4] = window->extended_sync_request_counter ? 1 : 0;
/* We don't need to trap errors here as we are already
* inside an error_trap_push()/pop() pair.
@ -4424,6 +4566,43 @@ send_sync_request (MetaWindow *window)
}
#endif
/**
* meta_window_updates_are_frozen:
* @window: a #MetaWindow
*
* Gets whether the compositor should be updating the window contents;
* window content updates may be frozen at client request by setting
* an odd value in the extended _NET_WM_SYNC_REQUEST_COUNTER counter r
* by the window manager during a resize operation while waiting for
* the client to redraw.
*
* Return value: %TRUE if updates are currently frozen
*/
gboolean
meta_window_updates_are_frozen (MetaWindow *window)
{
#ifdef HAVE_XSYNC
if (window->extended_sync_request_counter &&
window->sync_request_serial % 2 == 1)
return TRUE;
#endif
return window->updates_frozen_for_resize;
}
static void
meta_window_set_updates_frozen_for_resize (MetaWindow *window,
gboolean updates_frozen)
{
if (updates_frozen != window->updates_frozen_for_resize)
{
window->updates_frozen_for_resize = updates_frozen;
if (window->display->compositor)
meta_compositor_set_updates_frozen (window->display->compositor, window,
meta_window_updates_are_frozen (window));
}
}
static gboolean
maybe_move_attached_dialog (MetaWindow *window,
void *data)
@ -4872,12 +5051,28 @@ meta_window_move_resize_internal (MetaWindow *window,
* efficiently as possible
*/
/* configure frame first if we grow more than we shrink
/* Normally, we configure the frame first depending on whether
* we grow the frame more than we shrink. The idea is to avoid
* messing up the window contents by having a temporary situation
* where the frame is smaller than the window. However, if we're
* cooperating with the client to create an atomic frame upate,
* and the window is redirected, then we should always update
* the frame first, since updating the frame will force a new
* backing pixmap to be allocated, and the old backing pixmap
* will be left undisturbed for us to paint to the screen until
* the client finishes redrawing.
*/
size_dx = w - window->rect.width;
size_dy = h - window->rect.height;
if (window->extended_sync_request_counter)
{
configure_frame_first = TRUE;
}
else
{
size_dx = w - window->rect.width;
size_dy = h - window->rect.height;
configure_frame_first = (size_dx + size_dy >= 0);
configure_frame_first = size_dx + size_dy >= 0;
}
if (use_static_gravity)
meta_window_set_gravity (window, StaticGravity);
@ -4918,14 +5113,15 @@ meta_window_move_resize_internal (MetaWindow *window,
meta_error_trap_push (window->display);
#ifdef HAVE_XSYNC
if (window->sync_request_counter != None &&
window->display->grab_sync_request_alarm != None &&
if (window == window->display->grab_window &&
meta_grab_op_is_resizing (window->display->grab_op) &&
window->sync_request_counter != None &&
window->sync_request_alarm != None &&
window->sync_request_time.tv_usec == 0 &&
window->sync_request_time.tv_sec == 0)
{
/* turn off updating */
if (window->display->compositor)
meta_compositor_set_updates (window->display->compositor, window, FALSE);
meta_window_set_updates_frozen_for_resize (window, TRUE);
send_sync_request (window);
}
@ -6636,28 +6832,30 @@ meta_window_client_message (MetaWindow *window,
*/
if (button == 0)
{
int x, y, query_root_x, query_root_y;
double x, y, query_root_x, query_root_y;
Window root, child;
guint mask;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
/* The race conditions in this _NET_WM_MOVERESIZE thing
* are mind-boggling
*/
mask = 0;
meta_error_trap_push (window->display);
XQueryPointer (window->display->xdisplay,
window->xwindow,
&root, &child,
&query_root_x, &query_root_y,
&x, &y,
&mask);
XIQueryPointer (window->display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
window->xwindow,
&root, &child,
&query_root_x, &query_root_y,
&x, &y,
&buttons, &mods, &group);
meta_error_trap_pop (window->display);
if (mask & Button1Mask)
if (mods.effective & Button1Mask)
button = 1;
else if (mask & Button2Mask)
else if (mods.effective & Button2Mask)
button = 2;
else if (mask & Button3Mask)
else if (mods.effective & Button3Mask)
button = 3;
else
button = 0;
@ -6814,9 +7012,45 @@ meta_window_propagate_focus_appearance (MetaWindow *window,
}
}
void
meta_window_lost_focus (MetaWindow *window)
{
if (window == window->display->focus_window)
{
meta_topic (META_DEBUG_FOCUS,
"%s is now the previous focus window due to being focused out or unmapped\n",
window->desc);
meta_topic (META_DEBUG_FOCUS,
"* Focus --> NULL (was %s)\n", window->desc);
meta_window_propagate_focus_appearance (window, FALSE);
window->display->focus_window = NULL;
g_object_notify (G_OBJECT (window->display), "focus-window");
window->has_focus = FALSE;
if (!window->attached_focus_window)
meta_window_appears_focused_changed (window);
meta_error_trap_push (window->display);
XUninstallColormap (window->display->xdisplay,
window->colormap);
meta_error_trap_pop (window->display);
/* move out of FOCUSED_WINDOW layer */
meta_window_update_layer (window);
/* Re-grab for click to focus and raise-on-click, if necessary */
if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK ||
!meta_prefs_get_raise_on_click ())
meta_display_grab_focus_window_button (window->display, window);
}
}
gboolean
meta_window_notify_focus (MetaWindow *window,
XEvent *event)
meta_window_notify_focus (MetaWindow *window,
XIEnterEvent *event)
{
/* note the event can be on either the window or the frame,
* we focus the frame for shaded windows
@ -6839,20 +7073,17 @@ meta_window_notify_focus (MetaWindow *window,
meta_topic (META_DEBUG_FOCUS,
"Focus %s event received on %s 0x%lx (%s) "
"mode %s detail %s\n",
event->type == FocusIn ? "in" :
event->type == FocusOut ? "out" :
event->type == UnmapNotify ? "unmap" :
event->evtype == XI_FocusIn ? "in" :
event->evtype == XI_FocusOut ? "out" :
"???",
window->desc, event->xany.window,
event->xany.window == window->xwindow ?
window->desc, event->event,
event->event == window->xwindow ?
"client window" :
(window->frame && event->xany.window == window->frame->xwindow) ?
(window->frame && event->event == window->frame->xwindow) ?
"frame window" :
"unknown window",
event->type != UnmapNotify ?
meta_event_mode_to_string (event->xfocus.mode) : "n/a",
event->type != UnmapNotify ?
meta_event_detail_to_string (event->xfocus.detail) : "n/a");
meta_event_mode_to_string (event->mode),
meta_event_detail_to_string (event->detail));
/* FIXME our pointer tracking is broken; see how
* gtk+/gdk/x11/gdkevents-x11.c or XFree86/xc/programs/xterm/misc.c
@ -6873,19 +7104,19 @@ meta_window_notify_focus (MetaWindow *window,
* http://bugzilla.gnome.org/show_bug.cgi?id=90382
*/
if ((event->type == FocusIn ||
event->type == FocusOut) &&
(event->xfocus.mode == NotifyGrab ||
event->xfocus.mode == NotifyUngrab ||
if ((event->evtype == XI_FocusIn ||
event->evtype == XI_FocusOut) &&
(event->mode == NotifyGrab ||
event->mode == NotifyUngrab ||
/* From WindowMaker, ignore all funky pointer root events */
event->xfocus.detail > NotifyNonlinearVirtual))
event->detail > NotifyNonlinearVirtual))
{
meta_topic (META_DEBUG_FOCUS,
"Ignoring focus event generated by a grab or other weirdness\n");
return TRUE;
}
if (event->type == FocusIn)
if (event->evtype == XI_FocusIn)
{
if (window->override_redirect)
{
@ -6965,11 +7196,9 @@ meta_window_notify_focus (MetaWindow *window,
meta_window_propagate_focus_appearance (window, TRUE);
}
}
else if (event->type == FocusOut ||
event->type == UnmapNotify)
else if (event->evtype == XI_FocusOut)
{
if (event->type == FocusOut &&
event->xfocus.detail == NotifyInferior)
if (event->detail == NotifyInferior)
{
/* This event means the client moved focus to a subwindow */
meta_topic (META_DEBUG_FOCUS,
@ -6977,38 +7206,10 @@ meta_window_notify_focus (MetaWindow *window,
window->desc);
return TRUE;
}
if (window == window->display->focus_window)
else
{
meta_topic (META_DEBUG_FOCUS,
"%s is now the previous focus window due to being focused out or unmapped\n",
window->desc);
meta_topic (META_DEBUG_FOCUS,
"* Focus --> NULL (was %s)\n", window->desc);
meta_window_propagate_focus_appearance (window, FALSE);
window->display->focus_window = NULL;
g_object_notify (G_OBJECT (window->display), "focus-window");
window->has_focus = FALSE;
if (!window->attached_focus_window)
meta_window_appears_focused_changed (window);
meta_error_trap_push (window->display);
XUninstallColormap (window->display->xdisplay,
window->colormap);
meta_error_trap_pop (window->display);
/* move out of FOCUSED_WINDOW layer */
meta_window_update_layer (window);
/* Re-grab for click to focus and raise-on-click, if necessary */
if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK ||
!meta_prefs_get_raise_on_click ())
meta_display_grab_focus_window_button (window->display, window);
}
meta_window_lost_focus (window);
}
}
/* Now set _NET_ACTIVE_WINDOW hint */
@ -7757,6 +7958,7 @@ recalc_window_type (MetaWindow *window)
gboolean old_decorated = window->decorated;
GObject *object = G_OBJECT (window);
window->attached = meta_window_should_attach_to_parent (window);
recalc_window_features (window);
if (!window->override_redirect)
@ -8478,7 +8680,7 @@ check_moveresize_frequency (MetaWindow *window,
#ifdef HAVE_XSYNC
if (!window->disable_sync &&
window->display->grab_sync_request_alarm != None)
window->sync_request_alarm != None)
{
if (window->sync_request_time.tv_sec != 0 ||
window->sync_request_time.tv_usec != 0)
@ -9049,8 +9251,7 @@ update_resize (MetaWindow *window,
}
/* If we get here, it means the client should have redrawn itself */
if (window->display->compositor)
meta_compositor_set_updates (window->display->compositor, window, TRUE);
meta_window_set_updates_frozen_for_resize (window, FALSE);
/* Remove any scheduled compensation events */
if (window->display->grab_resize_timeout_id)
@ -9133,31 +9334,46 @@ update_resize (MetaWindow *window,
typedef struct
{
const XEvent *current_event;
int count;
guint32 last_time;
Window window;
int count;
guint32 last_time;
} EventScannerData;
static Bool
find_last_time_predicate (Display *display,
XEvent *xevent,
XEvent *ev,
XPointer arg)
{
EventScannerData *esd = (void*) arg;
XIEvent *xev;
if (esd->current_event->type == xevent->type &&
esd->current_event->xany.window == xevent->xany.window)
{
esd->count += 1;
esd->last_time = xevent->xmotion.time;
}
if (ev->type != GenericEvent)
return False;
/* We are peeking into events not yet handled by GDK,
* Allocate cookie events here so we can handle XI2.
*
* GDK will handle later these events, and eventually
* free the cookie data itself.
*/
XGetEventData (display, &ev->xcookie);
xev = (XIEvent *) ev->xcookie.data;
if (xev->evtype != XI_Motion)
return False;
if (esd->window != ((XIDeviceEvent *) xev)->event)
return False;
esd->count += 1;
esd->last_time = xev->time;
return False;
}
static gboolean
check_use_this_motion_notify (MetaWindow *window,
XEvent *event)
XIDeviceEvent *xev)
{
EventScannerData esd;
XEvent useless;
@ -9168,11 +9384,11 @@ check_use_this_motion_notify (MetaWindow *window,
{
/* == is really the right test, but I'm all for paranoia */
if (window->display->grab_motion_notify_time <=
event->xmotion.time)
xev->time)
{
meta_topic (META_DEBUG_RESIZING,
"Arrived at event with time %u (waiting for %u), using it\n",
(unsigned int)event->xmotion.time,
(unsigned int)xev->time,
window->display->grab_motion_notify_time);
window->display->grab_motion_notify_time = 0;
return TRUE;
@ -9181,7 +9397,7 @@ check_use_this_motion_notify (MetaWindow *window,
return FALSE; /* haven't reached the saved timestamp yet */
}
esd.current_event = event;
esd.window = xev->event;
esd.count = 0;
esd.last_time = 0;
@ -9225,12 +9441,25 @@ update_tile_mode (MetaWindow *window)
}
}
void
meta_window_handle_mouse_grab_op_event (MetaWindow *window,
XEvent *event)
{
#ifdef HAVE_XSYNC
if (event->type == (window->display->xsync_event_base + XSyncAlarmNotify))
void
meta_window_update_sync_request_counter (MetaWindow *window,
gint64 new_counter_value)
{
if (window->extended_sync_request_counter &&
new_counter_value % 2 == 0)
{
window->needs_frame_drawn = TRUE;
window->no_delay_frame = new_counter_value == window->sync_request_serial + 1;
}
window->sync_request_serial = new_counter_value;
meta_compositor_set_updates_frozen (window->display->compositor, window,
meta_window_updates_are_frozen (window));
if (window == window->display->grab_window &&
meta_grab_op_is_resizing (window->display->grab_op) &&
new_counter_value >= window->display->grab_sync_counter_wait_serial)
{
meta_topic (META_DEBUG_RESIZING,
"Alarm event received last motion x = %d y = %d\n",
@ -9245,45 +9474,27 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
window->sync_request_time.tv_sec = 0;
window->sync_request_time.tv_usec = 0;
/* This means we are ready for another configure. */
switch (window->display->grab_op)
{
case META_GRAB_OP_RESIZING_E:
case META_GRAB_OP_RESIZING_W:
case META_GRAB_OP_RESIZING_S:
case META_GRAB_OP_RESIZING_N:
case META_GRAB_OP_RESIZING_SE:
case META_GRAB_OP_RESIZING_SW:
case META_GRAB_OP_RESIZING_NE:
case META_GRAB_OP_RESIZING_NW:
case META_GRAB_OP_KEYBOARD_RESIZING_S:
case META_GRAB_OP_KEYBOARD_RESIZING_N:
case META_GRAB_OP_KEYBOARD_RESIZING_W:
case META_GRAB_OP_KEYBOARD_RESIZING_E:
case META_GRAB_OP_KEYBOARD_RESIZING_SE:
case META_GRAB_OP_KEYBOARD_RESIZING_NE:
case META_GRAB_OP_KEYBOARD_RESIZING_SW:
case META_GRAB_OP_KEYBOARD_RESIZING_NW:
/* no pointer round trip here, to keep in sync */
update_resize (window,
window->display->grab_last_user_action_was_snap,
window->display->grab_latest_motion_x,
window->display->grab_latest_motion_y,
TRUE);
break;
default:
break;
}
/* This means we are ready for another configure;
* no pointer round trip here, to keep in sync */
update_resize (window,
window->display->grab_last_user_action_was_snap,
window->display->grab_latest_motion_x,
window->display->grab_latest_motion_y,
TRUE);
}
}
#endif /* HAVE_XSYNC */
switch (event->type)
void
meta_window_handle_mouse_grab_op_event (MetaWindow *window,
XIDeviceEvent *xev)
{
switch (xev->evtype)
{
case ButtonRelease:
case XI_ButtonRelease:
meta_display_check_threshold_reached (window->display,
event->xbutton.x_root,
event->xbutton.y_root);
xev->root_x,
xev->root_y);
/* If the user was snap moving then ignore the button release
* because they may have let go of shift before releasing the
* mouse button and they almost certainly do not want a
@ -9295,20 +9506,21 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
{
if (window->tile_mode != META_TILE_NONE)
meta_window_tile (window);
else if (event->xbutton.root == window->screen->xroot)
update_move (window, event->xbutton.state & ShiftMask,
event->xbutton.x_root, event->xbutton.y_root);
else if (xev->root == window->screen->xroot)
update_move (window,
xev->mods.effective & ShiftMask,
xev->root_x,
xev->root_y);
}
else if (meta_grab_op_is_resizing (window->display->grab_op))
{
if (event->xbutton.root == window->screen->xroot)
if (xev->root == window->screen->xroot)
update_resize (window,
event->xbutton.state & ShiftMask,
event->xbutton.x_root,
event->xbutton.y_root,
xev->mods.effective & ShiftMask,
xev->root_x,
xev->root_y,
TRUE);
if (window->display->compositor)
meta_compositor_set_updates (window->display->compositor, window, TRUE);
meta_window_set_updates_frozen_for_resize (window, FALSE);
/* If a tiled window has been dragged free with a
* mouse resize without snapping back to the tiled
@ -9321,35 +9533,35 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
}
}
meta_display_end_grab_op (window->display, event->xbutton.time);
meta_display_end_grab_op (window->display, xev->time);
break;
case MotionNotify:
case XI_Motion:
meta_display_check_threshold_reached (window->display,
event->xmotion.x_root,
event->xmotion.y_root);
xev->root_x,
xev->root_y);
if (meta_grab_op_is_moving (window->display->grab_op))
{
if (event->xmotion.root == window->screen->xroot)
if (xev->root == window->screen->xroot)
{
if (check_use_this_motion_notify (window,
event))
xev))
update_move (window,
event->xmotion.state & ShiftMask,
event->xmotion.x_root,
event->xmotion.y_root);
xev->mods.effective & ShiftMask,
xev->root_x,
xev->root_y);
}
}
else if (meta_grab_op_is_resizing (window->display->grab_op))
{
if (event->xmotion.root == window->screen->xroot)
if (xev->root == window->screen->xroot)
{
if (check_use_this_motion_notify (window,
event))
xev))
update_resize (window,
event->xmotion.state & ShiftMask,
event->xmotion.x_root,
event->xmotion.y_root,
xev->mods.effective & ShiftMask,
xev->root_x,
xev->root_y,
FALSE);
}
}
@ -9787,11 +9999,12 @@ warp_grab_pointer (MetaWindow *window,
meta_window_get_client_root_coords (window,
&display->grab_anchor_window_pos);
XWarpPointer (display->xdisplay,
None,
window->screen->xroot,
0, 0, 0, 0,
*x, *y);
XIWarpPointer (display->xdisplay,
META_VIRTUAL_CORE_POINTER_ID,
None,
window->screen->xroot,
0, 0, 0, 0,
*x, *y);
if (meta_error_trap_pop_with_return (display) != Success)
{
@ -9838,15 +10051,11 @@ meta_window_update_keyboard_resize (MetaWindow *window,
if (update_cursor)
{
guint32 timestamp;
/* FIXME: Using CurrentTime is really bad mojo */
timestamp = CurrentTime;
meta_display_set_grab_op_cursor (window->display,
NULL,
window->screen,
window->display->grab_op,
TRUE,
window->display->grab_xwindow,
timestamp);
window->display->grab_timestamp);
}
}
@ -10059,9 +10268,7 @@ meta_window_set_demands_attention (MetaWindow *window)
other_window = stack->data;
stack = stack->next;
if (other_window->on_all_workspaces ||
window->on_all_workspaces ||
other_window->workspace == window->workspace)
if (meta_window_located_on_workspace (other_window, window->workspace))
{
meta_window_get_outer_rect (other_window, &other_rect);

View File

@ -1292,8 +1292,7 @@ focus_ancestor_or_top_window (MetaWorkspace *workspace,
ancestor = NULL;
meta_window_foreach_ancestor (not_this_one, record_ancestor, &ancestor);
if (ancestor != NULL &&
(ancestor->on_all_workspaces ||
ancestor->workspace == workspace) &&
meta_window_located_on_workspace (ancestor, workspace) &&
meta_window_showing_on_its_workspace (ancestor))
{
meta_topic (META_DEBUG_FOCUS,

View File

@ -580,6 +580,23 @@ counter_from_results (GetPropertyResults *results,
return TRUE;
}
static gboolean
counter_list_from_results (GetPropertyResults *results,
XSyncCounter **counters_p,
int *n_counters_p)
{
if (!validate_or_free_results (results, 32,
XA_CARDINAL,
FALSE))
return FALSE;
*counters_p = (XSyncCounter*) results->prop;
*n_counters_p = results->n_items;
results->prop = NULL;
return TRUE;
}
#endif
gboolean
@ -1015,6 +1032,7 @@ meta_prop_get_values (MetaDisplay *display,
values[i].required_type = XA_WM_SIZE_HINTS;
break;
case META_PROP_VALUE_SYNC_COUNTER:
case META_PROP_VALUE_SYNC_COUNTER_LIST:
values[i].required_type = XA_CARDINAL;
break;
}
@ -1165,20 +1183,29 @@ meta_prop_get_values (MetaDisplay *display,
&values[i].v.size_hints.flags))
values[i].type = META_PROP_VALUE_INVALID;
break;
case META_PROP_VALUE_SYNC_COUNTER:
#ifdef HAVE_XSYNC
case META_PROP_VALUE_SYNC_COUNTER:
if (!counter_from_results (&results,
&values[i].v.xcounter))
values[i].type = META_PROP_VALUE_INVALID;
break;
case META_PROP_VALUE_SYNC_COUNTER_LIST:
if (!counter_list_from_results (&results,
&values[i].v.xcounter_list.counters,
&values[i].v.xcounter_list.n_counters))
values[i].type = META_PROP_VALUE_INVALID;
break;
#else
case META_PROP_VALUE_SYNC_COUNTER:
case META_PROP_VALUE_SYNC_COUNTER_LIST:
values[i].type = META_PROP_VALUE_INVALID;
if (results.prop)
{
XFree (results.prop);
results.prop = NULL;
}
#endif
break;
#endif
}
next:
@ -1231,6 +1258,9 @@ free_value (MetaPropValue *value)
break;
case META_PROP_VALUE_SYNC_COUNTER:
break;
case META_PROP_VALUE_SYNC_COUNTER_LIST:
meta_XFree (value->v.xcounter_list.counters);
break;
}
}

View File

@ -157,7 +157,8 @@ typedef enum
META_PROP_VALUE_WM_HINTS,
META_PROP_VALUE_CLASS_HINT,
META_PROP_VALUE_SIZE_HINTS,
META_PROP_VALUE_SYNC_COUNTER /* comes back as CARDINAL */
META_PROP_VALUE_SYNC_COUNTER, /* comes back as CARDINAL */
META_PROP_VALUE_SYNC_COUNTER_LIST /* comes back as CARDINAL */
} MetaPropValueType;
/* used to request/return/store property values */
@ -177,6 +178,11 @@ typedef struct
XClassHint class_hint;
#ifdef HAVE_XSYNC
XSyncCounter xcounter;
struct
{
gulong *counters;
int n_counters;
} xcounter_list;
#endif
struct

View File

@ -172,6 +172,10 @@ item(_NET_WM_ACTION_BELOW)
item(_NET_WM_STATE_STICKY)
item(_NET_WM_FULLSCREEN_MONITORS)
item(_NET_WM_STATE_FOCUSED)
item(_NET_WM_BYPASS_COMPOSITOR)
item(_NET_WM_DONT_BYPASS_COMPOSITOR)
item(_NET_WM_FRAME_DRAWN)
item(_NET_WM_FRAME_TIMINGS)
#if 0
/* We apparently never use: */

View File

@ -30,9 +30,15 @@
/* Don't include core headers here */
#include <X11/Xlib.h>
#include <X11/extensions/XInput.h>
#include <X11/extensions/XInput2.h>
#include <glib.h>
#include <gtk/gtk.h>
/* This is set in stone and also hard-coded in GDK. */
#define META_VIRTUAL_CORE_POINTER_ID 2
#define META_VIRTUAL_CORE_KEYBOARD_ID 3
typedef struct _MetaResizePopup MetaResizePopup;
typedef enum
@ -268,6 +274,14 @@ typedef enum
#define MAX_BUTTONS_PER_CORNER META_BUTTON_FUNCTION_LAST
/* Keep array size in sync with MAX_BUTTONS_PER_CORNER */
/**
* MetaButtonLayout:
* @left_buttons: (array fixed-size=10):
* @right_buttons: (array fixed-size=10):
* @left_buttons_has_spacer: (array fixed-size=10):
* @right_buttons_has_spacer: (array fixed-size=10):
*/
typedef struct _MetaButtonLayout MetaButtonLayout;
struct _MetaButtonLayout
{
@ -298,8 +312,8 @@ struct _MetaFrameBorders
void meta_frame_borders_clear (MetaFrameBorders *self);
/* should investigate changing these to whatever most apps use */
#define META_ICON_WIDTH 32
#define META_ICON_HEIGHT 32
#define META_ICON_WIDTH 96
#define META_ICON_HEIGHT 96
#define META_MINI_ICON_WIDTH 16
#define META_MINI_ICON_HEIGHT 16

View File

@ -153,9 +153,9 @@ void meta_compositor_window_unmapped (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_sync_window_geometry (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_set_updates (MetaCompositor *compositor,
void meta_compositor_set_updates_frozen (MetaCompositor *compositor,
MetaWindow *window,
gboolean updates);
gboolean updates_frozen);
void meta_compositor_sync_stack (MetaCompositor *compositor,
MetaScreen *screen,

View File

@ -67,6 +67,7 @@ typedef enum
void meta_display_get_compositor_version (MetaDisplay *display,
int *major,
int *minor);
int meta_display_get_xinput_opcode (MetaDisplay *display);
Display *meta_display_get_xdisplay (MetaDisplay *display);
MetaCompositor *meta_display_get_compositor (MetaDisplay *display);
GSList *meta_display_get_screens (MetaDisplay *display);
@ -127,19 +128,19 @@ void meta_display_end_grab_op (MetaDisplay *display,
MetaGrabOp meta_display_get_grab_op (MetaDisplay *display);
gboolean meta_display_add_keybinding (MetaDisplay *display,
const char *name,
GSettings *settings,
MetaKeyBindingFlags flags,
MetaKeyHandlerFunc handler,
gpointer user_data,
GDestroyNotify free_data);
guint meta_display_add_keybinding (MetaDisplay *display,
const char *name,
GSettings *settings,
MetaKeyBindingFlags flags,
MetaKeyHandlerFunc handler,
gpointer user_data,
GDestroyNotify free_data);
gboolean meta_display_remove_keybinding (MetaDisplay *display,
const char *name);
MetaKeyBindingAction meta_display_get_keybinding_action (MetaDisplay *display,
unsigned int keycode,
unsigned long mask);
guint meta_display_get_keybinding_action (MetaDisplay *display,
unsigned int keycode,
unsigned long mask);
/* meta_display_set_input_focus_window is like XSetInputFocus, except
* that (a) it can't detect timestamps later than the current time,

View File

@ -38,7 +38,7 @@ gboolean meta_keybindings_set_custom_handler (const gchar *name,
void meta_keybindings_switch_window (MetaDisplay *display,
MetaScreen *screen,
MetaWindow *event_window,
XEvent *event,
XIDeviceEvent *event,
MetaKeyBinding *binding);

View File

@ -67,7 +67,8 @@ typedef enum
META_PREF_FORCE_FULLSCREEN,
META_PREF_WORKSPACES_ONLY_ON_PRIMARY,
META_PREF_NO_TAB_POPUP,
META_PREF_DRAGGABLE_BORDER_WIDTH
META_PREF_DRAGGABLE_BORDER_WIDTH,
META_PREF_AUTO_MAXIMIZE
} MetaPreference;
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
@ -86,8 +87,8 @@ void meta_prefs_override_preference_schema (const char *key,
const char* meta_preference_to_string (MetaPreference pref);
MetaVirtualModifier meta_prefs_get_mouse_button_mods (void);
guint meta_prefs_get_mouse_button_resize (void);
guint meta_prefs_get_mouse_button_menu (void);
gint meta_prefs_get_mouse_button_resize (void);
gint meta_prefs_get_mouse_button_menu (void);
GDesktopFocusMode meta_prefs_get_focus_mode (void);
GDesktopFocusNewWindows meta_prefs_get_focus_new_windows (void);
gboolean meta_prefs_get_attach_modal_dialogs (void);
@ -105,6 +106,7 @@ gboolean meta_prefs_get_focus_change_on_pointer_rest (void);
gboolean meta_prefs_get_gnome_accessibility (void);
gboolean meta_prefs_get_gnome_animations (void);
gboolean meta_prefs_get_edge_tiling (void);
gboolean meta_prefs_get_auto_maximize (void);
void meta_prefs_get_button_layout (MetaButtonLayout *button_layout);
@ -160,6 +162,8 @@ typedef enum _MetaKeyBindingAction
META_KEYBINDING_ACTION_WORKSPACE_RIGHT,
META_KEYBINDING_ACTION_WORKSPACE_UP,
META_KEYBINDING_ACTION_WORKSPACE_DOWN,
META_KEYBINDING_ACTION_SWITCH_APPLICATIONS,
META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD,
META_KEYBINDING_ACTION_SWITCH_GROUP,
META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD,
META_KEYBINDING_ACTION_SWITCH_WINDOWS,
@ -252,7 +256,7 @@ typedef struct
typedef void (* MetaKeyHandlerFunc) (MetaDisplay *display,
MetaScreen *screen,
MetaWindow *window,
XEvent *event,
XIDeviceEvent *event,
MetaKeyBinding *binding,
gpointer user_data);

View File

@ -44,6 +44,8 @@ struct _MetaPreview
{
GtkBin bin;
GtkStyleContext *style_context;
MetaTheme *theme;
char *title;
MetaFrameType type;

View File

@ -81,6 +81,8 @@ int meta_screen_get_current_monitor (MetaScreen *screen);
void meta_screen_get_monitor_geometry (MetaScreen *screen,
int monitor,
MetaRectangle *geometry);
void meta_screen_focus_default_window (MetaScreen *screen,
guint32 timestamp);
typedef enum
{

View File

@ -85,6 +85,8 @@ Atom meta_window_get_window_type_atom (MetaWindow *window);
MetaWorkspace *meta_window_get_workspace (MetaWindow *window);
int meta_window_get_monitor (MetaWindow *window);
gboolean meta_window_is_on_all_workspaces (MetaWindow *window);
gboolean meta_window_located_on_workspace (MetaWindow *window,
MetaWorkspace *workspace);
gboolean meta_window_is_hidden (MetaWindow *window);
void meta_window_activate (MetaWindow *window,guint32 current_time);
void meta_window_activate_with_workspace (MetaWindow *window,
@ -140,6 +142,8 @@ void meta_window_foreach_ancestor (MetaWindow *window,
MetaMaximizeFlags meta_window_get_maximized (MetaWindow *window);
gboolean meta_window_is_fullscreen (MetaWindow *window);
gboolean meta_window_is_on_primary_monitor (MetaWindow *window);
gboolean meta_window_requested_bypass_compositor (MetaWindow *window);
gboolean meta_window_requested_dont_bypass_compositor (MetaWindow *window);
gboolean meta_window_is_mapped (MetaWindow *window);
gboolean meta_window_toplevel_is_mapped (MetaWindow *window);
@ -188,6 +192,9 @@ void meta_window_kill (MetaWindow *window);
void meta_window_focus (MetaWindow *window,
guint32 timestamp);
void meta_window_check_alive (MetaWindow *window,
guint32 timestamp);
void meta_window_begin_grab_op (MetaWindow *window,
MetaGrabOp op,
gboolean frame_action,

View File

@ -84,6 +84,15 @@
</_description>
</key>
<key name="auto-maximize" type="b">
<default>true</default>
<_summary>Auto maximize nearly monitor sized windows</_summary>
<_description>
If enabled, monitor nearly monitor sized windows automatically get
maximized when mapped.
</_description>
</key>
<child name="keybindings" schema="org.gnome.mutter.keybindings"/>
</schema>

View File

@ -185,38 +185,6 @@ prefs_changed_callback (MetaPreference pref,
}
}
static GtkStyleContext *
create_style_context (MetaFrames *frames,
const gchar *variant)
{
GtkStyleContext *style;
GdkScreen *screen;
char *theme_name;
screen = gtk_widget_get_screen (GTK_WIDGET (frames));
g_object_get (gtk_settings_get_for_screen (screen),
"gtk-theme-name", &theme_name,
NULL);
style = gtk_style_context_new ();
gtk_style_context_set_path (style,
gtk_widget_get_path (GTK_WIDGET (frames)));
if (theme_name && *theme_name)
{
GtkCssProvider *provider;
provider = gtk_css_provider_get_named (theme_name, variant);
gtk_style_context_add_provider (style,
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_SETTINGS);
}
g_free (theme_name);
return style;
}
static GtkStyleContext *
meta_frames_get_theme_variant (MetaFrames *frames,
const gchar *variant)
@ -226,7 +194,7 @@ meta_frames_get_theme_variant (MetaFrames *frames,
style = g_hash_table_lookup (frames->style_variants, variant);
if (style == NULL)
{
style = create_style_context (frames, variant);
style = meta_theme_create_style_context (gtk_widget_get_screen (GTK_WIDGET (frames)), variant);
g_hash_table_insert (frames->style_variants, g_strdup (variant), style);
}
@ -238,15 +206,18 @@ update_style_contexts (MetaFrames *frames)
{
GtkStyleContext *style;
GList *variants, *variant;
GdkScreen *screen;
screen = gtk_widget_get_screen (GTK_WIDGET (frames));
if (frames->normal_style)
g_object_unref (frames->normal_style);
frames->normal_style = create_style_context (frames, NULL);
frames->normal_style = meta_theme_create_style_context (screen, NULL);
variants = g_hash_table_get_keys (frames->style_variants);
for (variant = variants; variant; variant = variants->next)
{
style = create_style_context (frames, (char *)variant->data);
style = meta_theme_create_style_context (screen, (char *)variant->data);
g_hash_table_insert (frames->style_variants,
g_strdup (variant->data), style);
}
@ -484,7 +455,8 @@ meta_frames_ensure_layout (MetaFrames *frames,
pango_layout_set_ellipsize (frame->layout, PANGO_ELLIPSIZE_END);
pango_layout_set_auto_dir (frame->layout, FALSE);
pango_layout_set_single_paragraph_mode (frame->layout, TRUE);
font_desc = meta_gtk_widget_get_font_desc (widget, scale,
meta_prefs_get_titlebar_font ());
@ -2011,17 +1983,17 @@ meta_frames_paint (MetaFrames *frames,
meta_prefs_get_button_layout (&button_layout);
meta_theme_draw_frame_with_style (meta_theme_get_current (),
frame->style,
cr,
type,
flags,
w, h,
frame->layout,
frame->text_height,
&button_layout,
button_states,
mini_icon, icon);
meta_theme_draw_frame (meta_theme_get_current (),
frame->style,
cr,
type,
flags,
w, h,
frame->layout,
frame->text_height,
&button_layout,
button_states,
mini_icon, icon);
}
static void

View File

@ -39,6 +39,8 @@ static void meta_preview_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean meta_preview_draw (GtkWidget *widget,
cairo_t *cr);
static void meta_preview_realize (GtkWidget *widget);
static void meta_preview_dispose (GObject *object);
static void meta_preview_finalize (GObject *object);
G_DEFINE_TYPE (MetaPreview, meta_preview, GTK_TYPE_BIN);
@ -51,8 +53,10 @@ meta_preview_class_init (MetaPreviewClass *class)
widget_class = (GtkWidgetClass*) class;
gobject_class->dispose = meta_preview_dispose;
gobject_class->finalize = meta_preview_finalize;
widget_class->realize = meta_preview_realize;
widget_class->draw = meta_preview_draw;
widget_class->get_preferred_width = meta_preview_get_preferred_width;
widget_class->get_preferred_height = meta_preview_get_preferred_height;
@ -107,6 +111,16 @@ meta_preview_new (void)
return GTK_WIDGET (preview);
}
static void
meta_preview_dispose (GObject *object)
{
MetaPreview *preview = META_PREVIEW (object);
g_clear_object (&preview->style_context);
G_OBJECT_CLASS (meta_preview_parent_class)->dispose (object);
}
static void
meta_preview_finalize (GObject *object)
{
@ -212,7 +226,7 @@ meta_preview_draw (GtkWidget *widget,
client_height = 1;
meta_theme_draw_frame (preview->theme,
widget,
preview->style_context,
cr,
preview->type,
preview->flags,
@ -231,6 +245,17 @@ meta_preview_draw (GtkWidget *widget,
return GTK_WIDGET_CLASS (meta_preview_parent_class)->draw (widget, cr);
}
static void
meta_preview_realize (GtkWidget *widget)
{
MetaPreview *preview = META_PREVIEW (widget);
GTK_WIDGET_CLASS (meta_preview_parent_class)->realize (widget);
preview->style_context = meta_theme_create_style_context (gtk_widget_get_screen (widget),
NULL);
}
#define NO_CHILD_WIDTH 80
#define NO_CHILD_HEIGHT 20

View File

@ -1022,8 +1022,11 @@ double meta_theme_get_title_scale (MetaTheme *theme,
MetaFrameType type,
MetaFrameFlags flags);
GtkStyleContext * meta_theme_create_style_context (GdkScreen *screen,
const gchar *variant);
void meta_theme_draw_frame (MetaTheme *theme,
GtkWidget *widget,
GtkStyleContext *style_gtk,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
@ -1036,20 +1039,6 @@ void meta_theme_draw_frame (MetaTheme *theme,
GdkPixbuf *mini_icon,
GdkPixbuf *icon);
void meta_theme_draw_frame_with_style (MetaTheme *theme,
GtkStyleContext *style_gtk,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
int client_width,
int client_height,
PangoLayout *title_layout,
int text_height,
const MetaButtonLayout *button_layout,
MetaButtonState button_states[META_BUTTON_TYPE_LAST],
GdkPixbuf *mini_icon,
GdkPixbuf *icon);
void meta_theme_get_frame_borders (MetaTheme *theme,
MetaFrameType type,
int text_height,
@ -1124,14 +1113,12 @@ int meta_pango_font_desc_get_text_height (const PangoFontDescr
/* Enum converters */
MetaGtkColorComponent meta_color_component_from_string (const char *str);
const char* meta_color_component_to_string (MetaGtkColorComponent component);
MetaButtonState meta_button_state_from_string (const char *str);
const char* meta_button_state_to_string (MetaButtonState state);
MetaButtonType meta_button_type_from_string (const char *str,
MetaTheme *theme);
const char* meta_button_type_to_string (MetaButtonType type);
MetaFramePiece meta_frame_piece_from_string (const char *str);
const char* meta_frame_piece_to_string (MetaFramePiece piece);
MetaFrameState meta_frame_state_from_string (const char *str);
const char* meta_frame_state_to_string (MetaFrameState state);
MetaFrameResize meta_frame_resize_from_string (const char *str);
@ -1140,15 +1127,10 @@ MetaFrameFocus meta_frame_focus_from_string (const char *s
const char* meta_frame_focus_to_string (MetaFrameFocus focus);
MetaFrameType meta_frame_type_from_string (const char *str);
MetaGradientType meta_gradient_type_from_string (const char *str);
const char* meta_gradient_type_to_string (MetaGradientType type);
GtkStateFlags meta_gtk_state_from_string (const char *str);
const char* meta_gtk_state_to_string (GtkStateFlags state);
GtkShadowType meta_gtk_shadow_from_string (const char *str);
const char* meta_gtk_shadow_to_string (GtkShadowType shadow);
GtkArrowType meta_gtk_arrow_from_string (const char *str);
const char* meta_gtk_arrow_to_string (GtkArrowType arrow);
MetaImageFillType meta_image_fill_type_from_string (const char *str);
const char* meta_image_fill_type_to_string (MetaImageFillType fill_type);
void meta_gtk_style_get_light_color (GtkStyleContext *style,
GtkStateFlags state,

View File

@ -777,7 +777,7 @@ int
main (int argc, char **argv)
{
GtkStyleContext *style;
const PangoFontDescription *font_desc;
PangoFontDescription *font_desc;
GtkWidget *window;
GtkWidget *collection;
GError *err;
@ -854,8 +854,9 @@ main (int argc, char **argv)
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_realize (window);
style = gtk_widget_get_style_context (window);
font_desc = gtk_style_context_get_font (style, 0);
style = meta_theme_create_style_context (gtk_widget_get_screen (window), NULL);
gtk_style_context_get (style, GTK_STATE_FLAG_NORMAL, "font", &font_desc, NULL);
g_assert (style);
g_assert (font_desc);
@ -890,7 +891,9 @@ main (int argc, char **argv)
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
collection,
gtk_label_new (_("Benchmark")));
pango_font_description_free (font_desc);
i = 0;
while (i < (int) G_N_ELEMENTS (previews))
{
@ -925,15 +928,17 @@ get_flags (GtkWidget *widget)
}
static int
get_text_height (GtkWidget *widget)
get_text_height (GtkWidget *widget,
GtkStyleContext *style)
{
GtkStyleContext *style;
const PangoFontDescription *font_desc;
PangoFontDescription *font_desc;
int text_height;
style = gtk_widget_get_style_context (widget);
font_desc = gtk_style_context_get_font (style, 0);
return meta_pango_font_desc_get_text_height (font_desc,
gtk_widget_get_pango_context (widget));
gtk_style_context_get (style, GTK_STATE_FLAG_NORMAL, "font", &font_desc, NULL);
text_height = meta_pango_font_desc_get_text_height (font_desc,
gtk_widget_get_pango_context (widget));
pango_font_description_free (font_desc);
return text_height;
}
static PangoLayout*
@ -950,6 +955,7 @@ static void
run_theme_benchmark (void)
{
GtkWidget* widget;
GtkStyleContext *style_context;
cairo_surface_t *pixmap;
MetaFrameBorders borders;
MetaButtonState button_states[META_BUTTON_TYPE_LAST] =
@ -973,13 +979,15 @@ run_theme_benchmark (void)
widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_realize (widget);
style_context = meta_theme_create_style_context (gtk_widget_get_screen (widget), NULL);
meta_theme_get_frame_borders (global_theme,
META_FRAME_TYPE_NORMAL,
get_text_height (widget),
get_text_height (widget, style_context),
get_flags (widget),
&borders);
layout = create_title_layout (widget);
i = 0;
@ -1019,13 +1027,13 @@ run_theme_benchmark (void)
cr = cairo_create (pixmap);
meta_theme_draw_frame (global_theme,
widget,
style_context,
cr,
META_FRAME_TYPE_NORMAL,
get_flags (widget),
client_width, client_height,
layout,
get_text_height (widget),
get_text_height (widget, style_context),
&button_layout,
button_states,
meta_preview_get_mini_icon (),
@ -1053,6 +1061,7 @@ run_theme_benchmark (void)
g_timer_destroy (timer);
g_object_unref (G_OBJECT (layout));
g_object_unref (style_context);
gtk_widget_destroy (widget);
#undef ITERATIONS

View File

@ -37,6 +37,7 @@
#include <config.h>
#include "theme-private.h"
#include "frames.h" /* for META_TYPE_FRAMES */
#include <meta/util.h>
#include <meta/gradient.h>
#include <meta/prefs.h>
@ -5438,20 +5439,54 @@ meta_theme_get_title_scale (MetaTheme *theme,
return style->layout->title_scale;
}
GtkStyleContext *
meta_theme_create_style_context (GdkScreen *screen,
const gchar *variant)
{
GtkWidgetPath *path;
GtkStyleContext *style;
char *theme_name;
g_object_get (gtk_settings_get_for_screen (screen),
"gtk-theme-name", &theme_name,
NULL);
style = gtk_style_context_new ();
path = gtk_widget_path_new ();
gtk_widget_path_append_type (path, META_TYPE_FRAMES);
gtk_widget_path_iter_add_class (path, -1, GTK_STYLE_CLASS_BACKGROUND);
gtk_style_context_set_path (style, path);
gtk_widget_path_unref (path);
if (theme_name && *theme_name)
{
GtkCssProvider *provider;
provider = gtk_css_provider_get_named (theme_name, variant);
gtk_style_context_add_provider (style,
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_SETTINGS);
}
g_free (theme_name);
return style;
}
void
meta_theme_draw_frame_with_style (MetaTheme *theme,
GtkStyleContext *style_gtk,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
int client_width,
int client_height,
PangoLayout *title_layout,
int text_height,
const MetaButtonLayout *button_layout,
MetaButtonState button_states[META_BUTTON_TYPE_LAST],
GdkPixbuf *mini_icon,
GdkPixbuf *icon)
meta_theme_draw_frame (MetaTheme *theme,
GtkStyleContext *style_gtk,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
int client_width,
int client_height,
PangoLayout *title_layout,
int text_height,
const MetaButtonLayout *button_layout,
MetaButtonState button_states[META_BUTTON_TYPE_LAST],
GdkPixbuf *mini_icon,
GdkPixbuf *icon)
{
MetaFrameGeometry fgeom;
MetaFrameStyle *style;
@ -5484,29 +5519,6 @@ meta_theme_draw_frame_with_style (MetaTheme *theme,
mini_icon, icon);
}
void
meta_theme_draw_frame (MetaTheme *theme,
GtkWidget *widget,
cairo_t *cr,
MetaFrameType type,
MetaFrameFlags flags,
int client_width,
int client_height,
PangoLayout *title_layout,
int text_height,
const MetaButtonLayout *button_layout,
MetaButtonState button_states[META_BUTTON_TYPE_LAST],
GdkPixbuf *mini_icon,
GdkPixbuf *icon)
{
meta_theme_draw_frame_with_style (theme, gtk_widget_get_style_context (widget),
cr, type,flags,
client_width, client_height,
title_layout, text_height,
button_layout, button_states,
mini_icon, icon);
}
void
meta_theme_get_frame_borders (MetaTheme *theme,
MetaFrameType type,
@ -5841,7 +5853,7 @@ meta_gtk_widget_get_font_desc (GtkWidget *widget,
g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
style = gtk_widget_get_style_context (widget);
font_desc = pango_font_description_copy (gtk_style_context_get_font (style, 0));
gtk_style_context_get (style, GTK_STATE_FLAG_NORMAL, "font", &font_desc, NULL);
if (override)
pango_font_description_merge (font_desc, override, TRUE);
@ -5903,34 +5915,6 @@ meta_color_component_from_string (const char *str)
return META_GTK_COLOR_LAST;
}
const char*
meta_color_component_to_string (MetaGtkColorComponent component)
{
switch (component)
{
case META_GTK_COLOR_FG:
return "fg";
case META_GTK_COLOR_BG:
return "bg";
case META_GTK_COLOR_LIGHT:
return "light";
case META_GTK_COLOR_DARK:
return "dark";
case META_GTK_COLOR_MID:
return "mid";
case META_GTK_COLOR_TEXT:
return "text";
case META_GTK_COLOR_BASE:
return "base";
case META_GTK_COLOR_TEXT_AA:
return "text_aa";
case META_GTK_COLOR_LAST:
break;
}
return "<unknown>";
}
MetaButtonState
meta_button_state_from_string (const char *str)
{
@ -6088,42 +6072,6 @@ meta_frame_piece_from_string (const char *str)
return META_FRAME_PIECE_LAST;
}
const char*
meta_frame_piece_to_string (MetaFramePiece piece)
{
switch (piece)
{
case META_FRAME_PIECE_ENTIRE_BACKGROUND:
return "entire_background";
case META_FRAME_PIECE_TITLEBAR:
return "titlebar";
case META_FRAME_PIECE_TITLEBAR_MIDDLE:
return "titlebar_middle";
case META_FRAME_PIECE_LEFT_TITLEBAR_EDGE:
return "left_titlebar_edge";
case META_FRAME_PIECE_RIGHT_TITLEBAR_EDGE:
return "right_titlebar_edge";
case META_FRAME_PIECE_TOP_TITLEBAR_EDGE:
return "top_titlebar_edge";
case META_FRAME_PIECE_BOTTOM_TITLEBAR_EDGE:
return "bottom_titlebar_edge";
case META_FRAME_PIECE_TITLE:
return "title";
case META_FRAME_PIECE_LEFT_EDGE:
return "left_edge";
case META_FRAME_PIECE_RIGHT_EDGE:
return "right_edge";
case META_FRAME_PIECE_BOTTOM_EDGE:
return "bottom_edge";
case META_FRAME_PIECE_OVERLAY:
return "overlay";
case META_FRAME_PIECE_LAST:
break;
}
return "<unknown>";
}
MetaFrameState
meta_frame_state_from_string (const char *str)
{
@ -6313,24 +6261,6 @@ meta_gradient_type_from_string (const char *str)
return META_GRADIENT_LAST;
}
const char*
meta_gradient_type_to_string (MetaGradientType type)
{
switch (type)
{
case META_GRADIENT_VERTICAL:
return "vertical";
case META_GRADIENT_HORIZONTAL:
return "horizontal";
case META_GRADIENT_DIAGONAL:
return "diagonal";
case META_GRADIENT_LAST:
break;
}
return "<unknown>";
}
GtkStateFlags
meta_gtk_state_from_string (const char *str)
{
@ -6354,32 +6284,6 @@ meta_gtk_state_from_string (const char *str)
return -1; /* hack */
}
const char*
meta_gtk_state_to_string (GtkStateFlags state)
{
switch (state)
{
case GTK_STATE_FLAG_NORMAL:
return "NORMAL";
case GTK_STATE_FLAG_PRELIGHT:
return "PRELIGHT";
case GTK_STATE_FLAG_ACTIVE:
return "ACTIVE";
case GTK_STATE_FLAG_SELECTED:
return "SELECTED";
case GTK_STATE_FLAG_INSENSITIVE:
return "INSENSITIVE";
case GTK_STATE_FLAG_INCONSISTENT:
return "INCONSISTENT";
case GTK_STATE_FLAG_FOCUSED:
return "FOCUSED";
case GTK_STATE_FLAG_BACKDROP:
return "BACKDROP";
}
return "<unknown>";
}
GtkShadowType
meta_gtk_shadow_from_string (const char *str)
{
@ -6397,26 +6301,6 @@ meta_gtk_shadow_from_string (const char *str)
return -1;
}
const char*
meta_gtk_shadow_to_string (GtkShadowType shadow)
{
switch (shadow)
{
case GTK_SHADOW_NONE:
return "none";
case GTK_SHADOW_IN:
return "in";
case GTK_SHADOW_OUT:
return "out";
case GTK_SHADOW_ETCHED_IN:
return "etched_in";
case GTK_SHADOW_ETCHED_OUT:
return "etched_out";
}
return "<unknown>";
}
GtkArrowType
meta_gtk_arrow_from_string (const char *str)
{
@ -6434,26 +6318,6 @@ meta_gtk_arrow_from_string (const char *str)
return -1;
}
const char*
meta_gtk_arrow_to_string (GtkArrowType arrow)
{
switch (arrow)
{
case GTK_ARROW_UP:
return "up";
case GTK_ARROW_DOWN:
return "down";
case GTK_ARROW_LEFT:
return "left";
case GTK_ARROW_RIGHT:
return "right";
case GTK_ARROW_NONE:
return "none";
}
return "<unknown>";
}
/**
* meta_image_fill_type_from_string:
* @str: a string representing a fill_type
@ -6474,29 +6338,6 @@ meta_image_fill_type_from_string (const char *str)
return -1;
}
/**
* meta_image_fill_type_to_string:
* @fill_type: the fill type
*
* Returns a string representation of a fill_type. The inverse of
* meta_image_fill_type_from_string().
*
* Returns: a string representing that type
*/
const char*
meta_image_fill_type_to_string (MetaImageFillType fill_type)
{
switch (fill_type)
{
case META_IMAGE_FILL_TILE:
return "tile";
case META_IMAGE_FILL_SCALE:
return "scale";
}
return "<unknown>";
}
/**
* gtk_style_shade:
* @a: the starting colour

View File

@ -50,7 +50,7 @@ struct _MetaUI
MetaFrames *frames;
/* For double-click tracking */
guint button_click_number;
gint button_click_number;
Window button_click_window;
int button_click_x;
int button_click_y;
@ -60,14 +60,6 @@ struct _MetaUI
void
meta_ui_init (void)
{
/* As of 2.91.7, Gdk uses XI2 by default, which conflicts with the
* direct X calls we use - in particular, events caused by calls to
* XGrabPointer/XGrabKeyboard are no longer understood by GDK, while
* GDK will no longer generate the core XEvents we process.
* So at least for now, enforce the previous behavior.
*/
gdk_disable_multidevice ();
if (!gtk_init_check (NULL, NULL))
meta_fatal ("Unable to open X display %s\n", XDisplayName (NULL));
@ -86,6 +78,18 @@ meta_ui_get_screen_number (void)
return gdk_screen_get_number (gdk_screen_get_default ());
}
/* For XInput2 */
#include "display-private.h"
static gboolean
is_input_event (XEvent *event)
{
MetaDisplay *display = meta_get_display ();
return (event->type == GenericEvent &&
event->xcookie.extension == display->xinput_opcode);
}
/* We do some of our event handling in frames.c, which expects
* GDK events delivered by GTK+. However, since the transition to
* client side windows, we can't let GDK see button events, since the
@ -111,25 +115,33 @@ maybe_redirect_mouse_event (XEvent *xevent)
GdkEvent *gevent;
GdkWindow *gdk_window;
Window window;
XIEvent *xev;
XIDeviceEvent *xev_d = NULL;
XIEnterEvent *xev_e = NULL;
switch (xevent->type)
if (!is_input_event (xevent))
return FALSE;
xev = (XIEvent *) xevent->xcookie.data;
switch (xev->evtype)
{
case ButtonPress:
case ButtonRelease:
window = xevent->xbutton.window;
case XI_ButtonPress:
case XI_ButtonRelease:
case XI_Motion:
xev_d = (XIDeviceEvent *) xev;
window = xev_d->event;
break;
case MotionNotify:
window = xevent->xmotion.window;
break;
case EnterNotify:
case LeaveNotify:
window = xevent->xcrossing.window;
case XI_Enter:
case XI_Leave:
xev_e = (XIEnterEvent *) xev;
window = xev_e->event;
break;
default:
return FALSE;
}
gdisplay = gdk_x11_lookup_xdisplay (xevent->xany.display);
gdisplay = gdk_x11_lookup_xdisplay (xev->display);
ui = g_object_get_data (G_OBJECT (gdisplay), "meta-ui");
if (!ui)
return FALSE;
@ -148,11 +160,11 @@ maybe_redirect_mouse_event (XEvent *xevent)
if (gdk_display_device_is_grabbed (gdisplay, gdevice))
return FALSE;
switch (xevent->type)
switch (xev->evtype)
{
case ButtonPress:
case ButtonRelease:
if (xevent->type == ButtonPress)
case XI_ButtonPress:
case XI_ButtonRelease:
if (xev_d->evtype == XI_ButtonPress)
{
GtkSettings *settings = gtk_settings_get_default ();
int double_click_time;
@ -163,11 +175,11 @@ maybe_redirect_mouse_event (XEvent *xevent)
"gtk-double-click-distance", &double_click_distance,
NULL);
if (xevent->xbutton.button == ui->button_click_number &&
xevent->xbutton.window == ui->button_click_window &&
xevent->xbutton.time < ui->button_click_time + double_click_time &&
ABS (xevent->xbutton.x - ui->button_click_x) <= double_click_distance &&
ABS (xevent->xbutton.y - ui->button_click_y) <= double_click_distance)
if (xev_d->detail == ui->button_click_number &&
xev_d->event == ui->button_click_window &&
xev_d->time < ui->button_click_time + double_click_time &&
ABS (xev_d->event_x - ui->button_click_x) <= double_click_distance &&
ABS (xev_d->event_y - ui->button_click_y) <= double_click_distance)
{
gevent = gdk_event_new (GDK_2BUTTON_PRESS);
@ -176,11 +188,11 @@ maybe_redirect_mouse_event (XEvent *xevent)
else
{
gevent = gdk_event_new (GDK_BUTTON_PRESS);
ui->button_click_number = xevent->xbutton.button;
ui->button_click_window = xevent->xbutton.window;
ui->button_click_time = xevent->xbutton.time;
ui->button_click_x = xevent->xbutton.x;
ui->button_click_y = xevent->xbutton.y;
ui->button_click_number = xev_d->detail;
ui->button_click_window = xev_d->event;
ui->button_click_time = xev_d->time;
ui->button_click_x = xev_d->event_x;
ui->button_click_y = xev_d->event_y;
}
}
else
@ -189,25 +201,25 @@ maybe_redirect_mouse_event (XEvent *xevent)
}
gevent->button.window = g_object_ref (gdk_window);
gevent->button.button = xevent->xbutton.button;
gevent->button.time = xevent->xbutton.time;
gevent->button.x = xevent->xbutton.x;
gevent->button.y = xevent->xbutton.y;
gevent->button.x_root = xevent->xbutton.x_root;
gevent->button.y_root = xevent->xbutton.y_root;
gevent->button.button = xev_d->detail;
gevent->button.time = xev_d->time;
gevent->button.x = xev_d->event_x;
gevent->button.y = xev_d->event_y;
gevent->button.x_root = xev_d->root_x;
gevent->button.y_root = xev_d->root_y;
break;
case MotionNotify:
case XI_Motion:
gevent = gdk_event_new (GDK_MOTION_NOTIFY);
gevent->motion.type = GDK_MOTION_NOTIFY;
gevent->motion.window = g_object_ref (gdk_window);
break;
case EnterNotify:
case LeaveNotify:
gevent = gdk_event_new (xevent->type == EnterNotify ? GDK_ENTER_NOTIFY : GDK_LEAVE_NOTIFY);
case XI_Enter:
case XI_Leave:
gevent = gdk_event_new (xev_e->evtype == XI_Enter ? GDK_ENTER_NOTIFY : GDK_LEAVE_NOTIFY);
gevent->crossing.window = g_object_ref (gdk_window);
gevent->crossing.x = xevent->xcrossing.x;
gevent->crossing.y = xevent->xcrossing.y;
gevent->crossing.x = xev_e->event_x;
gevent->crossing.y = xev_e->event_y;
break;
default:
g_assert_not_reached ();
@ -723,6 +735,7 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
GtkStyleContext *style = NULL;
PangoContext *context;
const PangoFontDescription *font_desc;
PangoFontDescription *free_font_desc = NULL;
if (meta_ui_have_a_theme ())
{
@ -732,7 +745,8 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
if (!font_desc)
{
style = gtk_style_context_new ();
font_desc = gtk_style_context_get_font (style, 0);
gtk_style_context_get (style, GTK_STATE_FLAG_NORMAL, "font", &free_font_desc, NULL);
font_desc = (const PangoFontDescription *) free_font_desc;
}
text_height = meta_pango_font_desc_get_text_height (font_desc, context);
@ -740,6 +754,9 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
meta_theme_get_frame_borders (meta_theme_get_current (),
type, text_height, flags,
borders);
if (free_font_desc)
pango_font_description_free (free_font_desc);
}
else
{