Compare commits
15 Commits
3.12.1-way
...
wip/frame-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d317c1c7e8 | ||
|
|
cf72589635 | ||
|
|
3ae070720d | ||
|
|
4b332640eb | ||
|
|
0d36f4f1dd | ||
|
|
0c2491e3c9 | ||
|
|
6de7f4ce36 | ||
|
|
5f77669ba8 | ||
|
|
7a9663500e | ||
|
|
4f79c70002 | ||
|
|
81c42a8944 | ||
|
|
8d9c83ddcf | ||
|
|
5b6020e90d | ||
|
|
8b57ecebda | ||
|
|
f6c3e48aa5 |
46
.gitignore
vendored
46
.gitignore
vendored
@@ -23,7 +23,7 @@ src/50-mutter-navigation.xml
|
|||||||
src/50-mutter-system.xml
|
src/50-mutter-system.xml
|
||||||
src/50-mutter-windows.xml
|
src/50-mutter-windows.xml
|
||||||
src/mutter-wm.desktop
|
src/mutter-wm.desktop
|
||||||
src/mutter-wayland.desktop
|
src/mutter.desktop
|
||||||
*.o
|
*.o
|
||||||
*.a
|
*.a
|
||||||
*.lo
|
*.lo
|
||||||
@@ -46,13 +46,13 @@ POTFILES
|
|||||||
po/*.pot
|
po/*.pot
|
||||||
50-metacity-desktop-key.xml
|
50-metacity-desktop-key.xml
|
||||||
50-metacity-key.xml
|
50-metacity-key.xml
|
||||||
libmutter-wayland.pc
|
inlinepixbufs.h
|
||||||
mutter-wayland
|
libmutter.pc
|
||||||
mutter-launch
|
mutter
|
||||||
|
mutter-theme-viewer
|
||||||
|
mutter.desktop
|
||||||
org.gnome.mutter.gschema.valid
|
org.gnome.mutter.gschema.valid
|
||||||
org.gnome.mutter.gschema.xml
|
org.gnome.mutter.gschema.xml
|
||||||
org.gnome.mutter.wayland.gschema.valid
|
|
||||||
org.gnome.mutter.wayland.gschema.xml
|
|
||||||
testasyncgetprop
|
testasyncgetprop
|
||||||
testboxes
|
testboxes
|
||||||
testgradient
|
testgradient
|
||||||
@@ -62,7 +62,6 @@ mutter-message
|
|||||||
mutter-window-demo
|
mutter-window-demo
|
||||||
focus-window
|
focus-window
|
||||||
test-attached
|
test-attached
|
||||||
test-focus
|
|
||||||
test-gravity
|
test-gravity
|
||||||
test-resizing
|
test-resizing
|
||||||
test-size-hints
|
test-size-hints
|
||||||
@@ -75,37 +74,4 @@ src/mutter-enum-types.[ch]
|
|||||||
src/stamp-mutter-enum-types.h
|
src/stamp-mutter-enum-types.h
|
||||||
src/mutter-marshal.[ch]
|
src/mutter-marshal.[ch]
|
||||||
src/stamp-mutter-marshal.h
|
src/stamp-mutter-marshal.h
|
||||||
src/meta-dbus-display-config.[ch]
|
|
||||||
src/meta-dbus-idle-monitor.[ch]
|
|
||||||
src/mutter-plugins.pc
|
src/mutter-plugins.pc
|
||||||
src/gtk-shell-protocol.c
|
|
||||||
src/gtk-shell-server-protocol.h
|
|
||||||
src/xdg-shell-protocol.c
|
|
||||||
src/xdg-shell-server-protocol.h
|
|
||||||
src/xserver-protocol.c
|
|
||||||
src/xserver-server-protocol.h
|
|
||||||
doc/reference/*.args
|
|
||||||
doc/reference/*.bak
|
|
||||||
doc/reference/*.hierarchy
|
|
||||||
doc/reference/*.interfaces
|
|
||||||
doc/reference/*.prerequisites
|
|
||||||
doc/reference/*.signals
|
|
||||||
doc/reference/*.stamp
|
|
||||||
doc/reference/html/
|
|
||||||
doc/reference/xml/
|
|
||||||
doc/reference/meta-decl-list.txt
|
|
||||||
doc/reference/meta-decl.txt
|
|
||||||
doc/reference/meta-overrides.txt
|
|
||||||
doc/reference/meta-undeclared.txt
|
|
||||||
doc/reference/meta-undocumented.txt
|
|
||||||
doc/reference/meta-unused.txt
|
|
||||||
doc/reference/meta-docs.sgml
|
|
||||||
doc/reference/meta.types
|
|
||||||
gtk-doc.m4
|
|
||||||
intltool.m4
|
|
||||||
libtool.m4
|
|
||||||
ltoptions.m4
|
|
||||||
ltsugar.m4
|
|
||||||
ltversion.m4
|
|
||||||
lt~obsolete.m4
|
|
||||||
.dirstamp
|
|
||||||
|
|||||||
159
COMPLIANCE
Normal file
159
COMPLIANCE
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
Metacity Standards Compliance
|
||||||
|
=============================
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
1) Introduction
|
||||||
|
2) EWMH Compliance
|
||||||
|
a. Root Window Properties
|
||||||
|
b. Root Window Messages
|
||||||
|
c. Application Window Properties
|
||||||
|
d. Window Manager Protocols
|
||||||
|
3) ICCCM Compliance
|
||||||
|
|
||||||
|
1) Introduction
|
||||||
|
---------------
|
||||||
|
|
||||||
|
This document details metacity compliance with the relevent standards.
|
||||||
|
The format of this document is as follows:
|
||||||
|
|
||||||
|
[-/+?] Hint Name/Feature Name (Version number)
|
||||||
|
Errata/Comments
|
||||||
|
|
||||||
|
The first character indicates the level of compliance as follows:
|
||||||
|
- none
|
||||||
|
/ partial
|
||||||
|
+ complete
|
||||||
|
? unknown
|
||||||
|
|
||||||
|
The title indicates a feature or a hint in the specification, and the
|
||||||
|
version number indicates the minimum version of the specification
|
||||||
|
supported by metacity. Later versions may be supported if no
|
||||||
|
incompatible changes have been made in the specification.
|
||||||
|
|
||||||
|
2) EWMH Compliance
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The EWMH, or Extended Window Manager Hints is a freedesktop.org-
|
||||||
|
developed standard to support a number of conventions for
|
||||||
|
communication between the window manager and clients. It builds on
|
||||||
|
and extends the ICCCM (See Section 3). A copy of the current EWMH
|
||||||
|
standard is available at http://freedesktop.org/Standards/wm-spec/
|
||||||
|
|
||||||
|
a. Root Window Properties
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
+ _NET_SUPPORTED (1.3)
|
||||||
|
|
||||||
|
+ _NET_CLIENT_LIST (1.3)
|
||||||
|
|
||||||
|
+ _NET_NUMBER_OF_DESKTOPS (1.3)
|
||||||
|
|
||||||
|
+ _NET_DESKTOP_GEOMETRY (1.3)
|
||||||
|
Metacity does not implement large desktops, so this is kept set to
|
||||||
|
the screen size.
|
||||||
|
|
||||||
|
+ _NET_DESKTOP_VIEWPORT (1.3)
|
||||||
|
Metacity does not implement viewports, so this is a constant (0,0).
|
||||||
|
|
||||||
|
+ _NET_CURRENT_DESKTOP (1.3)
|
||||||
|
|
||||||
|
+ _NET_DESKTOP_NAMES (1.3)
|
||||||
|
|
||||||
|
+ _NET_ACTIVE_WINDOW (1.3)
|
||||||
|
|
||||||
|
+ _NET_WORKAREA (1.3)
|
||||||
|
|
||||||
|
+ _NET_SUPPORTING_WM_CHECK (1.3)
|
||||||
|
|
||||||
|
+ _NET_VIRTUAL_ROOTS (1.3)
|
||||||
|
Metacity does not read or set this property, but it does not use
|
||||||
|
virtual roots to implement virtual desktops, so it complies with the
|
||||||
|
specification.
|
||||||
|
|
||||||
|
+ _NET_DESKTOP_LAYOUT (1.3)
|
||||||
|
|
||||||
|
+ _NET_SHOWING_DESKTOP (1.3)
|
||||||
|
|
||||||
|
b. Root Window Messages
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
+ _NET_CLOSE_WINDOW (1.3)
|
||||||
|
|
||||||
|
- _NET_MOVERESIZE_WINDOW (1.3)
|
||||||
|
Metacity supports this message, but the specification is unclear on
|
||||||
|
the layout of the detail value, and as such it is #if 0'd in the code
|
||||||
|
|
||||||
|
+ _NET_WM_MOVERESIZE (1.3)
|
||||||
|
|
||||||
|
- _NET_RESTACK_WINDOW (1.3)
|
||||||
|
Metacity will raise or lower windows in response to this message,
|
||||||
|
but the sibling restack modes are not supported, and it is currently
|
||||||
|
#if 0'd in the code.
|
||||||
|
|
||||||
|
+ _NET_REQUEST_FRAME_EXTENTS (1.3)
|
||||||
|
|
||||||
|
c. Application Window Properties
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
+ _NET_WM_NAME (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_VISIBLE_NAME (1.3)
|
||||||
|
Metacity does not set this property, but metacity will never display
|
||||||
|
a name different from _NET_WM_NAME
|
||||||
|
|
||||||
|
+ _NET_WM_ICON_NAME (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_VISIBLE_ICON_NAME (1.3)
|
||||||
|
Metacity does not set this property, but metacity will never display
|
||||||
|
a name different from _NET_WM_NAME
|
||||||
|
|
||||||
|
+ _NET_WM_DESKTOP (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_WINDOW_TYPE (1.3)
|
||||||
|
|
||||||
|
/ _NET_WM_STATE (1.3)
|
||||||
|
This property is read and updated according to the specification,
|
||||||
|
but see caveat below.
|
||||||
|
Metacity does not recognize separate vertical and horizontal
|
||||||
|
maximization states. Currently metacity will do a two-dimensional
|
||||||
|
maximization if either property is set.
|
||||||
|
See: http://bugzilla.gnome.org/show_bug.cgi?id=113601
|
||||||
|
Metacity doesn't implement viewports so _NET_WM_STATE_STICKY is
|
||||||
|
unimplemented.
|
||||||
|
|
||||||
|
+ _NET_WM_ALLOWED_ACTIONS (1.3)
|
||||||
|
Metacity keeps this hint up to date. The code is somewhat crufty
|
||||||
|
and should be rewritten, though it is functional.
|
||||||
|
See: http://bugzilla.gnome.org/show_bug.cgi?id=90420
|
||||||
|
|
||||||
|
+ _NET_WM_STRUT (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_STRUT_PARTIAL (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_ICON_GEOMETRY (1.3)
|
||||||
|
Metacity uses this property to draw minimize/restore animations
|
||||||
|
|
||||||
|
+ _NET_WM_ICON (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_PID (1.3)
|
||||||
|
|
||||||
|
+ _NET_WM_HANDLED_ICONS (1.3)
|
||||||
|
Metacity does not read or set this property. However, metacity
|
||||||
|
never manages iconified windows, and so has no need to do so.
|
||||||
|
|
||||||
|
+ _NET_WM_USER_TIME (1.3)
|
||||||
|
Metacity uses this property to prevent applications from stealing
|
||||||
|
focus if supported by the toolkit.
|
||||||
|
|
||||||
|
+ _NET_FRAME_EXTENTS (1.3)
|
||||||
|
If set in response to a _NET_REQUEST_FRAME_EXTENTS message received
|
||||||
|
prior to the window being mapped, this may be an estimate. This is,
|
||||||
|
however, expressly allowed by the specification.
|
||||||
|
|
||||||
|
d. Window Manager Protocols
|
||||||
|
---------------------------
|
||||||
|
+ _NET_WM_PING (1.3)
|
||||||
|
|
||||||
|
3) ICCCM Compliance
|
||||||
|
-------------------
|
||||||
|
TODO
|
||||||
41
COPYING
41
COPYING
@@ -1,12 +1,12 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
|||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
|||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
|||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
@@ -225,7 +225,7 @@ impose that choice.
|
|||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
|||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
possible use to the public, the best way to achieve this is to make it
|
possible use to the public, the best way to achieve this is to make it
|
||||||
@@ -303,16 +303,17 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
along with this program; if not, write to the Free Software
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names:
|
|||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Lesser General
|
library. If this is what you want to do, use the GNU Library General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
|||||||
298
HACKING
Normal file
298
HACKING
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
Intro...
|
||||||
|
|
||||||
|
Window managers have a few ways in which they are significantly different
|
||||||
|
from other applications. This file, combined with the code overview in
|
||||||
|
doc/code-overview.txt, should hopefully provide a series of relatively
|
||||||
|
quick pointers (hopefully only a few minutes each) to some of the places
|
||||||
|
one can look to orient themselves and get started. Some of this will be
|
||||||
|
general to window managers on X, much will be specific to Metacity, and
|
||||||
|
there's probably some information that's common to programs in general but
|
||||||
|
is nonetheless useful.
|
||||||
|
|
||||||
|
Overview
|
||||||
|
Administrative issues
|
||||||
|
Minimal Building/Testing Environment
|
||||||
|
Relevant standards and X properties
|
||||||
|
Debugging and testing
|
||||||
|
Debugging logs
|
||||||
|
Adding information to the log
|
||||||
|
Valgrind
|
||||||
|
Testing Utilities
|
||||||
|
Technical gotchas to keep in mind
|
||||||
|
Other important reading
|
||||||
|
Extra reading
|
||||||
|
Ideas for tasks to work on
|
||||||
|
|
||||||
|
|
||||||
|
Administrative issues
|
||||||
|
Don't commit substantive code in here without asking hp@redhat.com.
|
||||||
|
Adding translations, no-brainer typo fixes, etc. is fine.
|
||||||
|
|
||||||
|
The code could use cleanup in a lot of places, feel free to do so.
|
||||||
|
|
||||||
|
See http://developer.gnome.org/dotplan/for_maintainers.html for
|
||||||
|
information on how to make a release. The only difference from those
|
||||||
|
instructions is that the minor version number of a Metacity release
|
||||||
|
should always be a number from the Fibonacci sequence.
|
||||||
|
|
||||||
|
Minimal Building/Testing Environment
|
||||||
|
You do not need to _install_ a development version of Metacity to
|
||||||
|
build, run and test it; you can run it from some temporary
|
||||||
|
directory. Also, you do not need to build all of Gnome in order to
|
||||||
|
build a development version of Metacity -- odds are, you may be able
|
||||||
|
to build metacity from CVS without building any other modules.
|
||||||
|
|
||||||
|
As long as you have gtk+ >= 3.0 and GIO >= 2.25.10 with your distro
|
||||||
|
(gtk+ >= 2.6 if you manually revert the change from bug 348633), you
|
||||||
|
should be able to install your distro's development packages
|
||||||
|
(e.g. gtk2-devel, glib-devel, startup-notification-devel on
|
||||||
|
Fedora; also, remember to install the gnome-common package which is
|
||||||
|
needed for building cvs versions of Gnome modules like Metacity) as
|
||||||
|
well as the standard development tools (gcc, autoconf, automake,
|
||||||
|
pkg-config, intltool, and libtool) and be ready to build and test
|
||||||
|
Metacity. Steps to do so:
|
||||||
|
|
||||||
|
$ svn checkout http://svn.gnome.org/svn/metacity/trunk metacity
|
||||||
|
$ cd metacity
|
||||||
|
$ ./autogen.sh --prefix /usr
|
||||||
|
$ make
|
||||||
|
$ ./src/metacity --replace
|
||||||
|
|
||||||
|
Again, note that you do not need to run 'make install'.
|
||||||
|
|
||||||
|
Relevant standards and X properties
|
||||||
|
There are two documents that describe some basics about how window
|
||||||
|
managers should behave: the ICCCM (Inter-Client Communication Conventions
|
||||||
|
Manual) and EWMH (Extended Window Manager Hints). You can find these at
|
||||||
|
the following locations:
|
||||||
|
ICCCM - http://tronche.com/gui/x/icccm/
|
||||||
|
EWMH - :pserver:anoncvs@pdx.freedesktop.org:/cvs
|
||||||
|
The ICCCM is usually available in RPM or DEB format as well. There is
|
||||||
|
actually an online version of the EWMH, but it is almost always woefully
|
||||||
|
out of date. Just get it from cvs with these commands (the backslash
|
||||||
|
means include the stuff from the next line):
|
||||||
|
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/icccm-extensions login
|
||||||
|
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/icccm-extensions \
|
||||||
|
checkout wm-spec
|
||||||
|
|
||||||
|
DO NOT GO AND READ THOSE THINGS. THEY ARE REALLY, REALLY BORING.
|
||||||
|
|
||||||
|
If you do, you'll probably end up catching up on your sleep instead of
|
||||||
|
hacking on Metacity. ;-) Instead, just look at the table of contents and
|
||||||
|
glance at a page or two to get an idea of what's in there. Then only
|
||||||
|
refer to it if you see something weird in the code and you don't know
|
||||||
|
what it is but has some funny looking name like you see in one of those
|
||||||
|
two documents.
|
||||||
|
|
||||||
|
You can refer to the COMPLIANCE file for additional information on these
|
||||||
|
specifications and Metacity's compliance therewith.
|
||||||
|
|
||||||
|
One of the major things those documents cover that are useful to learn
|
||||||
|
about immediately are X properties. The right way to learn about those,
|
||||||
|
though, is through hand on experimentation with the xprop command (and
|
||||||
|
then look up things you find from xprop in those two manuals if you're
|
||||||
|
curious enough). First, try running
|
||||||
|
xprop
|
||||||
|
in a terminal and click on one of the windows on your screen. That gives
|
||||||
|
you the x properties for that window. Look through them and get a basic
|
||||||
|
idea of what's there for kicks. Note that you can get rid of some of the
|
||||||
|
verboseness by grepping out the _NET_WM_ICON stuff, i.e.
|
||||||
|
xprop | grep -v _NET_WM_ICON
|
||||||
|
Next, try running
|
||||||
|
xprop -root
|
||||||
|
in a terminal. There's all the properties of the root window (which you
|
||||||
|
can think of as the "main" Xserver window). You can also manually
|
||||||
|
specify individual windows that you want the properties of with
|
||||||
|
xprop -id <id>
|
||||||
|
if you know the id of the window in question. You can get the id of a
|
||||||
|
given window by either running xwininfo, e.g.
|
||||||
|
xwininfo | grep "Window id" | cut -f 4 -d ' '
|
||||||
|
or by looking at the _NET_CLIENT_STACKING property of the root
|
||||||
|
window. Finally, it can also be useful to add "-spy" (without the
|
||||||
|
quotes) to the xprop command to get it to continually monitor that
|
||||||
|
window and report any changes to you.
|
||||||
|
|
||||||
|
Debugging information
|
||||||
|
Trying to run a window manager under a typical debugger, such as gdb,
|
||||||
|
unfortunately just doesn't work very well. So, we have to resort to
|
||||||
|
other methods.
|
||||||
|
|
||||||
|
Debugging logs
|
||||||
|
|
||||||
|
First, note that you can start a new version of metacity to replace the
|
||||||
|
existing one by running
|
||||||
|
metacity --replace
|
||||||
|
(which also comes in handy in the form "./src/metacity --replace" when
|
||||||
|
trying to quickly test a small change while hacking on metacity without
|
||||||
|
doing a full "make install", though I'm going off topic...) This will
|
||||||
|
allow you to see any warnings printed at the terminal. Sometimes it's
|
||||||
|
useful to have these directed to a logfile instead, which you can do by
|
||||||
|
running
|
||||||
|
METACITY_USE_LOGFILE=1 metacity --replace
|
||||||
|
The logfile it uses will be printed in the terminal. Sometimes, it's
|
||||||
|
useful to get more information than just warnings. You can set
|
||||||
|
METACITY_VERBOSE to do that, like so:
|
||||||
|
METACITY_VERBOSE=1 METACITY_USE_LOGFILE=1 metacity --replace
|
||||||
|
(note that METACITY_VERBOSE=1 can be problematic without
|
||||||
|
METACITY_USE_LOGFILE=1; avoid it unless running in from something that
|
||||||
|
won't be managed by the new Metacity--see bug 305091 for more details).
|
||||||
|
There are also other flags, such as METACITY_DEBUG, most of which I
|
||||||
|
haven't tried and don't know what they do. Go to the source code
|
||||||
|
directory and run
|
||||||
|
grep "METACITY_" * | grep getenv
|
||||||
|
to find out what the other ones are.
|
||||||
|
|
||||||
|
Adding information to the log
|
||||||
|
|
||||||
|
Since we can't single step with a debugger, we often have to fall back to
|
||||||
|
the primitive method of getting information we want to know: adding
|
||||||
|
"print" statements. Metacity has a fairly structured way to do this,
|
||||||
|
using the functions meta_warning, meta_topic, and meta_verbose. All
|
||||||
|
three have the same basic format as printf, except that meta_topic also
|
||||||
|
takes a leading enumeration parameter to specify the type of message
|
||||||
|
being shown (makes it easier for grepping in a verbose log). You'll find
|
||||||
|
tons of examples in the source code if you need them; just do a quick
|
||||||
|
grep or look in most any file. Note that meta_topic and meta_verbose
|
||||||
|
messages only appear if verbosity is turned on. I tend to frequently add
|
||||||
|
temporary meta_warning statements (or switch meta_topic or meta_verbose
|
||||||
|
ones to meta_warning ones) and then undo the changes once I've learned
|
||||||
|
the info that I needed.
|
||||||
|
|
||||||
|
There is also a meta_print_backtrace (which again is only active if
|
||||||
|
verbosity is turned on) that can also be useful if you want to learn how
|
||||||
|
a particular line of code gets called. And, of course, there's always
|
||||||
|
g_assert if you want to make sure some section isn't executed (or isn't
|
||||||
|
executed under certain conditions).
|
||||||
|
|
||||||
|
Valgrind
|
||||||
|
|
||||||
|
Valgrind is awesome for finding memory leaks or corruption and
|
||||||
|
uninitialized variables. But I also tend to use it in a non-traditional
|
||||||
|
way as a partial substitute for a normal debugger: it can provide me with
|
||||||
|
a stack trace of where metacity is crashing if I made a change that
|
||||||
|
caused it to do so, which is one of the major uses of debuggers. (And,
|
||||||
|
what makes it cooler than a debugger is that there will also often be
|
||||||
|
warnings pinpointing the cause of the crash from either some kind of
|
||||||
|
simple memory corruption or an uninitialized variable). Sometimes, when
|
||||||
|
I merely want to know what is calling a particular function I'll just
|
||||||
|
throw in an "int i; printf("%d\n", i);" just because valgrind will give
|
||||||
|
me a full stacktrace whenever it sees that uninitialized variable being
|
||||||
|
used (yes, I could use meta_print_backtrace, but that means I have to
|
||||||
|
turn verbosity on).
|
||||||
|
|
||||||
|
To run metacity under valgrind, use options typical for any Gnome
|
||||||
|
program, such as
|
||||||
|
valgrind --log-file=metacity.log --tool=memcheck --num-callers=48 \
|
||||||
|
--leak-check=yes --leak-resolution=high --show-reachable=yes \
|
||||||
|
./src/metacity --replace
|
||||||
|
where, again, the backslashes mean to join all the stuff on the following
|
||||||
|
line with the previous one.
|
||||||
|
|
||||||
|
However, there is a downside. Things run a little bit slowly, and it
|
||||||
|
appears that you'll need about 1.5GB of ram, which unfortunately prevents
|
||||||
|
most people from trying this.
|
||||||
|
|
||||||
|
Testing Utilities
|
||||||
|
|
||||||
|
src/run-metacity.sh
|
||||||
|
The script src/run-metacity.sh is useful to hack on the window manager.
|
||||||
|
It runs metacity in an Xnest. e.g.:
|
||||||
|
CLIENTS=3 ./run-metacity.sh
|
||||||
|
or
|
||||||
|
DEBUG=memprof ./run-metacity.sh
|
||||||
|
or
|
||||||
|
DEBUG_TEST=1 ./run-metacity-sh
|
||||||
|
or whatever.
|
||||||
|
|
||||||
|
metacity-message
|
||||||
|
The tool metacity-message can be used as follows:
|
||||||
|
metacity-message reload-theme
|
||||||
|
metacity-message restart
|
||||||
|
metacity-message enable-keybindings
|
||||||
|
metacity-message disable-keybindings
|
||||||
|
The first of these is useful for testing themes, the second is just
|
||||||
|
another way (besides the --restart flag to metacity itself) of
|
||||||
|
restarting metacity, and the third is useful for testing Metacity when
|
||||||
|
running it under an Xnest (typically, the Metacity under the Xnest
|
||||||
|
wouldn't get keybinding notifications--making keyboard navigation not
|
||||||
|
work--but if you disable the keybindings for the global Metacity then
|
||||||
|
the Metacity under the Xnest can then get those keybinding notifications).
|
||||||
|
|
||||||
|
metacity-window-demo
|
||||||
|
metacity-window-demo is good for trying behavior of various kinds
|
||||||
|
of window without launching a full desktop.
|
||||||
|
|
||||||
|
Technical gotchas to keep in mind
|
||||||
|
Files that include gdk.h or gtk.h are not supposed to include
|
||||||
|
display.h or window.h or other core files. Files in the core
|
||||||
|
(display.[hc], window.[hc]) are not supposed to include gdk.h or
|
||||||
|
gtk.h. Reasons:
|
||||||
|
|
||||||
|
"Basically you don't want GDK most of the time. It adds
|
||||||
|
abstractions that cause problems, because they aren't designed to
|
||||||
|
be used in a WM where we do weird stuff (display grabs, and just
|
||||||
|
being the WM). At best GDK adds inefficiency, at worst it breaks
|
||||||
|
things in weird ways where you have to be a GDK guru to figure
|
||||||
|
them out. Owen also told me that they didn't want to start adding
|
||||||
|
a lot of hacks to GDK to let a WM use it; we both agreed back in
|
||||||
|
the mists of time that metacity would only use it for the "UI"
|
||||||
|
bits as it does.
|
||||||
|
|
||||||
|
Having the split in the source code contains and makes very clear
|
||||||
|
the interface between the WM and GDK/GTK. This keeps people from
|
||||||
|
introducing extra GDK/GTK usage when it isn't needed or
|
||||||
|
appropriate. Also, it speeds up the compilation a bit, though this
|
||||||
|
was perhaps more relevant 5 years ago than it is now.
|
||||||
|
|
||||||
|
There was also a very old worry that the GDK stuff might have to
|
||||||
|
be in a separate process to work right; that turned out to be
|
||||||
|
untrue. Though who knows what issues the CM will introduce."
|
||||||
|
|
||||||
|
Remember that strings stored in X properties are not in UTF-8, and they
|
||||||
|
have to end up in UTF-8 before we try putting them through Pango.
|
||||||
|
|
||||||
|
If you make any X request involving a client window, you have to
|
||||||
|
meta_error_trap_push() around the call; this is not necessary for X
|
||||||
|
requests on the frame windows.
|
||||||
|
|
||||||
|
Remember that not all windows have frames, and window->frame can be NULL.
|
||||||
|
|
||||||
|
Other important reading & where to get started
|
||||||
|
Extra reading
|
||||||
|
|
||||||
|
There are some other important things to read to get oriented as well.
|
||||||
|
These are:
|
||||||
|
http://pobox.com/~hp/features.html
|
||||||
|
rationales.txt
|
||||||
|
doc/code-overview.txt
|
||||||
|
|
||||||
|
It pays to read http://pobox.com/~hp/features.html in order
|
||||||
|
to understand the philosophy of Metacity.
|
||||||
|
|
||||||
|
The rationales.txt file has two things: (1) a list of design choices with
|
||||||
|
links in the form of bugzilla bugs that discuss the issue, and (2) a list
|
||||||
|
outstanding bug categories, each of which is tracked by a particular
|
||||||
|
tracker bug in bugzilla from which you can find several closely related
|
||||||
|
bug reports.
|
||||||
|
|
||||||
|
doc/code-overview.txt provides a fairly good overview of the code,
|
||||||
|
including coverage of the function of the various files, the main
|
||||||
|
structures and their relationships, and places to start looking in the
|
||||||
|
code tailored to general categories of tasks.
|
||||||
|
|
||||||
|
Ideas for tasks to work on
|
||||||
|
|
||||||
|
There are a variety of things you could work on in the code. You may
|
||||||
|
have ideas of your own, but in case you don't, let me provide a list of
|
||||||
|
ideas you could choose from:
|
||||||
|
|
||||||
|
If you're ambitious, there's a list of things Havoc made that he'd really
|
||||||
|
like to see tackled, which you can find at
|
||||||
|
http://log.ometer.com/2004-05.html. Be sure to double check with someone
|
||||||
|
to make sure the item is still relevant if you're interested in one of
|
||||||
|
these. Another place to look for ideas, of course, is bugzilla. One can
|
||||||
|
just do queries and look for things that look fixable.
|
||||||
|
|
||||||
|
However, perhaps the best way of getting ideas of related tasks to work
|
||||||
|
on, is to look at the second half of the rationales.txt file, which tries
|
||||||
|
to group bugs by type.
|
||||||
8
MAINTAINERS
Normal file
8
MAINTAINERS
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Tomas Frydrych
|
||||||
|
Email: tf linux intel com
|
||||||
|
Userid: tomasf
|
||||||
|
|
||||||
|
Owen Taylor
|
||||||
|
Email: otaylor redhat com
|
||||||
|
Userid: otaylor
|
||||||
|
|
||||||
43
METACITY_MAINTAINERS
Normal file
43
METACITY_MAINTAINERS
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
Currently active maintainers
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Elijah Newren
|
||||||
|
Email: newren gmail com
|
||||||
|
Userid: newren
|
||||||
|
|
||||||
|
- Usually won't touch the theme bugs (isn't interested) or the
|
||||||
|
compositor (until open source nvidia drivers are up to snuff).
|
||||||
|
Tends to be most interested in libwnck/gtk interactions, focus
|
||||||
|
issues, constraints problems, and raising/stacking, but works on
|
||||||
|
just about anything other than themes and the compositor.
|
||||||
|
|
||||||
|
Thomas Thurman
|
||||||
|
Email: thomas thurman org uk
|
||||||
|
Userid: tthurman
|
||||||
|
|
||||||
|
- Responsible for all theme bugs and the compositor (thank goodness
|
||||||
|
Thomas got involved, eh?). I'm sure he'll replace this sentence
|
||||||
|
with his interests when he reads it. ;-)
|
||||||
|
|
||||||
|
|
||||||
|
Semi-active maintainers
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Havoc Pennington
|
||||||
|
Email: hp redhat com
|
||||||
|
Userid: hp
|
||||||
|
- Original author. Doesn't patch metacity anymore, but is active in
|
||||||
|
answering questions, responding to bugs, providing very helpful
|
||||||
|
suggestions and insight, and even assisting with debugging.
|
||||||
|
|
||||||
|
|
||||||
|
Important historical figureheads
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Rob Adams (readams readams net)
|
||||||
|
- Was the main maintainer of metacity for a while; particular areas
|
||||||
|
of focus included xinerama, placement, and an older version of the
|
||||||
|
constraints code. Still responds to bugs every once in a while.
|
||||||
|
|
||||||
|
Søren Sandmann (sandmann redhat com)
|
||||||
|
- Wrote most of the current compositing manager code + libcm
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
|
|
||||||
SUBDIRS=src po doc
|
SUBDIRS=src po doc
|
||||||
|
|
||||||
|
EXTRA_DIST = HACKING MAINTAINERS rationales.txt
|
||||||
|
|
||||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
|
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
|
||||||
|
|||||||
409
NEWS
409
NEWS
@@ -1,412 +1,3 @@
|
|||||||
3.12.1
|
|
||||||
======
|
|
||||||
* Fix crash when running as X11 compositor [Adel; #727115]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Matthias Clasen, Adel Gadllah, Florian Müllner, Jasper St. Pierre
|
|
||||||
|
|
||||||
3.12.0
|
|
||||||
======
|
|
||||||
* Fix grab issue with SSD xwayland windows [Rui; #726123]
|
|
||||||
* Misc. bug fixes [Jasper, Ray, Rui, Florian; #727011]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Rui Matos, Florian Müllner, Jasper St. Pierre, Ray Strode
|
|
||||||
|
|
||||||
3.11.92
|
|
||||||
=======
|
|
||||||
* Fix identification of CSD windows [Owen; #723029]
|
|
||||||
* Update keyboard state unconditionally [Rui; #722847]
|
|
||||||
* Misc bug fixes and cleanups [Owen, Rui, Giovanni, Matthias, Adel, Ryan,
|
|
||||||
Jasper, Marek, Florian; #723580, #726123, #726683]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Marek Chalupa, Matthias Clasen, Adel Gadllah, Ryan Lortie,
|
|
||||||
Rui Matos, Florian Müllner, Jasper St. Pierre, Owen W. Taylor
|
|
||||||
|
|
||||||
3.11.91
|
|
||||||
=======
|
|
||||||
* Don't use keysym to match keybindings [Rui; #678001]
|
|
||||||
* Fix message tray icons showing up blank (again) [Adel; #725180]
|
|
||||||
* Improve keybinding lookups [Rui; #725588]
|
|
||||||
* Fix dynamic updates of titlebar style properties [Owen; #725751]
|
|
||||||
* Fix positioning of manually positioned windows [Owen; #724049]
|
|
||||||
* Misc bug fixes and cleanups [Jasper, Carlos, Adel, Giovanni, Florian; #720631,
|
|
||||||
#724969, #725216, #724402, #722266, #725338, #725525]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Adel Gadllah, Carlos Garnacho, Rui Matos, Florian Müllner,
|
|
||||||
Jasper St. Pierre, Owen W. Taylor
|
|
||||||
|
|
||||||
3.11.90
|
|
||||||
=======
|
|
||||||
* Fix double-scaling on high DPI resolutions [Adel; #723931]
|
|
||||||
* Make tile previews a compositor effect [Stefano, Florian; #665758]
|
|
||||||
* Misc. bug fixes and cleanups [Ryan, Giovanni, Jasper, Adel; #722530, #724257,
|
|
||||||
#724258, #720631, #724364, #724472]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Marek Chalupa, Stefano Facchini, Adel Gadllah,
|
|
||||||
Ryan Lortie, Florian Müllner, Jasper St. Pierre, Rico Tzschichholz
|
|
||||||
|
|
||||||
3.11.5
|
|
||||||
======
|
|
||||||
* Fix CSD titlebars being placed off-screen [Jasper; #719772]
|
|
||||||
* Add support for subsurfaces [Jonas; #705502]
|
|
||||||
* Expose MetaWindow:skip-taskbar property [Florian; #723307]
|
|
||||||
* Fix legacy tray icons showing up blank [Adel; #721596]
|
|
||||||
* Fix configuration of cloned monitors [Adel; #710610]
|
|
||||||
* Misc bug fixes and cleanups [Jasper, Adel, Marek, Jonas; #720631, #723468,
|
|
||||||
#720818, #723563, #723564]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Jonas Ådahl, Marek Ch, Adel Gadllah, Florian Müllner, Jasper St. Pierre
|
|
||||||
|
|
||||||
3.11.4
|
|
||||||
======
|
|
||||||
* Don't leave focus on windows that are being unmanaged [Owen; #711618]
|
|
||||||
* Reduce server grabs [Daniel Drake; #721345, #721709]
|
|
||||||
* Improve heuristic to determine display output name [Cosimo Cecchi; #721674]
|
|
||||||
* Atomically unmaximize both directions [Jasper; #722108]
|
|
||||||
* Misc bug fixes [Debarshi, Andika, Florian; #721517, #721674, #722347]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Cosimo Cecchi, Daniel Drake, Florian Müllner, Debarshi Ray, Jasper St. Pierre,
|
|
||||||
Andika Triwidada, Owen W. Taylor
|
|
||||||
|
|
||||||
3.11.3
|
|
||||||
======
|
|
||||||
* Fix focus issues with external OSKs[Jasper; #715030]
|
|
||||||
* Add a MetaCullable interface [Jasper; #714706]
|
|
||||||
* Fix window keybindings [Rui; #719724]
|
|
||||||
* Fix settings keyboard/pointer focus for new clients [Rui; #719725]
|
|
||||||
* Fix window group paint volume [Owen; #719669]
|
|
||||||
* Fix frame extents problems [Owen; #714707]
|
|
||||||
* Add shortcut to move windows between monitors [Florian; #671054]
|
|
||||||
* Fix problems with focus tracking [Owen; #720558]
|
|
||||||
* Misc. bug fixes and cleanups: [Rui, Colin, Lionel, Jasper, Owen; #712833,
|
|
||||||
#719557, #719695, #719833, #678989, #720417, #720630]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Lionel Landwerlin, Rui Matos, Alberto Milone, Florian Müllner,
|
|
||||||
Jasper St. Pierre, Rico Tzschichholz, Owen W. Taylor, Colin Walters
|
|
||||||
|
|
||||||
3.11.2
|
|
||||||
======
|
|
||||||
* Support setting a NULL opaque region [Andreas; #711518]
|
|
||||||
* Sync keymap from X to wayland [Giovanni; #707446]
|
|
||||||
* Implement support for subsurfaces [Jonas; #705502]
|
|
||||||
* Don't focus the no-focus-window for globally active windows [Jasper; #710296]
|
|
||||||
* Support "hotplug_mode_update" property [Marc-André; #711216]
|
|
||||||
* Fix resize operations using mouse-button-modifier [Lionel; #710251]
|
|
||||||
* Fix position of attached modals for CSD windows [Giovanni, Owen; #707194]
|
|
||||||
* Misc. bug fixes [Rui, Jasper, Neil, Florian; #712247, #711731]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Andreas Heider, Lionel Landwerlin, Marc-André Lureau,
|
|
||||||
Rui Matos, Florian Müllner, Neil Roberts, Sindhu S, Jasper St. Pierre,
|
|
||||||
Rico Tzschichholz, Owen W. Taylor, Jonas Ådahl
|
|
||||||
|
|
||||||
3.11.1
|
|
||||||
======
|
|
||||||
* Fix tile previews getting stuck on right click during drags [Lionel; #704759]
|
|
||||||
* Use new UPower API [Bastien]
|
|
||||||
* Set hot spot when cursor set from wl_buffer [Jonas; #709593]
|
|
||||||
* Expose min-backlight-step [Asad; #710380]
|
|
||||||
* Misc. bug fixes and cleanups [Jasper, Olav, Magdalen; #709776]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Magdalen Berns, Lionel Landwerlin, Asad Mehmood, Bastien Nocera,
|
|
||||||
Jasper St. Pierre, Olav Vitters, Jonas Ådahl
|
|
||||||
|
|
||||||
3.10.1
|
|
||||||
======
|
|
||||||
* Don't apply fullscreen workarounds to CSD windows [Giovanni; #708718]
|
|
||||||
* Fix hangs during DND operations [Adel; #709340]
|
|
||||||
* Misc bug fixes [Dan, Giovanni, Jasper; #708813, #708420]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Adel Gadllah, Dan Horák, Hans Petter Jansson,
|
|
||||||
Jasper St. Pierre
|
|
||||||
|
|
||||||
3.10.0.1
|
|
||||||
========
|
|
||||||
* Fix bug when a window changed size twice in a single frame - this
|
|
||||||
can happen with GTK+ client-side decorations [Giovanni, Owen; #708367]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Owen Taylor
|
|
||||||
|
|
||||||
3.10.0
|
|
||||||
======
|
|
||||||
* Update dependencies [Giovanni; #708210]
|
|
||||||
|
|
||||||
3.9.92
|
|
||||||
======
|
|
||||||
* Constrain the pointer position onto visible monitors [Giovanni; #706655]
|
|
||||||
* Fix keyboard state handling in face of event compression [Giovanni; #706963]
|
|
||||||
* Extend the MetaCursorTracker API with query pointer and cursor visibility [Giovanni; #707474]
|
|
||||||
* Be stricter in checking and exposing the wayland protocol version [#707851]
|
|
||||||
* Don't require plugins to pass event to Clutter [Giovanni; #707482]
|
|
||||||
* Move the --wayland option from the binary to the library [Giovanni; #707897]
|
|
||||||
* Implement running from gnome-session (environment variable setting, process group
|
|
||||||
handling, Clutter backend variables) [Giovanni; #706421]
|
|
||||||
* Add support for more cursor types [Giovanni; #707919]
|
|
||||||
* Drop man pages for removed utilities [Kalev; #706579]
|
|
||||||
* Implement monitor configuration on KMS [Giovanni; #706308]
|
|
||||||
* Implement HW cursors [Giovanni; #707573]
|
|
||||||
* Implement minimal support for resizing and maximizing wayland clients [Giovanni; #707401]
|
|
||||||
* Implement transient hints for wayland clients [Giovanni; #707401]
|
|
||||||
* Implement popup menu surfaces and grabs [Giovanni; #707863]
|
|
||||||
* Immediately fire idle watches that are already expired [Giovanni; #707302]
|
|
||||||
* Remove holes generated by disabling the laptop lid [Giovanni; #707473]
|
|
||||||
* Misc bug fixes [Giovanni, Pavel, Adel; #707649, #706124, #707584, #707851, #707929,
|
|
||||||
#708070]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Adel Gadllah, Giovanni Campagna, Kalev Lember, Pavel Vasin
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Мирослав Николић po/sr, sr@latin.po, Мирослав Николић [sr, sr@latin],
|
|
||||||
Chao-Hsiung Liao [zh_HK, zh_TW], Yuri Myasoedov [ru],
|
|
||||||
Ville-Pekka Vainio [fi], Changwoo Ryu [ko], A S Alam [pa],
|
|
||||||
Mattias Põldaru [et], Rūdolfs Mazurs [lv], Ihar Hrachyshka [be],
|
|
||||||
Nilamdyuti Goswami [as], Andika Triwidada [id], Baurzhan Muftakhidinov [kk],
|
|
||||||
Benjamin Steinwender [de]
|
|
||||||
|
|
||||||
3.9.91
|
|
||||||
======
|
|
||||||
* Drop man pages for removed utilities [Kalev; #706579]
|
|
||||||
* Add support for idle tracking [Giovanni, Cosimo; #706005, #707250]
|
|
||||||
* Skip CRTC reconfigurations that have no effect [Giovanni; #706672]
|
|
||||||
* Ignore skip-taskbar hints on parentless dialogs [Giovanni; #673399]
|
|
||||||
* Don't save pixbuf data in user data [Tim; #706777]
|
|
||||||
* Don't queue redraws for obscured regions [Adel; #703332]
|
|
||||||
* Suppor the opaque region hints for wayland clients [Jasper; #707019]
|
|
||||||
* Turn blending off when drawing entirely opaque regions [Jasper; #707019]
|
|
||||||
* Check event timestamps before reconfiguring [Giovanni; #706735]
|
|
||||||
* Merge the DBus API for display configuration in the wayland branch [Giovanni]
|
|
||||||
* Install an X IO error handler for XWayland [Giovanni; #706962]
|
|
||||||
* Use the clutter xkbcommon integration for the wayland keyboard [Giovanni; #705862]
|
|
||||||
* Add a setuid helper for running on KMS+evdev [Giovanni, Colin; #705861]
|
|
||||||
* Add keybindings for switching VT [Giovanni; #705861]
|
|
||||||
* Implement plugin modality when running as a wayland compositor [Giovanni; #705917]
|
|
||||||
* Add support for the application menu for wayland clients [Giovanni; #707128]
|
|
||||||
* Several Coverity spotted fixes [Jasper]
|
|
||||||
* Don't create a dummy texture for the texture template [Neil; #707458]
|
|
||||||
* Use a more conservative paint volume for obscured windows [Adel]
|
|
||||||
* Misc bug fixes [Giovanni, Colin, Seán, Jasper, Cosimo; #706582, #706598,
|
|
||||||
#706787, #706729, #706825, #707081, #707090, #707267, #706982, #706289]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Cosimo Cecchi, Adel Gadllah, Colin Guthrie, Kalev Lember,
|
|
||||||
Tim Lunn, Jasper St. Pierre, Neil Roberts, Rico Tzschichholz, Seán de Búrca
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Piotr Drąg [pl], Alexandre Franke [fr], Kjartan Maraas [nb],
|
|
||||||
Milo Casagrande [it], Balázs Úr [hu], Seán de Búrca [ga], Fran Diéguez [gl],
|
|
||||||
Daniel Mustieles [es], Aurimas Černius [lt], Gil Forcada [ca]
|
|
||||||
|
|
||||||
3.9.90
|
|
||||||
======
|
|
||||||
* First release from the wayland branch, includes basic support for running
|
|
||||||
as a wayland compositor [Robert, Neil, Giovanni]
|
|
||||||
* Add support for _GTK_FRAME_EXTENTS [Jasper; #705766]
|
|
||||||
* Fix quick consecutive <super> presses breaking keyboard input [Alban; #666101]
|
|
||||||
* Work towards running as wayland compositor [Giovanni]
|
|
||||||
- Add DBus API for display configuration
|
|
||||||
[#705670, #706231, #706233, #706322, #706382]
|
|
||||||
- Add abstraction layer for cursor tracking [#705911]
|
|
||||||
- Add support for plugin modality under wayland [#705917]
|
|
||||||
* Disable GTK+ scaling [Alexander; #706388]
|
|
||||||
* Disable blending while updating tower [Robert]
|
|
||||||
* Misc bug fixes and cleanups [Adel, Jasper, Giovanni, Colin, Rico, Florian;
|
|
||||||
#703332, #704437, #706207]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Robert Bragg, Giovanni Campagna, Alban Crequy, Adel Gadllah,
|
|
||||||
Alexander Larsson, Florian Müllner, Jasper St. Pierre, Neil Roberts,
|
|
||||||
Rico Tzschichholz, Colin Walters
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Jiro Matsuzawa [ja], Kjartan Maraas [nb], Matej Urbančič [sl],
|
|
||||||
Marek Černocký [cs], Daniel Mustieles [es], Rafael Ferreira [pt_BR],
|
|
||||||
Yaron Shahrabani [he], Ján Kyselica [sk]
|
|
||||||
|
|
||||||
3.9.5
|
|
||||||
=====
|
|
||||||
* Don't select for touch events on the stage [Jasper; #697192]
|
|
||||||
* Don't queue redraws for obscured regions [Adel; #703332]
|
|
||||||
* Export timestamp of global keybinding events [Bastien; #704858]
|
|
||||||
* Misc bug fixes and cleanups [Jasper, Rico; #703970]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Adel Gadllah, Bastien Nocera, Jasper St. Pierre, Rico Tzschichholz
|
|
||||||
|
|
||||||
3.9.4
|
|
||||||
=====
|
|
||||||
* Tweak window shadows [Allan; #702141]
|
|
||||||
* Ignore our own focus events for focus prediction [Jasper; #701017]
|
|
||||||
* Add API to query if the stage is focused [Jasper; #700735]
|
|
||||||
* Add API to query the monitor for a given position [Adel]
|
|
||||||
* Don't force attached dialogs to be border-only [Florian; #702764]
|
|
||||||
* Allow slicing of backgrounds to avoid texture size limits [Ray; #702283]
|
|
||||||
* Miscellaneous bug fixes and cleanups [Adel; #701224, #702564]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Allan Day, Adel Gadllah, Florian Müllner, Jasper St. Pierre, Ray Strode
|
|
||||||
|
|
||||||
3.9.3
|
|
||||||
=====
|
|
||||||
* Ensure events are always reported to the grab window [Rui; #701219]
|
|
||||||
* Use new clutter_stage_set_paint_callback() function to prevent dropping
|
|
||||||
frames with frame synced toolkits [Owen; #698794]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Rui Matos, Owen W. Taylor
|
|
||||||
|
|
||||||
3.9.2
|
|
||||||
=====
|
|
||||||
* Add meta_window_can_close() function [Jasper; #699269]
|
|
||||||
* Add support for string-array preferences [Florian; #700223]
|
|
||||||
* Fix a potential race condition with _NET_WM_MOVERESIZE [Jasper; #699777]
|
|
||||||
* Fix shade window action [Stef; #693714]
|
|
||||||
* Remove overlay_group [Giovanni; #700735]
|
|
||||||
* Improve tracking of the focus window [Dan, Jasper; #647706]
|
|
||||||
* Add API to freeze/unfreeze the keyboard [Rui; #697001]
|
|
||||||
* Grab and emit a signal when XK_ISO_Next_Group is pressed [Rui; #697002]
|
|
||||||
* Misc bug fixes and cleanups [Dieter, Jasper, Rui; #699636, #700735, #697000]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Rui Matos, Florian Müllner, Jasper St. Pierre,
|
|
||||||
Dieter Verfaillie, Stef Walter, Dan Winship
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Kjartan Maraas [nb], Ján Kyselica [sk]
|
|
||||||
|
|
||||||
3.9.1
|
|
||||||
=====
|
|
||||||
* Fix miscellaneous memory leaks [Pavel; #698710]
|
|
||||||
* Misc fixes and cleanups [Stef, Simon; #698179, #697758]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Simon McVittie, Pavel Vasin, Stef Walter
|
|
||||||
|
|
||||||
3.8.1
|
|
||||||
=====
|
|
||||||
* Fix crash when getting default font [Bastien; #696814]
|
|
||||||
* Fix ungrabbing of keybindings [Rui; #697003]
|
|
||||||
* Misc fixes and cleanups [Jasper, Simon; #697758]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Jasper Lievisse Adriaanse, Rui Matos, Simon McVittie, Bastien Nocera
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Guillaume Desmottes [fr], Shankar Prasad [kn], Bruce Cowan [en_GB],
|
|
||||||
Andika Triwidada [id], Yaron Shahrabani [he], Kjartan Maraas [nb],
|
|
||||||
Gheyret Kenji [ug]
|
|
||||||
|
|
||||||
3.8.0
|
|
||||||
=====
|
|
||||||
* Address major memory leak when changing backgrounds [Ray; #696157]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Ray Strode
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Sandeep Sheshrao Shedmake [mr], Victor Ibragimov [tg], Gabor Kelemen [hu],
|
|
||||||
Ville-Pekka Vainio [fi], Rajesh Ranjan [hi], Dr.T.Vasudevan [ta],
|
|
||||||
ManojKumar Giri [or], Yuri Myasoedov [ru], Petr Kovar [cs],
|
|
||||||
Jiro Matsuzawa [ja], Krishnababu Krothapalli [te], Ani Peter [ml],
|
|
||||||
Inaki Larranaga Murgoitio [eu]
|
|
||||||
|
|
||||||
3.7.92
|
|
||||||
======
|
|
||||||
* Build and improve reference docs [Tomeu; #676856, #695641, #695935]
|
|
||||||
* Add tracking of whether there are fullscreen windows [Owen; 649748]
|
|
||||||
* Misc bug fixes and cleanups [Adel, Giovanni, Owen, Jasper, Florian; #695269,
|
|
||||||
#695711, #694046, #695813, #695881, #676856, #696053, #682779, #696089,
|
|
||||||
#696091, #696087]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Adel Gadllah, Florian Müllner, Jasper St. Pierre,
|
|
||||||
Tomeu Vizoso, Owen W. Taylor
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Chao-Hsiung Liao [zh_HK, zh_TW], Rafael Ferreira [pt_BR],
|
|
||||||
Ihar Hrachyshka [be], Nilamdyuti Goswami [as], Matej Urbančič [sl],
|
|
||||||
Dimitris Spingos [el], Jan Kyselica [sk], Khaled Hosny [ar],
|
|
||||||
Мирослав Николић [sr, sr@latin], Duarte Loreto [pt], Sweta Kothari [gu],
|
|
||||||
Milo Casagrande [it], Changwoo Ryu [ko], Gil Forcada [ca],
|
|
||||||
Carles Ferrando [ca@valencia], Mattias Põldaru [et], Alexandre Franke [fr],
|
|
||||||
Ask H. Larsen [da], Rūdolfs Mazurs [lv], Nguyễn Thái Ngọc Duy [vi]
|
|
||||||
|
|
||||||
3.7.91
|
|
||||||
======
|
|
||||||
* Fix windows being treated as remote after hostname changes [Ray; #688716]
|
|
||||||
* Add meta_window_get_all_monitors() method [Adel; #646861]
|
|
||||||
* Add grab API for externally defined accelerators [Florian; #643111]
|
|
||||||
* Make session registration an explicit step [Ray; #694876]
|
|
||||||
* Avoid unnecessary stage redraws [Adel; #694988, #695006]
|
|
||||||
* Misc fixes [Giovanni, Ray, Jasper, Rui, Pavel, Owen; #694801, #694725,
|
|
||||||
#694641, #694393, #678917, #695093, #694837, #695135, #694771, #694321]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Adel Gadllah, Rui Matos, Florian Müllner,
|
|
||||||
Jasper St. Pierre, Ray Strode, Owen Taylor, Pavel Vasin
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Daniel Mustieles [es], Yaron Shahrabani [he], A S Alam [pa], Piotr Drąg [pl],
|
|
||||||
Gheyret Kenji [ug], Alexandre Franke [fr], Milo Casagrande [it],
|
|
||||||
Fran Diéguez [gl], Dimitris Spingos [el], Мирослав Николић [sr, sr@latin],
|
|
||||||
Chao-Hsiung Liao [zh_HK, zh_TW], Nguyễn Thái Ngọc Duy [vi],
|
|
||||||
Aurimas Černius [lt], Mario Blättermann [de], Kjartan Maraas [nb]
|
|
||||||
|
|
||||||
3.7.90
|
|
||||||
======
|
|
||||||
* Support _NET_WM_OPAQUE_REGION [Jasper, Adel; #679901]
|
|
||||||
* Add wrapper for XI2.3 pointer barriers [Jasper; #677215]
|
|
||||||
* Update style of resize popups [Cosimo; #692741]
|
|
||||||
* Implement compositor <-> application frame synchronization [Owen; #685463]
|
|
||||||
* Handle animated backgrounds [Ray; #682427]
|
|
||||||
* Add a new window group for override-redirect windows [Gayan; #633620]
|
|
||||||
* Pass on pointer events on guard window to Clutter [Jasper; #681540]
|
|
||||||
* Show correct shortcut in window menus [Giovanni; #694045]
|
|
||||||
* Don't put minimized windows at the back of alt-tab [Jasper; #693991]
|
|
||||||
* Misc bug fixes and cleanups [Jasper, Rico, Adel, Florian, Rui, Giovanni,
|
|
||||||
Owen; #692679, #693354, #690581, #693439, #692718, #693475, #693482, #693540,
|
|
||||||
#690580, #680990, #693833, #693922, #693854, #694224]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Giovanni Campagna, Cosimo Cecchi, Adel Gadllah, Rui Matos, Florian Müllner,
|
|
||||||
Gayan Perera, Jasper St. Pierre, Ray Strode, Owen Taylor, Rico Tzschichholz
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Fran Diéguez [gl], A S Alam [pa], Alexandre Franke [fr], Aurimas Černius [lt],
|
|
||||||
Мирослав Николић [sr, sr@latin], Fran Diéguez [gl], Piotr Drąg [pl],
|
|
||||||
Luca Ferretti [it], Daniel Mustieles [es]
|
|
||||||
|
|
||||||
3.7.5
|
|
||||||
=====
|
|
||||||
* Don't allow multiline window titles [Jon; #683056]
|
|
||||||
* Make meta_window_located_on_workspace() public [Jasper; #691744]
|
|
||||||
* Request XI2.3 [Colin; #692877]
|
|
||||||
* Add meta_window_set_icon_geometry() method [Florian; #692997]
|
|
||||||
* Require XFixes 5.0 [Jasper; #677215]
|
|
||||||
* Change unredirection hints to match spec changes [Adel; #693064]
|
|
||||||
* Improve unredict heuristicts [Adel; #683786]
|
|
||||||
* Misc bug fixes and cleanups [Florian, Jasper, Adel; #691874, #679901,
|
|
||||||
#692952, #693042]
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
Adel Gadllah, William Jon McCann, Florian Müllner, Jasper St. Pierre,
|
|
||||||
Colin Walters
|
|
||||||
|
|
||||||
Translations:
|
|
||||||
Daniel Mustieles [es], Ihar Hrachyshka [be], Nilamdyuti Goswami [as],
|
|
||||||
Gheyret Kenji [ug], Kjartan Maraas [nb], Yaron Shahrabani [he],
|
|
||||||
Piotr Drąg [pl], Chao-Hsiung Liao [zh_HK,zh_TW], Milo Casagrande [it]
|
|
||||||
|
|
||||||
3.7.4
|
3.7.4
|
||||||
=====
|
=====
|
||||||
* Add support for bypass compositor hints [Adel; #683020]
|
* Add support for bypass compositor hints [Adel; #683020]
|
||||||
|
|||||||
416
README
Normal file
416
README
Normal file
@@ -0,0 +1,416 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
|
Since then, it has been renamed mutter after a rebase on top of
|
||||||
|
clutter as a compositing manager.
|
||||||
|
|
||||||
|
COMPILING MUTTER
|
||||||
|
===
|
||||||
|
|
||||||
|
You need GTK+ 2.2. For startup notification to work you need
|
||||||
|
libstartup-notification at
|
||||||
|
http://www.freedesktop.org/software/startup-notification/ or on the
|
||||||
|
GNOME ftp site.
|
||||||
|
You need Clutter 1.0. You need gobject-introspection 0.6.3.
|
||||||
|
|
||||||
|
REPORTING BUGS AND SUBMITTING PATCHES
|
||||||
|
===
|
||||||
|
|
||||||
|
Report new bugs on http://bugzilla.gnome.org. Please check for
|
||||||
|
duplicates, *especially* if you are reporting a feature request.
|
||||||
|
|
||||||
|
Please do *not* add "me too!" or "yes I really want this!" comments to
|
||||||
|
feature requests in bugzilla. Please read
|
||||||
|
http://pobox.com/~hp/features.html prior to adding any kind of flame
|
||||||
|
about missing features or misfeatures.
|
||||||
|
|
||||||
|
Feel free to send patches too; Metacity is relatively small and
|
||||||
|
simple, so if you find a bug or want to add a feature it should be
|
||||||
|
pretty easy. Send me mail, or put the patch in bugzilla.
|
||||||
|
|
||||||
|
See the HACKING file for some notes on hacking Mutter.
|
||||||
|
|
||||||
|
MUTTER FEATURES
|
||||||
|
===
|
||||||
|
|
||||||
|
- Uses GTK+ 2.0 for drawing window frames. This means colors, fonts,
|
||||||
|
etc. come from GTK+ theme.
|
||||||
|
|
||||||
|
- Does not expose the concept of "window manager" to the user. Some
|
||||||
|
of the features in the GNOME control panel and other parts of the
|
||||||
|
desktop happen to be implemented in metacity, such as changing your
|
||||||
|
window border theme, or changing your window navigation shortcuts,
|
||||||
|
but the user doesn't need to know this.
|
||||||
|
|
||||||
|
- Includes only the window manager; does not try to be a desktop
|
||||||
|
environment. The pager, configuration, etc. are all separate and
|
||||||
|
modular. The "libwnck" library (which I also wrote) is available
|
||||||
|
for writing metacity extensions, pagers, and so on. (But libwnck
|
||||||
|
isn't metacity specific, or GNOME-dependent; it requires only GTK,
|
||||||
|
and should work with KWin, fvwm2, and other EWMH-compliant WMs.)
|
||||||
|
|
||||||
|
- Has a simple theme system and a couple of extra themes come with it.
|
||||||
|
Change themes via gsettings:
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences theme Crux
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences theme Gorilla
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences theme Atlanta
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences theme Bright
|
||||||
|
|
||||||
|
See theme-format.txt for docs on the theme format. Use
|
||||||
|
metacity-theme-viewer to preview themes.
|
||||||
|
|
||||||
|
- Change number of workspaces via gsettings:
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences num-workspaces 5
|
||||||
|
|
||||||
|
Can also change workspaces from GNOME 2 pager.
|
||||||
|
|
||||||
|
- Change focus mode:
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences focus-mode mouse
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences focus-mode sloppy
|
||||||
|
gsettings set org.gnome.desktop.wm.preferences focus-mode click
|
||||||
|
|
||||||
|
- Global keybinding defaults include:
|
||||||
|
|
||||||
|
Alt-Tab forward cycle window focus
|
||||||
|
Alt-Shift-Tab backward cycle focus
|
||||||
|
Alt-Ctrl-Tab forward cycle focus among panels
|
||||||
|
Alt-Ctrl-Shift-Tab backward cycle focus among panels
|
||||||
|
Alt-Escape cycle window focus without a popup thingy
|
||||||
|
Ctrl-Alt-Left Arrow previous workspace
|
||||||
|
Ctrl-Alt-Right Arrow next workspace
|
||||||
|
Ctrl-Alt-D minimize/unminimize all, to show desktop
|
||||||
|
|
||||||
|
Change keybindings for example:
|
||||||
|
|
||||||
|
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 '[<Alt>F1]'
|
||||||
|
|
||||||
|
Also try the GNOME keyboard shortcuts control panel.
|
||||||
|
|
||||||
|
- Window keybindings:
|
||||||
|
|
||||||
|
Alt-space window menu
|
||||||
|
|
||||||
|
Mnemonics work in the menu. That is, Alt-space then underlined
|
||||||
|
letter in the menu item works.
|
||||||
|
|
||||||
|
Choose Move from menu, and arrow keys to move the window.
|
||||||
|
|
||||||
|
While moving, hold down Control to move slower, and
|
||||||
|
Shift to snap to edges.
|
||||||
|
|
||||||
|
Choose Resize from menu, and nothing happens yet, but
|
||||||
|
eventually I might implement something.
|
||||||
|
|
||||||
|
Keybindings for things like maximize window, vertical maximize,
|
||||||
|
etc. can be bound, but may not all exist by default. See
|
||||||
|
metacity.schemas.
|
||||||
|
|
||||||
|
- Window mouse bindings:
|
||||||
|
|
||||||
|
Clicking anywhere on frame with button 1 will raise/focus window
|
||||||
|
|
||||||
|
If you click a window control, such as the close button, then the
|
||||||
|
control will activate on button release if you are still over it
|
||||||
|
on release (as with most GUI toolkits)
|
||||||
|
|
||||||
|
If you click and drag borders with button 1 it resizes the window
|
||||||
|
|
||||||
|
If you click and drag the titlebar with button 1 it moves the
|
||||||
|
window.
|
||||||
|
|
||||||
|
If you click anywhere on the frame with button 2 it lowers the
|
||||||
|
window.
|
||||||
|
|
||||||
|
If you click anywhere on the frame with button 3 it shows the
|
||||||
|
window menu.
|
||||||
|
|
||||||
|
If you hold down Super (windows key) and click inside a window, it
|
||||||
|
will move the window (buttons 1 and 2) or show menu (button 3).
|
||||||
|
Or you can configure a different modifier for this.
|
||||||
|
|
||||||
|
If you pick up a window with button 1 and then switch workspaces
|
||||||
|
the window will come with you to the new workspace, this is
|
||||||
|
a feature copied from Enlightenment.
|
||||||
|
|
||||||
|
If you hold down Shift while moving a window, the window snaps
|
||||||
|
to edges of other windows and the screen.
|
||||||
|
|
||||||
|
- Session management:
|
||||||
|
|
||||||
|
Mutter connects to the session manager and will set itself up to
|
||||||
|
be respawned. It theoretically restores sizes/positions/workspace
|
||||||
|
for session-aware applications.
|
||||||
|
|
||||||
|
- Mutter implements much of the EWMH window manager specification
|
||||||
|
from freedesktop.org, as well as the older ICCCM. Please refer to
|
||||||
|
the COMPLIANCE file for information on mutter compliance with
|
||||||
|
these standards.
|
||||||
|
|
||||||
|
- Uses Pango to render text, so has cool i18n capabilities.
|
||||||
|
Supports UTF-8 window titles and such.
|
||||||
|
|
||||||
|
- There are simple animations for actions such as minimization,
|
||||||
|
to help users see what is happening. Should probably
|
||||||
|
have a few more of these and make them nicer.
|
||||||
|
|
||||||
|
- if you have the proper X setup, set the GDK_USE_XFT=1
|
||||||
|
environment variable to get antialiased window titles.
|
||||||
|
|
||||||
|
- considers the panel when placing windows and maximizing
|
||||||
|
them.
|
||||||
|
|
||||||
|
- handles the window manager selection from the ICCCM. Will exit if
|
||||||
|
another WM claims it, and can claim it from another WM if you pass
|
||||||
|
the --replace argument. So if you're running another
|
||||||
|
ICCCM-compliant WM, you can run "mutter --replace" to replace it
|
||||||
|
with Metacity.
|
||||||
|
|
||||||
|
- does basic colormap handling
|
||||||
|
|
||||||
|
- and much more! well, maybe not a lot more.
|
||||||
|
|
||||||
|
HOW TO ADD EXTERNAL FEATURES
|
||||||
|
===
|
||||||
|
|
||||||
|
You can write a mutter "plugin" such as a pager, window list, icon
|
||||||
|
box, task menu, or even things like "window matching" using the
|
||||||
|
Extended Window Manager Hints. See http://www.freedesktop.org for the
|
||||||
|
EWMH specification. An easy-to-use library called "libwnck" is
|
||||||
|
available that uses the EWMH and is specifically designed for writing
|
||||||
|
WM accessories.
|
||||||
|
|
||||||
|
You might be interested in existing accessories such as "Devil's Pie"
|
||||||
|
by Ross Burton, which add features to Mutter (or other
|
||||||
|
EWMH-compliant WMs).
|
||||||
|
|
||||||
|
MUTTER BUGS, NON-FEATURES, AND CAVEATS
|
||||||
|
===
|
||||||
|
|
||||||
|
See bugzilla: http://bugzilla.gnome.org/query.cgi
|
||||||
|
|
||||||
|
FAQ
|
||||||
|
===
|
||||||
|
|
||||||
|
Q: Will you add my feature?
|
||||||
|
|
||||||
|
A: If it makes sense to turn on unconditionally, or is genuinely a
|
||||||
|
harmless preference that I would not be embarrassed to put in a
|
||||||
|
simple, uncluttered, user-friendly configuration dialog.
|
||||||
|
|
||||||
|
If the only rationale for your feature is that other window
|
||||||
|
managers have it, or that you are personally used to it, or
|
||||||
|
something like that, then I will not be impressed. Metacity is
|
||||||
|
firmly in the "choose good defaults" camp rather than the "offer 6
|
||||||
|
equally broken ways to do it, and let the user pick one" camp.
|
||||||
|
|
||||||
|
This is part of a "no crackrock" policy, despite some exceptions
|
||||||
|
I'm mildly embarrassed about. For example, multiple workspaces
|
||||||
|
probably constitute crackrock, they confuse most users and really
|
||||||
|
are not that useful if you have a decent tasklist and so on. But I
|
||||||
|
am too used to them to turn them off. Or alternatively
|
||||||
|
iconification/tasklist is crack, and workspaces/pager are good. But
|
||||||
|
having both is certainly a bit wrong. Sloppy focus is probably
|
||||||
|
crackrock too.
|
||||||
|
|
||||||
|
But don't think unlimited crack is OK just because I slipped up a
|
||||||
|
little. No slippery slope here.
|
||||||
|
|
||||||
|
Don't let this discourage patches and fixes - I love those. ;-)
|
||||||
|
Just be prepared to hear the above objections if your patch adds
|
||||||
|
some crack-ridden configuration option.
|
||||||
|
|
||||||
|
http://pobox.com/~hp/free-software-ui.html
|
||||||
|
http://pobox.com/~hp/features.html
|
||||||
|
|
||||||
|
Q: Will Mutter be part of GNOME?
|
||||||
|
|
||||||
|
A: It is not officially part of GNOME as of GNOME 2.27. We are
|
||||||
|
hoping to have mutter officially included as of GNOME 2.28.
|
||||||
|
|
||||||
|
Q: Why does Mutter remember the workspace/position of some apps
|
||||||
|
but not others across logout/login?
|
||||||
|
|
||||||
|
A: Mutter only stores sizes/positions for apps that are session
|
||||||
|
managed. As far as I can determine, there is no way to attempt to
|
||||||
|
remember workspace/position for non-session-aware apps without
|
||||||
|
causing a lot of weird effects.
|
||||||
|
|
||||||
|
The reason is that you don't know which non-SM-aware apps were
|
||||||
|
launched by the session. When you initially log in, Metacity sees a
|
||||||
|
bunch of new windows appear. But it can't distinguish between
|
||||||
|
windows that were stored in your session, or windows you just
|
||||||
|
launched after logging in. If Metacity tried to guess that a window
|
||||||
|
was from the session, it could e.g. end up maximizing a dialog, or
|
||||||
|
put a window you just launched on another desktop or in a weird
|
||||||
|
place. And in fact I see a lot of bugs like this in window managers
|
||||||
|
that try to handle non-session-aware apps.
|
||||||
|
|
||||||
|
However, for session-aware apps, Mutter can tell that the
|
||||||
|
application instance is from the session and thus restore it
|
||||||
|
reliably, assuming the app properly restores the windows it had
|
||||||
|
open on session save.
|
||||||
|
|
||||||
|
So the correct way to fix the situation is to make apps
|
||||||
|
session-aware. libSM has come with X for years, it's very
|
||||||
|
standardized, it's shared by GNOME and KDE - even twm is
|
||||||
|
session-aware. So anyone who won't take a patch to add SM is more
|
||||||
|
archaic than twm - and you should flame them. ;-)
|
||||||
|
|
||||||
|
Docs on session management:
|
||||||
|
http://www.fifi.org/doc/xspecs/xsmp.txt.gz
|
||||||
|
http://www.fifi.org/doc/xspecs/SMlib.txt.gz
|
||||||
|
|
||||||
|
See also the ICCCM section on SM. For GNOME apps, use the
|
||||||
|
GnomeClient object. For a simple example of using libSM directly,
|
||||||
|
twm/session.c in the twm source code is pretty easy to understand.
|
||||||
|
|
||||||
|
Q: How about adding viewports in addition to workspaces?
|
||||||
|
|
||||||
|
A: I could conceivably be convinced to use viewports _instead_ of
|
||||||
|
workspaces, though currently I'm not thinking that. But I don't
|
||||||
|
think it makes any sense to have both; it's just confusing. They
|
||||||
|
are functionally equivalent.
|
||||||
|
|
||||||
|
You may think this means that you won't have certain keybindings,
|
||||||
|
or something like that. This is a misconception. The only
|
||||||
|
_fundamental_ difference between viewports and workspaces is that
|
||||||
|
with viewports, windows can "overlap" and appear partially on
|
||||||
|
one and partially on another. All other differences that
|
||||||
|
traditionally exist in other window managers are accidental -
|
||||||
|
the features commonly associated with viewports can be implemented
|
||||||
|
for workspaces, and vice versa.
|
||||||
|
|
||||||
|
So I don't want to have two kinds of
|
||||||
|
workspace/desktop/viewport/whatever, but I'm willing to add
|
||||||
|
features traditionally associated with either kind if those
|
||||||
|
features make sense.
|
||||||
|
|
||||||
|
Q: Why is the panel always on top?
|
||||||
|
|
||||||
|
A: Because it's a better user interface, and until we made this not
|
||||||
|
configurable a bunch of apps were not getting fixed (the app
|
||||||
|
authors were just saying "put your panel on the bottom" instead of
|
||||||
|
properly supporting fullscreen mode, and such).
|
||||||
|
|
||||||
|
rationales.txt has the bugzilla URL for some flamefesting on this,
|
||||||
|
if you want to go back and relive the glory.
|
||||||
|
Read these and the bugzilla stuff before asking/commenting:
|
||||||
|
http://pobox.com/~hp/free-software-ui.html
|
||||||
|
http://pobox.com/~hp/features.html
|
||||||
|
|
||||||
|
Q: Why is there no edge flipping?
|
||||||
|
|
||||||
|
A: This one is also in rationales.txt. Because "ouija board" UI, where
|
||||||
|
you just move the mouse around and the computer guesses what you
|
||||||
|
mean, has a lot of issues. This includes mouse focus, shade-hover
|
||||||
|
mode, edge flipping, autoraise, etc. Metacity has mouse focus and
|
||||||
|
autoraise as a compromise, but these features are all confusing for
|
||||||
|
many users, and cause problems with accessibility, fitt's law, and
|
||||||
|
so on.
|
||||||
|
|
||||||
|
Read these and the bugzilla stuff before asking/commenting:
|
||||||
|
http://pobox.com/~hp/free-software-ui.html
|
||||||
|
http://pobox.com/~hp/features.html
|
||||||
|
|
||||||
|
Q: Why does wireframe move/resize suck?
|
||||||
|
|
||||||
|
A: You can turn it on with the reduced_resources setting.
|
||||||
|
|
||||||
|
But: it has low usability, and is a pain
|
||||||
|
to implement, and there's no reason opaque move/resize should be a
|
||||||
|
problem on any setup that can run a modern desktop worth a darn to
|
||||||
|
begin with.
|
||||||
|
|
||||||
|
Read these and the bugzilla stuff before asking/commenting:
|
||||||
|
http://pobox.com/~hp/free-software-ui.html
|
||||||
|
http://pobox.com/~hp/features.html
|
||||||
|
|
||||||
|
The reason we had to add wireframe anyway was broken
|
||||||
|
proprietary apps that can't handle lots of resize events.
|
||||||
|
|
||||||
|
Q: Why no XYZ?
|
||||||
|
|
||||||
|
A: You are probably getting the idea by now - check rationales.txt,
|
||||||
|
query/search bugzilla, and read http://pobox.com/~hp/features.html
|
||||||
|
and http://pobox.com/~hp/free-software-ui.html
|
||||||
|
|
||||||
|
Then sit down and answer the question for yourself. Is the feature
|
||||||
|
good? What's the rationale for it? Answer "why" not just "why not."
|
||||||
|
Justify in terms of users as a whole, not just users like
|
||||||
|
yourself. How else can you solve the same problem? etc. If that
|
||||||
|
leads you to a strong opinion, then please, post the rationale for
|
||||||
|
discussion to an appropriate bugzilla bug, or to
|
||||||
|
usability@gnome.org.
|
||||||
|
|
||||||
|
Please don't just "me too!" on bugzilla bugs, please don't think
|
||||||
|
flames will get you anywhere, and please don't repeat rationale
|
||||||
|
that's already been offered.
|
||||||
|
|
||||||
|
Q: Your dumb web pages you made me read talk about solving problems in
|
||||||
|
fundamental ways instead of adding preferences or workarounds.
|
||||||
|
What are some examples where metacity has done this?
|
||||||
|
|
||||||
|
A: There are quite a few, though many opportunities remain. Sometimes
|
||||||
|
the real fix involves application changes. The metacity approach is
|
||||||
|
that it's OK to require apps to change, though there are also
|
||||||
|
plenty of workarounds in metacity for battles considered too hard
|
||||||
|
to fight.
|
||||||
|
|
||||||
|
Here are some examples:
|
||||||
|
|
||||||
|
- fullscreen mode was introduced to allow position constraints,
|
||||||
|
panel-on-top, and other such things to apply to normal windows
|
||||||
|
while still allowing video players etc. to "just work"
|
||||||
|
|
||||||
|
- "whether to include minimized windows in Alt+Tab" was solved
|
||||||
|
by putting minimized windows at the *end* of the tab order.
|
||||||
|
|
||||||
|
- Whether to pop up a feedback display during Alt+Tab was solved by
|
||||||
|
having both Alt+Tab and Alt+Esc
|
||||||
|
|
||||||
|
- Whether to have a "kill" feature was solved by automatically
|
||||||
|
detecting and offering to kill stuck apps. Better, metacity
|
||||||
|
actually does "kill -9" on the process, it doesn't just
|
||||||
|
disconnect the process from the X server. You'll appreciate this
|
||||||
|
if you ever did a "kill" on Netscape 4, and watched it keep
|
||||||
|
eating 100% CPU even though the X server had booted it.
|
||||||
|
|
||||||
|
- The workspaces vs. viewports mess was avoided by adding
|
||||||
|
directional navigation and such to workspaces, see discussion
|
||||||
|
earlier in this file.
|
||||||
|
|
||||||
|
- Instead of configurable placement algorithms, there's just one
|
||||||
|
that works fairly well most of the time.
|
||||||
|
|
||||||
|
- To avoid excess CPU use during opaque move/resize, we rate limit
|
||||||
|
the updates to the application window's size.
|
||||||
|
|
||||||
|
- Instead of configurable "show size of window while resizing,"
|
||||||
|
it's only shown for windows where it matters, such as terminals.
|
||||||
|
(Only use-case given for all windows is for web designers
|
||||||
|
choosing their web browser size, but there are web sites and
|
||||||
|
desktop backgrounds that do this for you.)
|
||||||
|
|
||||||
|
- Using startup notification, applications open on the workspace
|
||||||
|
where you launched them, not the active workspace when their
|
||||||
|
window is opened.
|
||||||
|
|
||||||
|
- and much more.
|
||||||
|
|
||||||
|
Q: I think mutter sucks.
|
||||||
|
|
||||||
|
A: Feel free to use any WM you like. The reason metacity follows the
|
||||||
|
ICCCM and EWMH specifications is that it makes metacity a modular,
|
||||||
|
interchangeable part in the desktop. libwnck-based apps such as the
|
||||||
|
GNOME window list will work just fine with any EWMH-compliant WM.
|
||||||
|
|
||||||
|
Q: Did you spend a lot of time on this?
|
||||||
|
|
||||||
|
A: Originally the answer was no. Sadly the answer is now yes.
|
||||||
|
|
||||||
|
Q: How can you claim that you are anti-crack, while still
|
||||||
|
writing a window manager?
|
||||||
|
|
||||||
|
A: I have no comment on that.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
# Run this to generate all the initial makefiles, etc.
|
# Run this to generate all the initial makefiles, etc.
|
||||||
|
|
||||||
srcdir=`dirname $0`
|
srcdir=`dirname $0`
|
||||||
|
|||||||
77
configure.ac
77
configure.ac
@@ -1,9 +1,8 @@
|
|||||||
AC_PREREQ(2.50)
|
AC_PREREQ(2.50)
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
|
||||||
|
|
||||||
m4_define([mutter_major_version], [3])
|
m4_define([mutter_major_version], [3])
|
||||||
m4_define([mutter_minor_version], [12])
|
m4_define([mutter_minor_version], [7])
|
||||||
m4_define([mutter_micro_version], [1])
|
m4_define([mutter_micro_version], [4])
|
||||||
|
|
||||||
m4_define([mutter_version],
|
m4_define([mutter_version],
|
||||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||||
@@ -16,14 +15,10 @@ AC_INIT([mutter], [mutter_version],
|
|||||||
AC_CONFIG_SRCDIR(src/core/display.c)
|
AC_CONFIG_SRCDIR(src/core/display.c)
|
||||||
AC_CONFIG_HEADERS(config.h)
|
AC_CONFIG_HEADERS(config.h)
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz tar-ustar subdir-objects])
|
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar])
|
||||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
|
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
|
||||||
AM_MAINTAINER_MODE([enable])
|
AM_MAINTAINER_MODE([enable])
|
||||||
|
|
||||||
# Change pkglibdir and pkgdatadir to mutter-wayland instead of mutter
|
|
||||||
PACKAGE="mutter-wayland"
|
|
||||||
AC_SUBST([PACKAGE], [$PACKAGE])
|
|
||||||
|
|
||||||
MUTTER_MAJOR_VERSION=mutter_major_version
|
MUTTER_MAJOR_VERSION=mutter_major_version
|
||||||
MUTTER_MINOR_VERSION=mutter_minor_version
|
MUTTER_MINOR_VERSION=mutter_minor_version
|
||||||
MUTTER_MICRO_VERSION=mutter_micro_version
|
MUTTER_MICRO_VERSION=mutter_micro_version
|
||||||
@@ -39,7 +34,7 @@ AC_SUBST(MUTTER_PLUGIN_DIR)
|
|||||||
# Honor aclocal flags
|
# Honor aclocal flags
|
||||||
AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
|
AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
|
||||||
|
|
||||||
GETTEXT_PACKAGE=mutter-wayland
|
GETTEXT_PACKAGE=mutter
|
||||||
AC_SUBST(GETTEXT_PACKAGE)
|
AC_SUBST(GETTEXT_PACKAGE)
|
||||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
|
||||||
|
|
||||||
@@ -76,12 +71,10 @@ MUTTER_PC_MODULES="
|
|||||||
gio-2.0 >= 2.25.10
|
gio-2.0 >= 2.25.10
|
||||||
pango >= 1.2.0
|
pango >= 1.2.0
|
||||||
cairo >= 1.10.0
|
cairo >= 1.10.0
|
||||||
gsettings-desktop-schemas >= 3.7.3
|
gsettings-desktop-schemas >= 3.3.0
|
||||||
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
|
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
|
||||||
$CLUTTER_PACKAGE >= 1.17.5
|
$CLUTTER_PACKAGE >= 1.13.2
|
||||||
cogl-1.0 >= 1.17.1
|
cogl-1.0 >= 1.9.6
|
||||||
upower-glib >= 0.99.0
|
|
||||||
gnome-desktop-3.0
|
|
||||||
"
|
"
|
||||||
|
|
||||||
GLIB_GSETTINGS
|
GLIB_GSETTINGS
|
||||||
@@ -120,27 +113,14 @@ AC_ARG_ENABLE(shape,
|
|||||||
[disable mutter's use of the shaped window extension]),,
|
[disable mutter's use of the shaped window extension]),,
|
||||||
enable_shape=auto)
|
enable_shape=auto)
|
||||||
|
|
||||||
## Wayland support requires the xserver.xml protocol extension found in the weston
|
|
||||||
## repository but since there aren't currently established conventions for
|
|
||||||
## installing and discovering these we simply require a location to be given
|
|
||||||
## explicitly...
|
|
||||||
AC_ARG_WITH([wayland-protocols],
|
|
||||||
[AS_HELP_STRING([--with-wayland-protocols], [Location for wayland extension protocol specs])],
|
|
||||||
[
|
|
||||||
],
|
|
||||||
[])
|
|
||||||
|
|
||||||
AC_ARG_WITH([xwayland-path],
|
|
||||||
[AS_HELP_STRING([--with-xwayland-path], [Absolute path for an X Wayland server])],
|
|
||||||
[XWAYLAND_PATH="$withval"],
|
|
||||||
[XWAYLAND_PATH="$bindir/Xorg"])
|
|
||||||
|
|
||||||
AM_GLIB_GNU_GETTEXT
|
AM_GLIB_GNU_GETTEXT
|
||||||
|
|
||||||
## here we get the flags we'll actually use
|
## here we get the flags we'll actually use
|
||||||
# GRegex requires Glib-2.14.0
|
# GRegex requires Glib-2.14.0
|
||||||
PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.14.0)
|
PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.14.0)
|
||||||
PKG_CHECK_MODULES(MUTTER_LAUNCH, libdrm libsystemd-login)
|
# gtk_window_set_icon_name requires gtk2+-2.6.0
|
||||||
|
PKG_CHECK_MODULES(MUTTER_MESSAGE, gtk+-3.0)
|
||||||
|
PKG_CHECK_MODULES(MUTTER_WINDOW_DEMO, gtk+-3.0)
|
||||||
|
|
||||||
# Unconditionally use this dir to avoid a circular dep with gnomecc
|
# Unconditionally use this dir to avoid a circular dep with gnomecc
|
||||||
GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings"
|
GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings"
|
||||||
@@ -205,20 +185,22 @@ if test x$found_introspection != xno; then
|
|||||||
AC_SUBST(META_GIR)
|
AC_SUBST(META_GIR)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcursor"
|
AC_MSG_CHECKING([Xcursor])
|
||||||
|
if $PKG_CONFIG xcursor; then
|
||||||
|
have_xcursor=yes
|
||||||
|
else
|
||||||
|
have_xcursor=no
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT($have_xcursor)
|
||||||
|
|
||||||
AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
|
if test x$have_xcursor = xyes; then
|
||||||
AS_IF([test "x$WAYLAND_SCANNER" = "xno"],
|
echo "Building with Xcursor"
|
||||||
AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols]))
|
MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcursor"
|
||||||
AC_SUBST([WAYLAND_SCANNER])
|
AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support])
|
||||||
AC_SUBST(XWAYLAND_PATH)
|
fi
|
||||||
|
|
||||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES clutter-wayland-1.0 clutter-wayland-compositor-1.0 clutter-egl-1.0 wayland-server libdrm"
|
|
||||||
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([xi >= 1.6.99.1],
|
|
||||||
AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
|
|
||||||
|
|
||||||
# This is used for plugins
|
# This is used for plugins
|
||||||
AC_SUBST(CLUTTER_PACKAGE)
|
AC_SUBST(CLUTTER_PACKAGE)
|
||||||
PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
|
PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
|
||||||
@@ -322,6 +304,9 @@ if test "x$found_xsync" = "xyes"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
MUTTER_LIBS="$MUTTER_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
|
MUTTER_LIBS="$MUTTER_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
|
||||||
|
MUTTER_MESSAGE_LIBS="$MUTTER_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
||||||
|
MUTTER_WINDOW_DEMO_LIBS="$MUTTER_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
|
||||||
|
MUTTER_PROPS_LIBS="$MUTTER_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
||||||
|
|
||||||
found_sm=no
|
found_sm=no
|
||||||
case "$MUTTER_LIBS" in
|
case "$MUTTER_LIBS" in
|
||||||
@@ -376,8 +361,6 @@ if test "x$enable_debug" = "xyes"; then
|
|||||||
CFLAGS="$CFLAGS -g -O"
|
CFLAGS="$CFLAGS -g -O"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
|
|
||||||
|
|
||||||
#### Warnings (last since -Werror can disturb other tests)
|
#### Warnings (last since -Werror can disturb other tests)
|
||||||
|
|
||||||
# Stay command-line compatible with the gnome-common configure option. Here
|
# Stay command-line compatible with the gnome-common configure option. Here
|
||||||
@@ -448,10 +431,11 @@ AC_CONFIG_FILES([
|
|||||||
Makefile
|
Makefile
|
||||||
doc/Makefile
|
doc/Makefile
|
||||||
doc/man/Makefile
|
doc/man/Makefile
|
||||||
doc/reference/Makefile
|
|
||||||
doc/reference/meta-docs.sgml
|
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/libmutter-wayland.pc
|
src/wm-tester/Makefile
|
||||||
|
src/libmutter.pc
|
||||||
|
src/mutter-plugins.pc
|
||||||
|
src/tools/Makefile
|
||||||
src/compositor/plugins/Makefile
|
src/compositor/plugins/Makefile
|
||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
])
|
])
|
||||||
@@ -468,7 +452,7 @@ fi
|
|||||||
|
|
||||||
dnl ==========================================================================
|
dnl ==========================================================================
|
||||||
echo "
|
echo "
|
||||||
mutter-wayland-$VERSION
|
mutter-$VERSION
|
||||||
|
|
||||||
prefix: ${prefix}
|
prefix: ${prefix}
|
||||||
source code location: ${srcdir}
|
source code location: ${srcdir}
|
||||||
@@ -480,6 +464,7 @@ mutter-wayland-$VERSION
|
|||||||
Session management: ${found_sm}
|
Session management: ${found_sm}
|
||||||
Shape extension: ${found_shape}
|
Shape extension: ${found_shape}
|
||||||
Xsync: ${found_xsync}
|
Xsync: ${found_xsync}
|
||||||
|
Xcursor: ${have_xcursor}
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
SUBDIRS = man reference
|
SUBDIRS = man
|
||||||
|
|
||||||
EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
|
EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
|
||||||
how-to-get-focus-right.txt rationales.txt
|
how-to-get-focus-right.txt
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
man_MANS = mutter.1
|
man_MANS = mutter.1 mutter-theme-viewer.1 \
|
||||||
|
mutter-window-demo.1 mutter-message.1
|
||||||
|
|
||||||
EXTRA_DIST = $(man_MANS)
|
EXTRA_DIST = $(man_MANS)
|
||||||
|
|||||||
60
doc/man/mutter-message.1
Normal file
60
doc/man/mutter-message.1
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
.\" Hey, EMACS: -*- nroff -*-
|
||||||
|
.\" First parameter, NAME, should be all caps
|
||||||
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
|
.\" -----
|
||||||
|
.\" This file was confirmed to be licenced under the GPL
|
||||||
|
.\" by its author and copyright holder, Akira TAGOH, on June 1st 2008:
|
||||||
|
.\"
|
||||||
|
.\" > I'm comfortable with DFSG-free. that sounds great if you think it's
|
||||||
|
.\" > useful and worth containing it in upstream.
|
||||||
|
.\" ...
|
||||||
|
.\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever,
|
||||||
|
.\" > since I have contributed that for Debian. so GPL is no problem for me.
|
||||||
|
.\" -----
|
||||||
|
.TH MUTTER\-MESSAGE 1 "28 August 2002"
|
||||||
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
|
.\"
|
||||||
|
.\" Some roff macros, for reference:
|
||||||
|
.\" .nh disable hyphenation
|
||||||
|
.\" .hy enable hyphenation
|
||||||
|
.\" .ad l left justify
|
||||||
|
.\" .ad b justify to both left and right margins
|
||||||
|
.\" .nf disable filling
|
||||||
|
.\" .fi enable filling
|
||||||
|
.\" .br insert line break
|
||||||
|
.\" .sp <n> insert n+1 empty lines
|
||||||
|
.\" for manpage-specific macros, see man(7)
|
||||||
|
.SH NAME
|
||||||
|
MUTTER\-MESSAGE \- a command to send a message to Mutter
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B MUTTER\-MESSAGE
|
||||||
|
[restart|reload\-theme|enable\-keybindings|disable\-keybindings]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
This manual page documents briefly the
|
||||||
|
.B mutter\-message\fP.
|
||||||
|
This manual page was written for the Debian distribution
|
||||||
|
because the original program does not have a manual page.
|
||||||
|
.PP
|
||||||
|
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||||
|
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||||
|
.\" respectively.
|
||||||
|
\fBmutter\-message\fP send a specified message to \fBmutter\fP(1).
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B restart
|
||||||
|
Restart \fBmutter\fP(1) which is running.
|
||||||
|
.TP
|
||||||
|
.B reload-theme
|
||||||
|
Reload a theme which is specified on gsettings database.
|
||||||
|
.TP
|
||||||
|
.B enable-keybindings
|
||||||
|
Enable all of keybindings which is specified on gsettings database.
|
||||||
|
.TP
|
||||||
|
.B disable-keybindings
|
||||||
|
Disable all of keybindings which is specified on gsettings database.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR mutter (1)
|
||||||
|
.SH AUTHOR
|
||||||
|
This manual page was written by Akira TAGOH <tagoh@debian.org>,
|
||||||
|
for the Debian GNU/Linux system (but may be used by others).
|
||||||
43
doc/man/mutter-theme-viewer.1
Normal file
43
doc/man/mutter-theme-viewer.1
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
|
||||||
|
.\" other parms are allowed: see man(7), man(1)
|
||||||
|
.\"
|
||||||
|
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
|
||||||
|
.\"
|
||||||
|
.TH MUTTER-THEME-VIEWER 1 "1 June 2004"
|
||||||
|
.SH NAME
|
||||||
|
mutter-theme-viewer \- view mutter themes
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B mutter-theme-viewer
|
||||||
|
[
|
||||||
|
.I THEMENAME
|
||||||
|
]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.\" Putting a newline after each sentence can generate better output.
|
||||||
|
.B mutter-theme-viewer
|
||||||
|
allows you to preview any installed Mutter theme.
|
||||||
|
.PP
|
||||||
|
When designing a new Mutter theme, you can use
|
||||||
|
.B mutter-theme-viewer
|
||||||
|
to measure the performance of a window frame option, and to preview
|
||||||
|
the option.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.I THEMENAME
|
||||||
|
Name of the theme to be shown (\fIAtlanta\fR by default).
|
||||||
|
It is case-sensitive.
|
||||||
|
.SH FILES
|
||||||
|
.br
|
||||||
|
.nf
|
||||||
|
.TP
|
||||||
|
.I /usr/share/themes
|
||||||
|
system themes directory
|
||||||
|
.TP
|
||||||
|
.I /usr/share/themes/*/mutter-1/mutter-theme-1.xml
|
||||||
|
theme specification file
|
||||||
|
.SH AUTHOR
|
||||||
|
This manual page was written by Jose M. Moya <josem@die.upm.es>, for
|
||||||
|
the Debian GNU/Linux system (but may be used by others).
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.\" Always quote multiple words for .SH
|
||||||
|
.BR mutter (1),
|
||||||
|
.BR mutter-window-demo (1).
|
||||||
25
doc/man/mutter-window-demo.1
Normal file
25
doc/man/mutter-window-demo.1
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
|
||||||
|
.\" other parms are allowed: see man(7), man(1)
|
||||||
|
.\"
|
||||||
|
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
|
||||||
|
.\"
|
||||||
|
.TH MUTTER-WINDOW-DEMO 1 "1 June 2004"
|
||||||
|
.SH NAME
|
||||||
|
mutter-window-demo \- demo of window features
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B mutter-window-demo
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.\" Putting a newline after each sentence can generate better output.
|
||||||
|
This program demonstrates various kinds of windows that window
|
||||||
|
managers and window manager themes should handle.
|
||||||
|
.PP
|
||||||
|
Be sure to tear off the menu and toolbar, those are also a special
|
||||||
|
kind of window.
|
||||||
|
.SH AUTHOR
|
||||||
|
This manual page was written by Jose M. Moya <josem@die.upm.es>, for
|
||||||
|
the Debian GNU/Linux system (but may be used by others).
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.\" Always quote multiple words for .SH
|
||||||
|
.BR x-window-manager (1),
|
||||||
|
.BR mutter (1),
|
||||||
|
.BR mutter-theme-viewer (1).
|
||||||
@@ -1,166 +0,0 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
|
||||||
|
|
||||||
# We require automake 1.6 at least.
|
|
||||||
AUTOMAKE_OPTIONS = 1.6
|
|
||||||
|
|
||||||
# This is a blank Makefile.am for using gtk-doc.
|
|
||||||
# Copy this to your project's API docs directory and modify the variables to
|
|
||||||
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
|
|
||||||
# of using the various options.
|
|
||||||
|
|
||||||
# The name of the module, e.g. 'glib'.
|
|
||||||
DOC_MODULE=meta
|
|
||||||
|
|
||||||
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
|
|
||||||
#DOC_MODULE_VERSION=2
|
|
||||||
|
|
||||||
|
|
||||||
# The top-level SGML file. You can change this if you want to.
|
|
||||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
|
|
||||||
|
|
||||||
# Directories containing the source code, relative to $(srcdir).
|
|
||||||
# gtk-doc will search all .c and .h files beneath these paths
|
|
||||||
# for inline comments documenting functions and macros.
|
|
||||||
# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk
|
|
||||||
DOC_SOURCE_DIR=../../src/
|
|
||||||
|
|
||||||
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
|
||||||
SCANGOBJ_OPTIONS=
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-scan.
|
|
||||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
|
||||||
SCAN_OPTIONS=--rebuild-types
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-mkdb.
|
|
||||||
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
|
|
||||||
MKDB_OPTIONS=--xml-mode --output-format=xml
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-mktmpl
|
|
||||||
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
|
|
||||||
MKTMPL_OPTIONS=
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-mkhtml
|
|
||||||
MKHTML_OPTIONS=
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-fixref. Not normally needed.
|
|
||||||
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
|
|
||||||
FIXXREF_OPTIONS=
|
|
||||||
|
|
||||||
# Used for dependencies. The docs will be rebuilt if any of these change.
|
|
||||||
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
|
||||||
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
|
||||||
HFILE_GLOB=$(top_srcdir)/src/*/*.h
|
|
||||||
CFILE_GLOB=$(top_srcdir)/src/*/*.c
|
|
||||||
|
|
||||||
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
|
|
||||||
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
|
|
||||||
EXTRA_HFILES=
|
|
||||||
|
|
||||||
# Header files or dirs to ignore when scanning. Use base file/dir names
|
|
||||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
|
|
||||||
IGNORE_HFILES= \
|
|
||||||
async-getprop.h \
|
|
||||||
atoms.h \
|
|
||||||
bell.h \
|
|
||||||
boxes-private.h \
|
|
||||||
clutter-utils.h \
|
|
||||||
cogl-utils.h \
|
|
||||||
compositor-private.h \
|
|
||||||
constraints.h \
|
|
||||||
core.h \
|
|
||||||
display-private.h \
|
|
||||||
draw-workspace.h \
|
|
||||||
edge-resistance.h \
|
|
||||||
eventqueue.h \
|
|
||||||
frame.h \
|
|
||||||
frames.h \
|
|
||||||
group-private.h \
|
|
||||||
group-props.h \
|
|
||||||
iconcache.h \
|
|
||||||
inlinepixbufs.h \
|
|
||||||
keybindings-private.h \
|
|
||||||
menu.h \
|
|
||||||
metaaccellabel.h \
|
|
||||||
meta-background-actor-private.h \
|
|
||||||
meta-background-group-private.h \
|
|
||||||
meta-module.h \
|
|
||||||
meta-plugin-manager.h \
|
|
||||||
meta-shadow-factory-private.h \
|
|
||||||
meta-texture-rectangle.h \
|
|
||||||
meta-texture-tower.h \
|
|
||||||
meta-window-actor-private.h \
|
|
||||||
meta-window-group.h \
|
|
||||||
meta-window-shape.h \
|
|
||||||
mutter-enum-types.h \
|
|
||||||
mutter-Xatomtype.h \
|
|
||||||
place.h \
|
|
||||||
preview-widget.h \
|
|
||||||
region-utils.h \
|
|
||||||
resizepopup.h \
|
|
||||||
screen-private.h \
|
|
||||||
session.h \
|
|
||||||
stack.h \
|
|
||||||
stack-tracker.h \
|
|
||||||
stamp-mutter-enum-types.h \
|
|
||||||
tabpopup.h \
|
|
||||||
theme.h \
|
|
||||||
theme-private.h \
|
|
||||||
tile-preview.h \
|
|
||||||
ui.h \
|
|
||||||
window-private.h \
|
|
||||||
window-props.h \
|
|
||||||
workspace-private.h \
|
|
||||||
xprops.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
MKDB_OPTIONS+=--ignore-files="$(IGNORE_HFILES)"
|
|
||||||
|
|
||||||
# Images to copy into HTML directory.
|
|
||||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
|
||||||
HTML_IMAGES=
|
|
||||||
|
|
||||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
|
||||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
|
||||||
content_files= \
|
|
||||||
mutter-overview.xml \
|
|
||||||
running-mutter.xml \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
|
||||||
# These files must be listed here *and* in content_files
|
|
||||||
# e.g. expand_content_files=running.sgml
|
|
||||||
expand_content_files= \
|
|
||||||
mutter-overview.xml \
|
|
||||||
running-mutter.xml \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
|
||||||
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
|
||||||
# signals and properties.
|
|
||||||
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
|
||||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
|
||||||
GTKDOC_CFLAGS=$(MUTTER_CFLAGS)
|
|
||||||
GTKDOC_LIBS=$(MUTTER_LIBS) $(top_builddir)/src/libmutter-wayland.la
|
|
||||||
|
|
||||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
|
||||||
include $(top_srcdir)/gtk-doc.make
|
|
||||||
|
|
||||||
# Other files to distribute
|
|
||||||
# e.g. EXTRA_DIST += version.xml.in
|
|
||||||
EXTRA_DIST +=
|
|
||||||
|
|
||||||
# Files not to distribute
|
|
||||||
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
|
||||||
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
|
|
||||||
DISTCLEANFILES = $(DOC_MODULES).types
|
|
||||||
|
|
||||||
# Comment this out if you want 'make check' to test you doc status
|
|
||||||
# and run some sanity checks
|
|
||||||
if ENABLE_GTK_DOC
|
|
||||||
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
|
||||||
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
|
|
||||||
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
|
|
||||||
#TESTS = $(GTKDOC_CHECK)
|
|
||||||
endif
|
|
||||||
|
|
||||||
-include $(top_srcdir)/git.mk
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
|
||||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
|
||||||
[
|
|
||||||
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
|
||||||
<!ENTITY version "@VERSION@">
|
|
||||||
]>
|
|
||||||
<book id="index">
|
|
||||||
<bookinfo>
|
|
||||||
<title>Mutter Reference Manual</title>
|
|
||||||
<releaseinfo>
|
|
||||||
This document is for Mutter &version;.
|
|
||||||
The latest version of this documentation can be found on-line at
|
|
||||||
<ulink role="online-location" url="http://developer.gnome.org/meta/">http://developer.gnome.org/meta/</ulink>.
|
|
||||||
</releaseinfo>
|
|
||||||
</bookinfo>
|
|
||||||
|
|
||||||
<xi:include href="xml/mutter-overview.xml"/>
|
|
||||||
<xi:include href="xml/running-mutter.xml"/>
|
|
||||||
|
|
||||||
<part id="core-reference">
|
|
||||||
<title>Mutter Core Reference</title>
|
|
||||||
<xi:include href="xml/main.xml"/>
|
|
||||||
<xi:include href="xml/common.xml"/>
|
|
||||||
<xi:include href="xml/gradient.xml"/>
|
|
||||||
<xi:include href="xml/prefs.xml"/>
|
|
||||||
<xi:include href="xml/util.xml"/>
|
|
||||||
<xi:include href="xml/errors.xml"/>
|
|
||||||
<xi:include href="xml/meta-plugin.xml"/>
|
|
||||||
<xi:include href="xml/barrier.xml"/>
|
|
||||||
<xi:include href="xml/boxes.xml"/>
|
|
||||||
<xi:include href="xml/compositor.xml"/>
|
|
||||||
<xi:include href="xml/display.xml"/>
|
|
||||||
<xi:include href="xml/group.xml"/>
|
|
||||||
<xi:include href="xml/keybindings.xml"/>
|
|
||||||
<xi:include href="xml/meta-background-actor.xml"/>
|
|
||||||
<xi:include href="xml/meta-shadow-factory.xml"/>
|
|
||||||
<xi:include href="xml/meta-shaped-texture.xml"/>
|
|
||||||
<xi:include href="xml/meta-window-actor.xml"/>
|
|
||||||
<xi:include href="xml/screen.xml"/>
|
|
||||||
<xi:include href="xml/window.xml"/>
|
|
||||||
<xi:include href="xml/workspace.xml"/>
|
|
||||||
</part>
|
|
||||||
|
|
||||||
<chapter id="object-tree">
|
|
||||||
<title>Object Hierarchy</title>
|
|
||||||
<xi:include href="xml/tree_index.sgml"/>
|
|
||||||
</chapter>
|
|
||||||
<index id="api-index-full">
|
|
||||||
<title>API Index</title>
|
|
||||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
|
||||||
</index>
|
|
||||||
<index id="deprecated-api-index" role="deprecated">
|
|
||||||
<title>Index of deprecated API</title>
|
|
||||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
|
||||||
</index>
|
|
||||||
|
|
||||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
|
||||||
</book>
|
|
||||||
@@ -1,683 +0,0 @@
|
|||||||
<SECTION>
|
|
||||||
<FILE>barrier</FILE>
|
|
||||||
<TITLE>MetaBarrier</TITLE>
|
|
||||||
MetaBarrier
|
|
||||||
MetaBarrierClass
|
|
||||||
meta_barrier_is_active
|
|
||||||
meta_barrier_destroy
|
|
||||||
meta_barrier_release
|
|
||||||
MetaBarrierDirection
|
|
||||||
MetaBarrierEvent
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_BARRIER
|
|
||||||
META_BARRIER_CLASS
|
|
||||||
META_BARRIER_GET_CLASS
|
|
||||||
META_IS_BARRIER
|
|
||||||
META_IS_BARRIER_CLASS
|
|
||||||
META_TYPE_BARRIER
|
|
||||||
META_TYPE_BARRIER_EVENT
|
|
||||||
MetaBarrierPrivate
|
|
||||||
meta_barrier_event_get_type
|
|
||||||
meta_barrier_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>boxes</FILE>
|
|
||||||
MetaRectangle
|
|
||||||
MetaStrut
|
|
||||||
MetaEdgeType
|
|
||||||
MetaEdge
|
|
||||||
meta_rectangle_copy
|
|
||||||
meta_rectangle_free
|
|
||||||
meta_rect
|
|
||||||
meta_rectangle_area
|
|
||||||
meta_rectangle_intersect
|
|
||||||
meta_rectangle_equal
|
|
||||||
meta_rectangle_union
|
|
||||||
meta_rectangle_overlap
|
|
||||||
meta_rectangle_vert_overlap
|
|
||||||
meta_rectangle_horiz_overlap
|
|
||||||
meta_rectangle_could_fit_rect
|
|
||||||
meta_rectangle_contains_rect
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_TYPE_RECTANGLE
|
|
||||||
meta_rectangle_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>common</FILE>
|
|
||||||
META_VIRTUAL_CORE_POINTER_ID
|
|
||||||
META_VIRTUAL_CORE_KEYBOARD_ID
|
|
||||||
MetaFrameFlags
|
|
||||||
MetaMenuOp
|
|
||||||
MetaWindowMenuFunc
|
|
||||||
MetaGrabOp
|
|
||||||
MetaCursor
|
|
||||||
MetaFrameType
|
|
||||||
MetaVirtualModifier
|
|
||||||
MetaDirection
|
|
||||||
MetaMotionDirection
|
|
||||||
MetaSide
|
|
||||||
MetaButtonFunction
|
|
||||||
MAX_BUTTONS_PER_CORNER
|
|
||||||
MetaButtonLayout
|
|
||||||
MetaFrameBorders
|
|
||||||
meta_frame_borders_clear
|
|
||||||
META_ICON_WIDTH
|
|
||||||
META_ICON_HEIGHT
|
|
||||||
META_MINI_ICON_WIDTH
|
|
||||||
META_MINI_ICON_HEIGHT
|
|
||||||
META_DEFAULT_ICON_NAME
|
|
||||||
META_PRIORITY_RESIZE
|
|
||||||
META_PRIORITY_BEFORE_REDRAW
|
|
||||||
META_PRIORITY_REDRAW
|
|
||||||
META_PRIORITY_PREFS_NOTIFY
|
|
||||||
POINT_IN_RECT
|
|
||||||
MetaStackLayer
|
|
||||||
MetaWindowMenu
|
|
||||||
MetaResizePopup
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>compositor</FILE>
|
|
||||||
MetaCompEffect
|
|
||||||
MetaCompositor
|
|
||||||
meta_compositor_new
|
|
||||||
meta_compositor_destroy
|
|
||||||
meta_compositor_manage_screen
|
|
||||||
meta_compositor_unmanage_screen
|
|
||||||
meta_compositor_window_shape_changed
|
|
||||||
meta_compositor_process_event
|
|
||||||
meta_compositor_filter_keybinding
|
|
||||||
meta_compositor_add_window
|
|
||||||
meta_compositor_remove_window
|
|
||||||
meta_compositor_show_window
|
|
||||||
meta_compositor_hide_window
|
|
||||||
meta_compositor_switch_workspace
|
|
||||||
meta_compositor_maximize_window
|
|
||||||
meta_compositor_unmaximize_window
|
|
||||||
meta_compositor_sync_window_geometry
|
|
||||||
meta_compositor_set_updates_frozen
|
|
||||||
meta_compositor_queue_frame_drawn
|
|
||||||
meta_compositor_sync_stack
|
|
||||||
meta_compositor_sync_screen_size
|
|
||||||
meta_compositor_flash_screen
|
|
||||||
meta_get_stage_for_screen
|
|
||||||
meta_get_overlay_group_for_screen
|
|
||||||
meta_get_overlay_window
|
|
||||||
meta_get_window_actors
|
|
||||||
meta_get_window_group_for_screen
|
|
||||||
meta_get_top_window_group_for_screen
|
|
||||||
meta_disable_unredirect_for_screen
|
|
||||||
meta_enable_unredirect_for_screen
|
|
||||||
meta_set_stage_input_region
|
|
||||||
meta_empty_stage_input_region
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>display</FILE>
|
|
||||||
MetaTabList
|
|
||||||
MetaTabShowType
|
|
||||||
meta_XFree
|
|
||||||
meta_display_get_compositor_version
|
|
||||||
meta_display_get_xinput_opcode
|
|
||||||
meta_display_supports_extended_barriers
|
|
||||||
meta_display_get_xdisplay
|
|
||||||
meta_display_get_compositor
|
|
||||||
meta_display_get_screens
|
|
||||||
meta_display_has_shape
|
|
||||||
meta_display_screen_for_root
|
|
||||||
meta_display_get_focus_window
|
|
||||||
meta_display_xwindow_is_a_no_focus_window
|
|
||||||
meta_display_get_damage_event_base
|
|
||||||
meta_display_get_shape_event_base
|
|
||||||
meta_display_xserver_time_is_before
|
|
||||||
meta_display_get_last_user_time
|
|
||||||
meta_display_get_current_time
|
|
||||||
meta_display_get_current_time_roundtrip
|
|
||||||
meta_display_get_ignored_modifier_mask
|
|
||||||
meta_display_get_tab_list
|
|
||||||
meta_display_get_tab_next
|
|
||||||
meta_display_get_tab_current
|
|
||||||
meta_display_begin_grab_op
|
|
||||||
meta_display_end_grab_op
|
|
||||||
meta_display_get_grab_op
|
|
||||||
meta_display_add_keybinding
|
|
||||||
meta_display_remove_keybinding
|
|
||||||
meta_display_get_keybinding_action
|
|
||||||
meta_display_set_input_focus_window
|
|
||||||
meta_display_focus_the_no_focus_window
|
|
||||||
meta_display_sort_windows_by_stacking
|
|
||||||
meta_display_get_leader_window
|
|
||||||
meta_display_add_ignored_crossing_serial
|
|
||||||
meta_display_unmanage_screen
|
|
||||||
meta_display_clear_mouse_mode
|
|
||||||
MetaDisplay
|
|
||||||
MetaDisplayClass
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_DISPLAY
|
|
||||||
META_DISPLAY_CLASS
|
|
||||||
META_DISPLAY_GET_CLASS
|
|
||||||
META_IS_DISPLAY
|
|
||||||
META_IS_DISPLAY_CLASS
|
|
||||||
META_TYPE_DISPLAY
|
|
||||||
meta_display_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>errors</FILE>
|
|
||||||
meta_error_trap_push
|
|
||||||
meta_error_trap_pop
|
|
||||||
meta_error_trap_push_with_return
|
|
||||||
meta_error_trap_pop_with_return
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>gradient</FILE>
|
|
||||||
MetaGradientType
|
|
||||||
meta_gradient_create_simple
|
|
||||||
meta_gradient_create_multi
|
|
||||||
meta_gradient_create_interwoven
|
|
||||||
meta_gradient_add_alpha
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>group</FILE>
|
|
||||||
MetaGroup
|
|
||||||
meta_window_get_group
|
|
||||||
meta_window_compute_group
|
|
||||||
meta_window_shutdown_group
|
|
||||||
meta_window_group_leader_changed
|
|
||||||
meta_display_lookup_group
|
|
||||||
meta_group_list_windows
|
|
||||||
meta_group_update_layers
|
|
||||||
meta_group_get_startup_id
|
|
||||||
meta_group_get_size
|
|
||||||
meta_group_property_notify
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>keybindings</FILE>
|
|
||||||
MetaKeyBinding
|
|
||||||
META_TYPE_KEY_BINDING
|
|
||||||
meta_key_binding_get_name
|
|
||||||
meta_key_binding_get_modifiers
|
|
||||||
meta_key_binding_get_mask
|
|
||||||
meta_key_binding_is_builtin
|
|
||||||
meta_keybindings_set_custom_handler
|
|
||||||
meta_screen_ungrab_all_keys
|
|
||||||
meta_screen_grab_all_keys
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>main</FILE>
|
|
||||||
meta_get_option_context
|
|
||||||
meta_init
|
|
||||||
meta_run
|
|
||||||
meta_get_replace_current_wm
|
|
||||||
meta_set_wm_name
|
|
||||||
meta_set_gnome_wm_keybindings
|
|
||||||
MetaExitCode
|
|
||||||
meta_exit
|
|
||||||
meta_quit
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-background</FILE>
|
|
||||||
<TITLE>MetaBackground</TITLE>
|
|
||||||
MetaBackgroundEffects
|
|
||||||
MetaBackground
|
|
||||||
MetaBackgroundClass
|
|
||||||
meta_background_new
|
|
||||||
meta_background_copy
|
|
||||||
meta_background_load_gradient
|
|
||||||
meta_background_load_color
|
|
||||||
meta_background_load_still_frame
|
|
||||||
meta_background_load_file_async
|
|
||||||
meta_background_load_file_finish
|
|
||||||
meta_background_get_filename
|
|
||||||
meta_background_get_style
|
|
||||||
meta_background_get_shading
|
|
||||||
meta_background_get_color
|
|
||||||
meta_background_get_second_color
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_BACKGROUND
|
|
||||||
META_BACKGROUND_CLASS
|
|
||||||
META_BACKGROUND_GET_CLASS
|
|
||||||
META_IS_BACKGROUND
|
|
||||||
META_IS_BACKGROUND_CLASS
|
|
||||||
META_TYPE_BACKGROUND
|
|
||||||
MetaBackgroundPrivate
|
|
||||||
meta_background_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-background-actor</FILE>
|
|
||||||
<TITLE>MetaBackgroundActor</TITLE>
|
|
||||||
MetaBackgroundActor
|
|
||||||
MetaBackgroundActorClass
|
|
||||||
meta_background_actor_new_for_screen
|
|
||||||
MetaSnippetHook
|
|
||||||
meta_background_actor_add_glsl_snippet
|
|
||||||
meta_background_actor_set_uniform_float
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_BACKGROUND_ACTOR
|
|
||||||
META_BACKGROUND_ACTOR_CLASS
|
|
||||||
META_BACKGROUND_ACTOR_GET_CLASS
|
|
||||||
META_IS_BACKGROUND_ACTOR
|
|
||||||
META_IS_BACKGROUND_ACTOR_CLASS
|
|
||||||
META_TYPE_BACKGROUND_ACTOR
|
|
||||||
MetaBackgroundActorPrivate
|
|
||||||
meta_background_actor_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-background-group</FILE>
|
|
||||||
<TITLE>MetaBackgroundGroup</TITLE>
|
|
||||||
MetaBackgroundGroupClass
|
|
||||||
meta_background_group_new
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_BACKGROUND_GROUP
|
|
||||||
META_BACKGROUND_GROUP_CLASS
|
|
||||||
META_BACKGROUND_GROUP_GET_CLASS
|
|
||||||
META_IS_BACKGROUND_GROUP
|
|
||||||
META_IS_BACKGROUND_GROUP_CLASS
|
|
||||||
META_TYPE_BACKGROUND_GROUP
|
|
||||||
MetaBackgroundGroupPrivate
|
|
||||||
meta_background_group_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-plugin</FILE>
|
|
||||||
<TITLE>MetaPlugin</TITLE>
|
|
||||||
MetaPlugin
|
|
||||||
MetaPluginClass
|
|
||||||
MetaPluginInfo
|
|
||||||
meta_plugin_running
|
|
||||||
meta_plugin_debug_mode
|
|
||||||
meta_plugin_get_info
|
|
||||||
MetaPluginVersion
|
|
||||||
META_PLUGIN_DECLARE
|
|
||||||
meta_plugin_switch_workspace_completed
|
|
||||||
meta_plugin_minimize_completed
|
|
||||||
meta_plugin_maximize_completed
|
|
||||||
meta_plugin_unmaximize_completed
|
|
||||||
meta_plugin_map_completed
|
|
||||||
meta_plugin_destroy_completed
|
|
||||||
MetaModalOptions
|
|
||||||
meta_plugin_begin_modal
|
|
||||||
meta_plugin_end_modal
|
|
||||||
meta_plugin_get_screen
|
|
||||||
meta_plugin_manager_set_plugin_type
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_PLUGIN
|
|
||||||
META_IS_PLUGIN_CLASS
|
|
||||||
META_PLUGIN
|
|
||||||
META_PLUGIN_CLASS
|
|
||||||
META_PLUGIN_GET_CLASS
|
|
||||||
META_TYPE_PLUGIN
|
|
||||||
MetaPluginPrivate
|
|
||||||
meta_plugin_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-shadow-factory</FILE>
|
|
||||||
MetaShadowParams
|
|
||||||
meta_shadow_factory_get_default
|
|
||||||
meta_shadow_factory_set_params
|
|
||||||
meta_shadow_factory_get_params
|
|
||||||
MetaShadowFactory
|
|
||||||
MetaShadowFactoryClass
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_SHADOW_FACTORY
|
|
||||||
META_IS_SHADOW_FACTORY_CLASS
|
|
||||||
META_SHADOW_FACTORY
|
|
||||||
META_SHADOW_FACTORY_CLASS
|
|
||||||
META_SHADOW_FACTORY_GET_CLASS
|
|
||||||
META_TYPE_SHADOW_FACTORY
|
|
||||||
meta_shadow_factory_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-shaped-texture</FILE>
|
|
||||||
<TITLE>MetaShapedTexture</TITLE>
|
|
||||||
MetaShapedTexture
|
|
||||||
MetaShapedTextureClass
|
|
||||||
meta_shaped_texture_new
|
|
||||||
meta_shaped_texture_set_create_mipmaps
|
|
||||||
meta_shaped_texture_update_area
|
|
||||||
meta_shaped_texture_set_pixmap
|
|
||||||
meta_shaped_texture_get_texture
|
|
||||||
meta_shaped_texture_set_mask_texture
|
|
||||||
meta_shaped_texture_set_clip_region
|
|
||||||
meta_shaped_texture_get_image
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_SHAPED_TEXTURE
|
|
||||||
META_IS_SHAPED_TEXTURE_CLASS
|
|
||||||
META_SHAPED_TEXTURE
|
|
||||||
META_SHAPED_TEXTURE_CLASS
|
|
||||||
META_SHAPED_TEXTURE_GET_CLASS
|
|
||||||
META_TYPE_SHAPED_TEXTURE
|
|
||||||
MetaShapedTexturePrivate
|
|
||||||
meta_shaped_texture_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-window-actor</FILE>
|
|
||||||
<TITLE>MetaWindowActor</TITLE>
|
|
||||||
MetaWindowActor
|
|
||||||
MetaWindowActorClass
|
|
||||||
meta_window_actor_get_x_window
|
|
||||||
meta_window_actor_get_workspace
|
|
||||||
meta_window_actor_get_meta_window
|
|
||||||
meta_window_actor_get_texture
|
|
||||||
meta_window_actor_is_override_redirect
|
|
||||||
meta_window_actor_get_description
|
|
||||||
meta_window_actor_showing_on_its_workspace
|
|
||||||
meta_window_actor_is_destroyed
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_WINDOW_ACTOR
|
|
||||||
META_IS_WINDOW_ACTOR_CLASS
|
|
||||||
META_TYPE_WINDOW_ACTOR
|
|
||||||
META_WINDOW_ACTOR
|
|
||||||
META_WINDOW_ACTOR_CLASS
|
|
||||||
META_WINDOW_ACTOR_GET_CLASS
|
|
||||||
MetaWindowActorPrivate
|
|
||||||
meta_window_actor_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>meta-cullable</FILE>
|
|
||||||
<TITLE>MetaCullable</TITLE>
|
|
||||||
MetaCullable
|
|
||||||
MetaCullableInterface
|
|
||||||
meta_cullable_cull_out
|
|
||||||
meta_cullable_reset_culling
|
|
||||||
meta_cullable_cull_out_children
|
|
||||||
meta_cullable_reset_culling_children
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_TYPE_CULLABLE
|
|
||||||
META_CULLABLE
|
|
||||||
META_IS_CULLABLE
|
|
||||||
META_CULLABLE_GET_IFACE
|
|
||||||
meta_cullable_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>prefs</FILE>
|
|
||||||
MetaPreference
|
|
||||||
MetaPrefsChangedFunc
|
|
||||||
meta_prefs_add_listener
|
|
||||||
meta_prefs_remove_listener
|
|
||||||
meta_prefs_init
|
|
||||||
meta_prefs_override_preference_schema
|
|
||||||
meta_preference_to_string
|
|
||||||
meta_prefs_get_mouse_button_mods
|
|
||||||
meta_prefs_get_mouse_button_resize
|
|
||||||
meta_prefs_get_mouse_button_menu
|
|
||||||
meta_prefs_get_focus_mode
|
|
||||||
meta_prefs_get_focus_new_windows
|
|
||||||
meta_prefs_get_attach_modal_dialogs
|
|
||||||
meta_prefs_get_raise_on_click
|
|
||||||
meta_prefs_get_theme
|
|
||||||
meta_prefs_get_titlebar_font
|
|
||||||
meta_prefs_get_num_workspaces
|
|
||||||
meta_prefs_get_dynamic_workspaces
|
|
||||||
meta_prefs_get_disable_workarounds
|
|
||||||
meta_prefs_get_auto_raise
|
|
||||||
meta_prefs_get_auto_raise_delay
|
|
||||||
meta_prefs_get_focus_change_on_pointer_rest
|
|
||||||
meta_prefs_get_gnome_accessibility
|
|
||||||
meta_prefs_get_gnome_animations
|
|
||||||
meta_prefs_get_edge_tiling
|
|
||||||
meta_prefs_get_auto_maximize
|
|
||||||
meta_prefs_get_button_layout
|
|
||||||
meta_prefs_get_action_double_click_titlebar
|
|
||||||
meta_prefs_get_action_middle_click_titlebar
|
|
||||||
meta_prefs_get_action_right_click_titlebar
|
|
||||||
meta_prefs_set_num_workspaces
|
|
||||||
meta_prefs_get_workspace_name
|
|
||||||
meta_prefs_change_workspace_name
|
|
||||||
meta_prefs_get_cursor_theme
|
|
||||||
meta_prefs_get_cursor_size
|
|
||||||
meta_prefs_get_compositing_manager
|
|
||||||
meta_prefs_get_force_fullscreen
|
|
||||||
meta_prefs_set_force_fullscreen
|
|
||||||
meta_prefs_get_workspaces_only_on_primary
|
|
||||||
meta_prefs_get_no_tab_popup
|
|
||||||
meta_prefs_set_no_tab_popup
|
|
||||||
meta_prefs_get_draggable_border_width
|
|
||||||
meta_prefs_get_ignore_request_hide_titlebar
|
|
||||||
meta_prefs_set_ignore_request_hide_titlebar
|
|
||||||
MetaKeyBindingAction
|
|
||||||
MetaKeyBindingFlags
|
|
||||||
MetaKeyCombo
|
|
||||||
MetaKeyHandlerFunc
|
|
||||||
meta_prefs_get_keybindings
|
|
||||||
meta_prefs_get_keybinding_action
|
|
||||||
meta_prefs_get_window_binding
|
|
||||||
meta_prefs_get_overlay_binding
|
|
||||||
meta_prefs_get_visual_bell
|
|
||||||
meta_prefs_bell_is_audible
|
|
||||||
meta_prefs_get_visual_bell_type
|
|
||||||
MetaKeyHandler
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
meta_key_binding_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>screen</FILE>
|
|
||||||
MetaScreen
|
|
||||||
MetaScreenClass
|
|
||||||
meta_screen_get_screen_number
|
|
||||||
meta_screen_get_display
|
|
||||||
meta_screen_get_xroot
|
|
||||||
meta_screen_get_size
|
|
||||||
meta_screen_get_compositor_data
|
|
||||||
meta_screen_set_compositor_data
|
|
||||||
meta_screen_for_x_screen
|
|
||||||
meta_screen_set_cm_selection
|
|
||||||
meta_screen_unset_cm_selection
|
|
||||||
meta_screen_get_startup_sequences
|
|
||||||
meta_screen_get_workspaces
|
|
||||||
meta_screen_get_n_workspaces
|
|
||||||
meta_screen_get_workspace_by_index
|
|
||||||
meta_screen_remove_workspace
|
|
||||||
meta_screen_append_new_workspace
|
|
||||||
meta_screen_get_active_workspace_index
|
|
||||||
meta_screen_get_active_workspace
|
|
||||||
meta_screen_get_n_monitors
|
|
||||||
meta_screen_get_primary_monitor
|
|
||||||
meta_screen_get_current_monitor
|
|
||||||
meta_screen_get_monitor_geometry
|
|
||||||
meta_screen_get_monitor_index_for_rect
|
|
||||||
meta_screen_focus_default_window
|
|
||||||
MetaScreenCorner
|
|
||||||
meta_screen_override_workspace_layout
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_SCREEN
|
|
||||||
META_IS_SCREEN_CLASS
|
|
||||||
META_SCREEN
|
|
||||||
META_SCREEN_CLASS
|
|
||||||
META_SCREEN_GET_CLASS
|
|
||||||
META_TYPE_SCREEN
|
|
||||||
meta_screen_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>util</FILE>
|
|
||||||
meta_is_verbose
|
|
||||||
meta_set_verbose
|
|
||||||
meta_is_debugging
|
|
||||||
meta_set_debugging
|
|
||||||
meta_is_syncing
|
|
||||||
meta_set_syncing
|
|
||||||
meta_set_replace_current_wm
|
|
||||||
meta_debug_spew_real
|
|
||||||
meta_verbose_real
|
|
||||||
meta_bug
|
|
||||||
meta_warning
|
|
||||||
meta_fatal
|
|
||||||
MetaDebugTopic
|
|
||||||
meta_topic_real
|
|
||||||
meta_add_verbose_topic
|
|
||||||
meta_remove_verbose_topic
|
|
||||||
meta_push_no_msg_prefix
|
|
||||||
meta_pop_no_msg_prefix
|
|
||||||
meta_unsigned_long_equal
|
|
||||||
meta_unsigned_long_hash
|
|
||||||
meta_frame_type_to_string
|
|
||||||
meta_gravity_to_string
|
|
||||||
_
|
|
||||||
N_
|
|
||||||
meta_g_utf8_strndup
|
|
||||||
meta_free_gslist_and_elements
|
|
||||||
meta_show_dialog
|
|
||||||
meta_debug_spew
|
|
||||||
meta_verbose
|
|
||||||
meta_topic
|
|
||||||
MetaLaterType
|
|
||||||
meta_later_add
|
|
||||||
meta_later_remove
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>window</FILE>
|
|
||||||
MetaWindow
|
|
||||||
MetaWindowClass
|
|
||||||
MetaWindowType
|
|
||||||
MetaMaximizeFlags
|
|
||||||
meta_window_get_frame
|
|
||||||
meta_window_has_focus
|
|
||||||
meta_window_appears_focused
|
|
||||||
meta_window_is_shaded
|
|
||||||
meta_window_is_monitor_sized
|
|
||||||
meta_window_is_override_redirect
|
|
||||||
meta_window_is_skip_taskbar
|
|
||||||
meta_window_get_rect
|
|
||||||
meta_window_get_input_rect
|
|
||||||
meta_window_get_frame_rect
|
|
||||||
meta_window_get_outer_rect
|
|
||||||
meta_window_client_rect_to_frame_rect
|
|
||||||
meta_window_frame_rect_to_client_rect
|
|
||||||
meta_window_get_screen
|
|
||||||
meta_window_get_display
|
|
||||||
meta_window_get_xwindow
|
|
||||||
meta_window_get_window_type
|
|
||||||
meta_window_get_window_type_atom
|
|
||||||
meta_window_get_workspace
|
|
||||||
meta_window_get_monitor
|
|
||||||
meta_window_is_on_all_workspaces
|
|
||||||
meta_window_located_on_workspace
|
|
||||||
meta_window_is_hidden
|
|
||||||
meta_window_activate
|
|
||||||
meta_window_activate_with_workspace
|
|
||||||
meta_window_get_description
|
|
||||||
meta_window_get_wm_class
|
|
||||||
meta_window_get_wm_class_instance
|
|
||||||
meta_window_showing_on_its_workspace
|
|
||||||
meta_window_get_gtk_application_id
|
|
||||||
meta_window_get_gtk_unique_bus_name
|
|
||||||
meta_window_get_gtk_application_object_path
|
|
||||||
meta_window_get_gtk_window_object_path
|
|
||||||
meta_window_get_gtk_app_menu_object_path
|
|
||||||
meta_window_get_gtk_menubar_object_path
|
|
||||||
meta_window_move
|
|
||||||
meta_window_move_frame
|
|
||||||
meta_window_move_resize_frame
|
|
||||||
meta_window_move_to_monitor
|
|
||||||
meta_window_resize
|
|
||||||
meta_window_set_demands_attention
|
|
||||||
meta_window_unset_demands_attention
|
|
||||||
meta_window_get_startup_id
|
|
||||||
meta_window_change_workspace_by_index
|
|
||||||
meta_window_change_workspace
|
|
||||||
meta_window_get_compositor_private
|
|
||||||
meta_window_set_compositor_private
|
|
||||||
meta_window_configure_notify
|
|
||||||
meta_window_get_role
|
|
||||||
meta_window_get_layer
|
|
||||||
meta_window_find_root_ancestor
|
|
||||||
meta_window_is_ancestor_of_transient
|
|
||||||
MetaWindowForeachFunc
|
|
||||||
meta_window_foreach_transient
|
|
||||||
meta_window_foreach_ancestor
|
|
||||||
meta_window_get_maximized
|
|
||||||
meta_window_is_fullscreen
|
|
||||||
meta_window_is_on_primary_monitor
|
|
||||||
meta_window_requested_bypass_compositor
|
|
||||||
meta_window_requested_dont_bypass_compositor
|
|
||||||
meta_window_is_mapped
|
|
||||||
meta_window_toplevel_is_mapped
|
|
||||||
meta_window_get_icon_geometry
|
|
||||||
meta_window_set_icon_geometry
|
|
||||||
meta_window_maximize
|
|
||||||
meta_window_unmaximize
|
|
||||||
meta_window_minimize
|
|
||||||
meta_window_unminimize
|
|
||||||
meta_window_raise
|
|
||||||
meta_window_lower
|
|
||||||
meta_window_get_title
|
|
||||||
meta_window_get_transient_for
|
|
||||||
meta_window_get_transient_for_as_xid
|
|
||||||
meta_window_delete
|
|
||||||
meta_window_get_stable_sequence
|
|
||||||
meta_window_get_user_time
|
|
||||||
meta_window_get_pid
|
|
||||||
meta_window_get_client_machine
|
|
||||||
meta_window_is_remote
|
|
||||||
meta_window_is_modal
|
|
||||||
meta_window_is_attached_dialog
|
|
||||||
meta_window_get_mutter_hints
|
|
||||||
meta_window_get_frame_type
|
|
||||||
meta_window_get_frame_bounds
|
|
||||||
meta_window_get_tile_match
|
|
||||||
meta_window_make_fullscreen
|
|
||||||
meta_window_unmake_fullscreen
|
|
||||||
meta_window_make_above
|
|
||||||
meta_window_unmake_above
|
|
||||||
meta_window_shade
|
|
||||||
meta_window_unshade
|
|
||||||
meta_window_stick
|
|
||||||
meta_window_unstick
|
|
||||||
meta_window_kill
|
|
||||||
meta_window_focus
|
|
||||||
meta_window_check_alive
|
|
||||||
meta_window_get_work_area_current_monitor
|
|
||||||
meta_window_get_work_area_for_monitor
|
|
||||||
meta_window_get_work_area_all_monitors
|
|
||||||
meta_window_begin_grab_op
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_WINDOW
|
|
||||||
META_IS_WINDOW_CLASS
|
|
||||||
META_TYPE_WINDOW
|
|
||||||
META_WINDOW
|
|
||||||
META_WINDOW_CLASS
|
|
||||||
META_WINDOW_GET_CLASS
|
|
||||||
meta_window_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
<SECTION>
|
|
||||||
<FILE>workspace</FILE>
|
|
||||||
MetaWorkspace
|
|
||||||
MetaWorkspaceClass
|
|
||||||
meta_workspace_index
|
|
||||||
meta_workspace_get_screen
|
|
||||||
meta_workspace_list_windows
|
|
||||||
meta_workspace_get_work_area_for_monitor
|
|
||||||
meta_workspace_get_work_area_all_monitors
|
|
||||||
meta_workspace_activate
|
|
||||||
meta_workspace_activate_with_focus
|
|
||||||
meta_workspace_update_window_hints
|
|
||||||
meta_workspace_set_builtin_struts
|
|
||||||
meta_workspace_get_neighbor
|
|
||||||
<SUBSECTION Standard>
|
|
||||||
META_IS_WORKSPACE
|
|
||||||
META_IS_WORKSPACE_CLASS
|
|
||||||
META_TYPE_WORKSPACE
|
|
||||||
META_WORKSPACE
|
|
||||||
META_WORKSPACE_CLASS
|
|
||||||
META_WORKSPACE_GET_CLASS
|
|
||||||
meta_workspace_get_type
|
|
||||||
</SECTION>
|
|
||||||
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<part id="mutter-overview">
|
|
||||||
|
|
||||||
<title>Overview</title>
|
|
||||||
|
|
||||||
<partintro>
|
|
||||||
|
|
||||||
<para>Mutter is a GObject-based library for creating compositing window managers.</para>
|
|
||||||
|
|
||||||
<para>Compositors that wish to use Mutter must implement a subclass of #MetaPlugin and register it with meta_plugin_manager_set_plugin_type() before calling meta_init() but after g_type_init().</para>
|
|
||||||
|
|
||||||
<para>#MetaPlugin provides virtual functions that allow to override default behavior in the window management code, such as the effect to perform when a window is created or when switching workspaces.</para>
|
|
||||||
|
|
||||||
</partintro>
|
|
||||||
|
|
||||||
</part>
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
<part id="running-mutter">
|
|
||||||
|
|
||||||
<title>Running Mutter</title>
|
|
||||||
|
|
||||||
<partintro>
|
|
||||||
|
|
||||||
<section id="environment-variables">
|
|
||||||
<title>Environment Variables</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Mutter automatically checks environment variables during
|
|
||||||
its initialization. These environment variables are meant
|
|
||||||
as debug tools or overrides for default behaviours:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_VERBOSE</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Enable verbose mode, in which more information is printed to the console. Mutter needs to be built with the --enable-verbose-mode option (enabled by default). For more fine-grained control of the output, see meta_add_verbose_topic().</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_DEBUG</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Traps and prints X errors to the console.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_G_FATAL_WARNINGS</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Causes any logging from the domains Mutter, Gtk, Gdk, Pango or GLib to terminate the process (only when using the log functions in GLib).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_USE_LOGFILE</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Log all messages to a temporary file.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_DEBUG_XINERAMA</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Log extra information about support of the XINERAMA extension.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_DEBUG_SM</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Log extra information about session management.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_DEBUG_BUTTON_GRABS</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Log extra information about button grabs.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_SYNC</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Call XSync after each X call.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_DISPLAY</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Name of the X11 display to use.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>META_DISABLE_MIPMAPS</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Disable use of mipmaps for the textures that back window pixmaps.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_USE_STATIC_GRAVITY</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Enable support for clients with static bit-gravity.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_WM_CLASS_FILTER</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Comma-separated list of WM_CLASS names to which to restrict Mutter to.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
<varlistentry>
|
|
||||||
<term>MUTTER_DISABLE_FALLBACK_COLOR</term>
|
|
||||||
<listitem>
|
|
||||||
<para>Disable fallback for themed colors, for easier detection of typographical errors.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</partintro>
|
|
||||||
</part>
|
|
||||||
@@ -21,7 +21,6 @@ environment.</description>
|
|||||||
-->
|
-->
|
||||||
<mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/gnome-shell-list" />
|
<mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/gnome-shell-list" />
|
||||||
<download-page rdf:resource="http://download.gnome.org/sources/mutter/" />
|
<download-page rdf:resource="http://download.gnome.org/sources/mutter/" />
|
||||||
<download-page rdf:resource="http://download.gnome.org/sources/mutter-wayland/" />
|
|
||||||
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=mutter" />
|
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=mutter" />
|
||||||
|
|
||||||
<category rdf:resource="http://api.gnome.org/doap-extensions#desktop" />
|
<category rdf:resource="http://api.gnome.org/doap-extensions#desktop" />
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ is
|
|||||||
it
|
it
|
||||||
ja
|
ja
|
||||||
ka
|
ka
|
||||||
kk
|
|
||||||
kn
|
kn
|
||||||
ko
|
ko
|
||||||
ku
|
ku
|
||||||
@@ -81,7 +80,6 @@ sr@latin
|
|||||||
sv
|
sv
|
||||||
ta
|
ta
|
||||||
te
|
te
|
||||||
tg
|
|
||||||
th
|
th
|
||||||
tk
|
tk
|
||||||
tr
|
tr
|
||||||
|
|||||||
@@ -3,9 +3,7 @@
|
|||||||
src/50-mutter-navigation.xml.in
|
src/50-mutter-navigation.xml.in
|
||||||
src/50-mutter-system.xml.in
|
src/50-mutter-system.xml.in
|
||||||
src/50-mutter-windows.xml.in
|
src/50-mutter-windows.xml.in
|
||||||
src/backends/meta-monitor-manager.c
|
|
||||||
src/compositor/compositor.c
|
src/compositor/compositor.c
|
||||||
src/compositor/meta-background.c
|
|
||||||
src/core/bell.c
|
src/core/bell.c
|
||||||
src/core/core.c
|
src/core/core.c
|
||||||
src/core/delete.c
|
src/core/delete.c
|
||||||
@@ -16,17 +14,20 @@ src/core/main.c
|
|||||||
src/core/mutter.c
|
src/core/mutter.c
|
||||||
src/core/prefs.c
|
src/core/prefs.c
|
||||||
src/core/screen.c
|
src/core/screen.c
|
||||||
src/x11/session.c
|
src/core/session.c
|
||||||
src/core/util.c
|
src/core/util.c
|
||||||
src/core/window.c
|
src/core/window.c
|
||||||
src/x11/window-props.c
|
src/core/window-props.c
|
||||||
src/x11/xprops.c
|
src/core/xprops.c
|
||||||
src/mutter-wayland.desktop.in
|
src/mutter.desktop.in
|
||||||
|
src/mutter-wm.desktop.in
|
||||||
src/org.gnome.mutter.gschema.xml.in
|
src/org.gnome.mutter.gschema.xml.in
|
||||||
src/org.gnome.mutter.wayland.gschema.xml.in
|
src/tools/mutter-message.c
|
||||||
src/ui/frames.c
|
src/ui/frames.c
|
||||||
src/ui/menu.c
|
src/ui/menu.c
|
||||||
src/ui/metaaccellabel.c
|
src/ui/metaaccellabel.c
|
||||||
src/ui/resizepopup.c
|
src/ui/resizepopup.c
|
||||||
src/ui/theme.c
|
src/ui/theme.c
|
||||||
src/ui/theme-parser.c
|
src/ui/theme-parser.c
|
||||||
|
src/ui/theme-viewer.c
|
||||||
|
|
||||||
|
|||||||
224
po/ar.po
224
po/ar.po
@@ -4,14 +4,14 @@
|
|||||||
# Arafat Medini <lumina@silverpen.de>, 2003.
|
# Arafat Medini <lumina@silverpen.de>, 2003.
|
||||||
# Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004.
|
# Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004.
|
||||||
# Djihed Afifi <djihed@gmail.com>, 2006.
|
# Djihed Afifi <djihed@gmail.com>, 2006.
|
||||||
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
|
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
|
||||||
# Anas Afif Emad <anas.e87@gmail.com>, 2008.
|
# Anas Afif Emad <anas.e87@gmail.com>, 2008.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: metacity.HEAD\n"
|
"Project-Id-Version: metacity.HEAD\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-03-09 22:48+0200\n"
|
"POT-Creation-Date: 2012-12-24 13:14+0200\n"
|
||||||
"PO-Revision-Date: 2013-03-09 22:48+0200\n"
|
"PO-Revision-Date: 2012-12-24 13:17+0200\n"
|
||||||
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
|
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
|
||||||
"Language-Team: Arabic <doc@arabeyes.org>\n"
|
"Language-Team: Arabic <doc@arabeyes.org>\n"
|
||||||
"Language: ar\n"
|
"Language: ar\n"
|
||||||
@@ -167,8 +167,8 @@ msgid "Close window"
|
|||||||
msgstr "أغلق النّافذة"
|
msgstr "أغلق النّافذة"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
msgid "Hide window"
|
msgid "Minimize window"
|
||||||
msgstr "أخفِ النّافذة"
|
msgstr "صغّر النّافذة"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:10
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
@@ -212,17 +212,13 @@ msgstr "المنظور مقسوم على اليسار"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:502
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
"\"."
|
"\"."
|
||||||
msgstr "يعمل مدير مزج آخر على الشاشة %i والعرض \"%s\"."
|
msgstr "يعمل مدير مزج آخر على الشاشة %i والعرض \"%s\"."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1180
|
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:320
|
#: ../src/core/bell.c:320
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "حدث جرس"
|
msgstr "حدث جرس"
|
||||||
@@ -255,28 +251,23 @@ msgstr "ا_نتظر"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "أ_جبر الإنهاء"
|
msgstr "أ_جبر الإنهاء"
|
||||||
|
|
||||||
#: ../src/core/display.c:402
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب"
|
msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب"
|
||||||
|
|
||||||
#: ../src/core/display.c:494
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\n"
|
msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:929
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
"binding\n"
|
"binding\n"
|
||||||
msgstr "يستعمل برنامج آخر المفتاح %s بالفعل مع المغيرين %x كرابط\n"
|
msgstr "يستعمل برنامج آخر المفتاح %s بالفعل مع المغيرين %x كرابط\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1129
|
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" ليس اختصارا صحيحا\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:196
|
#: ../src/core/main.c:196
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "عطّل الاتصال بمدير الجلسة"
|
msgstr "عطّل الاتصال بمدير الجلسة"
|
||||||
@@ -301,12 +292,12 @@ msgstr "ابدأ الجلسة من ملف محفوظ"
|
|||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "اجعل نداءات س متزامنة"
|
msgstr "اجعل نداءات س متزامنة"
|
||||||
|
|
||||||
#: ../src/core/main.c:533
|
#: ../src/core/main.c:496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "فشلت قراءة دليل السِمات : %s\n"
|
msgstr "فشلت قراءة دليل السِمات : %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:549
|
#: ../src/core/main.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -334,7 +325,7 @@ msgstr "اطبع الإصدارة"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "ملحق مَتَر الذي سيُستخدم"
|
msgstr "ملحق مَتَر الذي سيُستخدم"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1087
|
#: ../src/core/prefs.c:1079
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
@@ -342,12 +333,12 @@ msgstr ""
|
|||||||
"عطّلت الحلول الجزئيّة للتطبيقات المعطوبة . ربما لن تتصرف بعض التطبيقات "
|
"عطّلت الحلول الجزئيّة للتطبيقات المعطوبة . ربما لن تتصرف بعض التطبيقات "
|
||||||
"بسلامة.\n"
|
"بسلامة.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1162
|
#: ../src/core/prefs.c:1154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr "لا يمكن تحليل وصف الخط \"%s\" من مفتاح GSettings %s\n"
|
msgstr "لا يمكن تحليل وصف الخط \"%s\" من مفتاح GSettings %s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1228
|
#: ../src/core/prefs.c:1220
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
@@ -355,7 +346,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لمغير أزرار الفأرة\n"
|
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لمغير أزرار الفأرة\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1780
|
#: ../src/core/prefs.c:1757
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
@@ -364,17 +355,17 @@ msgstr ""
|
|||||||
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لارتباط المفتاح \"%s"
|
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لارتباط المفتاح \"%s"
|
||||||
"\"\n"
|
"\"\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1879
|
#: ../src/core/prefs.c:1854
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "مساحة العمل %d"
|
msgstr "مساحة العمل %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:674
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "الشاشة %d على العرض '%s' غير صحيحة\n"
|
msgstr "الشاشة %d على العرض '%s' غير صحيحة\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:690
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -383,18 +374,18 @@ msgstr ""
|
|||||||
"الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل "
|
"الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل "
|
||||||
"--replace لتحُلّ محلّ مدير النوافذ الحالي.\n"
|
"--replace لتحُلّ محلّ مدير النوافذ الحالي.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:717
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n"
|
msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:795
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n"
|
msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:980
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n"
|
msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n"
|
||||||
@@ -491,7 +482,7 @@ msgid "Window manager error: "
|
|||||||
msgstr "خطأ مدير النوافذ: "
|
msgstr "خطأ مدير النوافذ: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7538
|
#: ../src/core/window.c:7275
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -507,7 +498,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8262
|
#: ../src/core/window.c:7941
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -516,22 +507,22 @@ msgstr ""
|
|||||||
"ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم "
|
"ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم "
|
||||||
"الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n"
|
"الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "ضبط التطبيق رمز NET_WM_PID غير مفهوم %lu\n"
|
msgstr "ضبط التطبيق رمز NET_WM_PID غير مفهوم %lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (على %s)"
|
msgstr "%s (على %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
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:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
|
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
|
||||||
@@ -654,20 +645,10 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
#: ../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, new windows that are initially the size of the monitor "
|
|
||||||
"automatically get maximized."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -870,69 +851,69 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d × %d"
|
msgstr "%d × %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:235
|
#: ../src/ui/theme.c:234
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "أعلى"
|
msgstr "أعلى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:237
|
#: ../src/ui/theme.c:236
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "أسفل"
|
msgstr "أسفل"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:239
|
#: ../src/ui/theme.c:238
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "يسار"
|
msgstr "يسار"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:241
|
#: ../src/ui/theme.c:240
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "يمين"
|
msgstr "يمين"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:269
|
#: ../src/ui/theme.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "هندسة الإطار لا تخصص البعد \"%s\""
|
msgstr "هندسة الإطار لا تخصص البعد \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:288
|
#: ../src/ui/theme.c:287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "هندسة الإطار لا تخصص البعد \"%s\" للحد \"%s\""
|
msgstr "هندسة الإطار لا تخصص البعد \"%s\" للحد \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:325
|
#: ../src/ui/theme.c:324
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "النسبة الجانبية للزر %g غير معقولة"
|
msgstr "النسبة الجانبية للزر %g غير معقولة"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:337
|
#: ../src/ui/theme.c:336
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "هندسة الإطار لا تخصص حجم الأزرار"
|
msgstr "هندسة الإطار لا تخصص حجم الأزرار"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1050
|
#: ../src/ui/theme.c:1049
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "يجب أن يكون للتّدرُّجات لونان على الأقل"
|
msgstr "يجب أن يكون للتّدرُّجات لونان على الأقل"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1202
|
#: ../src/ui/theme.c:1201
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:"
|
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:fg"
|
||||||
"fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
"[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1218
|
#: ../src/ui/theme.c:1217
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
"_ are valid"
|
"_ are valid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1232
|
#: ../src/ui/theme.c:1231
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -940,7 +921,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
|
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1277
|
#: ../src/ui/theme.c:1276
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -949,158 +930,158 @@ msgstr ""
|
|||||||
"يجب أن تكون حالة تخصيصات ألوان جتك في قوسان قائمان، مثال gtk:fg[NORMAL] "
|
"يجب أن تكون حالة تخصيصات ألوان جتك في قوسان قائمان، مثال gtk:fg[NORMAL] "
|
||||||
"NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
"NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1291
|
#: ../src/ui/theme.c:1290
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:"
|
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:fg"
|
||||||
"fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
"[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1302
|
#: ../src/ui/theme.c:1301
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "لم تفهم الحالة \"%s\" في تخصيص الألوان"
|
msgstr "لم تفهم الحالة \"%s\" في تخصيص الألوان"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1315
|
#: ../src/ui/theme.c:1314
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "لم يفهم جزء اللون \"%s\" في تخصيص اللون"
|
msgstr "لم يفهم جزء اللون \"%s\" في تخصيص اللون"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1344
|
#: ../src/ui/theme.c:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
"format"
|
"format"
|
||||||
msgstr "تهيئة الخلط \"blend/bg_color/fg_color/alpha\"، \"%s\"لا يناسب التهيئة"
|
msgstr "تهيئة الخلط \"blend/bg_color/fg_color/alpha\"، \"%s\"لا يناسب التهيئة"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1355
|
#: ../src/ui/theme.c:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "لا يمكن تحليل قيمة الشفافية \"%s\" في اللون المخلط"
|
msgstr "لا يمكن تحليل قيمة الشفافية \"%s\" في اللون المخلط"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1365
|
#: ../src/ui/theme.c:1364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr "قيمة الشفافية \"%s\" في اللون المخلوط ليست بين 0.0 و 1.0"
|
msgstr "قيمة الشفافية \"%s\" في اللون المخلوط ليست بين 0.0 و 1.0"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1412
|
#: ../src/ui/theme.c:1411
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
|
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1423
|
#: ../src/ui/theme.c:1422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "لا يمكن تحليل عامل التظليل \"%s\" في اللون المظلل"
|
msgstr "لا يمكن تحليل عامل التظليل \"%s\" في اللون المظلل"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1433
|
#: ../src/ui/theme.c:1432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "عامل التظليل \"%s\" في اللون المظلل سلبي"
|
msgstr "عامل التظليل \"%s\" في اللون المظلل سلبي"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1462
|
#: ../src/ui/theme.c:1461
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "لا يمكن تحليل اللون \"%s\""
|
msgstr "لا يمكن تحليل اللون \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1779
|
#: ../src/ui/theme.c:1778
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "تعبير الإحداثيّات يحتوي على الرمز '%s' الممنوع"
|
msgstr "تعبير الإحداثيّات يحتوي على الرمز '%s' الممنوع"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1806
|
#: ../src/ui/theme.c:1805
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
"parsed"
|
"parsed"
|
||||||
msgstr "تعبير الإحداثيّات يحتوي على عدد نقطة متغيرة '%s' تعذّر تحليله"
|
msgstr "تعبير الإحداثيّات يحتوي على عدد نقطة متغيرة '%s' تعذّر تحليله"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1820
|
#: ../src/ui/theme.c:1819
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "تعبير الإحداثيّات يحتوي على عدد صحيح '%s' تعذّر تحليله"
|
msgstr "تعبير الإحداثيّات يحتوي على عدد صحيح '%s' تعذّر تحليله"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1941
|
#: ../src/ui/theme.c:1940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
"\"%s\""
|
"\"%s\""
|
||||||
msgstr "تعبير الإحداثيّات يحتوي على مقسوم مجهول عند بداية هذا النص: \"%s\""
|
msgstr "تعبير الإحداثيّات يحتوي على مقسوم مجهول عند بداية هذا النص: \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1998
|
#: ../src/ui/theme.c:1997
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "تعبير الإحداثيّات فارغ أو لم يفهم"
|
msgstr "تعبير الإحداثيّات فارغ أو لم يفهم"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "تعبير الإحداثيّات ينتُج عند القسمة على صفر"
|
msgstr "تعبير الإحداثيّات ينتُج عند القسمة على صفر"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2163
|
#: ../src/ui/theme.c:2162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
msgstr "تعبير الإحداثيّاتيّات يحاول استعمال مقسوم mod على عدد فاصلة متحرّكة"
|
msgstr "تعبير الإحداثيّاتيّات يحاول استعمال مقسوم mod على عدد فاصلة متحرّكة"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2219
|
#: ../src/ui/theme.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr "تعبير الإحداثيّات له مقسوم \"%s\" بالرغم من ترقبه قاسم"
|
msgstr "تعبير الإحداثيّات له مقسوم \"%s\" بالرغم من ترقبه قاسم"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2228
|
#: ../src/ui/theme.c:2227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr "تعبير الإحداثيّات له قاسم بالرغم من ترقبه لمقسوم"
|
msgstr "تعبير الإحداثيّات له قاسم بالرغم من ترقبه لمقسوم"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2236
|
#: ../src/ui/theme.c:2235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "انتهى تعبير الإحداثيّات بمقسوم عوضا عن قاسم"
|
msgstr "انتهى تعبير الإحداثيّات بمقسوم عوضا عن قاسم"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2246
|
#: ../src/ui/theme.c:2245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
"operand in between"
|
"operand in between"
|
||||||
msgstr "لتعبير الإحداثيّات مقسوم \"%c\" يتبع القاسم \"%c\" بدون قاسم بينهما"
|
msgstr "لتعبير الإحداثيّات مقسوم \"%c\" يتبع القاسم \"%c\" بدون قاسم بينهما"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr "كان لتعبير الإحداثيّات متغير أو ثابت \"%s\""
|
msgstr "كان لتعبير الإحداثيّات متغير أو ثابت \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2496
|
#: ../src/ui/theme.c:2495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "غمر محلّل تعبير الإحداثيّات مجاله"
|
msgstr "غمر محلّل تعبير الإحداثيّات مجاله"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2525
|
#: ../src/ui/theme.c:2524
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr "كان لتعبير الإحداثيّات قوس غلق بدون قوس فتح"
|
msgstr "كان لتعبير الإحداثيّات قوس غلق بدون قوس فتح"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2589
|
#: ../src/ui/theme.c:2588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr "كان لتعبير الإحداثيات قوس فتح بدون قوس غلق"
|
msgstr "كان لتعبير الإحداثيات قوس فتح بدون قوس غلق"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2600
|
#: ../src/ui/theme.c:2599
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "تعبير الإحداثيات لا يملك قاسمات و مقسومات"
|
msgstr "تعبير الإحداثيات لا يملك قاسمات و مقسومات"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "احتوت السِمة على تعبير ادى الى خطأ: %s\n"
|
msgstr "احتوت السِمة على تعبير ادى الى خطأ: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4499
|
#: ../src/ui/theme.c:4498
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -1109,25 +1090,25 @@ msgstr ""
|
|||||||
"يجب تخصيص <button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> "
|
"يجب تخصيص <button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> "
|
||||||
"لأسلوب الإطار هذا"
|
"لأسلوب الإطار هذا"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/> مفقود"
|
"<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/> مفقود"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5083
|
#: ../src/ui/theme.c:5082
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "فشل تحميل السِمة \"%s\": %s\n"
|
msgstr "فشل تحميل السِمة \"%s\": %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||||
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "لا <%s> ضبط للسِمة \"%s\""
|
msgstr "لا <%s> ضبط للسِمة \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5255
|
#: ../src/ui/theme.c:5254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1136,14 +1117,14 @@ msgstr ""
|
|||||||
"لا أسلوب إطار مضبوط لنوع النافذة \"%s\" في السِمة \"%s\"، اضف عنصر <window "
|
"لا أسلوب إطار مضبوط لنوع النافذة \"%s\" في السِمة \"%s\"، اضف عنصر <window "
|
||||||
"type=\"%s\" style_set=\"whatever\"/>"
|
"type=\"%s\" style_set=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"الثوابت المعرفة من طرف المستخدم يجب أن تبدأ بحروف كبيرة، \"%s\" لا يبدأ بذلك"
|
"الثوابت المعرفة من طرف المستخدم يجب أن تبدأ بحروف كبيرة، \"%s\" لا يبدأ بذلك"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "عُرِّف الثابت \"%s\" بالفعل"
|
msgstr "عُرِّف الثابت \"%s\" بالفعل"
|
||||||
@@ -1618,56 +1599,56 @@ msgstr "حد"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "صندوق حوار سائد"
|
msgstr "صندوق حوار سائد"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "تجربة تصميم الأزرار %d"
|
msgstr "تجربة تصميم الأزرار %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g ملي ثانية لرسم إظار واحد للنافذة"
|
msgstr "%g ملي ثانية لرسم إظار واحد للنافذة"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "الإستعمال: metacity-theme-viewer [THEMENAME]\n"
|
msgstr "الإستعمال: metacity-theme-viewer [THEMENAME]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "خطأ عند تحميل السِمة: %s\n"
|
msgstr "خطأ عند تحميل السِمة: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "حُمِّلت السِمة \"%s\" في %g ثواني\n"
|
msgstr "حُمِّلت السِمة \"%s\" في %g ثواني\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:870
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "خط عنوان عادي"
|
msgstr "خط عنوان عادي"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:876
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "خط عنوان صغير"
|
msgstr "خط عنوان صغير"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:882
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "خط عنوان كبير"
|
msgstr "خط عنوان كبير"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:887
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "تصاميم الأزرار"
|
msgstr "تصاميم الأزرار"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:892
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "علامة إهتداء"
|
msgstr "علامة إهتداء"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "عنوان النافذة يكون هنا"
|
msgstr "عنوان النافذة يكون هنا"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1052
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1677,46 +1658,43 @@ msgstr ""
|
|||||||
"دفعت %d إطارات في %g ثوان بإتجاه العميل (%g ملي ثانية لكل إطار) و %g ثواني "
|
"دفعت %d إطارات في %g ثوان بإتجاه العميل (%g ملي ثانية لكل إطار) و %g ثواني "
|
||||||
"بوقت ساعة حائطية مع مصادر خادوم X (%g ملي ثانية لكل إطار)\n"
|
"بوقت ساعة حائطية مع مصادر خادوم X (%g ملي ثانية لكل إطار)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1271
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr "أرجع إختبار تعبير الموقع TRUE لكنه لم يكتشف الخطأ"
|
msgstr "أرجع إختبار تعبير الموقع TRUE لكنه لم يكتشف الخطأ"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1273
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr "أرجع إختبار تعبير الموقع خطأ لكنه لم يكتشف الخطأ"
|
msgstr "أرجع إختبار تعبير الموقع خطأ لكنه لم يكتشف الخطأ"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "تُرُقِّب خطأ لكن لم يعطى أي خطأ"
|
msgstr "تُرُقِّب خطأ لكن لم يعطى أي خطأ"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "تُرقّب %d لكن أعطى %d"
|
msgstr "تُرقّب %d لكن أعطى %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1285
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "لم يُترقب خطأ لكنه أرجع واحدًا: %s"
|
msgstr "لم يُترقب خطأ لكنه أرجع واحدًا: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "قيمة س كانت %d، تُرُقِّب %d"
|
msgstr "قيمة س كانت %d، تُرُقِّب %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1292
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "قيمة ص كانت %d، تُرُقَِب %d"
|
msgstr "قيمة ص كانت %d، تُرُقَِب %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1357
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "حُلِّلت %d تعابير الإحداثيات في %g ثواني (بمعدّل %g ثوان)\n"
|
msgstr "حُلِّلت %d تعابير الإحداثيات في %g ثواني (بمعدّل %g ثوان)\n"
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "صغّر النّافذة"
|
|
||||||
|
|
||||||
#~ msgid "Comma-separated list of compositor plugins"
|
#~ msgid "Comma-separated list of compositor plugins"
|
||||||
#~ msgstr "قائمة بملحقات المزج مفصولة بفاصلة"
|
#~ msgstr "قائمة بملحقات المزج مفصولة بفاصلة"
|
||||||
|
|
||||||
|
|||||||
453
po/be.po
453
po/be.po
@@ -1,10 +1,10 @@
|
|||||||
# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2011, 2013.
|
# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter.master\n"
|
"Project-Id-Version: mutter.master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-08-18 20:03+0000\n"
|
"POT-Creation-Date: 2013-01-11 15:23+0000\n"
|
||||||
"PO-Revision-Date: 2012-10-13 17:44+0300\n"
|
"PO-Revision-Date: 2012-10-13 17:44+0300\n"
|
||||||
"Last-Translator: Ігар Грачышка <ihar.hrachyshka@gmail.com>\n"
|
"Last-Translator: Ігар Грачышка <ihar.hrachyshka@gmail.com>\n"
|
||||||
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
||||||
@@ -206,7 +206,7 @@ msgstr "Падзяліць прагляд справа"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:589
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
@@ -214,11 +214,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Іншы кампазітны кіраўнік вокнаў ужо абслугоўвае экран %i дысплея \"%s\"."
|
"Іншы кампазітны кіраўнік вокнаў ужо абслугоўвае экран %i дысплея \"%s\"."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1076
|
#: ../src/core/bell.c:320
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "не ўдалося стварыць фонавую тэкстуру з файла"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:322
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Падзея з сігналам"
|
msgstr "Падзея з сігналам"
|
||||||
|
|
||||||
@@ -251,18 +247,18 @@ msgstr "_Пачакаць"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Змусіць да выхаду"
|
msgstr "_Змусіць да выхаду"
|
||||||
|
|
||||||
#: ../src/core/display.c:421
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Адсутнічае пашырэнне \"%s\", патрэбнае для ажыццяўлення кампазітнага вываду"
|
"Адсутнічае пашырэнне \"%s\", патрэбнае для ажыццяўлення кампазітнага вываду"
|
||||||
|
|
||||||
#: ../src/core/display.c:513
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "Не ўдалося адкрыць X-дысплей аконнай сістэмы \"%s\"\n"
|
msgstr "Не ўдалося адкрыць X-дысплей аконнай сістэмы \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1136
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -271,41 +267,36 @@ msgstr ""
|
|||||||
"Нейкая іншая праграма ўжо выкарыстоўвае як скарот клавішу %s з "
|
"Нейкая іншая праграма ўжо выкарыстоўвае як скарот клавішу %s з "
|
||||||
"мадыфікатарамі %x\n"
|
"мадыфікатарамі %x\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1333
|
#: ../src/core/main.c:196
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" - гэта хібны клавіятурны скарот\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:197
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Выключыць злучэнне з кіраўніком сеансаў"
|
msgstr "Выключыць злучэнне з кіраўніком сеансаў"
|
||||||
|
|
||||||
#: ../src/core/main.c:203
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
msgstr "Замяніць дзейнага кіраўніка вокнаў"
|
msgstr "Замяніць дзейнага кіраўніка вокнаў"
|
||||||
|
|
||||||
#: ../src/core/main.c:209
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "Вызначыць ідэнтыфікатар для кіравання сеансам"
|
msgstr "Вызначыць ідэнтыфікатар для кіравання сеансам"
|
||||||
|
|
||||||
#: ../src/core/main.c:214
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
msgstr "Патрэбны X-дысплей"
|
msgstr "Патрэбны X-дысплей"
|
||||||
|
|
||||||
#: ../src/core/main.c:220
|
#: ../src/core/main.c:219
|
||||||
msgid "Initialize session from savefile"
|
msgid "Initialize session from savefile"
|
||||||
msgstr "Ініцыяваць сеанс з файла"
|
msgstr "Ініцыяваць сеанс з файла"
|
||||||
|
|
||||||
#: ../src/core/main.c:226
|
#: ../src/core/main.c:225
|
||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "Сінхронна выконваць выклікі X-сістэмы"
|
msgstr "Сінхронна выконваць выклікі X-сістэмы"
|
||||||
|
|
||||||
#: ../src/core/main.c:534
|
#: ../src/core/main.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Не ўдалося праглядзець каталог з матывамі аздаблення: %s\n"
|
msgstr "Не ўдалося праглядзець каталог з матывамі аздаблення: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:550
|
#: ../src/core/main.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -313,19 +304,6 @@ msgstr ""
|
|||||||
"Не ўдалося адшукаць матыў аздаблення! Праверце, каб каталог %s існаваў і "
|
"Не ўдалося адшукаць матыў аздаблення! Праверце, каб каталог %s існаваў і "
|
||||||
"змяшчаў звычайныя матывы.\n"
|
"змяшчаў звычайныя матывы.\n"
|
||||||
|
|
||||||
#: ../src/core/monitor.c:711
|
|
||||||
msgid "Built-in display"
|
|
||||||
msgstr "Убудаваны дысплей"
|
|
||||||
|
|
||||||
#. TRANSLATORS: this is a monitor name (in case we don't know
|
|
||||||
#. the vendor), it's Unknown followed by a size in inches,
|
|
||||||
#. like 'Unknown 15"'
|
|
||||||
#.
|
|
||||||
#: ../src/core/monitor.c:739
|
|
||||||
#, c-format
|
|
||||||
msgid "Unknown %s"
|
|
||||||
msgstr "Невядомы %s"
|
|
||||||
|
|
||||||
#: ../src/core/mutter.c:40
|
#: ../src/core/mutter.c:40
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -350,7 +328,7 @@ msgstr "Вывесці нумар версіі праграмы"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Патрэбны плугін Mutter"
|
msgstr "Патрэбны плугін Mutter"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1202
|
#: ../src/core/prefs.c:1087
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
@@ -358,12 +336,12 @@ msgstr ""
|
|||||||
"Асаблівыя паводзіны для некаторых хібных праграм выключаныя. Некаторыя "
|
"Асаблівыя паводзіны для некаторых хібных праграм выключаныя. Некаторыя "
|
||||||
"праграмы могуць перастаць працаваць, як мае быць.\n"
|
"праграмы могуць перастаць працаваць, як мае быць.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1277
|
#: ../src/core/prefs.c:1162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr "Не ўдалося разабраць азначэнне шрыфту \"%s\" з GSettings-ключа %s\n"
|
msgstr "Не ўдалося разабраць азначэнне шрыфту \"%s\" з GSettings-ключа %s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1343
|
#: ../src/core/prefs.c:1228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
@@ -372,7 +350,7 @@ msgstr ""
|
|||||||
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
|
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
|
||||||
"мадыфікатар мышынай кнопкі\n"
|
"мадыфікатар мышынай кнопкі\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1909
|
#: ../src/core/prefs.c:1780
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
@@ -381,17 +359,17 @@ msgstr ""
|
|||||||
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
|
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
|
||||||
"клавіятурны скарот \"%s\"\n"
|
"клавіятурны скарот \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1999
|
#: ../src/core/prefs.c:1877
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Прастора працы %d"
|
msgstr "Прастора працы %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:534
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "Экран %d на дысплеі \"%s\" хібны\n"
|
msgstr "Экран %d на дысплеі \"%s\" хібны\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:550
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -400,19 +378,19 @@ msgstr ""
|
|||||||
"Экран %d на дысплеі \"%s\" ужо мае аконнага кіраўніка. Каб замяніць яго "
|
"Экран %d на дысплеі \"%s\" ужо мае аконнага кіраўніка. Каб замяніць яго "
|
||||||
"новым, дадайце опцыю --replace.\n"
|
"новым, дадайце опцыю --replace.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:577
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Не ўдалося пераняць вылучэнне кіраўніка вокнаў для экрана %d дысплея \"%s\"\n"
|
"Не ўдалося пераняць вылучэнне кіраўніка вокнаў для экрана %d дысплея \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:655
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "Экран %d на дысплеі \"%s\" ужо мае кіраўніка вокнаў\n"
|
msgstr "Экран %d на дысплеі \"%s\" ужо мае кіраўніка вокнаў\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:846
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "Не ўдалося вызваліць экран %d на дысплеі \"%s\"\n"
|
msgstr "Не ўдалося вызваліць экран %d на дысплеі \"%s\"\n"
|
||||||
@@ -473,45 +451,46 @@ msgstr ""
|
|||||||
"Гэтыя вокны не падтрымліваюць функцыі захавання дзейнага ладу працы, і таму "
|
"Гэтыя вокны не падтрымліваюць функцыі захавання дзейнага ладу працы, і таму "
|
||||||
"іх прыйдзецца запусціць уручную пасля наступнага ўваходу ў сістэму."
|
"іх прыйдзецца запусціць уручную пасля наступнага ўваходу ў сістэму."
|
||||||
|
|
||||||
#: ../src/core/util.c:84
|
#: ../src/core/util.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open debug log: %s\n"
|
msgid "Failed to open debug log: %s\n"
|
||||||
msgstr "Не ўдалося адкрыць адладачны журнал: %s\n"
|
msgstr "Не ўдалося адкрыць адладачны журнал: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:94
|
#: ../src/core/util.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to fdopen() log file %s: %s\n"
|
msgid "Failed to fdopen() log file %s: %s\n"
|
||||||
msgstr "Не ўдалося выканаць fdopen() для журнальнага файла %s: %s\n"
|
msgstr "Не ўдалося выканаць fdopen() для журнальнага файла %s: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:100
|
#: ../src/core/util.c:96
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "Журнальны файл %s адкрыты\n"
|
msgstr "Журнальны файл %s адкрыты\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:119
|
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
|
||||||
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Праграма \"Mutter\" была скампіляваная без падтрымкі падрабязнага "
|
"Праграма \"Mutter\" была скампіляваная без падтрымкі падрабязнага "
|
||||||
"пратакаліравання\n"
|
"пратакаліравання\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:264
|
#: ../src/core/util.c:259
|
||||||
msgid "Window manager: "
|
msgid "Window manager: "
|
||||||
msgstr "Кіраўнік вокнаў: "
|
msgstr "Кіраўнік вокнаў: "
|
||||||
|
|
||||||
#: ../src/core/util.c:414
|
#: ../src/core/util.c:407
|
||||||
msgid "Bug in window manager: "
|
msgid "Bug in window manager: "
|
||||||
msgstr "Хіба ў кіраўніку вокнаў: "
|
msgstr "Хіба ў кіраўніку вокнаў: "
|
||||||
|
|
||||||
#: ../src/core/util.c:445
|
#: ../src/core/util.c:438
|
||||||
msgid "Window manager warning: "
|
msgid "Window manager warning: "
|
||||||
msgstr "Перасцярога ад кіраўніка вокнаў: "
|
msgstr "Перасцярога ад кіраўніка вокнаў: "
|
||||||
|
|
||||||
#: ../src/core/util.c:473
|
#: ../src/core/util.c:466
|
||||||
msgid "Window manager error: "
|
msgid "Window manager error: "
|
||||||
msgstr "Памылка кіраўніка вокнаў: "
|
msgstr "Памылка кіраўніка вокнаў: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7533
|
#: ../src/core/window.c:7279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -527,7 +506,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8257
|
#: ../src/core/window.c:7945
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -537,22 +516,22 @@ msgstr ""
|
|||||||
"памеру, але разам з гэтым прызначыла для сябе мінімальны памер %d x %d і "
|
"памеру, але разам з гэтым прызначыла для сябе мінімальны памер %d x %d і "
|
||||||
"максімальны памер %d x %d. Такія паводзіны не маюць сэнсу.\n"
|
"максімальны памер %d x %d. Такія паводзіны не маюць сэнсу.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:347
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "Праграма прызначыла памылковае значэнне _NET_WM_PID %lu\n"
|
msgstr "Праграма прызначыла памылковае значэнне _NET_WM_PID %lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:463
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (на %s)"
|
msgstr "%s (на %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1546
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr "Для %2$s вызначана хібнае акно WM_TRANSIENT_FOR 0x%1$lx.\n"
|
msgstr "Для %2$s вызначана хібнае акно WM_TRANSIENT_FOR 0x%1$lx.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1557
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR акно 0x%lx для %s стварыла б цыкл.\n"
|
msgstr "WM_TRANSIENT_FOR акно 0x%lx для %s стварыла б цыкл.\n"
|
||||||
@@ -702,15 +681,12 @@ msgstr ""
|
|||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
||||||
msgid "Auto maximize nearly monitor sized windows"
|
msgid "Auto maximize nearly monitor sized windows"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Аўтаматычна максімалізаваць вокны, якія расцягнутыя амаль на ўвесь экран"
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||||
"automatically get maximized."
|
"when mapped."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Калі ўключана, новыя вокны з памерам, блізкім да памераў манітора, будуць "
|
|
||||||
"аўтаматычна максімалізавацца."
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
@@ -720,104 +696,109 @@ msgstr "Выбраць акно з выплыўнога акенца"
|
|||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Закрыць выплыўное акенца"
|
msgstr "Закрыць выплыўное акенца"
|
||||||
|
|
||||||
|
#: ../src/tools/mutter-message.c:123
|
||||||
|
#, c-format
|
||||||
|
msgid "Usage: %s\n"
|
||||||
|
msgstr "Правілы выкарыстання: %s\n"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:67
|
#: ../src/ui/menu.c:69
|
||||||
msgid "Mi_nimize"
|
msgid "Mi_nimize"
|
||||||
msgstr "_Мінімалізаваць"
|
msgstr "_Мінімалізаваць"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:69
|
#: ../src/ui/menu.c:71
|
||||||
msgid "Ma_ximize"
|
msgid "Ma_ximize"
|
||||||
msgstr "Ма_ксімалізаваць"
|
msgstr "Ма_ксімалізаваць"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:71
|
#: ../src/ui/menu.c:73
|
||||||
msgid "Unma_ximize"
|
msgid "Unma_ximize"
|
||||||
msgstr "Скасаваць ма_ксімалізацыю"
|
msgstr "Скасаваць ма_ксімалізацыю"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:73
|
#: ../src/ui/menu.c:75
|
||||||
msgid "Roll _Up"
|
msgid "Roll _Up"
|
||||||
msgstr "_Скруціць акно ў загаловак"
|
msgstr "_Скруціць акно ў загаловак"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:75
|
#: ../src/ui/menu.c:77
|
||||||
msgid "_Unroll"
|
msgid "_Unroll"
|
||||||
msgstr "Рас_круціць акно з загалоўка"
|
msgstr "Рас_круціць акно з загалоўка"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:77
|
#: ../src/ui/menu.c:79
|
||||||
msgid "_Move"
|
msgid "_Move"
|
||||||
msgstr "_Перамясціць акно"
|
msgstr "_Перамясціць акно"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:79
|
#: ../src/ui/menu.c:81
|
||||||
msgid "_Resize"
|
msgid "_Resize"
|
||||||
msgstr "_Змяніць памер акна"
|
msgstr "_Змяніць памер акна"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:81
|
#: ../src/ui/menu.c:83
|
||||||
msgid "Move Titlebar On_screen"
|
msgid "Move Titlebar On_screen"
|
||||||
msgstr "Перамясціць загаловак акна па _экране"
|
msgstr "Перамясціць загаловак акна па _экране"
|
||||||
|
|
||||||
#. separator
|
#. separator
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:84 ../src/ui/menu.c:86
|
#: ../src/ui/menu.c:86 ../src/ui/menu.c:88
|
||||||
msgid "Always on _Top"
|
msgid "Always on _Top"
|
||||||
msgstr "Заўсёды _наверсе"
|
msgstr "Заўсёды _наверсе"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:88
|
#: ../src/ui/menu.c:90
|
||||||
msgid "_Always on Visible Workspace"
|
msgid "_Always on Visible Workspace"
|
||||||
msgstr "Заўсёды на _бачнай прасторы працы"
|
msgstr "Заўсёды на _бачнай прасторы працы"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:90
|
#: ../src/ui/menu.c:92
|
||||||
msgid "_Only on This Workspace"
|
msgid "_Only on This Workspace"
|
||||||
msgstr "_Толькі на гэтай прасторы працы"
|
msgstr "_Толькі на гэтай прасторы працы"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:92
|
#: ../src/ui/menu.c:94
|
||||||
msgid "Move to Workspace _Left"
|
msgid "Move to Workspace _Left"
|
||||||
msgstr "Перамясціць на прастору працы з_лева"
|
msgstr "Перамясціць на прастору працы з_лева"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:94
|
#: ../src/ui/menu.c:96
|
||||||
msgid "Move to Workspace R_ight"
|
msgid "Move to Workspace R_ight"
|
||||||
msgstr "Перамясціць на прастору працы с_права"
|
msgstr "Перамясціць на прастору працы с_права"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:96
|
#: ../src/ui/menu.c:98
|
||||||
msgid "Move to Workspace _Up"
|
msgid "Move to Workspace _Up"
|
||||||
msgstr "Перамясціць на прастору працы з_верху"
|
msgstr "Перамясціць на прастору працы з_верху"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:98
|
#: ../src/ui/menu.c:100
|
||||||
msgid "Move to Workspace _Down"
|
msgid "Move to Workspace _Down"
|
||||||
msgstr "Перамясціць на прастору працы з_нізу"
|
msgstr "Перамясціць на прастору працы з_нізу"
|
||||||
|
|
||||||
#. separator
|
#. separator
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
#: ../src/ui/menu.c:102
|
#: ../src/ui/menu.c:104
|
||||||
msgid "_Close"
|
msgid "_Close"
|
||||||
msgstr "_Закрыць акно"
|
msgstr "_Закрыць акно"
|
||||||
|
|
||||||
#: ../src/ui/menu.c:202
|
#: ../src/ui/menu.c:204
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d%n"
|
msgid "Workspace %d%n"
|
||||||
msgstr "Прастора працы %d%n"
|
msgstr "Прастора працы %d%n"
|
||||||
|
|
||||||
#: ../src/ui/menu.c:212
|
#: ../src/ui/menu.c:214
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace 1_0"
|
msgid "Workspace 1_0"
|
||||||
msgstr "Прастора працы 1_0"
|
msgstr "Прастора працы 1_0"
|
||||||
|
|
||||||
#: ../src/ui/menu.c:214
|
#: ../src/ui/menu.c:216
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %s%d"
|
msgid "Workspace %s%d"
|
||||||
msgstr "Прастора працы %s%d"
|
msgstr "Прастора працы %s%d"
|
||||||
|
|
||||||
#: ../src/ui/menu.c:384
|
#: ../src/ui/menu.c:397
|
||||||
msgid "Move to Another _Workspace"
|
msgid "Move to Another _Workspace"
|
||||||
msgstr "П_ерамясціць на іншую прастору працы"
|
msgstr "П_ерамясціць на іншую прастору працы"
|
||||||
|
|
||||||
@@ -914,54 +895,54 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:236
|
#: ../src/ui/theme.c:235
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "верхнюю"
|
msgstr "верхнюю"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:238
|
#: ../src/ui/theme.c:237
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "ніжнюю"
|
msgstr "ніжнюю"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:240
|
#: ../src/ui/theme.c:239
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "левую"
|
msgstr "левую"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:242
|
#: ../src/ui/theme.c:241
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "правую"
|
msgstr "правую"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:270
|
#: ../src/ui/theme.c:269
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "апісанне геаметрыі рамкі акна не вызначае %s граніцу"
|
msgstr "апісанне геаметрыі рамкі акна не вызначае %s граніцу"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:289
|
#: ../src/ui/theme.c:288
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"апісанне геаметрыі рамкі акна не вызначае %s граніцу для аблямоўкі \"%s\""
|
"апісанне геаметрыі рамкі акна не вызначае %s граніцу для аблямоўкі \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:326
|
#: ../src/ui/theme.c:325
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "Прапорцыі кнопкі %g не маюць сэнсу"
|
msgstr "Прапорцыі кнопкі %g не маюць сэнсу"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:338
|
#: ../src/ui/theme.c:337
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "Апісанне геаметрыі рамкі акна не вызначае памер кнопак"
|
msgstr "Апісанне геаметрыі рамкі акна не вызначае памер кнопак"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1051
|
#: ../src/ui/theme.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "Градыент мусіць мець прынамсі два колеры"
|
msgstr "Градыент мусіць мець прынамсі два колеры"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1203
|
#: ../src/ui/theme.c:1202
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
@@ -970,7 +951,7 @@ msgstr ""
|
|||||||
"Уласная спецыфікацыя колеру GTK мусіць змяшчаць назвы асноўнага і запаснога "
|
"Уласная спецыфікацыя колеру GTK мусіць змяшчаць назвы асноўнага і запаснога "
|
||||||
"колераў у дужках, напрыклад, gtk:custom(foo,bar). Не ўдалося разабраць \"%s\""
|
"колераў у дужках, напрыклад, gtk:custom(foo,bar). Не ўдалося разабраць \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1219
|
#: ../src/ui/theme.c:1218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
@@ -979,7 +960,7 @@ msgstr ""
|
|||||||
"Хібны знак \"%c\" у параметры color_name спецыфікацыі gtk:custom, дазволеныя "
|
"Хібны знак \"%c\" у параметры color_name спецыфікацыі gtk:custom, дазволеныя "
|
||||||
"толькі A-Za-z0-9-_"
|
"толькі A-Za-z0-9-_"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1233
|
#: ../src/ui/theme.c:1232
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -988,7 +969,7 @@ msgstr ""
|
|||||||
"Фармат gtk:custom: \"gtk:custom(назва_колеру,запасны_колер)\"; \"%s\" не "
|
"Фармат gtk:custom: \"gtk:custom(назва_колеру,запасны_колер)\"; \"%s\" не "
|
||||||
"адпавядае фармату"
|
"адпавядае фармату"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1278
|
#: ../src/ui/theme.c:1277
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -997,7 +978,7 @@ msgstr ""
|
|||||||
"Спецыфікацыя колеру GTK мусіць мець стан у квадратных дужках, напрыклад, gtk:"
|
"Спецыфікацыя колеру GTK мусіць мець стан у квадратных дужках, напрыклад, gtk:"
|
||||||
"fg[NORMAL], дзе NORMAL - гэта стан. Не ўдалося разабраць \"%s\""
|
"fg[NORMAL], дзе NORMAL - гэта стан. Не ўдалося разабраць \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1292
|
#: ../src/ui/theme.c:1291
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
@@ -1007,17 +988,17 @@ msgstr ""
|
|||||||
"напрыклад, gtk:fg[NORMAL], дзе NORMAL - гэта стан. Не ўдалося разабраць \"%s"
|
"напрыклад, gtk:fg[NORMAL], дзе NORMAL - гэта стан. Не ўдалося разабраць \"%s"
|
||||||
"\""
|
"\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1303
|
#: ../src/ui/theme.c:1302
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "Незразумелы стан \"%s\" у спецыфікацыі колеру"
|
msgstr "Незразумелы стан \"%s\" у спецыфікацыі колеру"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1316
|
#: ../src/ui/theme.c:1315
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "Незразумелы складнік колеру \"%s\" у спецыфікацыі колеру"
|
msgstr "Незразумелы складнік колеру \"%s\" у спецыфікацыі колеру"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1345
|
#: ../src/ui/theme.c:1344
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
@@ -1026,58 +1007,58 @@ msgstr ""
|
|||||||
"Фармат змяшанага колеру - \"blend/bg_color/fg_color/alpha\". \"%s\" не "
|
"Фармат змяшанага колеру - \"blend/bg_color/fg_color/alpha\". \"%s\" не "
|
||||||
"адпавядае фармату."
|
"адпавядае фармату."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1356
|
#: ../src/ui/theme.c:1355
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "Не ўдалося разабраць значэнне альфа \"%s\" ў змяшаным колеры"
|
msgstr "Не ўдалося разабраць значэнне альфа \"%s\" ў змяшаным колеры"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1366
|
#: ../src/ui/theme.c:1365
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Значэнне альфа \"%s\" у змяшаным колеры не ўваходзіць у дыяпазон ад 0.0 да "
|
"Значэнне альфа \"%s\" у змяшаным колеры не ўваходзіць у дыяпазон ад 0.0 да "
|
||||||
"1.0"
|
"1.0"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1413
|
#: ../src/ui/theme.c:1412
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Фармат ценю - \"shade/base_color/factor\". \"%s\" не адпавядае фармату."
|
"Фармат ценю - \"shade/base_color/factor\". \"%s\" не адпавядае фармату."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1424
|
#: ../src/ui/theme.c:1423
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "Не ўдалося разабраць каэфіцыент ценю \"%s\" у зацененым колеры"
|
msgstr "Не ўдалося разабраць каэфіцыент ценю \"%s\" у зацененым колеры"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1434
|
#: ../src/ui/theme.c:1433
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "Каэфіцыент ценю \"%s\" у зацененым колеры адмоўны"
|
msgstr "Каэфіцыент ценю \"%s\" у зацененым колеры адмоўны"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1463
|
#: ../src/ui/theme.c:1462
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "Не ўдалося разабраць колер \"%s\""
|
msgstr "Не ўдалося разабраць колер \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1780
|
#: ../src/ui/theme.c:1779
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "Каардынатны выраз змяшчае забаронены знак \"%s\""
|
msgstr "Каардынатны выраз змяшчае забаронены знак \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1807
|
#: ../src/ui/theme.c:1806
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
"parsed"
|
"parsed"
|
||||||
msgstr "Каардынатны выраз змяшчае незразумелы лік з нефіксаванай коскай \"%s\""
|
msgstr "Каардынатны выраз змяшчае незразумелы лік з нефіксаванай коскай \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1821
|
#: ../src/ui/theme.c:1820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "Каардынатны выраз змяшчае незразумелы цэлы лік \"%s\""
|
msgstr "Каардынатны выраз змяшчае незразумелы цэлы лік \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1942
|
#: ../src/ui/theme.c:1941
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
@@ -1085,17 +1066,17 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Каардынатны выраз змяшчае невядомы аператар у пачатку гэтага тэксту: \"%s\""
|
"Каардынатны выраз змяшчае невядомы аператар у пачатку гэтага тэксту: \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1999
|
#: ../src/ui/theme.c:1998
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "Каардынатны выраз пусты ці незразумелы"
|
msgstr "Каардынатны выраз пусты ці незразумелы"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2112 ../src/ui/theme.c:2122 ../src/ui/theme.c:2156
|
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "Каардынатны выраз вымагае дзялення на нуль"
|
msgstr "Каардынатны выраз вымагае дзялення на нуль"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2164
|
#: ../src/ui/theme.c:2163
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
@@ -1103,24 +1084,24 @@ msgstr ""
|
|||||||
"Каардынатны выраз спрабуе ўжыць аператар дзялення па модулі для ліку з "
|
"Каардынатны выраз спрабуе ўжыць аператар дзялення па модулі для ліку з "
|
||||||
"нефіксаванай коскай"
|
"нефіксаванай коскай"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2220
|
#: ../src/ui/theme.c:2219
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"У каардынатным выразе ўжыты аператар \"%s\" там, дзе мусіў быць аперанд"
|
"У каардынатным выразе ўжыты аператар \"%s\" там, дзе мусіў быць аперанд"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2229
|
#: ../src/ui/theme.c:2228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr "У каардынатным выразе ўжыты аперанд там, дзе мусіў быць аператар"
|
msgstr "У каардынатным выразе ўжыты аперанд там, дзе мусіў быць аператар"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2237
|
#: ../src/ui/theme.c:2236
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "Каардынатны выраз заканчваецца аператарам, а не аперандам"
|
msgstr "Каардынатны выраз заканчваецца аператарам, а не аперандам"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2247
|
#: ../src/ui/theme.c:2246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
@@ -1129,41 +1110,41 @@ msgstr ""
|
|||||||
"У каардынатным выразе за аператарам \"%c\" ідзе аператар \"%c\", але паміж "
|
"У каардынатным выразе за аператарам \"%c\" ідзе аператар \"%c\", але паміж "
|
||||||
"імі няма аперанда"
|
"імі няма аперанда"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2398 ../src/ui/theme.c:2443
|
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr "У каардынатным выразе невядомая зменная альбо канстанта \"%s\""
|
msgstr "У каардынатным выразе невядомая зменная альбо канстанта \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2497
|
#: ../src/ui/theme.c:2496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "Прылада для разбору каардынатных выразаў перапоўніла свой буфер."
|
msgstr "Прылада для разбору каардынатных выразаў перапоўніла свой буфер."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2526
|
#: ../src/ui/theme.c:2525
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"У каардынатным выразе ўжытыя дужкі, якія закрываюцца, але няма тых, якія б "
|
"У каардынатным выразе ўжытыя дужкі, якія закрываюцца, але няма тых, якія б "
|
||||||
"адкрываліся"
|
"адкрываліся"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2590
|
#: ../src/ui/theme.c:2589
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"У каардынатным выразе ўжытыя дужкі, якія адкрываюцца, але няма тых, якія б "
|
"У каардынатным выразе ўжытыя дужкі, якія адкрываюцца, але няма тых, якія б "
|
||||||
"закрываліся"
|
"закрываліся"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2601
|
#: ../src/ui/theme.c:2600
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "У каардынатным выразе няма ні аператараў, ні аперандаў"
|
msgstr "У каардынатным выразе няма ні аператараў, ні аперандаў"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2814 ../src/ui/theme.c:2834 ../src/ui/theme.c:2854
|
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "Матыў аздаблення змяшчае выраз, які стаў прычынай памылкі: %s\n"
|
msgstr "Матыў аздаблення змяшчае выраз, які стаў прычынай памылкі: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4500
|
#: ../src/ui/theme.c:4499
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -1172,25 +1153,25 @@ msgstr ""
|
|||||||
"Для гэтага стылю рамкі трэба вызначыць <button function=\"%s\" state=\"%s\" "
|
"Для гэтага стылю рамкі трэба вызначыць <button function=\"%s\" state=\"%s\" "
|
||||||
"draw_ops=\"whatever\"/>"
|
"draw_ops=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5011 ../src/ui/theme.c:5036
|
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Няма <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"што-небудзь\"/>"
|
"Няма <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"што-небудзь\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5082
|
#: ../src/ui/theme.c:5083
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "Не ўдалося загрузіць матыў аздаблення \"%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:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
||||||
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "Для матыву аздаблення \"%2$s\" не прызначана <%1$s>"
|
msgstr "Для матыву аздаблення \"%2$s\" не прызначана <%1$s>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5254
|
#: ../src/ui/theme.c:5255
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1199,7 +1180,7 @@ msgstr ""
|
|||||||
"Стыль рамкі не вызначаны для вокнаў тыпу \"%s\" для матыву аздаблення \"%s"
|
"Стыль рамкі не вызначаны для вокнаў тыпу \"%s\" для матыву аздаблення \"%s"
|
||||||
"\". Дадайце <window type=\"%s\" style_set=\"штосьці\"/>."
|
"\". Дадайце <window type=\"%s\" style_set=\"штосьці\"/>."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5661 ../src/ui/theme.c:5723 ../src/ui/theme.c:5786
|
#: ../src/ui/theme.c:5659 ../src/ui/theme.c:5721 ../src/ui/theme.c:5784
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
@@ -1207,7 +1188,7 @@ msgstr ""
|
|||||||
"Назвы канстантаў, вызначаных карыстальнікам, мусяць пачынацца з вялікай "
|
"Назвы канстантаў, вызначаных карыстальнікам, мусяць пачынацца з вялікай "
|
||||||
"літары. \"%s\" не адпавядае гэтаму патрабаванню."
|
"літары. \"%s\" не адпавядае гэтаму патрабаванню."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5669 ../src/ui/theme.c:5731 ../src/ui/theme.c:5794
|
#: ../src/ui/theme.c:5667 ../src/ui/theme.c:5729 ../src/ui/theme.c:5792
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "Канстанта \"%s\" ужо азначана"
|
msgstr "Канстанта \"%s\" ужо азначана"
|
||||||
@@ -1593,8 +1574,208 @@ msgstr "Выкарыстанне тэксту ўнутры элемента <%s>
|
|||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "<%s> двойчы вызначаны для гэтага матыву аздаблення"
|
msgstr "<%s> двойчы вызначаны для гэтага матыву аздаблення"
|
||||||
|
|
||||||
#: ../src/ui/theme-parser.c:4336
|
#: ../src/ui/theme-parser.c:4334
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "Памылка пошуку правільнага файла для матыву аздаблення %s\n"
|
msgstr "Памылка пошуку правільнага файла для матыву аздаблення %s\n"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:99
|
||||||
|
msgid "_Windows"
|
||||||
|
msgstr "_Вокны"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:100
|
||||||
|
msgid "_Dialog"
|
||||||
|
msgstr "_Дыялогавае акенца"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:101
|
||||||
|
msgid "_Modal dialog"
|
||||||
|
msgstr "_Мадальнае дыялогавае акенца"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:102
|
||||||
|
msgid "_Utility"
|
||||||
|
msgstr "_Дапаможная праграма"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:103
|
||||||
|
msgid "_Splashscreen"
|
||||||
|
msgstr "_Экранная застаўка"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:104
|
||||||
|
msgid "_Top dock"
|
||||||
|
msgstr "_Верхняя ўбудова"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:105
|
||||||
|
msgid "_Bottom dock"
|
||||||
|
msgstr "_Ніжняя ўбудова"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:106
|
||||||
|
msgid "_Left dock"
|
||||||
|
msgstr "_Левая ўбудова"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:107
|
||||||
|
msgid "_Right dock"
|
||||||
|
msgstr "_Правая ўбудова"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:108
|
||||||
|
msgid "_All docks"
|
||||||
|
msgstr "_Усе ўбудовы"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:109
|
||||||
|
msgid "Des_ktop"
|
||||||
|
msgstr "_Стол"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:115
|
||||||
|
msgid "Open another one of these windows"
|
||||||
|
msgstr "Адкрыць чарговае з гэтых вокнаў"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:117
|
||||||
|
msgid "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 "Гэта дэманстрацыйная кнопка са значком \"Выйсці\""
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:248
|
||||||
|
msgid "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 "Несапраўдны пункт меню %d\n"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:363
|
||||||
|
msgid "Border-only window"
|
||||||
|
msgstr "Акно толькі з аблямоўкай"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:365
|
||||||
|
msgid "Bar"
|
||||||
|
msgstr "Стужка"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:382
|
||||||
|
msgid "Normal Application Window"
|
||||||
|
msgstr "Звычайнае акно праграмы"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:386
|
||||||
|
msgid "Dialog Box"
|
||||||
|
msgstr "Дыялогавае акенца"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:390
|
||||||
|
msgid "Modal Dialog Box"
|
||||||
|
msgstr "Мадальнае дыялогавае акенца"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:394
|
||||||
|
msgid "Utility Palette"
|
||||||
|
msgstr "Дапаможная палітра"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:398
|
||||||
|
msgid "Torn-off Menu"
|
||||||
|
msgstr "Адчэпленае меню"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:402
|
||||||
|
msgid "Border"
|
||||||
|
msgstr "Аблямоўка"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:406
|
||||||
|
msgid "Attached Modal Dialog"
|
||||||
|
msgstr "Прычапленае мадальнае дыялогавае акенца"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:739
|
||||||
|
#, c-format
|
||||||
|
msgid "Button layout test %d"
|
||||||
|
msgstr "Выпрабаванне размяшчэння кнопак %d"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:768
|
||||||
|
#, c-format
|
||||||
|
msgid "%g milliseconds to draw one window frame"
|
||||||
|
msgstr "%g мілісекунд, каб намаляваць адну рамку акна"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:813
|
||||||
|
#, c-format
|
||||||
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
|
msgstr "Правілы карыстання: metacity-theme-viewer [НАЗВА_МАТЫВУ]\n"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:820
|
||||||
|
#, c-format
|
||||||
|
msgid "Error loading theme: %s\n"
|
||||||
|
msgstr "Памылка загрузкі матыву аздаблення: %s\n"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:826
|
||||||
|
#, c-format
|
||||||
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
|
msgstr "Матыў аздаблення \"%s\" загружаны за %g секунд\n"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:871
|
||||||
|
msgid "Normal Title Font"
|
||||||
|
msgstr "Звычайны шрыфт загалоўка"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:877
|
||||||
|
msgid "Small Title Font"
|
||||||
|
msgstr "Маленькі шрыфт загалоўка"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:883
|
||||||
|
msgid "Large Title Font"
|
||||||
|
msgstr "Вялікі шрыфт загалоўка"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:888
|
||||||
|
msgid "Button Layouts"
|
||||||
|
msgstr "Размяшчэнне кнопак"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:893
|
||||||
|
msgid "Benchmark"
|
||||||
|
msgstr "Выпрабаванне"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:949
|
||||||
|
msgid "Window Title Goes Here"
|
||||||
|
msgstr "Месца для загалоўка акна"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:1055
|
||||||
|
#, 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 ""
|
||||||
|
"Намалявана %d рамак цягам %g секунд кліенцкага часу (%g мілісекунд на рамку) "
|
||||||
|
"і %g секунд каляндарнага часу, уключна з рэсурсамі X-сервера (%g мілісекунд "
|
||||||
|
"на рамку)\n"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:1275
|
||||||
|
msgid "position expression test returned TRUE but set error"
|
||||||
|
msgstr "выпрабаванне выразу пазіцыі вярнула TRUE, але паведаміла аб памылцы"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
|
msgstr ""
|
||||||
|
"выпрабаванне выразу пазіцыі вярнула FALSE, але не паведаміла аб памылцы"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:1281
|
||||||
|
msgid "Error was expected but none given"
|
||||||
|
msgstr "Чакалася памылка, але звесткі не атрыманыя"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:1283
|
||||||
|
#, c-format
|
||||||
|
msgid "Error %d was expected but %d given"
|
||||||
|
msgstr "Чакалася памылка %d, але атрымана %d"
|
||||||
|
|
||||||
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
|
#, c-format
|
||||||
|
msgid "Error not expected but one was returned: %s"
|
||||||
|
msgstr "Атрымана нечаканая памылка: %s"
|
||||||
|
|
||||||
|
#: ../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:1296
|
||||||
|
#, c-format
|
||||||
|
msgid "y value was %d, %d was expected"
|
||||||
|
msgstr "Y-значэнне было %d, а чакалася %d"
|
||||||
|
|
||||||
|
#: ../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"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
666
po/en_GB.po
666
po/en_GB.po
File diff suppressed because it is too large
Load Diff
101
po/es.po
101
po/es.po
@@ -14,8 +14,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: mutter.master\n"
|
"Project-Id-Version: mutter.master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
"POT-Creation-Date: 2013-01-11 15:23+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-04 13:55+0100\n"
|
"PO-Revision-Date: 2013-01-15 13:02+0100\n"
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
@@ -170,6 +170,7 @@ msgid "Close window"
|
|||||||
msgstr "Cerrar la ventana"
|
msgstr "Cerrar la ventana"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
#| msgid "Resize window"
|
||||||
msgid "Hide window"
|
msgid "Hide window"
|
||||||
msgstr "Ocultar la ventana"
|
msgstr "Ocultar la ventana"
|
||||||
|
|
||||||
@@ -215,7 +216,7 @@ msgstr "Ver división a la derecha"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:507
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
@@ -224,10 +225,6 @@ msgstr ""
|
|||||||
"Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla «%"
|
"Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla «%"
|
||||||
"s»."
|
"s»."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1111
|
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "no se pudo crear la textura de fondo a partir de archivo"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:320
|
#: ../src/core/bell.c:320
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Evento de campana"
|
msgstr "Evento de campana"
|
||||||
@@ -262,17 +259,17 @@ msgstr "_Esperar"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Forzar la salida"
|
msgstr "_Forzar la salida"
|
||||||
|
|
||||||
#: ../src/core/display.c:401
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Falta la extensión %s requerida para la composición"
|
msgstr "Falta la extensión %s requerida para la composición"
|
||||||
|
|
||||||
#: ../src/core/display.c:493
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "Ocurrió un error al abrir la pantalla de X Window System «%s»\n"
|
msgstr "Ocurrió un error al abrir la pantalla de X Window System «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:929
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -281,12 +278,6 @@ msgstr ""
|
|||||||
"Algún otro programa ya está usando la clave %s con el modificador %x como "
|
"Algún otro programa ya está usando la clave %s con el modificador %x como "
|
||||||
"una vinculación\n"
|
"una vinculación\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1129
|
|
||||||
#, c-format
|
|
||||||
#| msgid "\"%s\" is not a valid value for focus attribute"
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "«%s» no es un acelerador válido\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:196
|
#: ../src/core/main.c:196
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Desactivar conexión al gestor de sesión"
|
msgstr "Desactivar conexión al gestor de sesión"
|
||||||
@@ -380,17 +371,17 @@ msgstr ""
|
|||||||
"«%s» encontrado en la base de datos de configuración no es un valor válido "
|
"«%s» encontrado en la base de datos de configuración no es un valor válido "
|
||||||
"para la combinación de teclas «%s»\n"
|
"para la combinación de teclas «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1879
|
#: ../src/core/prefs.c:1877
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Área de trabajo %d"
|
msgstr "Área de trabajo %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:673
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "La ventana %d en la pantalla «%s» no es válida\n"
|
msgstr "La ventana %d en la pantalla «%s» no es válida\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:689
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -399,7 +390,7 @@ msgstr ""
|
|||||||
"La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas, intente "
|
"La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas, intente "
|
||||||
"usar la opción «--replace» para reemplazar el gestor de ventanas activo.\n"
|
"usar la opción «--replace» para reemplazar el gestor de ventanas activo.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:716
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
@@ -407,12 +398,12 @@ msgstr ""
|
|||||||
"No se ha podido obtener la selección del gestor de ventanas en la ventana %d "
|
"No se ha podido obtener la selección del gestor de ventanas en la ventana %d "
|
||||||
"en la pantalla «%s»\n"
|
"en la pantalla «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:794
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas\n"
|
msgstr "La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:979
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "No se ha podido liberar el monitor %d en la pantalla «%s»\n"
|
msgstr "No se ha podido liberar el monitor %d en la pantalla «%s»\n"
|
||||||
@@ -511,7 +502,7 @@ msgid "Window manager error: "
|
|||||||
msgstr "Error del gestor de ventanas: "
|
msgstr "Error del gestor de ventanas: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7539
|
#: ../src/core/window.c:7279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -527,7 +518,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8263
|
#: ../src/core/window.c:7945
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
||||||
@@ -537,23 +528,23 @@ msgstr ""
|
|||||||
"redimensionable, pero configuró el tamaño mínimo a %d x %d y el tamaño "
|
"redimensionable, pero configuró el tamaño mínimo a %d x %d y el tamaño "
|
||||||
"máximo a %d x %d ; esto no tiene mucho sentido.\n"
|
"máximo a %d x %d ; esto no tiene mucho sentido.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "La aplicación establecio un _NET_WM_PID %lu erróneo\n"
|
msgstr "La aplicación establecio un _NET_WM_PID %lu erróneo\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (on %s)"
|
msgstr "%s (on %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"WM_TRANSIENT_FOR no válido para la ventana 0x%lx especificada para %s.\n"
|
"WM_TRANSIENT_FOR no válido para la ventana 0x%lx especificada para %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR ventana 0x%lx para %s crearía un bucle.\n"
|
msgstr "WM_TRANSIENT_FOR ventana 0x%lx para %s crearía un bucle.\n"
|
||||||
@@ -711,11 +702,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||||
"automatically get maximized."
|
"when mapped."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si está activada, las ventanas nuevas que inicialmente tienen el tamaño de "
|
"Si está activada, las ventanas cercanas al tamaño de la pantalla se "
|
||||||
"la pantalla, se maximizan."
|
"maximizan automáticamente al mapearlas."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
@@ -924,7 +915,7 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
@@ -1223,7 +1214,7 @@ msgstr ""
|
|||||||
"No hay un estilo de marco para el tipo de ventana «%s» en el tema «%s», añada "
|
"No hay un estilo de marco para el tipo de ventana «%s» en el tema «%s», añada "
|
||||||
"un elemento <window type=\"%s\" style_set=\"whatever\"/>"
|
"un elemento <window type=\"%s\" style_set=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
#: ../src/ui/theme.c:5659 ../src/ui/theme.c:5721 ../src/ui/theme.c:5784
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
@@ -1231,7 +1222,7 @@ msgstr ""
|
|||||||
"Las constantes definidas por el usuario deben comenzar con una letra "
|
"Las constantes definidas por el usuario deben comenzar con una letra "
|
||||||
"mayúscula; «%s» no lo hace"
|
"mayúscula; «%s» no lo hace"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
#: ../src/ui/theme.c:5667 ../src/ui/theme.c:5729 ../src/ui/theme.c:5792
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "La constante «%s» ya ha sido definida"
|
msgstr "La constante «%s» ya ha sido definida"
|
||||||
@@ -1728,56 +1719,56 @@ msgstr "Borde"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "Diálogo modal adjunto"
|
msgstr "Diálogo modal adjunto"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "Test de distribución de botones %d"
|
msgstr "Test de distribución de botones %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g milisegundos para dibujar un marco de ventana"
|
msgstr "%g milisegundos para dibujar un marco de ventana"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "Uso: metacity-theme-viewer [NOMBRETEMA]\n"
|
msgstr "Uso: metacity-theme-viewer [NOMBRETEMA]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "Ocurrió un error al cargar el tema:«%s»\n"
|
msgstr "Ocurrió un error al cargar el tema:«%s»\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "Se cargó el tema «%s» en %g segundos\n"
|
msgstr "Se cargó el tema «%s» en %g segundos\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:871
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "Tipografía de título normal"
|
msgstr "Tipografía de título normal"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:877
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "Tipografía de título pequeña"
|
msgstr "Tipografía de título pequeña"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:883
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "Tipografía de título grande"
|
msgstr "Tipografía de título grande"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:888
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "Distribución de botones"
|
msgstr "Distribución de botones"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:893
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "Banco de pruebas"
|
msgstr "Banco de pruebas"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "El título de la ventana va aquí"
|
msgstr "El título de la ventana va aquí"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1055
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1788,41 +1779,41 @@ msgstr ""
|
|||||||
"marco) y %g segundos de tiempo estándar incluyendo recursos del servidor X (%"
|
"marco) y %g segundos de tiempo estándar incluyendo recursos del servidor X (%"
|
||||||
"g milisegundos por marco)\n"
|
"g milisegundos por marco)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1275
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"prueba de expresión de la posición devolvió TRUE pero estableció un error"
|
"prueba de expresión de la posición devolvió TRUE pero estableció un error"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"prueba de expresión de la posición devolvió FASE pero no estableció un error"
|
"prueba de expresión de la posición devolvió FASE pero no estableció un error"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1281
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "Se esperaba un error, pero no se dio ninguno"
|
msgstr "Se esperaba un error, pero no se dio ninguno"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1283
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "Se esperaba el error %d pero se dio el %d"
|
msgstr "Se esperaba el error %d pero se dio el %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "No se esperaba un error pero se devolvió uno: %s"
|
msgstr "No se esperaba un error pero se devolvió uno: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "el valor x era %d, se esperaba %d"
|
msgstr "el valor x era %d, se esperaba %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1296
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "el valor y era %d, se esperaba %d"
|
msgstr "el valor y era %d, se esperaba %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1361
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
257
po/et.po
257
po/et.po
@@ -7,15 +7,15 @@
|
|||||||
#
|
#
|
||||||
# Tõivo Leedjärv <toivo linux ee>, 2004.
|
# Tõivo Leedjärv <toivo linux ee>, 2004.
|
||||||
# Ivar Smolin <okul linux ee>, 2005, 2006, 2009–2011.
|
# Ivar Smolin <okul linux ee>, 2005, 2006, 2009–2011.
|
||||||
# Mattias Põldaru <mahfiaz@gmail.com>, 2008–2011, 2012, 2013.
|
# Mattias Põldaru <mahfiaz@gmail.com>, 2008–2011, 2012.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter MASTER\n"
|
"Project-Id-Version: mutter MASTER\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-09-10 15:25+0000\n"
|
"POT-Creation-Date: 2012-12-18 22:30+0000\n"
|
||||||
"PO-Revision-Date: 2013-09-11 23:20+0300\n"
|
"PO-Revision-Date: 2012-12-19 18:06+0300\n"
|
||||||
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
|
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
|
||||||
"Language-Team: Estonian <>\n"
|
"Language-Team: Estonian <>\n"
|
||||||
"Language: et\n"
|
"Language: et\n"
|
||||||
@@ -23,7 +23,6 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||||
"X-Generator: Poedit 1.5.4\n"
|
|
||||||
|
|
||||||
msgid "Navigation"
|
msgid "Navigation"
|
||||||
msgstr "Navigeerimine"
|
msgstr "Navigeerimine"
|
||||||
@@ -133,8 +132,8 @@ msgstr "Varjatud oleku vahetamine"
|
|||||||
msgid "Close window"
|
msgid "Close window"
|
||||||
msgstr "Akna sulgemine"
|
msgstr "Akna sulgemine"
|
||||||
|
|
||||||
msgid "Hide window"
|
msgid "Minimize window"
|
||||||
msgstr "Peida aken"
|
msgstr "Akna minimeerimine"
|
||||||
|
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
msgstr "Akna liigutamine"
|
msgstr "Akna liigutamine"
|
||||||
@@ -174,9 +173,6 @@ msgid ""
|
|||||||
"\"."
|
"\"."
|
||||||
msgstr "Teine komposiithaldur juba töötab ekraani %i kuval \"%s\"."
|
msgstr "Teine komposiithaldur juba töötab ekraani %i kuval \"%s\"."
|
||||||
|
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "failist polnud võimalik taustatekstuuri luua"
|
|
||||||
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Helina sündmus"
|
msgstr "Helina sündmus"
|
||||||
|
|
||||||
@@ -218,10 +214,6 @@ msgstr ""
|
|||||||
"Mõni teine programm juba kasutab klahvi %s koos muuteklahvidega %x "
|
"Mõni teine programm juba kasutab klahvi %s koos muuteklahvidega %x "
|
||||||
"kiirklahvina\n"
|
"kiirklahvina\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" pole sobiv kiirklahv\n"
|
|
||||||
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Seansihalduriga ühendumise keelamine"
|
msgstr "Seansihalduriga ühendumise keelamine"
|
||||||
|
|
||||||
@@ -250,17 +242,6 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Teemat ei leitud! Veendu, et %s on olemas ja sisaldab harilikke teemasid.\n"
|
"Teemat ei leitud! Veendu, et %s on olemas ja sisaldab harilikke teemasid.\n"
|
||||||
|
|
||||||
msgid "Built-in display"
|
|
||||||
msgstr "Sisseehitatud kuva"
|
|
||||||
|
|
||||||
#. TRANSLATORS: this is a monitor name (in case we don't know
|
|
||||||
#. the vendor), it's Unknown followed by a size in inches,
|
|
||||||
#. like 'Unknown 15"'
|
|
||||||
#.
|
|
||||||
#, c-format
|
|
||||||
msgid "Unknown %s"
|
|
||||||
msgstr "Tundmatu %s"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"mutter %s\n"
|
"mutter %s\n"
|
||||||
@@ -393,6 +374,7 @@ msgstr "Tõrge logifaili %s avamisel funktsiooniga fdopen(): %s\n"
|
|||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "Avati logifail %s\n"
|
msgstr "Avati logifail %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "Mutter kompileeriti ilma jutuka režiimi toeta\n"
|
msgstr "Mutter kompileeriti ilma jutuka režiimi toeta\n"
|
||||||
|
|
||||||
@@ -567,22 +549,16 @@ msgstr ""
|
|||||||
"Lohistatava äärise laius. Kui kujunduse nähtavatest ääristest ei piisa, "
|
"Lohistatava äärise laius. Kui kujunduse nähtavatest ääristest ei piisa, "
|
||||||
"lisatakse puuduoleva osa jaoks nähtamatu ääris."
|
"lisatakse puuduoleva osa jaoks nähtamatu ääris."
|
||||||
|
|
||||||
msgid "Auto maximize nearly monitor sized windows"
|
|
||||||
msgstr "Peaaegu monitori suurused ekraanid maksimeeritakse automaatselt"
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
|
||||||
"automatically get maximized."
|
|
||||||
msgstr ""
|
|
||||||
"Kui lubatud, maksimeeritakse automaatselt aknad, mis on avanedes monitori "
|
|
||||||
"suurused."
|
|
||||||
|
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Akna valimine tabulaatori hüpikaknalt"
|
msgstr "Akna valimine tabulaatori hüpikaknalt"
|
||||||
|
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Tabulaatori hüpikakna katkestamine"
|
msgstr "Tabulaatori hüpikakna katkestamine"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "Usage: %s\n"
|
||||||
|
msgstr "Kasutamine: %s\n"
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
msgid "Mi_nimize"
|
msgid "Mi_nimize"
|
||||||
msgstr "_Minimeeri"
|
msgstr "_Minimeeri"
|
||||||
@@ -1288,151 +1264,156 @@ msgstr "Selle teema jaoks on <%s> määratud kaks korda"
|
|||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "Tõrge %s teema jaoks korrektse faili leidmisel\n"
|
msgstr "Tõrge %s teema jaoks korrektse faili leidmisel\n"
|
||||||
|
|
||||||
#~ msgid "Usage: %s\n"
|
msgid "_Windows"
|
||||||
#~ msgstr "Kasutamine: %s\n"
|
msgstr "_Aknad"
|
||||||
|
|
||||||
#~ msgid "_Windows"
|
msgid "_Dialog"
|
||||||
#~ msgstr "_Aknad"
|
msgstr "_Dialoog"
|
||||||
|
|
||||||
#~ msgid "_Dialog"
|
msgid "_Modal dialog"
|
||||||
#~ msgstr "_Dialoog"
|
msgstr "_Modaaldialoog"
|
||||||
|
|
||||||
#~ msgid "_Modal dialog"
|
msgid "_Utility"
|
||||||
#~ msgstr "_Modaaldialoog"
|
msgstr "_Utiliit"
|
||||||
|
|
||||||
#~ msgid "_Utility"
|
msgid "_Splashscreen"
|
||||||
#~ msgstr "_Utiliit"
|
msgstr "_Käivitusekraan"
|
||||||
|
|
||||||
#~ msgid "_Splashscreen"
|
msgid "_Top dock"
|
||||||
#~ msgstr "_Käivitusekraan"
|
msgstr "Ü_lemine dokk"
|
||||||
|
|
||||||
#~ msgid "_Top dock"
|
msgid "_Bottom dock"
|
||||||
#~ msgstr "Ü_lemine dokk"
|
msgstr "_Alumine dokk"
|
||||||
|
|
||||||
#~ msgid "_Bottom dock"
|
msgid "_Left dock"
|
||||||
#~ msgstr "_Alumine dokk"
|
msgstr "_Vasak dokk"
|
||||||
|
|
||||||
#~ msgid "_Left dock"
|
msgid "_Right dock"
|
||||||
#~ msgstr "_Vasak dokk"
|
msgstr "_Parem dokk"
|
||||||
|
|
||||||
#~ msgid "_Right dock"
|
msgid "_All docks"
|
||||||
#~ msgstr "_Parem dokk"
|
msgstr "_Kõik dokid"
|
||||||
|
|
||||||
#~ msgid "_All docks"
|
msgid "Des_ktop"
|
||||||
#~ msgstr "_Kõik dokid"
|
msgstr "_Töölaud"
|
||||||
|
|
||||||
#~ msgid "Des_ktop"
|
msgid "Open another one of these windows"
|
||||||
#~ msgstr "_Töölaud"
|
msgstr "Ava neist akendest järgmine"
|
||||||
|
|
||||||
#~ msgid "Open another one of these windows"
|
msgid "This is a demo button with an 'open' icon"
|
||||||
#~ msgstr "Ava neist akendest järgmine"
|
msgstr "See on näidisnupp koos 'ava' ikooniga"
|
||||||
|
|
||||||
#~ msgid "This is a demo button with an 'open' icon"
|
msgid "This is a demo button with a 'quit' icon"
|
||||||
#~ msgstr "See on näidisnupp koos 'ava' ikooniga"
|
msgstr "See on näidisnupp koos 'lõpeta' ikooniga"
|
||||||
|
|
||||||
#~ msgid "This is a demo button with a 'quit' icon"
|
msgid "This is a sample message in a sample dialog"
|
||||||
#~ msgstr "See on näidisnupp koos 'lõpeta' ikooniga"
|
msgstr "See on näidisteade näidisdialoogis"
|
||||||
|
|
||||||
#~ msgid "This is a sample message in a sample dialog"
|
#, c-format
|
||||||
#~ msgstr "See on näidisteade näidisdialoogis"
|
msgid "Fake menu item %d\n"
|
||||||
|
msgstr "Võltsitud menüüpunkt %d\n"
|
||||||
|
|
||||||
#~ msgid "Fake menu item %d\n"
|
msgid "Border-only window"
|
||||||
#~ msgstr "Võltsitud menüüpunkt %d\n"
|
msgstr "Ainult raamiga aken"
|
||||||
|
|
||||||
#~ msgid "Border-only window"
|
msgid "Bar"
|
||||||
#~ msgstr "Ainult raamiga aken"
|
msgstr "Riba"
|
||||||
|
|
||||||
#~ msgid "Bar"
|
msgid "Normal Application Window"
|
||||||
#~ msgstr "Riba"
|
msgstr "Tavaline rakenduseaken"
|
||||||
|
|
||||||
#~ msgid "Normal Application Window"
|
msgid "Dialog Box"
|
||||||
#~ msgstr "Tavaline rakenduseaken"
|
msgstr "Dialoogikast"
|
||||||
|
|
||||||
#~ msgid "Dialog Box"
|
msgid "Modal Dialog Box"
|
||||||
#~ msgstr "Dialoogikast"
|
msgstr "Modaalne dialoogikast"
|
||||||
|
|
||||||
#~ msgid "Modal Dialog Box"
|
msgid "Utility Palette"
|
||||||
#~ msgstr "Modaalne dialoogikast"
|
msgstr "Rakendite palett"
|
||||||
|
|
||||||
#~ msgid "Utility Palette"
|
msgid "Torn-off Menu"
|
||||||
#~ msgstr "Rakendite palett"
|
msgstr "Ärarebitav menüü"
|
||||||
|
|
||||||
#~ msgid "Torn-off Menu"
|
msgid "Border"
|
||||||
#~ msgstr "Ärarebitav menüü"
|
msgstr "Raam"
|
||||||
|
|
||||||
#~ msgid "Border"
|
msgid "Attached Modal Dialog"
|
||||||
#~ msgstr "Raam"
|
msgstr "Kinnistatud modaaldialoog"
|
||||||
|
|
||||||
#~ msgid "Attached Modal Dialog"
|
#, c-format
|
||||||
#~ msgstr "Kinnistatud modaaldialoog"
|
msgid "Button layout test %d"
|
||||||
|
msgstr "Nuppude paigutuse test %d"
|
||||||
|
|
||||||
#~ msgid "Button layout test %d"
|
#, c-format
|
||||||
#~ msgstr "Nuppude paigutuse test %d"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
|
msgstr "%g millisekundit kulub ühe akna raami joonistamiseks"
|
||||||
|
|
||||||
#~ msgid "%g milliseconds to draw one window frame"
|
#, c-format
|
||||||
#~ msgstr "%g millisekundit kulub ühe akna raami joonistamiseks"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
|
msgstr "Kasutamine: metacity-theme-viewer [TEEMANIMI]\n"
|
||||||
|
|
||||||
#~ msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
#, c-format
|
||||||
#~ msgstr "Kasutamine: metacity-theme-viewer [TEEMANIMI]\n"
|
msgid "Error loading theme: %s\n"
|
||||||
|
msgstr "Viga teema laadimisel: %s\n"
|
||||||
|
|
||||||
#~ msgid "Error loading theme: %s\n"
|
#, c-format
|
||||||
#~ msgstr "Viga teema laadimisel: %s\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
|
msgstr "Teema \"%s\" laaditi %g sekundiga\n"
|
||||||
|
|
||||||
#~ msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Normal Title Font"
|
||||||
#~ msgstr "Teema \"%s\" laaditi %g sekundiga\n"
|
msgstr "Tiitli tavasuurusega kirjatüüp"
|
||||||
|
|
||||||
#~ msgid "Normal Title Font"
|
msgid "Small Title Font"
|
||||||
#~ msgstr "Tiitli tavasuurusega kirjatüüp"
|
msgstr "Tiitli väike kirjatüüp"
|
||||||
|
|
||||||
#~ msgid "Small Title Font"
|
msgid "Large Title Font"
|
||||||
#~ msgstr "Tiitli väike kirjatüüp"
|
msgstr "Tiitli suur kirjatüüp"
|
||||||
|
|
||||||
#~ msgid "Large Title Font"
|
msgid "Button Layouts"
|
||||||
#~ msgstr "Tiitli suur kirjatüüp"
|
msgstr "Nuppude paigutus"
|
||||||
|
|
||||||
#~ msgid "Button Layouts"
|
msgid "Benchmark"
|
||||||
#~ msgstr "Nuppude paigutus"
|
msgstr "Jõudlus"
|
||||||
|
|
||||||
#~ msgid "Benchmark"
|
msgid "Window Title Goes Here"
|
||||||
#~ msgstr "Jõudlus"
|
msgstr "Siia tuleb akna pealkiri"
|
||||||
|
|
||||||
#~ msgid "Window Title Goes Here"
|
#, c-format
|
||||||
#~ msgstr "Siia tuleb akna pealkiri"
|
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 ""
|
||||||
|
"Joonistati %d kaadrit %g kliendi-kella sekundiga (%g millisekundit kaadrile) "
|
||||||
|
"ja %g sekundiga seinakella järgi, millesse on kaasatud X-serveri "
|
||||||
|
"ressursikasutus (%g millisekundit kaadrile)\n"
|
||||||
|
|
||||||
#~ msgid ""
|
msgid "position expression test returned TRUE but set error"
|
||||||
#~ "Drew %d frames in %g client-side seconds (%g milliseconds per frame) and "
|
msgstr "asukoha avaldise kontroll tagastas TÕENE, aga määras vea"
|
||||||
#~ "%g seconds wall clock time including X server resources (%g milliseconds "
|
|
||||||
#~ "per frame)\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Joonistati %d kaadrit %g kliendi-kella sekundiga (%g millisekundit "
|
|
||||||
#~ "kaadrile) ja %g sekundiga seinakella järgi, millesse on kaasatud X-"
|
|
||||||
#~ "serveri ressursikasutus (%g millisekundit kaadrile)\n"
|
|
||||||
|
|
||||||
#~ msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
#~ msgstr "asukoha avaldise kontroll tagastas TÕENE, aga määras vea"
|
msgstr "asukoha avaldise kontroll tagastas VÄÄR, aga ei määranud viga"
|
||||||
|
|
||||||
#~ msgid "position expression test returned FALSE but didn't set error"
|
msgid "Error was expected but none given"
|
||||||
#~ msgstr "asukoha avaldise kontroll tagastas VÄÄR, aga ei määranud viga"
|
msgstr "Oodati viga, aga ühtegi ei edastatud"
|
||||||
|
|
||||||
#~ msgid "Error was expected but none given"
|
#, c-format
|
||||||
#~ msgstr "Oodati viga, aga ühtegi ei edastatud"
|
msgid "Error %d was expected but %d given"
|
||||||
|
msgstr "Oodati viga %d, aga edastati viga %d"
|
||||||
|
|
||||||
#~ msgid "Error %d was expected but %d given"
|
#, c-format
|
||||||
#~ msgstr "Oodati viga %d, aga edastati viga %d"
|
msgid "Error not expected but one was returned: %s"
|
||||||
|
msgstr "Viga ei oodatud, aga üks edastati: %s"
|
||||||
|
|
||||||
#~ msgid "Error not expected but one was returned: %s"
|
#, c-format
|
||||||
#~ msgstr "Viga ei oodatud, aga üks edastati: %s"
|
msgid "x value was %d, %d was expected"
|
||||||
|
msgstr "x väärtus oli %d, oodati väärtust %d"
|
||||||
|
|
||||||
#~ msgid "x value was %d, %d was expected"
|
#, c-format
|
||||||
#~ msgstr "x väärtus oli %d, oodati väärtust %d"
|
msgid "y value was %d, %d was expected"
|
||||||
|
msgstr "y väärtus oli %d, oodati väärtust %d"
|
||||||
|
|
||||||
#~ msgid "y value was %d, %d was expected"
|
#, c-format
|
||||||
#~ msgstr "y väärtus oli %d, oodati väärtust %d"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
|
msgstr ""
|
||||||
#~ msgid ""
|
"%d koordinaatide avaldis töödeldi %g sekundiga (keskmine %g sekundit)\n"
|
||||||
#~ "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "%d koordinaatide avaldis töödeldi %g sekundiga (keskmine %g sekundit)\n"
|
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "Akna minimeerimine"
|
|
||||||
|
|||||||
219
po/gl.po
219
po/gl.po
@@ -9,13 +9,13 @@
|
|||||||
# Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009.
|
# Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009.
|
||||||
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
|
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
|
||||||
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
|
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
|
||||||
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013.
|
# Fran Dieguez <frandieguez@gnome.org>, 2012.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gl\n"
|
"Project-Id-Version: gl\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-03-04 13:55+0100\n"
|
"POT-Creation-Date: 2012-12-24 22:58+0100\n"
|
||||||
"PO-Revision-Date: 2013-03-04 14:20+0200\n"
|
"PO-Revision-Date: 2012-12-24 23:03+0200\n"
|
||||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||||
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
||||||
"Language: gl\n"
|
"Language: gl\n"
|
||||||
@@ -170,8 +170,8 @@ msgid "Close window"
|
|||||||
msgstr "Pechar xanela"
|
msgstr "Pechar xanela"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
msgid "Hide window"
|
msgid "Minimize window"
|
||||||
msgstr "Ocultar xanela"
|
msgstr "Minimizar xanela"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:10
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
@@ -215,7 +215,7 @@ msgstr "Dividir vista á dereita"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:509
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
@@ -224,10 +224,6 @@ msgstr ""
|
|||||||
"Xa se está a executar outro xestor de composición na pantalla %i na "
|
"Xa se está a executar outro xestor de composición na pantalla %i na "
|
||||||
"visualización «%s»"
|
"visualización «%s»"
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1180
|
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "a textura do fondo non puido crearse desde o ficheiro"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:320
|
#: ../src/core/bell.c:320
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Evento de campá"
|
msgstr "Evento de campá"
|
||||||
@@ -262,17 +258,17 @@ msgstr "Espe_rar"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Forzar a saída"
|
msgstr "_Forzar a saída"
|
||||||
|
|
||||||
#: ../src/core/display.c:401
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Falta a extensión %s que se require para a composición"
|
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
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
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"
|
msgstr "Produciuse un erro ao abrir a visualización do X Window System «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:929
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -281,11 +277,6 @@ msgstr ""
|
|||||||
"Algún outro programa xa está usando a tecla %s cos modificadores %x como "
|
"Algún outro programa xa está usando a tecla %s cos modificadores %x como "
|
||||||
"combinación\n"
|
"combinación\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1129
|
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "«%s» non é un acelerador correcto\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:196
|
#: ../src/core/main.c:196
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Desactivar a conexión ao xestor de sesión"
|
msgstr "Desactivar a conexión ao xestor de sesión"
|
||||||
@@ -310,12 +301,12 @@ msgstr "Inicializar sesión desde o ficheiro de salvagarda"
|
|||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "Facer que as chamadas a X sexan sincrónicas"
|
msgstr "Facer que as chamadas a X sexan sincrónicas"
|
||||||
|
|
||||||
#: ../src/core/main.c:533
|
#: ../src/core/main.c:496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Produciuse un erro ao dixitalizar o directorio de temas: %s\n"
|
msgstr "Produciuse un erro ao dixitalizar o directorio de temas: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:549
|
#: ../src/core/main.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -346,7 +337,7 @@ msgstr "Imprimir versión"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Engadido de mutter que usar"
|
msgstr "Engadido de mutter que usar"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1087
|
#: ../src/core/prefs.c:1079
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
@@ -354,14 +345,14 @@ msgstr ""
|
|||||||
"Desactiváronse os arranxos para aplicativos danados. Pode que algúns "
|
"Desactiváronse os arranxos para aplicativos danados. Pode que algúns "
|
||||||
"aplicativos non se comporten correctamente.\n"
|
"aplicativos non se comporten correctamente.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1162
|
#: ../src/core/prefs.c:1154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Non foi posíbel analizar a descrición do tipo de letra «%s» da chave "
|
"Non foi posíbel analizar a descrición do tipo de letra «%s» da chave "
|
||||||
"GSettings %s\n"
|
"GSettings %s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1228
|
#: ../src/core/prefs.c:1220
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
@@ -370,7 +361,7 @@ msgstr ""
|
|||||||
"«%s» atopados na base de datos de configuración non é un valor correcto para "
|
"«%s» atopados na base de datos de configuración non é un valor correcto para "
|
||||||
"o modificador do botón do rato\n"
|
"o modificador do botón do rato\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1780
|
#: ../src/core/prefs.c:1757
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
@@ -379,17 +370,17 @@ msgstr ""
|
|||||||
"«%s» atopados na base de datos de configuración non é un valor correcto para "
|
"«%s» atopados na base de datos de configuración non é un valor correcto para "
|
||||||
"a combinación de teclas «%s»\n"
|
"a combinación de teclas «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1879
|
#: ../src/core/prefs.c:1854
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Espazo de traballo %d"
|
msgstr "Espazo de traballo %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:673
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "A pantalla %d na visualización «%s» non é válida\n"
|
msgstr "A pantalla %d na visualización «%s» non é válida\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:689
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -398,7 +389,7 @@ msgstr ""
|
|||||||
"A visualización %d na pantalla «%s» ten xa un xestor de xanelas, tente usar "
|
"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"
|
"a opción --replace para substituír o xestor de xanelas.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:716
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
@@ -406,12 +397,12 @@ msgstr ""
|
|||||||
"Non foi posíbel obter a selección do xestor de xanelas na pantalla %d na "
|
"Non foi posíbel obter a selección do xestor de xanelas na pantalla %d na "
|
||||||
"visualización «%s»\n"
|
"visualización «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:794
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
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"
|
msgstr "A visualización %d na pantalla «%s» ten xa un xestor de xanelas\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:979
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "Non foi posíbel liberar a visualización %d na pantalla «%s»\n"
|
msgstr "Non foi posíbel liberar a visualización %d na pantalla «%s»\n"
|
||||||
@@ -508,7 +499,7 @@ msgid "Window manager error: "
|
|||||||
msgstr "Erro do xestor de xanelas: "
|
msgstr "Erro do xestor de xanelas: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7539
|
#: ../src/core/window.c:7275
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -524,7 +515,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8263
|
#: ../src/core/window.c:7941
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -534,23 +525,23 @@ msgstr ""
|
|||||||
"mais configurou o tamaño mínimo a %d x %d e o tamaño máximo a %d x %d, isto "
|
"mais configurou o tamaño mínimo a %d x %d e o tamaño máximo a %d x %d, isto "
|
||||||
"non ten moito sentido.\n"
|
"non ten moito sentido.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "O aplicativo configurou un _NET_WM_PID %lu falso\n"
|
msgstr "O aplicativo configurou un _NET_WM_PID %lu falso\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (en %s)"
|
msgstr "%s (en %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"WM_TRANSIENT_FOR non válido para a xanela 0x%lx especificada para %s.\n"
|
"WM_TRANSIENT_FOR non válido para a xanela 0x%lx especificada para %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR xanela 0x%lx para %s crearía un bucle.\n"
|
msgstr "WM_TRANSIENT_FOR xanela 0x%lx para %s crearía un bucle.\n"
|
||||||
@@ -698,23 +689,10 @@ msgstr ""
|
|||||||
"son suficientes, engadiranse bordos invisíbeis para satisfacer este valor."
|
"son suficientes, engadiranse bordos invisíbeis para satisfacer este valor."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
||||||
msgid "Auto maximize nearly monitor sized windows"
|
|
||||||
msgstr ""
|
|
||||||
"Maximizar automaticamente as xanelas que case teñan o tamaño da pantalla"
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
|
||||||
msgid ""
|
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
|
||||||
"automatically get maximized."
|
|
||||||
msgstr ""
|
|
||||||
"Se está activada, as xanelas novas que inicialmente teñan o tamaño da "
|
|
||||||
"pantalla maximizaranse automaticamente."
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Seleccionar xanela da lapela emerxente"
|
msgstr "Seleccionar xanela da lapela emerxente"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Cancelar lapela emerxente"
|
msgstr "Cancelar lapela emerxente"
|
||||||
|
|
||||||
@@ -917,53 +895,53 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:235
|
#: ../src/ui/theme.c:234
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "superior"
|
msgstr "superior"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:237
|
#: ../src/ui/theme.c:236
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "inferior"
|
msgstr "inferior"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:239
|
#: ../src/ui/theme.c:238
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "esquerda"
|
msgstr "esquerda"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:241
|
#: ../src/ui/theme.c:240
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "dereita"
|
msgstr "dereita"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:269
|
#: ../src/ui/theme.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "a xeometría do marco non especifica a dimensión «%s»"
|
msgstr "a xeometría do marco non especifica a dimensión «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:288
|
#: ../src/ui/theme.c:287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "a xeometría do marco non especifica a dimensión «%s» para o bordo «%s»"
|
msgstr "a xeometría do marco non especifica a dimensión «%s» para o bordo «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:325
|
#: ../src/ui/theme.c:324
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "A proporción de aspecto do botón %g non é razoábel"
|
msgstr "A proporción de aspecto do botón %g non é razoábel"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:337
|
#: ../src/ui/theme.c:336
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "A xeometría do marco non especifica o tamaño dos botóns"
|
msgstr "A xeometría do marco non especifica o tamaño dos botóns"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1050
|
#: ../src/ui/theme.c:1049
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "As gradacións deben ter polo menos dúas cores"
|
msgstr "As gradacións deben ter polo menos dúas cores"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1202
|
#: ../src/ui/theme.c:1201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
@@ -973,7 +951,7 @@ msgstr ""
|
|||||||
"entre parénteses, por exemplo: gtk:custom(foo,bar); non foi posíbel analizar "
|
"entre parénteses, por exemplo: gtk:custom(foo,bar); non foi posíbel analizar "
|
||||||
"«%s»."
|
"«%s»."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1218
|
#: ../src/ui/theme.c:1217
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
@@ -982,7 +960,7 @@ msgstr ""
|
|||||||
"O carácter «%c» non é válido no parámetro «color_name» de «gtk:custom», só "
|
"O carácter «%c» non é válido no parámetro «color_name» de «gtk:custom», só "
|
||||||
"«A-Za-z0-9» son válidos"
|
"«A-Za-z0-9» son válidos"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1232
|
#: ../src/ui/theme.c:1231
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -991,7 +969,7 @@ msgstr ""
|
|||||||
"O formato de «gtk:custom» é «gtk:custom(nome_de_cor,nome_alternativo», «%s» "
|
"O formato de «gtk:custom» é «gtk:custom(nome_de_cor,nome_alternativo», «%s» "
|
||||||
"non respecta o formato"
|
"non respecta o formato"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1277
|
#: ../src/ui/theme.c:1276
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -1000,7 +978,7 @@ msgstr ""
|
|||||||
"A especificación de cor do GTK debe ter o estado entre parénteses, exemplo. "
|
"A especificación de cor do GTK debe ter o estado entre parénteses, exemplo. "
|
||||||
"gtk:fg[NORMAL] onde NORMAL é o estado; non foi posíbel analizar «%s»"
|
"gtk:fg[NORMAL] onde NORMAL é o estado; non foi posíbel analizar «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1291
|
#: ../src/ui/theme.c:1290
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
@@ -1010,17 +988,17 @@ msgstr ""
|
|||||||
"estado, exemplo. gtk:fg[NORMAL] onde NORMAL é o estado; non foi posíbel "
|
"estado, exemplo. gtk:fg[NORMAL] onde NORMAL é o estado; non foi posíbel "
|
||||||
"analizar «%s»"
|
"analizar «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1302
|
#: ../src/ui/theme.c:1301
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "Non se entende o estado «%s» na especificación da cor"
|
msgstr "Non se entende o estado «%s» na especificación da cor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1315
|
#: ../src/ui/theme.c:1314
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "Non se entende o compoñente de cor «%s» na especificación da cor"
|
msgstr "Non se entende o compoñente de cor «%s» na especificación da cor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1344
|
#: ../src/ui/theme.c:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
@@ -1029,17 +1007,17 @@ msgstr ""
|
|||||||
"O formato de blend é «blend/bg_color/fg_color/alpha», «%s»non coincide co "
|
"O formato de blend é «blend/bg_color/fg_color/alpha», «%s»non coincide co "
|
||||||
"formato"
|
"formato"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1355
|
#: ../src/ui/theme.c:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "Non foi posíbel analizar o valor alfa «%s» na cor mesturada"
|
msgstr "Non foi posíbel analizar o valor alfa «%s» na cor mesturada"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1365
|
#: ../src/ui/theme.c:1364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr "O valor alfa «%s» na cor mesturada non está entre 0.0 e 1.0"
|
msgstr "O valor alfa «%s» na cor mesturada non está entre 0.0 e 1.0"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1412
|
#: ../src/ui/theme.c:1411
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
@@ -1047,28 +1025,28 @@ msgstr ""
|
|||||||
"O formato de sombreado é \"shade/base_color/factor\", «%s» non coincide co "
|
"O formato de sombreado é \"shade/base_color/factor\", «%s» non coincide co "
|
||||||
"formato"
|
"formato"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1423
|
#: ../src/ui/theme.c:1422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "Non foi posíbel analizar o factor de sombreado «%s» na cor sombreada"
|
msgstr "Non foi posíbel analizar o factor de sombreado «%s» na cor sombreada"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1433
|
#: ../src/ui/theme.c:1432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "O factor de sombreado «%s» na cor sombreada é negativo"
|
msgstr "O factor de sombreado «%s» na cor sombreada é negativo"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1462
|
#: ../src/ui/theme.c:1461
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "Non foi posíbel analizar a cor «%s»"
|
msgstr "Non foi posíbel analizar a cor «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1779
|
#: ../src/ui/theme.c:1778
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas contén un carácter «%s» que non está permitido"
|
"A expresión de coordenadas contén un carácter «%s» que non está permitido"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1806
|
#: ../src/ui/theme.c:1805
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
@@ -1077,14 +1055,14 @@ msgstr ""
|
|||||||
"A expresión de coordenadas contén un número de coma flotante «%s» que non "
|
"A expresión de coordenadas contén un número de coma flotante «%s» que non "
|
||||||
"foi posíbel analizar"
|
"foi posíbel analizar"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1820
|
#: ../src/ui/theme.c:1819
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas contén un enteiro «%s» que non foi posíbel "
|
"A expresión de coordenadas contén un enteiro «%s» que non foi posíbel "
|
||||||
"analizar"
|
"analizar"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1941
|
#: ../src/ui/theme.c:1940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
@@ -1093,17 +1071,17 @@ msgstr ""
|
|||||||
"A expresión de coordenadas contén un operador non válido ao inicio do seu "
|
"A expresión de coordenadas contén un operador non válido ao inicio do seu "
|
||||||
"texto: «%s»"
|
"texto: «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1998
|
#: ../src/ui/theme.c:1997
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "A expresión de coordenadas está baleira ou non se entendeu"
|
msgstr "A expresión de coordenadas está baleira ou non se entendeu"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "A expresión de coordenadas resultou nun erro de división por cero"
|
msgstr "A expresión de coordenadas resultou nun erro de división por cero"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2163
|
#: ../src/ui/theme.c:2162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
@@ -1111,25 +1089,25 @@ msgstr ""
|
|||||||
"A expresión de coordenadas tentou usar un operador mod cun número de coma "
|
"A expresión de coordenadas tentou usar un operador mod cun número de coma "
|
||||||
"flotante"
|
"flotante"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2219
|
#: ../src/ui/theme.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas ten un operador «%s» onde se esperaba un operando"
|
"A expresión de coordenadas ten un operador «%s» onde se esperaba un operando"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2228
|
#: ../src/ui/theme.c:2227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas ten un operando onde se esperaba un operador"
|
"A expresión de coordenadas ten un operando onde se esperaba un operador"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2236
|
#: ../src/ui/theme.c:2235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "A expresión de coordenadas remata cun operador en vez dun operando"
|
msgstr "A expresión de coordenadas remata cun operador en vez dun operando"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2246
|
#: ../src/ui/theme.c:2245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
@@ -1138,42 +1116,42 @@ msgstr ""
|
|||||||
"A expresión de coordenadas ten un operador \"%c\" seguido do operador \"%c\" "
|
"A expresión de coordenadas ten un operador \"%c\" seguido do operador \"%c\" "
|
||||||
"sen un operando entre eles"
|
"sen un operando entre eles"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas ten unha variábel ou constante descoñecida «%s»"
|
"A expresión de coordenadas ten unha variábel ou constante descoñecida «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2496
|
#: ../src/ui/theme.c:2495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "O analizador da expresión de coordenadas desbordou o seu búfer."
|
msgstr "O analizador da expresión de coordenadas desbordou o seu búfer."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2525
|
#: ../src/ui/theme.c:2524
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas ten unha paréntese pechada sen unha paréntese "
|
"A expresión de coordenadas ten unha paréntese pechada sen unha paréntese "
|
||||||
"aberta"
|
"aberta"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2589
|
#: ../src/ui/theme.c:2588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A expresión de coordenadas ten unha paréntese aberta sen unha paréntese "
|
"A expresión de coordenadas ten unha paréntese aberta sen unha paréntese "
|
||||||
"pechada"
|
"pechada"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2600
|
#: ../src/ui/theme.c:2599
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "A expresión de coordenadas non parece ter nin operadores nin operandos"
|
msgstr "A expresión de coordenadas non parece ter nin operadores nin operandos"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "O tema contiña unha expresión que resultou ser un erro: %s\n"
|
msgstr "O tema contiña unha expresión que resultou ser un erro: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4499
|
#: ../src/ui/theme.c:4498
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -1182,24 +1160,24 @@ msgstr ""
|
|||||||
"<button function=«%s» state=«%s» draw_ops=\"whatever\"/> débese especificar "
|
"<button function=«%s» state=«%s» draw_ops=\"whatever\"/> débese especificar "
|
||||||
"para este estilo de marco"
|
"para este estilo de marco"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr "Falta <frame state=«%s» resize=«%s» focus=«%s» style=\"whatever\"/>"
|
msgstr "Falta <frame state=«%s» resize=«%s» focus=«%s» style=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5083
|
#: ../src/ui/theme.c:5082
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "Produciuse un erro ao cargar o tema «%s»: %s\n"
|
msgstr "Produciuse un erro ao cargar o tema «%s»: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||||
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "Non se configurou <%s> para o tema «%s»"
|
msgstr "Non se configurou <%s> para o tema «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5255
|
#: ../src/ui/theme.c:5254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1208,7 +1186,7 @@ msgstr ""
|
|||||||
"Non hai un estilo de marco para o tipo de xanela «%s» no tema «%s», engada "
|
"Non hai un estilo de marco para o tipo de xanela «%s» no tema «%s», engada "
|
||||||
"un elemento <window type=«%s» style_set=\"whatever\"/>"
|
"un elemento <window type=«%s» style_set=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
@@ -1216,7 +1194,7 @@ msgstr ""
|
|||||||
"As constantes definidas polo usuario deben comezar cunha letra maiúscula; "
|
"As constantes definidas polo usuario deben comezar cunha letra maiúscula; "
|
||||||
"«%s» non o fai"
|
"«%s» non o fai"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "A constante «%s» xa foi definida"
|
msgstr "A constante «%s» xa foi definida"
|
||||||
@@ -1709,56 +1687,56 @@ msgstr "Bordo"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "Diálogo modal adxunto"
|
msgstr "Diálogo modal adxunto"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "Proba de disposición de botóns %d"
|
msgstr "Proba de disposición de botóns %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g milisegundos para debuxar un marco de xanela"
|
msgstr "%g milisegundos para debuxar un marco de xanela"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "Uso: metacity-theme-viewer [NOMETEMA]\n"
|
msgstr "Uso: metacity-theme-viewer [NOMETEMA]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "Produciuse un erro ao cargar o tema: %s\n"
|
msgstr "Produciuse un erro ao cargar o tema: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "Cargouse o tema «%s» en %g segundos\n"
|
msgstr "Cargouse o tema «%s» en %g segundos\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:870
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "Tipo de letra de título normal"
|
msgstr "Tipo de letra de título normal"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:876
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "Tipo de letra de título pequena"
|
msgstr "Tipo de letra de título pequena"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:882
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "Tipo de letra de título grande"
|
msgstr "Tipo de letra de título grande"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:887
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "Disposición dos botóns"
|
msgstr "Disposición dos botóns"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:892
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "Banco de probas"
|
msgstr "Banco de probas"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "O título da xanela vai aquí"
|
msgstr "O título da xanela vai aquí"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1052
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1769,50 +1747,47 @@ msgstr ""
|
|||||||
"marco) e %g segundos de tempo estándar incluíndo recursos do servidor X (%g "
|
"marco) e %g segundos de tempo estándar incluíndo recursos do servidor X (%g "
|
||||||
"milisegundos por marco)\n"
|
"milisegundos por marco)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1271
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"a proba de expresión da posición devolveu TRUE mais estabeleceu un erro"
|
"a proba de expresión da posición devolveu TRUE mais estabeleceu un erro"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1273
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"a proba de expresión da posición devolveu FALSE mais estabeleceu un erro"
|
"a proba de expresión da posición devolveu FALSE mais estabeleceu un erro"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "Esperábase un erro, mais non se deu ningún"
|
msgstr "Esperábase un erro, mais non se deu ningún"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "Esperábase un erro %d mais deuse %d"
|
msgstr "Esperábase un erro %d mais deuse %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1285
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "Non se esperaba ningún erro mais devolveuse un: %s"
|
msgstr "Non se esperaba ningún erro mais devolveuse un: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "o valor x era %d, esperábase %d"
|
msgstr "o valor x era %d, esperábase %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1292
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "o valor y era %d, esperábase %d"
|
msgstr "o valor y era %d, esperábase %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1357
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%d expresións de coordenadas interpretadas en %g segundos (%g segundos de "
|
"%d expresións de coordenadas interpretadas en %g segundos (%g segundos de "
|
||||||
"media)\n"
|
"media)\n"
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "Minimizar xanela"
|
|
||||||
|
|
||||||
#~ msgid "Comma-separated list of compositor plugins"
|
#~ msgid "Comma-separated list of compositor plugins"
|
||||||
#~ msgstr "Lista de separadas por comas dos complementos do compositor"
|
#~ msgstr "Lista de separadas por comas dos complementos do compositor"
|
||||||
|
|
||||||
|
|||||||
264
po/he.po
264
po/he.po
@@ -9,8 +9,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: metacity.HEAD.he\n"
|
"Project-Id-Version: metacity.HEAD.he\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-04-03 08:27+0300\n"
|
"POT-Creation-Date: 2012-12-26 19:50+0200\n"
|
||||||
"PO-Revision-Date: 2013-04-03 08:28+0200\n"
|
"PO-Revision-Date: 2012-12-26 19:50+0200\n"
|
||||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||||
"Language-Team: Hebrew <he@li.org>\n"
|
"Language-Team: Hebrew <he@li.org>\n"
|
||||||
"Language: he\n"
|
"Language: he\n"
|
||||||
@@ -164,8 +164,8 @@ msgid "Close window"
|
|||||||
msgstr "סגירת חלון"
|
msgstr "סגירת חלון"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
msgid "Hide window"
|
msgid "Minimize window"
|
||||||
msgstr "הסתרת החלון"
|
msgstr "מזעור חלון"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:10
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
@@ -209,16 +209,12 @@ msgstr "פיצול הצפייה מימין"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:568
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Another compositing manager is already running on screen %i on display \"%s\"."
|
msgid "Another compositing manager is already running on screen %i on display \"%s\"."
|
||||||
msgstr "מנהל תצוגת חלונות אחר כבר פועל במסך %i בתצוגה „%s“."
|
msgstr "מנהל תצוגת חלונות אחר כבר פועל במסך %i בתצוגה „%s“."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1064
|
#: ../src/core/bell.c:320
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "לא ניתן ליצור מרקם רקע מקובץ"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:322
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "אירוע פעמון"
|
msgstr "אירוע פעמון"
|
||||||
|
|
||||||
@@ -248,56 +244,51 @@ msgstr "ה_מתנה"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_אילוץ סגירה"
|
msgstr "_אילוץ סגירה"
|
||||||
|
|
||||||
#: ../src/core/display.c:401
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Missing %s extension required for compositing"
|
msgstr "Missing %s extension required for compositing"
|
||||||
|
|
||||||
#: ../src/core/display.c:493
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "Failed to open X Window System display '%s'\n"
|
msgstr "Failed to open X Window System display '%s'\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:935
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Some other program is already using the key %s with modifiers %x as a binding\n"
|
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/keybindings.c:1135
|
#: ../src/core/main.c:196
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" אינו מקש האצה תקני\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:197
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Disable connection to session manager"
|
msgstr "Disable connection to session manager"
|
||||||
|
|
||||||
#: ../src/core/main.c:203
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
msgstr "Replace the running window manager"
|
msgstr "Replace the running window manager"
|
||||||
|
|
||||||
#: ../src/core/main.c:209
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "Specify session management ID"
|
msgstr "Specify session management ID"
|
||||||
|
|
||||||
#: ../src/core/main.c:214
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
msgstr "X Display to use"
|
msgstr "X Display to use"
|
||||||
|
|
||||||
#: ../src/core/main.c:220
|
#: ../src/core/main.c:219
|
||||||
msgid "Initialize session from savefile"
|
msgid "Initialize session from savefile"
|
||||||
msgstr "Initialize session from savefile"
|
msgstr "Initialize session from savefile"
|
||||||
|
|
||||||
#: ../src/core/main.c:226
|
#: ../src/core/main.c:225
|
||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "Make X calls synchronous"
|
msgstr "Make X calls synchronous"
|
||||||
|
|
||||||
#: ../src/core/main.c:534
|
#: ../src/core/main.c:496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Failed to scan themes directory: %s\n"
|
msgstr "Failed to scan themes directory: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:550
|
#: ../src/core/main.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
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"
|
msgstr "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -323,51 +314,51 @@ msgstr "Print version"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "תוסף ה־mutter לשימוש"
|
msgstr "תוסף ה־mutter לשימוש"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1095
|
#: ../src/core/prefs.c:1087
|
||||||
msgid "Workarounds for broken applications disabled. Some applications may not behave properly.\n"
|
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"
|
msgstr "Workarounds for broken applications disabled. Some applications may not behave properly.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1170
|
#: ../src/core/prefs.c:1162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr "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:1236
|
#: ../src/core/prefs.c:1228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\"%s\" found in configuration database is not a valid value for mouse button modifier\n"
|
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"
|
msgstr "\"%s\" found in configuration database is not a valid value for mouse button modifier\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1788
|
#: ../src/core/prefs.c:1768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\"%s\" found in configuration database is not a valid value for keybinding \"%s\"\n"
|
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"
|
msgstr "\"%s\" found in configuration database is not a valid value for keybinding \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1887
|
#: ../src/core/prefs.c:1865
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "סביבת עבודה %d"
|
msgstr "סביבת עבודה %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:691
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "Screen %d on display '%s' is invalid\n"
|
msgstr "Screen %d on display '%s' is invalid\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:707
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, 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"
|
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"
|
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:734
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not acquire window manager selection on screen %d display \"%s\"\n"
|
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"
|
msgstr "Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:812
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "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:998
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "Could not release screen %d on display \"%s\"\n"
|
msgstr "Could not release screen %d on display \"%s\"\n"
|
||||||
@@ -426,45 +417,45 @@ msgstr "Unknown element %s"
|
|||||||
msgid "These windows do not support "save current setup" and will have to be restarted manually next time you log in."
|
msgid "These windows do not support "save current setup" and will have to be restarted manually next time you log in."
|
||||||
msgstr "חלונות אלו אינם תומכים ב"שמירת ההגדרות הנוכחיות", ויהיה צורך באתחול ידני בכניסה הבאה שלך."
|
msgstr "חלונות אלו אינם תומכים ב"שמירת ההגדרות הנוכחיות", ויהיה צורך באתחול ידני בכניסה הבאה שלך."
|
||||||
|
|
||||||
#: ../src/core/util.c:84
|
#: ../src/core/util.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open debug log: %s\n"
|
msgid "Failed to open debug log: %s\n"
|
||||||
msgstr "Failed to open debug log: %s\n"
|
msgstr "Failed to open debug log: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:94
|
#: ../src/core/util.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to fdopen() log file %s: %s\n"
|
msgid "Failed to fdopen() log file %s: %s\n"
|
||||||
msgstr "Failed to fdopen() log file %s: %s\n"
|
msgstr "Failed to fdopen() log file %s: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:100
|
#: ../src/core/util.c:96
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "Opened log file %s\n"
|
msgstr "Opened log file %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:119
|
#: ../src/core/util.c:115
|
||||||
#: ../src/tools/mutter-message.c:149
|
#: ../src/tools/mutter-message.c:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "Mutter הודר ללא תמיכה במצב פירוט\n"
|
msgstr "Mutter הודר ללא תמיכה במצב פירוט\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:264
|
#: ../src/core/util.c:259
|
||||||
msgid "Window manager: "
|
msgid "Window manager: "
|
||||||
msgstr "Window manager: "
|
msgstr "Window manager: "
|
||||||
|
|
||||||
#: ../src/core/util.c:412
|
#: ../src/core/util.c:407
|
||||||
msgid "Bug in window manager: "
|
msgid "Bug in window manager: "
|
||||||
msgstr "Bug in window manager: "
|
msgstr "Bug in window manager: "
|
||||||
|
|
||||||
#: ../src/core/util.c:443
|
#: ../src/core/util.c:438
|
||||||
msgid "Window manager warning: "
|
msgid "Window manager warning: "
|
||||||
msgstr "Window manager warning: "
|
msgstr "Window manager warning: "
|
||||||
|
|
||||||
#: ../src/core/util.c:471
|
#: ../src/core/util.c:466
|
||||||
msgid "Window manager error: "
|
msgid "Window manager error: "
|
||||||
msgstr "Window manager error: "
|
msgstr "Window manager error: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7596
|
#: ../src/core/window.c:7277
|
||||||
#, c-format
|
#, 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"
|
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"
|
msgstr "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER window as specified in the ICCCM.\n"
|
||||||
@@ -476,27 +467,27 @@ 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
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8320
|
#: ../src/core/window.c:7943
|
||||||
#, c-format
|
#, 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"
|
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"
|
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"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "Application set a bogus _NET_WM_PID %lu\n"
|
msgstr "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (מעל %s)"
|
msgstr "%s (מעל %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgstr "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgstr "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
@@ -600,8 +591,8 @@ msgid "Auto maximize nearly monitor sized windows"
|
|||||||
msgstr "Auto maximize nearly monitor sized windows"
|
msgstr "Auto maximize nearly monitor sized windows"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid "If enabled, new windows that are initially the size of the monitor automatically get maximized."
|
msgid "If enabled, monitor nearly monitor sized windows automatically get maximized when mapped."
|
||||||
msgstr "If enabled, new windows that are initially the size of the monitor automatically get maximized."
|
msgstr "If enabled, monitor nearly monitor sized windows automatically get maximized when mapped."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
@@ -811,252 +802,252 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:236
|
#: ../src/ui/theme.c:234
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "top"
|
msgstr "top"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:238
|
#: ../src/ui/theme.c:236
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "bottom"
|
msgstr "bottom"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:240
|
#: ../src/ui/theme.c:238
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "left"
|
msgstr "left"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:242
|
#: ../src/ui/theme.c:240
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "right"
|
msgstr "right"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:270
|
#: ../src/ui/theme.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "frame geometry does not specify \"%s\" dimension"
|
msgstr "frame geometry does not specify \"%s\" dimension"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:289
|
#: ../src/ui/theme.c:287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgstr "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:326
|
#: ../src/ui/theme.c:324
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "Button aspect ratio %g is not reasonable"
|
msgstr "Button aspect ratio %g is not reasonable"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:338
|
#: ../src/ui/theme.c:336
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "Frame geometry does not specify size of buttons"
|
msgstr "Frame geometry does not specify size of buttons"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1051
|
#: ../src/ui/theme.c:1049
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "Gradients should have at least two colors"
|
msgstr "Gradients should have at least two colors"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1203
|
#: ../src/ui/theme.c:1201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "GTK custom color specification must have color name and fallback in parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
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 custom color specification must have color name and fallback in parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
msgstr "GTK custom color specification must have color name and fallback in parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1219
|
#: ../src/ui/theme.c:1217
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-_ are valid"
|
msgid "Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-_ are valid"
|
||||||
msgstr "Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-_ are valid"
|
msgstr "Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-_ are valid"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1233
|
#: ../src/ui/theme.c:1231
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not fit the format"
|
msgid "Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not fit the format"
|
||||||
msgstr "Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not fit the format"
|
msgstr "Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not fit the format"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1278
|
#: ../src/ui/theme.c:1276
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
msgid "GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||||
msgstr "GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
msgstr "GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1292
|
#: ../src/ui/theme.c:1290
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "GTK color specification must have a close bracket after the state, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
msgid "GTK color specification must have a close bracket after the state, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||||
msgstr "GTK color specification must have a close bracket after the state, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
msgstr "GTK color specification must have a close bracket after the state, e.g. gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1303
|
#: ../src/ui/theme.c:1301
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "Did not understand state \"%s\" in color specification"
|
msgstr "Did not understand state \"%s\" in color specification"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1316
|
#: ../src/ui/theme.c:1314
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "Did not understand color component \"%s\" in color specification"
|
msgstr "Did not understand color component \"%s\" in color specification"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1345
|
#: ../src/ui/theme.c:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the format"
|
msgid "Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the format"
|
||||||
msgstr "Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the format"
|
msgstr "Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the format"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1356
|
#: ../src/ui/theme.c:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "Could not parse alpha value \"%s\" in blended color"
|
msgstr "Could not parse alpha value \"%s\" in blended color"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1366
|
#: ../src/ui/theme.c:1364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgstr "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1413
|
#: ../src/ui/theme.c:1411
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
msgid "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
msgstr "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
msgstr "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1424
|
#: ../src/ui/theme.c:1422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "Could not parse shade factor \"%s\" in shaded color"
|
msgstr "Could not parse shade factor \"%s\" in shaded color"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1434
|
#: ../src/ui/theme.c:1432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "Shade factor \"%s\" in shaded color is negative"
|
msgstr "Shade factor \"%s\" in shaded color is negative"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1463
|
#: ../src/ui/theme.c:1461
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "Could not parse color \"%s\""
|
msgstr "Could not parse color \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1780
|
#: ../src/ui/theme.c:1778
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "Coordinate expression contains character '%s' which is not allowed"
|
msgstr "Coordinate expression contains character '%s' which is not allowed"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1807
|
#: ../src/ui/theme.c:1805
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains floating point number '%s' which could not be parsed"
|
msgid "Coordinate expression contains floating point number '%s' which could not be parsed"
|
||||||
msgstr "Coordinate expression contains floating point number '%s' which could not be parsed"
|
msgstr "Coordinate expression contains floating point number '%s' which could not be parsed"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1821
|
#: ../src/ui/theme.c:1819
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "Coordinate expression contains integer '%s' which could not be parsed"
|
msgstr "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1942
|
#: ../src/ui/theme.c:1940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contained unknown operator at the start of this text: \"%s\""
|
msgid "Coordinate expression contained unknown operator at the start of this text: \"%s\""
|
||||||
msgstr "Coordinate expression contained unknown operator at the start of this text: \"%s\""
|
msgstr "Coordinate expression contained unknown operator at the start of this text: \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1999
|
#: ../src/ui/theme.c:1997
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "Coordinate expression was empty or not understood"
|
msgstr "Coordinate expression was empty or not understood"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2112
|
#: ../src/ui/theme.c:2110
|
||||||
#: ../src/ui/theme.c:2122
|
#: ../src/ui/theme.c:2120
|
||||||
#: ../src/ui/theme.c:2156
|
#: ../src/ui/theme.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "Coordinate expression results in division by zero"
|
msgstr "Coordinate expression results in division by zero"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2164
|
#: ../src/ui/theme.c:2162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression tries to use mod operator on a floating-point number"
|
msgid "Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
msgstr "Coordinate expression tries to use mod operator on a floating-point number"
|
msgstr "Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2220
|
#: ../src/ui/theme.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression has an operator \"%s\" where an operand was expected"
|
msgid "Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr "Coordinate expression has an operator \"%s\" where an operand was expected"
|
msgstr "Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2229
|
#: ../src/ui/theme.c:2227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr "Coordinate expression had an operand where an operator was expected"
|
msgstr "Coordinate expression had an operand where an operator was expected"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2237
|
#: ../src/ui/theme.c:2235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "Coordinate expression ended with an operator instead of an operand"
|
msgstr "Coordinate expression ended with an operator instead of an operand"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2247
|
#: ../src/ui/theme.c:2245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression has operator \"%c\" following operator \"%c\" with no operand in between"
|
msgid "Coordinate expression has operator \"%c\" following operator \"%c\" with no operand in between"
|
||||||
msgstr "Coordinate expression has operator \"%c\" following operator \"%c\" with no operand in between"
|
msgstr "Coordinate expression has operator \"%c\" following operator \"%c\" with no operand in between"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2398
|
#: ../src/ui/theme.c:2396
|
||||||
#: ../src/ui/theme.c:2443
|
#: ../src/ui/theme.c:2441
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr "Coordinate expression had unknown variable or constant \"%s\""
|
msgstr "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2497
|
#: ../src/ui/theme.c:2495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "Coordinate expression parser overflowed its buffer."
|
msgstr "Coordinate expression parser overflowed its buffer."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2526
|
#: ../src/ui/theme.c:2524
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgstr "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2590
|
#: ../src/ui/theme.c:2588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgstr "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2601
|
#: ../src/ui/theme.c:2599
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "Coordinate expression doesn't seem to have any operators or operands"
|
msgstr "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2814
|
#: ../src/ui/theme.c:2812
|
||||||
#: ../src/ui/theme.c:2834
|
#: ../src/ui/theme.c:2832
|
||||||
#: ../src/ui/theme.c:2854
|
#: ../src/ui/theme.c:2852
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "Theme contained an expression that resulted in an error: %s\n"
|
msgstr "Theme contained an expression that resulted in an error: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4500
|
#: ../src/ui/theme.c:4498
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be specified for this frame style"
|
msgid "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be specified for this frame style"
|
||||||
msgstr "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be specified for this frame style"
|
msgstr "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be specified for this frame style"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5011
|
#: ../src/ui/theme.c:5009
|
||||||
#: ../src/ui/theme.c:5036
|
#: ../src/ui/theme.c:5034
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
msgstr "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5084
|
#: ../src/ui/theme.c:5082
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "Failed to load theme \"%s\": %s\n"
|
msgstr "Failed to load theme \"%s\": %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5220
|
#: ../src/ui/theme.c:5218
|
||||||
#: ../src/ui/theme.c:5227
|
#: ../src/ui/theme.c:5225
|
||||||
#: ../src/ui/theme.c:5234
|
#: ../src/ui/theme.c:5232
|
||||||
#: ../src/ui/theme.c:5241
|
#: ../src/ui/theme.c:5239
|
||||||
#: ../src/ui/theme.c:5248
|
#: ../src/ui/theme.c:5246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "No <%s> set for theme \"%s\""
|
msgstr "No <%s> set for theme \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5256
|
#: ../src/ui/theme.c:5254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No frame style set for window type \"%s\" in theme \"%s\", add a <window type=\"%s\" style_set=\"whatever\"/> element"
|
msgid "No frame style set for window type \"%s\" in theme \"%s\", add a <window type=\"%s\" style_set=\"whatever\"/> element"
|
||||||
msgstr "No frame style set for window type \"%s\" in theme \"%s\", add a <window type=\"%s\" style_set=\"whatever\"/> element"
|
msgstr "No frame style set for window type \"%s\" in theme \"%s\", add a <window type=\"%s\" style_set=\"whatever\"/> element"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5663
|
#: ../src/ui/theme.c:5650
|
||||||
#: ../src/ui/theme.c:5725
|
#: ../src/ui/theme.c:5712
|
||||||
#: ../src/ui/theme.c:5788
|
#: ../src/ui/theme.c:5775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
|
msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
msgstr "User-defined constants must begin with a capital letter; \"%s\" does not"
|
msgstr "User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5671
|
#: ../src/ui/theme.c:5658
|
||||||
#: ../src/ui/theme.c:5733
|
#: ../src/ui/theme.c:5720
|
||||||
#: ../src/ui/theme.c:5796
|
#: ../src/ui/theme.c:5783
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "Constant \"%s\" has already been defined"
|
msgstr "Constant \"%s\" has already been defined"
|
||||||
@@ -1428,7 +1419,7 @@ msgstr "מלל לא מורשה בתג <%s>"
|
|||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "<%s> צוין פעמיים עבור ערכת נושא זו"
|
msgstr "<%s> צוין פעמיים עבור ערכת נושא זו"
|
||||||
|
|
||||||
#: ../src/ui/theme-parser.c:4336
|
#: ../src/ui/theme-parser.c:4334
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "Failed to find a valid file for theme %s\n"
|
msgstr "Failed to find a valid file for theme %s\n"
|
||||||
@@ -1534,100 +1525,97 @@ msgstr "מסגרת"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "חלון חוסם מוצמד"
|
msgstr "חלון חוסם מוצמד"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "בדיקת פריסת לחצנים %d"
|
msgstr "בדיקת פריסת לחצנים %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g מילישניות לציור של מסגרת חלון אחת"
|
msgstr "%g מילישניות לציור של מסגרת חלון אחת"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgstr "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "Error loading theme: %s\n"
|
msgstr "Error loading theme: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "Loaded theme \"%s\" in %g seconds\n"
|
msgstr "Loaded theme \"%s\" in %g seconds\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:870
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "גופן כותרת רגילה"
|
msgstr "גופן כותרת רגילה"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:876
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "גופן כותרת קטנה"
|
msgstr "גופן כותרת קטנה"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:882
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "גופן כותרת גדולה"
|
msgstr "גופן כותרת גדולה"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:887
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "פריסת לחצנים"
|
msgstr "פריסת לחצנים"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:892
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "מדידת ביצועים"
|
msgstr "מדידת ביצועים"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "כותרת החלון מופיעה כאן"
|
msgstr "כותרת החלון מופיעה כאן"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1052
|
||||||
#, c-format
|
#, 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"
|
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"
|
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:1273
|
#: ../src/ui/theme-viewer.c:1271
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr "position expression test returned TRUE but set error"
|
msgstr "position expression test returned TRUE but set error"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1273
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr "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:1279
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "Error was expected but none given"
|
msgstr "Error was expected but none given"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "Error %d was expected but %d given"
|
msgstr "Error %d was expected but %d given"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1285
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "Error not expected but one was returned: %s"
|
msgstr "Error not expected but one was returned: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "x value was %d, %d was expected"
|
msgstr "x value was %d, %d was expected"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1292
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "y value was %d, %d was expected"
|
msgstr "y value was %d, %d was expected"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1357
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgstr "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "מזעור חלון"
|
|
||||||
|
|
||||||
#~ msgid "Comma-separated list of compositor plugins"
|
#~ msgid "Comma-separated list of compositor plugins"
|
||||||
#~ msgstr "Comma-separated list of compositor plugins"
|
#~ msgstr "Comma-separated list of compositor plugins"
|
||||||
|
|
||||||
|
|||||||
235
po/nb.po
235
po/nb.po
@@ -4,10 +4,10 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter 3.9.x\n"
|
"Project-Id-Version: mutter 3.7.x\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-08-08 22:14+0200\n"
|
"POT-Creation-Date: 2013-01-29 19:33+0100\n"
|
||||||
"PO-Revision-Date: 2013-05-28 09:48+0200\n"
|
"PO-Revision-Date: 2013-01-29 19:34+0100\n"
|
||||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||||
"Language-Team: Norwegian bokmål <i18n-no@lister.ping.uio.no>\n"
|
"Language-Team: Norwegian bokmål <i18n-no@lister.ping.uio.no>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
@@ -205,18 +205,14 @@ msgstr "Visning delt til høyre"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:589
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
"\"."
|
"\"."
|
||||||
msgstr "En annen compositing manager kjører skjerm %i på display «%s»."
|
msgstr "En annen compositing manager kjører skjerm %i på display «%s»."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1076
|
#: ../src/core/bell.c:320
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "bakgrunnstekstur kunne ikke lages fra fil"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:322
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Klokkehendelse"
|
msgstr "Klokkehendelse"
|
||||||
|
|
||||||
@@ -250,17 +246,17 @@ msgstr "_Vent"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Tvungen nedstenging"
|
msgstr "_Tvungen nedstenging"
|
||||||
|
|
||||||
#: ../src/core/display.c:421
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Mangler utvidelsen %s som kreves for komposittfunksjon"
|
msgstr "Mangler utvidelsen %s som kreves for komposittfunksjon"
|
||||||
|
|
||||||
#: ../src/core/display.c:513
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "Feil under åpning av X Window System skjerm «%s»\n"
|
msgstr "Feil under åpning av X Window System skjerm «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1138
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -269,41 +265,36 @@ msgstr ""
|
|||||||
"Et annet program bruker allerede nøkkelen %s med modifikatorer %x som "
|
"Et annet program bruker allerede nøkkelen %s med modifikatorer %x som "
|
||||||
"binding\n"
|
"binding\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1335
|
#: ../src/core/main.c:196
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "«%s» er ikke en gyldig aksellerator\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:197
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Deaktiver tilkobling til sesjonshåndtereren"
|
msgstr "Deaktiver tilkobling til sesjonshåndtereren"
|
||||||
|
|
||||||
#: ../src/core/main.c:203
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
msgstr "Erstatt kjørende vindushåndterer"
|
msgstr "Erstatt kjørende vindushåndterer"
|
||||||
|
|
||||||
#: ../src/core/main.c:209
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "Oppgi sesjonshåndterings-ID"
|
msgstr "Oppgi sesjonshåndterings-ID"
|
||||||
|
|
||||||
#: ../src/core/main.c:214
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
msgstr "X-skjerm som skal brukes"
|
msgstr "X-skjerm som skal brukes"
|
||||||
|
|
||||||
#: ../src/core/main.c:220
|
#: ../src/core/main.c:219
|
||||||
msgid "Initialize session from savefile"
|
msgid "Initialize session from savefile"
|
||||||
msgstr "Initier sesjonen fra en lagret fil"
|
msgstr "Initier sesjonen fra en lagret fil"
|
||||||
|
|
||||||
#: ../src/core/main.c:226
|
#: ../src/core/main.c:225
|
||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "Gjør X-kall synkrone"
|
msgstr "Gjør X-kall synkrone"
|
||||||
|
|
||||||
#: ../src/core/main.c:534
|
#: ../src/core/main.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Feil under søk i temakatalog: %s\n"
|
msgstr "Feil under søk i temakatalog: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:550
|
#: ../src/core/main.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -333,7 +324,7 @@ msgstr "Skriv versjonsnummer"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Mutter-tillegg som skal brukes"
|
msgstr "Mutter-tillegg som skal brukes"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1202
|
#: ../src/core/prefs.c:1087
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
@@ -341,12 +332,12 @@ msgstr ""
|
|||||||
"Funksjonalitet for å gå rundt ødelagte programmer er deaktivert. Noen "
|
"Funksjonalitet for å gå rundt ødelagte programmer er deaktivert. Noen "
|
||||||
"programmer vil kanskje ikke oppføre seg korrekt.\n"
|
"programmer vil kanskje ikke oppføre seg korrekt.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1277
|
#: ../src/core/prefs.c:1162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr "Kunne ikke tolke skriftbeskrivelsen «%s» fra GSettings-nøkkel %s\n"
|
msgstr "Kunne ikke tolke skriftbeskrivelsen «%s» fra GSettings-nøkkel %s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1343
|
#: ../src/core/prefs.c:1228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
@@ -355,7 +346,7 @@ msgstr ""
|
|||||||
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for endring av "
|
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for endring av "
|
||||||
"musknapp\n"
|
"musknapp\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1909
|
#: ../src/core/prefs.c:1780
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
@@ -364,17 +355,17 @@ msgstr ""
|
|||||||
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for "
|
"«%s» funnet i konfigurasjonsdatabasen er ikke en gyldig verdi for "
|
||||||
"tastaturbinding «%s»\n"
|
"tastaturbinding «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1999
|
#: ../src/core/prefs.c:1877
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Arbeidsområde %d"
|
msgstr "Arbeidsområde %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:691
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "Skjerm %d på display «%s» er ugyldig\n"
|
msgstr "Skjerm %d på display «%s» er ugyldig\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:707
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -383,19 +374,19 @@ msgstr ""
|
|||||||
"Skjerm %d på display «%s» har allerede en vindushåndterer; prøv å bruke "
|
"Skjerm %d på display «%s» har allerede en vindushåndterer; prøv å bruke "
|
||||||
"flagget --replace for å erstatte aktiv vindushåndterer.\n"
|
"flagget --replace for å erstatte aktiv vindushåndterer.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:734
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kunne ikke hente utvalg fra vinduhåndterer på skjerm %d, display «%s»\n"
|
"Kunne ikke hente utvalg fra vinduhåndterer på skjerm %d, display «%s»\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:812
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "Skjerm %d på display «%s» har allerede en vinduhåndterer\n"
|
msgstr "Skjerm %d på display «%s» har allerede en vinduhåndterer\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:998
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "Kunne ikke slippe skjerm %d på display «%s»\n"
|
msgstr "Kunne ikke slippe skjerm %d på display «%s»\n"
|
||||||
@@ -455,44 +446,44 @@ msgstr ""
|
|||||||
"Disse vinduene støtter ikke "lagre aktiv konfigurasjon"og vil "
|
"Disse vinduene støtter ikke "lagre aktiv konfigurasjon"og vil "
|
||||||
"måtte startes på nytt manuelt neste gang du logger inn."
|
"måtte startes på nytt manuelt neste gang du logger inn."
|
||||||
|
|
||||||
#: ../src/core/util.c:84
|
#: ../src/core/util.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open debug log: %s\n"
|
msgid "Failed to open debug log: %s\n"
|
||||||
msgstr "Feil under åpning av feilsøkingslogg: %s\n"
|
msgstr "Feil under åpning av feilsøkingslogg: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:94
|
#: ../src/core/util.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to fdopen() log file %s: %s\n"
|
msgid "Failed to fdopen() log file %s: %s\n"
|
||||||
msgstr "Feil under fdopen() av loggfil %s: %s\n"
|
msgstr "Feil under fdopen() av loggfil %s: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:100
|
#: ../src/core/util.c:96
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "Åpnet loggfil %s\n"
|
msgstr "Åpnet loggfil %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:119 ../src/tools/mutter-message.c:149
|
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "Mutter er kompilert uten støtte for «verbose» modus\n"
|
msgstr "Mutter er kompilert uten støtte for «verbose» modus\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:264
|
#: ../src/core/util.c:259
|
||||||
msgid "Window manager: "
|
msgid "Window manager: "
|
||||||
msgstr "Vindushåndterer: "
|
msgstr "Vindushåndterer: "
|
||||||
|
|
||||||
#: ../src/core/util.c:412
|
#: ../src/core/util.c:407
|
||||||
msgid "Bug in window manager: "
|
msgid "Bug in window manager: "
|
||||||
msgstr "Feil i vindushåndterer: "
|
msgstr "Feil i vindushåndterer: "
|
||||||
|
|
||||||
#: ../src/core/util.c:443
|
#: ../src/core/util.c:438
|
||||||
msgid "Window manager warning: "
|
msgid "Window manager warning: "
|
||||||
msgstr "Advarsel fra vindushåndterer: "
|
msgstr "Advarsel fra vindushåndterer: "
|
||||||
|
|
||||||
#: ../src/core/util.c:471
|
#: ../src/core/util.c:466
|
||||||
msgid "Window manager error: "
|
msgid "Window manager error: "
|
||||||
msgstr "Feil i vindushåndterer: "
|
msgstr "Feil i vindushåndterer: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7513
|
#: ../src/core/window.c:7287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -508,7 +499,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8237
|
#: ../src/core/window.c:7953
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -518,22 +509,22 @@ msgstr ""
|
|||||||
"men setter minste størrelse %d x %d og maks størrelse %d x %d; dette virker "
|
"men setter minste størrelse %d x %d og maks størrelse %d x %d; dette virker "
|
||||||
"ikke fornuftig.\n"
|
"ikke fornuftig.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "Programmet satte en feil _NET_WM_PID %lu\n"
|
msgstr "Programmet satte en feil _NET_WM_PID %lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (på %s)"
|
msgstr "%s (på %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr "Ugyldig WM_TRANSIENT_FOR vindu 0x%lx oppgitt for %s.\n"
|
msgstr "Ugyldig WM_TRANSIENT_FOR vindu 0x%lx oppgitt for %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR vindu 0x%lx for %s ville skapt en løkke.\n"
|
msgstr "WM_TRANSIENT_FOR vindu 0x%lx for %s ville skapt en løkke.\n"
|
||||||
@@ -682,11 +673,9 @@ msgstr "Maksimer vinduer automatisk hvis de er nesten like store som skjermen"
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||||
"automatically get maximized."
|
"when mapped."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nye vinduer som i utgangspunktet er samme størrelse som skjermen vil "
|
|
||||||
"automatisk bli maksimert hvis denne slås på."
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
@@ -895,53 +884,53 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:236
|
#: ../src/ui/theme.c:235
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "topp"
|
msgstr "topp"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:238
|
#: ../src/ui/theme.c:237
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "bunn"
|
msgstr "bunn"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:240
|
#: ../src/ui/theme.c:239
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "venstre"
|
msgstr "venstre"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:242
|
#: ../src/ui/theme.c:241
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "høyre"
|
msgstr "høyre"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:270
|
#: ../src/ui/theme.c:269
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "rammegeometrien spesifiserer ikke «%s»-dimensjon"
|
msgstr "rammegeometrien spesifiserer ikke «%s»-dimensjon"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:289
|
#: ../src/ui/theme.c:288
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "rammegeometri spesifiserer ikke dimensjon «%s» for kant «%s»"
|
msgstr "rammegeometri spesifiserer ikke dimensjon «%s» for kant «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:326
|
#: ../src/ui/theme.c:325
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "Aspektrate %g for knapp er ikke fornuftig"
|
msgstr "Aspektrate %g for knapp er ikke fornuftig"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:338
|
#: ../src/ui/theme.c:337
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "Rammegeometrien spesifiserer ikke størrelse på knapper"
|
msgstr "Rammegeometrien spesifiserer ikke størrelse på knapper"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1051
|
#: ../src/ui/theme.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "Gradienter må ha minst to farger"
|
msgstr "Gradienter må ha minst to farger"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1203
|
#: ../src/ui/theme.c:1202
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
@@ -950,7 +939,7 @@ msgstr ""
|
|||||||
"Egendefinert GTK-fargespesifikasjon må ha fargenavn og reserve i parantes, f."
|
"Egendefinert GTK-fargespesifikasjon må ha fargenavn og reserve i parantes, f."
|
||||||
"eks gtk:custom(foo,bar); kunne ikke lese «%s»"
|
"eks gtk:custom(foo,bar); kunne ikke lese «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1219
|
#: ../src/ui/theme.c:1218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
@@ -959,7 +948,7 @@ msgstr ""
|
|||||||
"Ugyldig tegn «%c» i parameter color_name for gtk:custom, kun A-Za-z0-9-_ er "
|
"Ugyldig tegn «%c» i parameter color_name for gtk:custom, kun A-Za-z0-9-_ er "
|
||||||
"gyldig"
|
"gyldig"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1233
|
#: ../src/ui/theme.c:1232
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -968,7 +957,7 @@ msgstr ""
|
|||||||
"Gtk:custom-format er «gtk:custom(color_name,fallback)», «%s» passer ikke i "
|
"Gtk:custom-format er «gtk:custom(color_name,fallback)», «%s» passer ikke i "
|
||||||
"formatet"
|
"formatet"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1278
|
#: ../src/ui/theme.c:1277
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -977,7 +966,7 @@ msgstr ""
|
|||||||
"GTK-fargespesifikasjon må ha tilstand i klammer, f.eks. gtk:fg[NORMAL], hvor "
|
"GTK-fargespesifikasjon må ha tilstand i klammer, f.eks. gtk:fg[NORMAL], hvor "
|
||||||
"NORMAL er tilstanden; kunne ikke lese «%s»"
|
"NORMAL er tilstanden; kunne ikke lese «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1292
|
#: ../src/ui/theme.c:1291
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
@@ -986,17 +975,17 @@ msgstr ""
|
|||||||
"GTK-fargespesifikasjon må ha en avsluttende klamme etter tilstanden, f.eks. "
|
"GTK-fargespesifikasjon må ha en avsluttende klamme etter tilstanden, f.eks. "
|
||||||
"gtk:fg[NORMAL], hvor NORMAL er tilstanden; kunne ikke lese «%s»"
|
"gtk:fg[NORMAL], hvor NORMAL er tilstanden; kunne ikke lese «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1303
|
#: ../src/ui/theme.c:1302
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "Forsto ikke tilstand «%s» i fargespesifikasjonen"
|
msgstr "Forsto ikke tilstand «%s» i fargespesifikasjonen"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1316
|
#: ../src/ui/theme.c:1315
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "Forsto ikke fargekomponent «%s» i fargespesifikasjonen"
|
msgstr "Forsto ikke fargekomponent «%s» i fargespesifikasjonen"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1345
|
#: ../src/ui/theme.c:1344
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
@@ -1005,56 +994,56 @@ msgstr ""
|
|||||||
"Blandingsformat er «blend/bg_color/fg_color/alpha», «%s» passer ikke i "
|
"Blandingsformat er «blend/bg_color/fg_color/alpha», «%s» passer ikke i "
|
||||||
"formatet"
|
"formatet"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1356
|
#: ../src/ui/theme.c:1355
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "Kunne ikke lese alpha-verdi «%s» i blandet farge"
|
msgstr "Kunne ikke lese alpha-verdi «%s» i blandet farge"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1366
|
#: ../src/ui/theme.c:1365
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
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"
|
msgstr "Alpha-verdi «%s» i blandet farge er ikke mellom 0.0 og 1.0"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1413
|
#: ../src/ui/theme.c:1412
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Skyggeformatet er «shade/base_color/factor», «%s» passer ikke i formatet"
|
"Skyggeformatet er «shade/base_color/factor», «%s» passer ikke i formatet"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1424
|
#: ../src/ui/theme.c:1423
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "Kunne ikke lese skyggefaktor «%s» i skyggelagt farge"
|
msgstr "Kunne ikke lese skyggefaktor «%s» i skyggelagt farge"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1434
|
#: ../src/ui/theme.c:1433
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "Skyggefaktor «%s» i skyggelagt farge er negativ"
|
msgstr "Skyggefaktor «%s» i skyggelagt farge er negativ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1463
|
#: ../src/ui/theme.c:1462
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "Kunne ikke lese farge «%s»"
|
msgstr "Kunne ikke lese farge «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1780
|
#: ../src/ui/theme.c:1779
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "Koordinatuttrykk inneholder tegn «%s» som ikke er tillatt"
|
msgstr "Koordinatuttrykk inneholder tegn «%s» som ikke er tillatt"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1807
|
#: ../src/ui/theme.c:1806
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
"parsed"
|
"parsed"
|
||||||
msgstr "Koordinatuttrykk inneholder flyttall «%s» som ikke kunne tolkes"
|
msgstr "Koordinatuttrykk inneholder flyttall «%s» som ikke kunne tolkes"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1821
|
#: ../src/ui/theme.c:1820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "Koordinatuttrykk inneholder heltall «%s» som ikke kunne tolkes"
|
msgstr "Koordinatuttrykk inneholder heltall «%s» som ikke kunne tolkes"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1942
|
#: ../src/ui/theme.c:1941
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
@@ -1063,39 +1052,39 @@ msgstr ""
|
|||||||
"Koordinatuttrykket inneholdt en ukjent operator ved begynnelsen av denne "
|
"Koordinatuttrykket inneholdt en ukjent operator ved begynnelsen av denne "
|
||||||
"teksten: «%s»"
|
"teksten: «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1999
|
#: ../src/ui/theme.c:1998
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "Koordinatuttrykket var tomt eller ble ikke forstått"
|
msgstr "Koordinatuttrykket var tomt eller ble ikke forstått"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2112 ../src/ui/theme.c:2122 ../src/ui/theme.c:2156
|
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "Koordinatuttrykket resulterer i divisjon med null"
|
msgstr "Koordinatuttrykket resulterer i divisjon med null"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2164
|
#: ../src/ui/theme.c:2163
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
msgstr "Koordinatuttrykket prøver å bruke mod-operator på et flyttall"
|
msgstr "Koordinatuttrykket prøver å bruke mod-operator på et flyttall"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2220
|
#: ../src/ui/theme.c:2219
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr "Koordinatuttrykket har en operator «%s» hvor en operand var ventet"
|
msgstr "Koordinatuttrykket har en operator «%s» hvor en operand var ventet"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2229
|
#: ../src/ui/theme.c:2228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr "Koordinatuttrykket hadde en operand hvor en operator var ventet"
|
msgstr "Koordinatuttrykket hadde en operand hvor en operator var ventet"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2237
|
#: ../src/ui/theme.c:2236
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "Koordinatuttrykket sluttet med en operator i stedet for en operand"
|
msgstr "Koordinatuttrykket sluttet med en operator i stedet for en operand"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2247
|
#: ../src/ui/theme.c:2246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
@@ -1104,38 +1093,38 @@ msgstr ""
|
|||||||
"Koordinatuttrykket har en operator «%c» etter en operator «%c» og ingen "
|
"Koordinatuttrykket har en operator «%c» etter en operator «%c» og ingen "
|
||||||
"operand mellom dem."
|
"operand mellom dem."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2398 ../src/ui/theme.c:2443
|
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr "Koordinatuttrykket haddeen ukjent variabel eller konstant «%s»"
|
msgstr "Koordinatuttrykket haddeen ukjent variabel eller konstant «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2497
|
#: ../src/ui/theme.c:2496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "Tolkeren for koordinatuttrykk oversteg buffergrensen."
|
msgstr "Tolkeren for koordinatuttrykk oversteg buffergrensen."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2526
|
#: ../src/ui/theme.c:2525
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr "Koordinatuttrykket hadde en parantes slutt uten parantes start"
|
msgstr "Koordinatuttrykket hadde en parantes slutt uten parantes start"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2590
|
#: ../src/ui/theme.c:2589
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr "Koordinatuttrykket hadde en åpen parantes uten en avsluttende parantes"
|
msgstr "Koordinatuttrykket hadde en åpen parantes uten en avsluttende parantes"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2601
|
#: ../src/ui/theme.c:2600
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Koordinatuttrykket ser ikke ut til å ha noen operatorer eller operander"
|
"Koordinatuttrykket ser ikke ut til å ha noen operatorer eller operander"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2814 ../src/ui/theme.c:2834 ../src/ui/theme.c:2854
|
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "Tema inneholdt et uttrykk som resulterte i en feil: %s\n"
|
msgstr "Tema inneholdt et uttrykk som resulterte i en feil: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4500
|
#: ../src/ui/theme.c:4499
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -1144,25 +1133,25 @@ msgstr ""
|
|||||||
"<button function=«%s» state=«%s» draw_ops=«ett-eller-annet»/> må "
|
"<button function=«%s» state=«%s» draw_ops=«ett-eller-annet»/> må "
|
||||||
"spesifiseres for denne rammestilen"
|
"spesifiseres for denne rammestilen"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5011 ../src/ui/theme.c:5036
|
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Mangler <frame state=«%s» resize=«%s» focus=«%s» stil=«ett-eller-annet»/>"
|
"Mangler <frame state=«%s» resize=«%s» focus=«%s» stil=«ett-eller-annet»/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5084
|
#: ../src/ui/theme.c:5083
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "Klarte ikke å laste tema «%s»: %s\n"
|
msgstr "Klarte ikke å laste tema «%s»: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5220 ../src/ui/theme.c:5227 ../src/ui/theme.c:5234
|
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
||||||
#: ../src/ui/theme.c:5241 ../src/ui/theme.c:5248
|
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "<%s> er ikke satt for tema «%s»"
|
msgstr "<%s> er ikke satt for tema «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5256
|
#: ../src/ui/theme.c:5255
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1171,14 +1160,14 @@ msgstr ""
|
|||||||
"Ingen rammestil satt for vindutype «%s» i tema «%s», legg til et <window "
|
"Ingen rammestil satt for vindutype «%s» i tema «%s», legg til et <window "
|
||||||
"type=«%s» style_set=«ett-eller-annet»/>-element"
|
"type=«%s» style_set=«ett-eller-annet»/>-element"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5663 ../src/ui/theme.c:5725 ../src/ui/theme.c:5788
|
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Brukerdefinerte konstanter må begynne med stor bokstav; «%s» gjør ikke det"
|
"Brukerdefinerte konstanter må begynne med stor bokstav; «%s» gjør ikke det"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5671 ../src/ui/theme.c:5733 ../src/ui/theme.c:5796
|
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "Konstant «%s» er allerede definert"
|
msgstr "Konstant «%s» er allerede definert"
|
||||||
@@ -1559,7 +1548,7 @@ msgstr "Ingen tekst er tillatt inne i element <%s>"
|
|||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "<%s> spesifisert to ganger for dette temaet"
|
msgstr "<%s> spesifisert to ganger for dette temaet"
|
||||||
|
|
||||||
#: ../src/ui/theme-parser.c:4336
|
#: ../src/ui/theme-parser.c:4334
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "Fant ikke en gyldig fil for tema %s\n"
|
msgstr "Fant ikke en gyldig fil for tema %s\n"
|
||||||
@@ -1665,56 +1654,56 @@ msgstr "Kant"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "Festet modal dialog"
|
msgstr "Festet modal dialog"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "Test av knappeplassering %d"
|
msgstr "Test av knappeplassering %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g millisekunder for å tegne en vindusramme"
|
msgstr "%g millisekunder for å tegne en vindusramme"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "Bruk: metacity-theme-viewer [TEMANAVN]\n"
|
msgstr "Bruk: metacity-theme-viewer [TEMANAVN]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "Feil under lasting av tema: %s\n"
|
msgstr "Feil under lasting av tema: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "Lastet tema «%s» på %g sekunder\n"
|
msgstr "Lastet tema «%s» på %g sekunder\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:871
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "Normal tittelskrift"
|
msgstr "Normal tittelskrift"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:877
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "Liten tittelskrift"
|
msgstr "Liten tittelskrift"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:883
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "Stor tittelskrift"
|
msgstr "Stor tittelskrift"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:888
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "Knappeplasseringer"
|
msgstr "Knappeplasseringer"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:893
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "Ytelsestest"
|
msgstr "Ytelsestest"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "Vindutittel skal her"
|
msgstr "Vindutittel skal her"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1055
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1725,39 +1714,39 @@ msgstr ""
|
|||||||
"%g sekunder på klokken inklusive ressurser på X-tjener (%g millisekunder per "
|
"%g sekunder på klokken inklusive ressurser på X-tjener (%g millisekunder per "
|
||||||
"ramme)\n"
|
"ramme)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1275
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr "test av posisjonsuttrykk returnerte TRUE, men satte en feilkode"
|
msgstr "test av posisjonsuttrykk returnerte TRUE, men satte en feilkode"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr "test av posisjonsuttrykk returnerte FALSE, men satte ikke en feilkode"
|
msgstr "test av posisjonsuttrykk returnerte FALSE, men satte ikke en feilkode"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1281
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "Feil var ventet men ingen ble gitt"
|
msgstr "Feil var ventet men ingen ble gitt"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1283
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "Feil %d var ventet men %d ble gitt"
|
msgstr "Feil %d var ventet men %d ble gitt"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "Feil ikke ventet men en ble returnert: %s"
|
msgstr "Feil ikke ventet men en ble returnert: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "x-verdi var %d, %d var ventet"
|
msgstr "x-verdi var %d, %d var ventet"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1296
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "y-verdi var %d, %d var ventet"
|
msgstr "y-verdi var %d, %d var ventet"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1361
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "%d koordinatuttrykk lest på %g sekunder (%g sekunder i snitt)\n"
|
msgstr "%d koordinatuttrykk lest på %g sekunder (%g sekunder i snitt)\n"
|
||||||
|
|||||||
211
po/pl.po
211
po/pl.po
@@ -9,14 +9,14 @@
|
|||||||
# Marek Stępień <marcoos@aviary.pl>, 2007.
|
# Marek Stępień <marcoos@aviary.pl>, 2007.
|
||||||
# Wadim Dziedzic <wdziedzic@aviary.pl>, 2007.
|
# Wadim Dziedzic <wdziedzic@aviary.pl>, 2007.
|
||||||
# Tomasz Dominikowski <dominikowski@gmail.com>, 2008-2009.
|
# Tomasz Dominikowski <dominikowski@gmail.com>, 2008-2009.
|
||||||
# Piotr Drąg <piotrdrag@gmail.com>, 2010-2013.
|
# Piotr Drąg <piotrdrag@gmail.com>, 2010-2012.
|
||||||
# Aviary.pl <gnomepl@aviary.pl>, 2007-2013.
|
# Aviary.pl <gnomepl@aviary.pl>, 2007-2012.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter\n"
|
"Project-Id-Version: mutter\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-03-02 01:52+0100\n"
|
"POT-Creation-Date: 2012-12-26 21:39+0100\n"
|
||||||
"PO-Revision-Date: 2013-03-02 01:53+0100\n"
|
"PO-Revision-Date: 2012-12-26 21:40+0100\n"
|
||||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
@@ -173,8 +173,8 @@ msgid "Close window"
|
|||||||
msgstr "Zamknięcie okna"
|
msgstr "Zamknięcie okna"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
msgid "Hide window"
|
msgid "Minimize window"
|
||||||
msgstr "Ukrycie okna"
|
msgstr "Minimalizacja okna"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:10
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
@@ -187,7 +187,7 @@ msgstr "Zmiana rozmiaru okna"
|
|||||||
#: ../src/50-mutter-windows.xml.in.h:12
|
#: ../src/50-mutter-windows.xml.in.h:12
|
||||||
msgid "Toggle window on all workspaces or one"
|
msgid "Toggle window on all workspaces or one"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Przełączenie obecności okna na wszystkich obszarach roboczych lub jednym"
|
"Przełączenie obecności okna na wszystkich obszarach roboczych lub jednym "
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:13
|
#: ../src/50-mutter-windows.xml.in.h:13
|
||||||
msgid "Raise window if covered, otherwise lower it"
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
@@ -220,7 +220,7 @@ msgstr "Podział widoku po prawej"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:507
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
@@ -228,10 +228,6 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Inny menedżer składania jest już uruchomiony na podekranie %i ekranu \"%s\"."
|
"Inny menedżer składania jest już uruchomiony na podekranie %i ekranu \"%s\"."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1111
|
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "nie można utworzyć tekstury tła z pliku"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:320
|
#: ../src/core/bell.c:320
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Zdarzenie sygnału dźwiękowego"
|
msgstr "Zdarzenie sygnału dźwiękowego"
|
||||||
@@ -264,18 +260,18 @@ msgstr "_Czekaj"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Zakończ"
|
msgstr "_Zakończ"
|
||||||
|
|
||||||
#: ../src/core/display.c:401
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Brak rozszerzenia %s, wymaganego przez składanie"
|
msgstr "Brak rozszerzenia %s, wymaganego przez składanie"
|
||||||
|
|
||||||
#: ../src/core/display.c:493
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Otwarcie połączenia z ekranem \"%s\" systemu X Window się nie powiodło\n"
|
"Otwarcie połączenia z ekranem \"%s\" systemu X Window się nie powiodło\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:929
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -284,14 +280,9 @@ msgstr ""
|
|||||||
"Skrótu klawiszowego z klawiszem %s i modyfikatorami %x używa już inny "
|
"Skrótu klawiszowego z klawiszem %s i modyfikatorami %x używa już inny "
|
||||||
"program\n"
|
"program\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1129
|
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" nie jest prawidłowym skrótem\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:196
|
#: ../src/core/main.c:196
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Rozłącza połączenie z menedżerem sesji"
|
msgstr "Wyłącza połączenie z menedżerem sesji"
|
||||||
|
|
||||||
#: ../src/core/main.c:202
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
@@ -299,7 +290,7 @@ msgstr "Zastępuje uruchomionego menedżera okien"
|
|||||||
|
|
||||||
#: ../src/core/main.c:208
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "Podaje identyfikator zarządzania sesją"
|
msgstr "Określa identyfikator zarządzania sesją"
|
||||||
|
|
||||||
#: ../src/core/main.c:213
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
@@ -313,12 +304,12 @@ msgstr "Inicjuje sesję z zapisanego pliku"
|
|||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "Synchroniczne wywołania X"
|
msgstr "Synchroniczne wywołania X"
|
||||||
|
|
||||||
#: ../src/core/main.c:533
|
#: ../src/core/main.c:496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Przejrzenie katalogu z motywami się nie powiodło: %s\n"
|
msgstr "Przejrzenie katalogu z motywami się nie powiodło: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:549
|
#: ../src/core/main.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -374,7 +365,7 @@ msgstr ""
|
|||||||
"Wartość \"%s\", odnaleziona w bazie danych konfiguracji nie opisuje "
|
"Wartość \"%s\", odnaleziona w bazie danych konfiguracji nie opisuje "
|
||||||
"prawidłowo modyfikatora przycisku myszy\n"
|
"prawidłowo modyfikatora przycisku myszy\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1780
|
#: ../src/core/prefs.c:1768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
@@ -383,17 +374,17 @@ msgstr ""
|
|||||||
"Wartość \"%s\", odnaleziona w bazie danych konfiguracji nie opisuje "
|
"Wartość \"%s\", odnaleziona w bazie danych konfiguracji nie opisuje "
|
||||||
"prawidłowo skrótu klawiszowego \"%s\"\n"
|
"prawidłowo skrótu klawiszowego \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1879
|
#: ../src/core/prefs.c:1865
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Obszar roboczy %d"
|
msgstr "Obszar roboczy %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:673
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "Podekran %d ekranu \"%s\" jest nieprawidłowy\n"
|
msgstr "Podekran %d ekranu \"%s\" jest nieprawidłowy\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:689
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -402,7 +393,7 @@ msgstr ""
|
|||||||
"Na podekranie %d ekranu \"%s\" działa już menedżer okien. Aby zastąpić "
|
"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"
|
"działającego menedżera okien, proszę spróbować użyć opcji --replace.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:716
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
@@ -410,12 +401,12 @@ msgstr ""
|
|||||||
"Nie można uzyskać zaznaczenia menedżera okien na podekranie %d ekranu \"%s"
|
"Nie można uzyskać zaznaczenia menedżera okien na podekranie %d ekranu \"%s"
|
||||||
"\"\n"
|
"\"\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:794
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
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"
|
msgstr "Na podekranie %d ekranu \"%s\" działa już menedżer okien\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:979
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "Nie można zwolnić podekranu %d ekranu \"%s\"\n"
|
msgstr "Nie można zwolnić podekranu %d ekranu \"%s\"\n"
|
||||||
@@ -515,7 +506,7 @@ msgid "Window manager error: "
|
|||||||
msgstr "Błąd menedżera okien: "
|
msgstr "Błąd menedżera okien: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7539
|
#: ../src/core/window.c:7277
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -531,7 +522,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8263
|
#: ../src/core/window.c:7943
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -541,23 +532,23 @@ msgstr ""
|
|||||||
"niezmienny, lecz jednocześnie ustawia minimalny rozmiar na %d x %d, a "
|
"niezmienny, lecz jednocześnie ustawia minimalny rozmiar na %d x %d, a "
|
||||||
"maksymalny rozmiar na %d x %d. To nie ma żadnego sensu.\n"
|
"maksymalny rozmiar na %d x %d. To nie ma żadnego sensu.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "Program ustawił błędną wartość _NET_WM_PID %lu\n"
|
msgstr "Program ustawił błędną wartość _NET_WM_PID %lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (na %s)"
|
msgstr "%s (na %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nieprawidłowa wartość WM_TRANSIENT_FOR dla okna 0x%lx określona w %s.\n"
|
"Nieprawidłowa wartość WM_TRANSIENT_FOR dla okna 0x%lx określona w %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR okna 0x%lx dla %s utworzyłoby pętlę.\n"
|
msgstr "WM_TRANSIENT_FOR okna 0x%lx dla %s utworzyłoby pętlę.\n"
|
||||||
@@ -716,11 +707,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||||
"automatically get maximized."
|
"when mapped."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jeśli jest włączone, to nowe okna o początkowym rozmiarze zbliżonym do "
|
"Jeśli jest włączone, to okna o rozmiarze zbliżonym do rozmiaru monitora "
|
||||||
"rozmiaru monitora zostają automatycznie maksymalizowane."
|
"zostają automatycznie maksymalizowane podczas mapowania."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
@@ -929,54 +920,54 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:235
|
#: ../src/ui/theme.c:234
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "góra"
|
msgstr "góra"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:237
|
#: ../src/ui/theme.c:236
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "dół"
|
msgstr "dół"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:239
|
#: ../src/ui/theme.c:238
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "lewa"
|
msgstr "lewa"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:241
|
#: ../src/ui/theme.c:240
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "prawa"
|
msgstr "prawa"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:269
|
#: ../src/ui/theme.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "Rozmiar ramki nie określa wymiaru \"%s\""
|
msgstr "Rozmiar ramki nie określa wymiaru \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:288
|
#: ../src/ui/theme.c:287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "Rozmiar ramki nie określa wymiaru \"%s\" dla krawędzi \"%s\""
|
msgstr "Rozmiar ramki nie określa wymiaru \"%s\" dla krawędzi \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:325
|
#: ../src/ui/theme.c:324
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Współczynnik proporcji przycisku %g nie mieści się w rozsądnych granicach"
|
"Współczynnik proporcji przycisku %g nie mieści się w rozsądnych granicach"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:337
|
#: ../src/ui/theme.c:336
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "Rozmiar ramki nie określa liczby przycisków"
|
msgstr "Rozmiar ramki nie określa liczby przycisków"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1050
|
#: ../src/ui/theme.c:1049
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "Gradienty powinny się składać co najmniej z dwóch kolorów"
|
msgstr "Gradienty powinny się składać co najmniej z dwóch kolorów"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1202
|
#: ../src/ui/theme.c:1201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
@@ -986,7 +977,7 @@ msgstr ""
|
|||||||
"kolor zastępczy w nawiasach, np. gtk:custom(foo,bar); nie można przetworzyć "
|
"kolor zastępczy w nawiasach, np. gtk:custom(foo,bar); nie można przetworzyć "
|
||||||
"\"%s\""
|
"\"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1218
|
#: ../src/ui/theme.c:1217
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
@@ -995,7 +986,7 @@ msgstr ""
|
|||||||
"Nieprawidłowy znak \"%c\" w parametrze nazwa_koloru opcji gtk:custom, tylko "
|
"Nieprawidłowy znak \"%c\" w parametrze nazwa_koloru opcji gtk:custom, tylko "
|
||||||
"znaki A-Za-z0-9-_ są prawidłowe"
|
"znaki A-Za-z0-9-_ są prawidłowe"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1232
|
#: ../src/ui/theme.c:1231
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -1004,7 +995,7 @@ msgstr ""
|
|||||||
"Formatem Gtk:custom jest \"gtk:custom(nazwa_koloru,kolor_zastępczy)\", \"%s"
|
"Formatem Gtk:custom jest \"gtk:custom(nazwa_koloru,kolor_zastępczy)\", \"%s"
|
||||||
"\" nie pasuje do formatu"
|
"\" nie pasuje do formatu"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1277
|
#: ../src/ui/theme.c:1276
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -1014,7 +1005,7 @@ msgstr ""
|
|||||||
"kwadratowych, np. gtk:fg[NORMAL], gdzie NORMAL jest nazwą stanu; nie można "
|
"kwadratowych, np. gtk:fg[NORMAL], gdzie NORMAL jest nazwą stanu; nie można "
|
||||||
"przetworzyć \"%s\""
|
"przetworzyć \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1291
|
#: ../src/ui/theme.c:1290
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
@@ -1024,17 +1015,17 @@ msgstr ""
|
|||||||
"nawias kwadratowy, np. gtk:fg[NORMAL], gdzie NORMAL jest nazwą stanu; nie "
|
"nawias kwadratowy, np. gtk:fg[NORMAL], gdzie NORMAL jest nazwą stanu; nie "
|
||||||
"można przetworzyć \"%s\""
|
"można przetworzyć \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1302
|
#: ../src/ui/theme.c:1301
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "Niezrozumiały stan \"%s\" w specyfikacji koloru"
|
msgstr "Niezrozumiały stan \"%s\" w specyfikacji koloru"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1315
|
#: ../src/ui/theme.c:1314
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "Niezrozumiała definicja koloru \"%s\" w specyfikacji koloru"
|
msgstr "Niezrozumiała definicja koloru \"%s\" w specyfikacji koloru"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1344
|
#: ../src/ui/theme.c:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
@@ -1043,19 +1034,19 @@ msgstr ""
|
|||||||
"Formatem przenikania jest \"blend/bg_color/fg_color/alpha\", \"%s\" nie "
|
"Formatem przenikania jest \"blend/bg_color/fg_color/alpha\", \"%s\" nie "
|
||||||
"pasuje do formatu"
|
"pasuje do formatu"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1355
|
#: ../src/ui/theme.c:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "Nie można przetworzyć wartości alfa \"%s\" w przenikającym kolorze"
|
msgstr "Nie można przetworzyć wartości alfa \"%s\" w przenikającym kolorze"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1365
|
#: ../src/ui/theme.c:1364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wartość alfa \"%s\" w przenikającym kolorze nie zawiera się pomiędzy 0,0 i "
|
"Wartość alfa \"%s\" w przenikającym kolorze nie zawiera się pomiędzy 0,0 i "
|
||||||
"1,0"
|
"1,0"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1412
|
#: ../src/ui/theme.c:1411
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
@@ -1063,29 +1054,29 @@ msgstr ""
|
|||||||
"Formatem przenikania jest \"shade/base_color/factor\", \"%s\" nie pasuje do "
|
"Formatem przenikania jest \"shade/base_color/factor\", \"%s\" nie pasuje do "
|
||||||
"formatu"
|
"formatu"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1423
|
#: ../src/ui/theme.c:1422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nie można przetworzyć współczynnika przenikania \"%s\" w przenikającym "
|
"Nie można przetworzyć współczynnika przenikania \"%s\" w przenikającym "
|
||||||
"kolorze"
|
"kolorze"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1433
|
#: ../src/ui/theme.c:1432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "Współczynnik przenikania \"%s\" w przenikającym kolorze jest ujemny"
|
msgstr "Współczynnik przenikania \"%s\" w przenikającym kolorze jest ujemny"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1462
|
#: ../src/ui/theme.c:1461
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "Nie można przetworzyć koloru \"%s\""
|
msgstr "Nie można przetworzyć koloru \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1779
|
#: ../src/ui/theme.c:1778
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "Wyrażenie określające współrzędne zawiera niedozwolony znak \"%s\""
|
msgstr "Wyrażenie określające współrzędne zawiera niedozwolony znak \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1806
|
#: ../src/ui/theme.c:1805
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
@@ -1094,14 +1085,14 @@ msgstr ""
|
|||||||
"Wyrażenie określające współrzędne zawiera liczbę zmiennoprzecinkową \"%s\", "
|
"Wyrażenie określające współrzędne zawiera liczbę zmiennoprzecinkową \"%s\", "
|
||||||
"której nie można przetworzyć"
|
"której nie można przetworzyć"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1820
|
#: ../src/ui/theme.c:1819
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie określające współrzędne zawiera liczbę całkowitą \"%s\", której "
|
"Wyrażenie określające współrzędne zawiera liczbę całkowitą \"%s\", której "
|
||||||
"nie można przetworzyć"
|
"nie można przetworzyć"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1941
|
#: ../src/ui/theme.c:1940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
@@ -1110,18 +1101,18 @@ msgstr ""
|
|||||||
"Wyrażenie określające współrzędne zawiera nieznany operator na początku "
|
"Wyrażenie określające współrzędne zawiera nieznany operator na początku "
|
||||||
"tekstu: \"%s\""
|
"tekstu: \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1998
|
#: ../src/ui/theme.c:1997
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie określające współrzędne jest puste lub nie można go rozpoznać"
|
"Wyrażenie określające współrzędne jest puste lub nie można go rozpoznać"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "Wyrażenie opisujące położenie zawiera dzielenie przez zero"
|
msgstr "Wyrażenie opisujące położenie zawiera dzielenie przez zero"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2163
|
#: ../src/ui/theme.c:2162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
@@ -1129,7 +1120,7 @@ msgstr ""
|
|||||||
"Wyrażenie opisujące położenie używa operatora dzielenia modulo z liczbą "
|
"Wyrażenie opisujące położenie używa operatora dzielenia modulo z liczbą "
|
||||||
"zmiennoprzecinkową"
|
"zmiennoprzecinkową"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2219
|
#: ../src/ui/theme.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
@@ -1137,19 +1128,19 @@ msgstr ""
|
|||||||
"Wyrażenie opisujące położenie zawiera operator \"%s\" w miejscu, w którym "
|
"Wyrażenie opisujące położenie zawiera operator \"%s\" w miejscu, w którym "
|
||||||
"oczekiwano operandu"
|
"oczekiwano operandu"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2228
|
#: ../src/ui/theme.c:2227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie opisujące położenie zawiera operand w miejscu, w którym oczekiwano "
|
"Wyrażenie opisujące położenie zawiera operand w miejscu, w którym oczekiwano "
|
||||||
"operatora"
|
"operatora"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2236
|
#: ../src/ui/theme.c:2235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "Wyrażenie opisujące położenie kończy się operatorem zamiast operandem"
|
msgstr "Wyrażenie opisujące położenie kończy się operatorem zamiast operandem"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2246
|
#: ../src/ui/theme.c:2245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
@@ -1158,43 +1149,43 @@ msgstr ""
|
|||||||
"Wyrażenie opisujące położenie zawiera operator \"%c\" bezpośrednio po "
|
"Wyrażenie opisujące położenie zawiera operator \"%c\" bezpośrednio po "
|
||||||
"operatorze \"%c\" bez rozdzielającego ich operandu"
|
"operatorze \"%c\" bez rozdzielającego ich operandu"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie opisujące położenie zawiera nieznaną zmienną lub stałą \"%s\""
|
"Wyrażenie opisujące położenie zawiera nieznaną zmienną lub stałą \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2496
|
#: ../src/ui/theme.c:2495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "Parser wyrażeń określających współrzędne przepełnił swój bufor."
|
msgstr "Parser wyrażeń określających współrzędne przepełnił swój bufor."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2525
|
#: ../src/ui/theme.c:2524
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie opisujące położenie zawiera nawias zamykający bez odpowiadającego "
|
"Wyrażenie opisujące położenie zawiera nawias zamykający bez odpowiadającego "
|
||||||
"mu nawiasu otwierającego"
|
"mu nawiasu otwierającego"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2589
|
#: ../src/ui/theme.c:2588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie opisujące położenie zawiera nawias otwierający bez odpowiadającego "
|
"Wyrażenie opisujące położenie zawiera nawias otwierający bez odpowiadającego "
|
||||||
"mu nawiasu zamykającego"
|
"mu nawiasu zamykającego"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2600
|
#: ../src/ui/theme.c:2599
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wyrażenie opisujące położenie nie zawiera żadnych operatorów ani operandów"
|
"Wyrażenie opisujące położenie nie zawiera żadnych operatorów ani operandów"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "Motyw zawiera wyrażenie, przy którego obliczaniu wystąpił błąd: %s\n"
|
msgstr "Motyw zawiera wyrażenie, przy którego obliczaniu wystąpił błąd: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4499
|
#: ../src/ui/theme.c:4498
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -1203,25 +1194,25 @@ msgstr ""
|
|||||||
"Przy tym stylu ramki należy podać <button function=\"%s\" state=\"%s\" "
|
"Przy tym stylu ramki należy podać <button function=\"%s\" state=\"%s\" "
|
||||||
"draw_ops=\"cokolwiek\"/>"
|
"draw_ops=\"cokolwiek\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Brak <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"cokolwiek\"/>"
|
"Brak <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"cokolwiek\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5083
|
#: ../src/ui/theme.c:5082
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "Wczytanie motywu \"%s\" się nie powiodło: %s\n"
|
msgstr "Wczytanie motywu \"%s\" się nie powiodło: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||||
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "Nie określono elementu <%s> dla motywu \"%s\""
|
msgstr "Nie określono elementu <%s> dla motywu \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5255
|
#: ../src/ui/theme.c:5254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1230,7 +1221,7 @@ msgstr ""
|
|||||||
"Przy typie okna \"%s\" w motywie \"%s\" nie ustawiono stylu ramki. Należy "
|
"Przy typie okna \"%s\" w motywie \"%s\" nie ustawiono stylu ramki. Należy "
|
||||||
"dodać element <window type=\"%s\" style_set=\"cokolwiek\"/>"
|
"dodać element <window type=\"%s\" style_set=\"cokolwiek\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
@@ -1238,7 +1229,7 @@ msgstr ""
|
|||||||
"Stałe definiowane przez użytkownika powinny rozpoczynać się wielką literą, "
|
"Stałe definiowane przez użytkownika powinny rozpoczynać się wielką literą, "
|
||||||
"natomiast \"%s\" nie spełnia tego warunku"
|
"natomiast \"%s\" nie spełnia tego warunku"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "Stała \"%s\" została już określona"
|
msgstr "Stała \"%s\" została już określona"
|
||||||
@@ -1732,57 +1723,57 @@ msgstr "Krawędź"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "Dołączone modalne okno dialogowe"
|
msgstr "Dołączone modalne okno dialogowe"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "Test układu przycisków %d"
|
msgstr "Test układu przycisków %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g milisekundy do narysowania jednej ramki okna"
|
msgstr "%g milisekundy do narysowania jednej ramki okna"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "Użycie: metacity-theme-viewer [NAZWA_MOTYWU]\n"
|
msgstr "Użycie: metacity-theme-viewer [NAZWA_MOTYWU]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "Błąd podczas wczytywania motywu: %s\n"
|
msgstr "Błąd podczas wczytywania motywu: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "Wczytano motyw \"%s\" w ciągu %g sekund\n"
|
msgstr "Wczytano motyw \"%s\" w ciągu %g sekund\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:870
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "Zwykła czcionka tytułu"
|
msgstr "Zwykła czcionka tytułu"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:876
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "Mała czcionka tytułu"
|
msgstr "Mała czcionka tytułu"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:882
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "Duża czcionka tytułu"
|
msgstr "Duża czcionka tytułu"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:887
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "Układy przycisków"
|
msgstr "Układy przycisków"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:892
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "Test wydajności"
|
msgstr "Test wydajności"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "Tutaj znajduje się tytuł okna"
|
msgstr "Tutaj znajduje się tytuł okna"
|
||||||
|
|
||||||
# FIXME - bełkot
|
# FIXME - bełkot
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1052
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1793,39 +1784,39 @@ msgstr ""
|
|||||||
"%g sekund rzeczywistych, włączając w to zasoby serwera X (%g milisekund na "
|
"%g sekund rzeczywistych, włączając w to zasoby serwera X (%g milisekund na "
|
||||||
"ramkę)\n"
|
"ramkę)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1271
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr "Test wyrażenia pozycji zwrócił wartość PRAWDA, lecz ustawił błąd"
|
msgstr "Test wyrażenia pozycji zwrócił wartość PRAWDA, lecz ustawił błąd"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1273
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
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"
|
msgstr "Test wyrażenia pozycji zwrócił wartość FAŁSZ, lecz nie ustawił błędu"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "Oczekiwano błędu, lecz nie otrzymano żadnego"
|
msgstr "Oczekiwano błędu, lecz nie otrzymano żadnego"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "Oczekiwano błędu %d, lecz otrzymano %d"
|
msgstr "Oczekiwano błędu %d, lecz otrzymano %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1285
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "Nie oczekiwano błędu, lecz został on zwrócony: %s"
|
msgstr "Nie oczekiwano błędu, lecz został on zwrócony: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "Wartością X było %d, oczekiwano wartości %d"
|
msgstr "Wartością X było %d, oczekiwano wartości %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1292
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "Wartością Y było %d, oczekiwano wartości %d"
|
msgstr "Wartością Y było %d, oczekiwano wartości %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1357
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
506
po/pt_BR.po
506
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
99
po/sl.po
99
po/sl.po
@@ -11,8 +11,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: mutter master\n"
|
"Project-Id-Version: mutter master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-07 14:02+0000\n"
|
"POT-Creation-Date: 2013-01-12 04:34+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-07 17:16+0100\n"
|
"PO-Revision-Date: 2013-01-13 11:53+0100\n"
|
||||||
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
|
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
|
||||||
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
|
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
|
||||||
"Language: sl_SI\n"
|
"Language: sl_SI\n"
|
||||||
@@ -215,7 +215,7 @@ msgstr "Poglej razdelek na desni"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:502
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
@@ -223,10 +223,6 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Drug upravljalnik sestavljanja je že zagnan na zaslonu %i prikaza \"%s\"."
|
"Drug upravljalnik sestavljanja je že zagnan na zaslonu %i prikaza \"%s\"."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1180
|
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "teksture ozadja iz datoteke ni mogoče ustvariti"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:320
|
#: ../src/core/bell.c:320
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Dogodek zvonjenja"
|
msgstr "Dogodek zvonjenja"
|
||||||
@@ -261,29 +257,24 @@ msgstr "_Počakaj"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Vsili konec"
|
msgstr "_Vsili konec"
|
||||||
|
|
||||||
#: ../src/core/display.c:402
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Manjka razširitev %s, ki je ključna za sestavljanje"
|
msgstr "Manjka razširitev %s, ki je ključna za sestavljanje"
|
||||||
|
|
||||||
#: ../src/core/display.c:494
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "Ni mogoče odpreti zaslona '%s' okenskega sistema X\n"
|
msgstr "Ni mogoče odpreti zaslona '%s' okenskega sistema X\n"
|
||||||
|
|
||||||
# G:1 K:0 O:0
|
# G:1 K:0 O:0
|
||||||
#: ../src/core/keybindings.c:929
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
"binding\n"
|
"binding\n"
|
||||||
msgstr "Tipko %s s spremenilnikom %x uporablja že nek drug program\n"
|
msgstr "Tipko %s s spremenilnikom %x uporablja že nek drug program\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1129
|
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" ni veljaven pospeševalnik\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:196
|
#: ../src/core/main.c:196
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Onemogoči povezavo z upravljalnikom sej"
|
msgstr "Onemogoči povezavo z upravljalnikom sej"
|
||||||
@@ -308,12 +299,12 @@ msgstr "Začni sejo iz shranjene datoteke"
|
|||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "Uskladi klice X"
|
msgstr "Uskladi klice X"
|
||||||
|
|
||||||
#: ../src/core/main.c:533
|
#: ../src/core/main.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Ni mogoče preiskati mape tem: %s\n"
|
msgstr "Ni mogoče preiskati mape tem: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:549
|
#: ../src/core/main.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -376,17 +367,17 @@ msgstr ""
|
|||||||
"bližnjico \"%s\"\n"
|
"bližnjico \"%s\"\n"
|
||||||
|
|
||||||
# G:1 K:0 O:0
|
# G:1 K:0 O:0
|
||||||
#: ../src/core/prefs.c:1879
|
#: ../src/core/prefs.c:1877
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Delovna površina %d"
|
msgstr "Delovna površina %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:674
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "Zaslon %d na prikazu '%s' ni veljaven\n"
|
msgstr "Zaslon %d na prikazu '%s' ni veljaven\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:690
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -395,19 +386,19 @@ msgstr ""
|
|||||||
"Zaslon %d na prikazu \"%s\" je že upravljan z upravljalnikom oken; "
|
"Zaslon %d na prikazu \"%s\" je že upravljan z upravljalnikom oken; "
|
||||||
"poskušajte uporabiti možnost --replace za zamenjavo trenutnega.\n"
|
"poskušajte uporabiti možnost --replace za zamenjavo trenutnega.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:717
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ni mogoče dobiti izbire upravljalnika oken na zaslonu %d prikaza \"%s\"\n"
|
"Ni mogoče dobiti izbire upravljalnika oken na zaslonu %d prikaza \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:795
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "Zaslon %d na prikazu \"%s\" je že upravljan z upravljalnikom oken\n"
|
msgstr "Zaslon %d na prikazu \"%s\" je že upravljan z upravljalnikom oken\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:980
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "Ni mogoče opustiti zaslona %d na prikazu \"%s\"\n"
|
msgstr "Ni mogoče opustiti zaslona %d na prikazu \"%s\"\n"
|
||||||
@@ -509,7 +500,7 @@ msgid "Window manager error: "
|
|||||||
msgstr "Napaka upravljalnika oken: "
|
msgstr "Napaka upravljalnika oken: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7538
|
#: ../src/core/window.c:7279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -525,7 +516,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8262
|
#: ../src/core/window.c:7945
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -535,22 +526,22 @@ msgstr ""
|
|||||||
"pa določi najmanjšo velikost na %d x %d in največjo na %d x %d; vrednost ni "
|
"pa določi najmanjšo velikost na %d x %d in največjo na %d x %d; vrednost ni "
|
||||||
"smiselna.\n"
|
"smiselna.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "Program je nastavil pokvarjen _NET_WM_PID %lu\n"
|
msgstr "Program je nastavil pokvarjen _NET_WM_PID %lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (na %s)"
|
msgstr "%s (na %s)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr "Neveljaven WM_TRANSIENT_FOR za okno 0x%lx naveden za %s.\n"
|
msgstr "Neveljaven WM_TRANSIENT_FOR za okno 0x%lx naveden za %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "Predmet WM_TRANSIENT_FOR okna 0x%lx za %s lahko ustvari zanko.\n"
|
msgstr "Predmet WM_TRANSIENT_FOR okna 0x%lx za %s lahko ustvari zanko.\n"
|
||||||
@@ -700,11 +691,11 @@ msgstr "Samodejno razpni okna, ki so skoraj enaka velikosti zaslona"
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||||
"automatically get maximized."
|
"when mapped."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Izbrana možnost omogoča, da bodo okna, ki so skoraj tako velika, kot je "
|
"Izbrana možnost omogoča, da bodo okna, ki so skoraj tako velika kot je velik "
|
||||||
"velik zaslon, med preslikavo samodejno razpeta."
|
"zaslon, samodejno razpeta med preslikavo."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
@@ -931,7 +922,7 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
@@ -1711,56 +1702,56 @@ msgstr "Okvir"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "Pripeto modalno okno"
|
msgstr "Pripeto modalno okno"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "Preizkus razporeditve gumbov %d"
|
msgstr "Preizkus razporeditve gumbov %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g milisekund za risanje ene sličice okna"
|
msgstr "%g milisekund za risanje ene sličice okna"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "Uporaba: metacity-theme-viewer [IMETEME]\n"
|
msgstr "Uporaba: metacity-theme-viewer [IMETEME]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "Napaka med nalaganjem teme: %s\n"
|
msgstr "Napaka med nalaganjem teme: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "Tema \"%s\" naložena v %g sekundah\n"
|
msgstr "Tema \"%s\" naložena v %g sekundah\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:871
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "Običajna pisava naziva"
|
msgstr "Običajna pisava naziva"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:877
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "Majhna pisava naziva"
|
msgstr "Majhna pisava naziva"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:883
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "Velika pisava naziva"
|
msgstr "Velika pisava naziva"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:888
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "Razpored gumbov"
|
msgstr "Razpored gumbov"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:893
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "Primerjalni preizkus"
|
msgstr "Primerjalni preizkus"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "Tukaj je izpisan naziv okna"
|
msgstr "Tukaj je izpisan naziv okna"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1055
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1771,41 +1762,41 @@ msgstr ""
|
|||||||
"sekund v času stenske ure, upoštevajoč sredstva strežnika X (%g milisekund "
|
"sekund v času stenske ure, upoštevajoč sredstva strežnika X (%g milisekund "
|
||||||
"na sličico)\n"
|
"na sličico)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1275
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"preizkus izjave položaja je vrnil logični PRAV, vendar je določil tudi "
|
"preizkus izjave položaja je vrnil logični PRAV, vendar je določil tudi "
|
||||||
"napako"
|
"napako"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr "preizkus izjave položaja je vrnil logični NAPAK in ni določil napake"
|
msgstr "preizkus izjave položaja je vrnil logični NAPAK in ni določil napake"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1281
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "Pričakovana je napaka, vendar ni odziva"
|
msgstr "Pričakovana je napaka, vendar ni odziva"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1283
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "Pričakovana je napaka %d, vrnjena pa je bila %d"
|
msgstr "Pričakovana je napaka %d, vrnjena pa je bila %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "Napaka ni pričakovana, vendar je vrnjen odziv: %s"
|
msgstr "Napaka ni pričakovana, vendar je vrnjen odziv: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "vrednost x je %d, pričakovana pa je %d"
|
msgstr "vrednost x je %d, pričakovana pa je %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1296
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "vrednost y je %d, pričakovana pa je %d"
|
msgstr "vrednost y je %d, pričakovana pa je %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1361
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
573
po/sr@latin.po
573
po/sr@latin.po
File diff suppressed because it is too large
Load Diff
282
po/ta.po
282
po/ta.po
@@ -7,17 +7,17 @@
|
|||||||
# Dinesh Nadarajah <n_dinesh@yahoo.com>, 2003.
|
# Dinesh Nadarajah <n_dinesh@yahoo.com>, 2003.
|
||||||
# Jayaradha N <jaya@pune.redhat.com>, 2004.
|
# Jayaradha N <jaya@pune.redhat.com>, 2004.
|
||||||
# Felix <ifelix@redhat.com>, 2006.
|
# Felix <ifelix@redhat.com>, 2006.
|
||||||
# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007, 2010, 2011, 2012, 2013.
|
# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007, 2010, 2011, 2012.
|
||||||
# Dr.T.vasudevan <agnihot3@gmail.com>, 2009.
|
# Dr.T.vasudevan <agnihot3@gmail.com>, 2009.
|
||||||
# I. Felix <ifelix@redhat.com>, 2009, 2011.
|
# I. Felix <ifelix@redhat.com>, 2009, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: metacity.gnome-2-26.ta\n"
|
"Project-Id-Version: metacity.gnome-2-26.ta\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-03-23 14:03+0530\n"
|
"POT-Creation-Date: 2012-12-02 17:25+0530\n"
|
||||||
"PO-Revision-Date: 2013-03-23 14:11+0530\n"
|
"PO-Revision-Date: 2012-12-02 18:58+0530\n"
|
||||||
"Last-Translator: Dr.T.Vasudevan <drtvasudevan@gmail.com>\n"
|
"Last-Translator: Dr.T.Vasudevan <drtvasudevan@gmail.com>\n"
|
||||||
"Language-Team: American English <<gnome-tamil-translation@googlegroups.com>>\n"
|
"Language-Team: American English <gnome-tamil-translation@googlegroups.com>\n"
|
||||||
"Language: en_US\n"
|
"Language: en_US\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -70,62 +70,58 @@ msgid "Switch applications"
|
|||||||
msgstr "பயன்பாடுகளுக்கிடையே மாறவும்"
|
msgstr "பயன்பாடுகளுக்கிடையே மாறவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:11
|
#: ../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"
|
msgid "Switch windows of an application"
|
||||||
msgstr "ஒரு பயன்பாட்டின் சாளரங்களிடையே மாறவும்"
|
msgstr "ஒரு பயன்பாட்டின் சாளரங்களிடையே மாறவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:13
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
msgid "Switch system controls"
|
msgid "Switch system controls"
|
||||||
msgstr "கணினி கட்டுப்பாடுகளை மாற்றவும்"
|
msgstr "கணினி கட்டுப்பாடுகளை மாற்றவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:14
|
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||||
msgid "Switch windows directly"
|
msgid "Switch windows directly"
|
||||||
msgstr "சாளரங்களிடையே உடனடியாக நகரவும்"
|
msgstr "சாளரங்களிடையே உடனடியாக நகரவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:15
|
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||||
msgid "Switch windows of an app directly"
|
msgid "Switch windows of an app directly"
|
||||||
msgstr "ஒரு பயன்பாட்டின் சாளரங்களிடையே நேரடியாக நகரவும்"
|
msgstr "ஒரு பயன்பாட்டின் சாளரங்களிடையே நேரடியாக நகரவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:16
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
msgid "Switch system controls directly"
|
msgid "Switch system controls directly"
|
||||||
msgstr "கணினி கட்டுப்பாடுகளை நேரடியாக மாற்றவும்"
|
msgstr "கணினி கட்டுப்பாடுகளை நேரடியாக மாற்றவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:17
|
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||||
msgid "Hide all normal windows"
|
msgid "Hide all normal windows"
|
||||||
msgstr "எல்லா வழக்கமான சாளரங்களையும் மறை"
|
msgstr "எல்லா வழக்கமான சாளரங்களையும் மறை"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:18
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
msgid "Switch to workspace 1"
|
msgid "Switch to workspace 1"
|
||||||
msgstr "பணியிடம் 1க்கு மாறு"
|
msgstr "பணியிடம் 1க்கு மாறு"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:19
|
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||||
msgid "Switch to workspace 2"
|
msgid "Switch to workspace 2"
|
||||||
msgstr "பணியிடம் 2 க்கு மாறு"
|
msgstr "பணியிடம் 2 க்கு மாறு"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:20
|
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||||
msgid "Switch to workspace 3"
|
msgid "Switch to workspace 3"
|
||||||
msgstr "பணியிடம் 3 க்கு மாறு"
|
msgstr "பணியிடம் 3 க்கு மாறு"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:21
|
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||||
msgid "Switch to workspace 4"
|
msgid "Switch to workspace 4"
|
||||||
msgstr "பணியிடம் 4 க்கு மாறு"
|
msgstr "பணியிடம் 4 க்கு மாறு"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:22
|
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||||
msgid "Move to workspace left"
|
msgid "Move to workspace left"
|
||||||
msgstr "வேலையிடத்தை இடப்பக்கத்திற்கு நகர்த்தவும்"
|
msgstr "வேலையிடத்தை இடப்பக்கத்திற்கு நகர்த்தவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:23
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
msgid "Move to workspace right"
|
msgid "Move to workspace right"
|
||||||
msgstr "வேலையிடத்தை வலப்பக்கத்திற்கு நகர்த்தவும்"
|
msgstr "வேலையிடத்தை வலப்பக்கத்திற்கு நகர்த்தவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:24
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
msgid "Move to workspace above"
|
msgid "Move to workspace above"
|
||||||
msgstr "வேலையிடத்தை மேல்பக்கத்திற்கு நகர்த்தவும்"
|
msgstr "வேலையிடத்தை மேல்பக்கத்திற்கு நகர்த்தவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:25
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
msgid "Move to workspace below"
|
msgid "Move to workspace below"
|
||||||
msgstr "வேலையிடத்தை கீழே நகர்த்தவும் "
|
msgstr "வேலையிடத்தை கீழே நகர்த்தவும் "
|
||||||
|
|
||||||
@@ -174,8 +170,8 @@ msgid "Close window"
|
|||||||
msgstr "சாளரம் மூடவும்"
|
msgstr "சாளரம் மூடவும்"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
msgid "Hide window"
|
msgid "Minimize window"
|
||||||
msgstr "சாளரத்தை மறை "
|
msgstr "சாளரத்தை சிறிதாக்கு"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:10
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
@@ -221,7 +217,7 @@ msgstr "வலது பக்கத்தில் பிளந்து பா
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:568
|
#: ../src/compositor/compositor.c:492
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
@@ -229,11 +225,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
" %i திரையில் காட்சி \"%s\" இல் இன்னொரு சாளர மேலாளர் இயங்கிக்கொண்டு இருக்கிறது."
|
" %i திரையில் காட்சி \"%s\" இல் இன்னொரு சாளர மேலாளர் இயங்கிக்கொண்டு இருக்கிறது."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1191
|
#: ../src/core/bell.c:320
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "கோப்பிலிருந்து பின் புல இழை நய அமைப்பை உருவாக்க முடியவில்லை."
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:322
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "மணி நிகழ்ச்சி"
|
msgstr "மணி நிகழ்ச்சி"
|
||||||
|
|
||||||
@@ -268,17 +260,17 @@ msgstr "_காத்திரு"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "கட்டாய வெளியேற்றம் (_F)"
|
msgstr "கட்டாய வெளியேற்றம் (_F)"
|
||||||
|
|
||||||
#: ../src/core/display.c:401
|
#: ../src/core/display.c:397
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "நீட்சி %s காணப்படவில்லை பவின் ஆக்கத்துக்கு அது அவசியம்"
|
msgstr "நீட்சி %s காணப்படவில்லை பவின் ஆக்கத்துக்கு அது அவசியம்"
|
||||||
|
|
||||||
#: ../src/core/display.c:493
|
#: ../src/core/display.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "X சாளர காட்சியை திறப்பதில் தோல்வி '%s'\n"
|
msgstr "X சாளர காட்சியை திறப்பதில் தோல்வி '%s'\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:935
|
#: ../src/core/keybindings.c:860
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -286,41 +278,36 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"விசை %s ஐ மாற்றி %x ஓடு இணைத்து வேறு நிரல் பயன்படுத்திக்கொண்டிருக்கிறது\n"
|
"விசை %s ஐ மாற்றி %x ஓடு இணைத்து வேறு நிரல் பயன்படுத்திக்கொண்டிருக்கிறது\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1135
|
#: ../src/core/main.c:196
|
||||||
#, c-format
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "\"%s\" செல்லாத முடுக்கி\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:197
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "அமர்வு மேலாளருடன் இருக்கும் இணைப்பை முடக்கு"
|
msgstr "அமர்வு மேலாளருடன் இருக்கும் இணைப்பை முடக்கு"
|
||||||
|
|
||||||
#: ../src/core/main.c:203
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
msgstr "இயங்கும் சாளர மேலாளரை மாற்றுக"
|
msgstr "இயங்கும் சாளர மேலாளரை மாற்றுக"
|
||||||
|
|
||||||
#: ../src/core/main.c:209
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "அமர்வு மேலாண் எண்ணை குறிப்பிடு"
|
msgstr "அமர்வு மேலாண் எண்ணை குறிப்பிடு"
|
||||||
|
|
||||||
#: ../src/core/main.c:214
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
msgstr "பயன்படுத்த வேண்டிய X காட்சி"
|
msgstr "பயன்படுத்த வேண்டிய X காட்சி"
|
||||||
|
|
||||||
#: ../src/core/main.c:220
|
#: ../src/core/main.c:219
|
||||||
msgid "Initialize session from savefile"
|
msgid "Initialize session from savefile"
|
||||||
msgstr "அமர்வை சேவ்பைல் இலிருந்து துவக்கு "
|
msgstr "அமர்வை சேவ்பைல் இலிருந்து துவக்கு "
|
||||||
|
|
||||||
#: ../src/core/main.c:226
|
#: ../src/core/main.c:225
|
||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "எக்ஸ் அழைப்புகளை ஒத்திசை."
|
msgstr "எக்ஸ் அழைப்புகளை ஒத்திசை."
|
||||||
|
|
||||||
#: ../src/core/main.c:534
|
#: ../src/core/main.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "கருப்பொருள் அடைவை வருடுவதில் தோல்வி: %s\n"
|
msgstr "கருப்பொருள் அடைவை வருடுவதில் தோல்வி: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:550
|
#: ../src/core/main.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -354,7 +341,7 @@ msgstr "அச்சு பதிப்பு"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "பயன்படுத்த க்ளட்டர் செருகிகள்"
|
msgstr "பயன்படுத்த க்ளட்டர் செருகிகள்"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1095
|
#: ../src/core/prefs.c:1079
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
@@ -362,14 +349,14 @@ msgstr ""
|
|||||||
"உடைந்த பயன்பாடுகளின் செயல்பாடு தடைசெய்யப்பட்டது, சில பயன்பாடுகள் சரியாக வேலை "
|
"உடைந்த பயன்பாடுகளின் செயல்பாடு தடைசெய்யப்பட்டது, சில பயன்பாடுகள் சரியாக வேலை "
|
||||||
"செய்யாது.\n"
|
"செய்யாது.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1170
|
#: ../src/core/prefs.c:1154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"எழுத்துரு விளக்கம் \"%s\" ஐ ஜிசெட்டிங்க்ஸ் விசையிலிருந்து பகுக்க முடியவில்லை %"
|
"எழுத்துரு விளக்கம் \"%s\" ஐ ஜிசெட்டிங்க்ஸ் விசையிலிருந்து பகுக்க முடியவில்லை %"
|
||||||
"s\n"
|
"s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1236
|
#: ../src/core/prefs.c:1220
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
@@ -377,24 +364,24 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"அமைப்பு பாங்கில் உள்ள \"%s\" சுட்டி பட்டன் மாற்றியில் செல்லாத மதிப்பு\n"
|
"அமைப்பு பாங்கில் உள்ள \"%s\" சுட்டி பட்டன் மாற்றியில் செல்லாத மதிப்பு\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1788
|
#: ../src/core/prefs.c:1757
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
"\"%s\"\n"
|
"\"%s\"\n"
|
||||||
msgstr "\"%s\" அமைப்பு தரவுத்தளத்தில் உள்ள மதிப்பு செல்லாத கீபைன்டிங்\"%s\"\n"
|
msgstr "\"%s\" அமைப்பு தரவுத்தளத்தில் உள்ள மதிப்பு செல்லாத கீபைன்டிங்\"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1887
|
#: ../src/core/prefs.c:1854
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "வேலையிடம் %d"
|
msgstr "வேலையிடம் %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:691
|
#: ../src/core/screen.c:652
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "திரை %d காட்சி '%s' இல் செல்லாது\n"
|
msgstr "திரை %d காட்சி '%s' இல் செல்லாது\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:707
|
#: ../src/core/screen.c:668
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -403,18 +390,18 @@ msgstr ""
|
|||||||
"திரை %d காட்சி \"%s\" க்கு சாளர மேலாளர் உள்ளது; --replace தேர்வை பயன்படுத்தி "
|
"திரை %d காட்சி \"%s\" க்கு சாளர மேலாளர் உள்ளது; --replace தேர்வை பயன்படுத்தி "
|
||||||
"தற்போதைய சாளரத்தை மாற்றவும்.\n"
|
"தற்போதைய சாளரத்தை மாற்றவும்.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:734
|
#: ../src/core/screen.c:695
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
msgstr "திரையில் சாளர மேலாளர் தேர்வை பெறமுடியவில்லை %d காட்சி \"%s\"\n"
|
msgstr "திரையில் சாளர மேலாளர் தேர்வை பெறமுடியவில்லை %d காட்சி \"%s\"\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:812
|
#: ../src/core/screen.c:750
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "திரை %d யின் காட்சி \"%s\" க்கு சாளர மேலாளர் ஏற்கெனவே உள்ளது\n"
|
msgstr "திரை %d யின் காட்சி \"%s\" க்கு சாளர மேலாளர் ஏற்கெனவே உள்ளது\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:998
|
#: ../src/core/screen.c:935
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "திரை %d ஐ விடுவிக்க முடியவில்லை \"%s\"\n"
|
msgstr "திரை %d ஐ விடுவிக்க முடியவில்லை \"%s\"\n"
|
||||||
@@ -475,44 +462,44 @@ msgstr ""
|
|||||||
" "தற்போதைய அமைப்பை சேமி" செயலுக்கு ஆதரவு இல்லை மேலும் அடுத்த முறை "
|
" "தற்போதைய அமைப்பை சேமி" செயலுக்கு ஆதரவு இல்லை மேலும் அடுத்த முறை "
|
||||||
"உள்நுழையும் போது நீங்களாக துவக்க வேண்டும்"
|
"உள்நுழையும் போது நீங்களாக துவக்க வேண்டும்"
|
||||||
|
|
||||||
#: ../src/core/util.c:84
|
#: ../src/core/util.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open debug log: %s\n"
|
msgid "Failed to open debug log: %s\n"
|
||||||
msgstr "பிழைதிருத்த பட்டியலை திறப்பதில் தோல்வி: %s\n"
|
msgstr "பிழைதிருத்த பட்டியலை திறப்பதில் தோல்வி: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:94
|
#: ../src/core/util.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to fdopen() log file %s: %s\n"
|
msgid "Failed to fdopen() log file %s: %s\n"
|
||||||
msgstr "fdopen() பதிவுக்கோப்பு தோல்வி %s: %s\n"
|
msgstr "fdopen() பதிவுக்கோப்பு தோல்வி %s: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:100
|
#: ../src/core/util.c:96
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "பதிவுக்கோப்பு திறக்கப்பட்டது %s\n"
|
msgstr "பதிவுக்கோப்பு திறக்கப்பட்டது %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:119 ../src/tools/mutter-message.c:149
|
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "வெர்போஸ் ஆதரவு இல்லாமல் மட்டர் அமைக்கப்பட்டது\n"
|
msgstr "வெர்போஸ் ஆதரவு இல்லாமல் மட்டர் அமைக்கப்பட்டது\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:264
|
#: ../src/core/util.c:259
|
||||||
msgid "Window manager: "
|
msgid "Window manager: "
|
||||||
msgstr "சாளர மேலாளர்:"
|
msgstr "சாளர மேலாளர்:"
|
||||||
|
|
||||||
#: ../src/core/util.c:412
|
#: ../src/core/util.c:407
|
||||||
msgid "Bug in window manager: "
|
msgid "Bug in window manager: "
|
||||||
msgstr "சாளர மேலாளரில் பிழை"
|
msgstr "சாளர மேலாளரில் பிழை"
|
||||||
|
|
||||||
#: ../src/core/util.c:443
|
#: ../src/core/util.c:438
|
||||||
msgid "Window manager warning: "
|
msgid "Window manager warning: "
|
||||||
msgstr "சாளர மேலாளர் எச்சரிக்கை:"
|
msgstr "சாளர மேலாளர் எச்சரிக்கை:"
|
||||||
|
|
||||||
#: ../src/core/util.c:471
|
#: ../src/core/util.c:466
|
||||||
msgid "Window manager error: "
|
msgid "Window manager error: "
|
||||||
msgstr "சாளர மேலாளர் பிழை"
|
msgstr "சாளர மேலாளர் பிழை"
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7596
|
#: ../src/core/window.c:7240
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -529,7 +516,7 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8320
|
#: ../src/core/window.c:7905
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
@@ -539,22 +526,22 @@ msgstr ""
|
|||||||
"அதிக "
|
"அதிக "
|
||||||
"பட்ச அளவு %d x %d; பொருள் தரும்படி இல்லை.\n"
|
"பட்ச அளவு %d x %d; பொருள் தரும்படி இல்லை.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "பயன்பாடு பொய்யான ஒரு _NET_WM_PID %lu ஐ அமைத்தது\n"
|
msgstr "பயன்பாடு பொய்யான ஒரு _NET_WM_PID %lu ஐ அமைத்தது\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (%s மீது)"
|
msgstr "%s (%s மீது)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
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:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR சாளரம் 0x%lx %s க்கு சுழல் நிகழ்வை உருவாக்கும்.\n"
|
msgstr "WM_TRANSIENT_FOR சாளரம் 0x%lx %s க்கு சுழல் நிகழ்வை உருவாக்கும்.\n"
|
||||||
@@ -706,22 +693,10 @@ msgstr ""
|
|||||||
"இந்த மதிப்பை அடைய மறை விளிம்பு சேர்க்கப்படும்."
|
"இந்த மதிப்பை அடைய மறை விளிம்பு சேர்க்கப்படும்."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
#: ../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, new windows that are initially the size of the monitor "
|
|
||||||
"automatically get maximized."
|
|
||||||
msgstr ""
|
|
||||||
"செயலாக்கினால், துவக்கத்தில் ஏறத்தாழ திரை அளவுள்ள புதிய சாளரங்கள் தானியங்கியாக "
|
|
||||||
"அதிக பட்ச அளவாக்கப்படும்"
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "கீற்றுத்துள்ளலிருந்து சாளரத்தை தேர்ந்தெடுக்கவும்."
|
msgstr "கீற்றுத்துள்ளலிருந்து சாளரத்தை தேர்ந்தெடுக்கவும்."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "கீற்று துள்ளுவதை இரத்து செய்"
|
msgstr "கீற்று துள்ளுவதை இரத்து செய்"
|
||||||
|
|
||||||
@@ -924,53 +899,53 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:236
|
#: ../src/ui/theme.c:234
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "மேல்"
|
msgstr "மேல்"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:238
|
#: ../src/ui/theme.c:236
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "கீழ்"
|
msgstr "கீழ்"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:240
|
#: ../src/ui/theme.c:238
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "இடது"
|
msgstr "இடது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:242
|
#: ../src/ui/theme.c:240
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "வலது"
|
msgstr "வலது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:270
|
#: ../src/ui/theme.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "சட்ட வடிவியல் \"%s\" அளவை குறிப்பிடவில்லை"
|
msgstr "சட்ட வடிவியல் \"%s\" அளவை குறிப்பிடவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:289
|
#: ../src/ui/theme.c:287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "\"%s\" ஓரத்திற்கு வடிவியல் \"%s\" அளவை குறிப்பிடவில்லை"
|
msgstr "\"%s\" ஓரத்திற்கு வடிவியல் \"%s\" அளவை குறிப்பிடவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:326
|
#: ../src/ui/theme.c:324
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "பட்டன் அளவு விகிதம் %g சரியில்ல"
|
msgstr "பட்டன் அளவு விகிதம் %g சரியில்ல"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:338
|
#: ../src/ui/theme.c:336
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "சட்ட அளவு பட்டன் அளவை குறிப்பிடவில்லை"
|
msgstr "சட்ட அளவு பட்டன் அளவை குறிப்பிடவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1051
|
#: ../src/ui/theme.c:1049
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "க்ரேடியன்டில் இரண்டு நிறங்களாவது இருக்க வேண்டும்"
|
msgstr "க்ரேடியன்டில் இரண்டு நிறங்களாவது இருக்க வேண்டும்"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1203
|
#: ../src/ui/theme.c:1201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
@@ -980,7 +955,7 @@ msgstr ""
|
|||||||
"அடைப்புக்குறிகளுக்குள்ளும் "
|
"அடைப்புக்குறிகளுக்குள்ளும் "
|
||||||
"கொண்டிருக்க வேண்டும் உம் gtk:custom(foo,bar); \"%s\" ஐ பகுக்க முடியவில்லை"
|
"கொண்டிருக்க வேண்டும் உம் gtk:custom(foo,bar); \"%s\" ஐ பகுக்க முடியவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1219
|
#: ../src/ui/theme.c:1217
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
@@ -990,7 +965,7 @@ msgstr ""
|
|||||||
"A-Za-z0-9-"
|
"A-Za-z0-9-"
|
||||||
"_ ஆகியன மட்டுமே செல்லுபடியாகும்."
|
"_ ஆகியன மட்டுமே செல்லுபடியாகும்."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1233
|
#: ../src/ui/theme.c:1231
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -999,7 +974,7 @@ msgstr ""
|
|||||||
"ஜிடிகே:தனிப்பயன் ஒழுங்கு \"gtk:custom(color_name,fallback)\", \"%s\" இந்த "
|
"ஜிடிகே:தனிப்பயன் ஒழுங்கு \"gtk:custom(color_name,fallback)\", \"%s\" இந்த "
|
||||||
"ஒழுங்குக்கு பொருந்தாது"
|
"ஒழுங்குக்கு பொருந்தாது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1278
|
#: ../src/ui/theme.c:1276
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -1009,7 +984,7 @@ msgstr ""
|
|||||||
"நிலையை "
|
"நிலையை "
|
||||||
"குறிக்கும் பகுக்க முடியாது \"%s\""
|
"குறிக்கும் பகுக்க முடியாது \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1292
|
#: ../src/ui/theme.c:1290
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
@@ -1019,17 +994,17 @@ msgstr ""
|
|||||||
"NORMAL "
|
"NORMAL "
|
||||||
"நிலையை குறிக்கும் பகுக்க முடியாது \"%s\""
|
"நிலையை குறிக்கும் பகுக்க முடியாது \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1303
|
#: ../src/ui/theme.c:1301
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "நிலை \"%s\" வண்ண குறிப்பில் புரிந்துகொள்ள முடியவில்லை"
|
msgstr "நிலை \"%s\" வண்ண குறிப்பில் புரிந்துகொள்ள முடியவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1316
|
#: ../src/ui/theme.c:1314
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "நிலை \"%s\" வண்ண குறிப்பு பொருளில் புரிந்துகொள்ள முடியவில்லை"
|
msgstr "நிலை \"%s\" வண்ண குறிப்பு பொருளில் புரிந்துகொள்ள முடியவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1345
|
#: ../src/ui/theme.c:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
@@ -1038,18 +1013,18 @@ msgstr ""
|
|||||||
"வளைந்த அமைப்பு \"blend/bg_color/fg_color/alpha\", \"%s\" இந்த வடிவமைப்பிற்கு "
|
"வளைந்த அமைப்பு \"blend/bg_color/fg_color/alpha\", \"%s\" இந்த வடிவமைப்பிற்கு "
|
||||||
"பொருந்தாது"
|
"பொருந்தாது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1356
|
#: ../src/ui/theme.c:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "ஆம்ஃபா மதிப்பை \"%s\" வளைந்த நிறத்தில் பகுக்க முடியவில்லை"
|
msgstr "ஆம்ஃபா மதிப்பை \"%s\" வளைந்த நிறத்தில் பகுக்க முடியவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1366
|
#: ../src/ui/theme.c:1364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ஆல்ஃபா மதுப்பு \"%s\"வளைவு நிறத்தில் 0.0 க்கும் 1.0 க்கும் இடையில் இல்லை"
|
"ஆல்ஃபா மதுப்பு \"%s\"வளைவு நிறத்தில் 0.0 க்கும் 1.0 க்கும் இடையில் இல்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1413
|
#: ../src/ui/theme.c:1411
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
@@ -1057,39 +1032,39 @@ msgstr ""
|
|||||||
"நிழல் வடிவமைப்பு \"shade/base_color/factor\", \"%s\" இந்த அமைப்பிற்கு "
|
"நிழல் வடிவமைப்பு \"shade/base_color/factor\", \"%s\" இந்த அமைப்பிற்கு "
|
||||||
"பொருந்தாது"
|
"பொருந்தாது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1424
|
#: ../src/ui/theme.c:1422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "நிழல்விகிதத்தை \"%s\" நிறத்தோடு பகுக்க முடியாது"
|
msgstr "நிழல்விகிதத்தை \"%s\" நிறத்தோடு பகுக்க முடியாது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1434
|
#: ../src/ui/theme.c:1432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "நிழல் விகிதம் \"%s\" முழுக்களாக உள்ளது "
|
msgstr "நிழல் விகிதம் \"%s\" முழுக்களாக உள்ளது "
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1463
|
#: ../src/ui/theme.c:1461
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "\"%s\" நிறத்தை பகுக்க முடியவில்லை"
|
msgstr "\"%s\" நிறத்தை பகுக்க முடியவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1780
|
#: ../src/ui/theme.c:1778
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "அச்சுக்கள் எழுத்தால் குறிக்கப்பட்டுள்ளது '%s' க்கு அனுமதி இல்லை"
|
msgstr "அச்சுக்கள் எழுத்தால் குறிக்கப்பட்டுள்ளது '%s' க்கு அனுமதி இல்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1807
|
#: ../src/ui/theme.c:1805
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
"parsed"
|
"parsed"
|
||||||
msgstr "அச்சுக்கள் பின்ன எண்ணால் குறிக்கப்பட்டுள்ளது '%s' ஐ பகுக்க முடியாது"
|
msgstr "அச்சுக்கள் பின்ன எண்ணால் குறிக்கப்பட்டுள்ளது '%s' ஐ பகுக்க முடியாது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1821
|
#: ../src/ui/theme.c:1819
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "அச்சுக்கள் இயல் எண்ணால் குறிக்கப்பட்டுள்ளது '%s' ஐ பகுக்க முடியாது"
|
msgstr "அச்சுக்கள் இயல் எண்ணால் குறிக்கப்பட்டுள்ளது '%s' ஐ பகுக்க முடியாது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1942
|
#: ../src/ui/theme.c:1940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
@@ -1097,41 +1072,41 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"உரையின் துவக்கத்தில் அச்சின் கூற்றில் தெரியாத செயல் இடம்பெற்றுள்ளது \"%s\""
|
"உரையின் துவக்கத்தில் அச்சின் கூற்றில் தெரியாத செயல் இடம்பெற்றுள்ளது \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1999
|
#: ../src/ui/theme.c:1997
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "அச்சு கூற்று காலியாக உள்ளது அல்லது புரியவில்லை"
|
msgstr "அச்சு கூற்று காலியாக உள்ளது அல்லது புரியவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2112 ../src/ui/theme.c:2122 ../src/ui/theme.c:2156
|
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "அச்சு கூற்று பூஜ்ஜியத்தால் வகுத்தல் பிழையை தந்தது"
|
msgstr "அச்சு கூற்று பூஜ்ஜியத்தால் வகுத்தல் பிழையை தந்தது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2164
|
#: ../src/ui/theme.c:2162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
msgstr "அச்சு கூற்று mod ஆப்பரேட்டரை பின்ன எண்ணில் பயன்படுத்த முயல்கிறது"
|
msgstr "அச்சு கூற்று mod ஆப்பரேட்டரை பின்ன எண்ணில் பயன்படுத்த முயல்கிறது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2220
|
#: ../src/ui/theme.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"அச்சு கூற்றில் ஆப்பரேட்டர் உள்ளது \"%s\" ஆப்பரன் எதிர்பார்க்கப்படுகிறது"
|
"அச்சு கூற்றில் ஆப்பரேட்டர் உள்ளது \"%s\" ஆப்பரன் எதிர்பார்க்கப்படுகிறது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2229
|
#: ../src/ui/theme.c:2227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"அச்சு கூற்றில் ஆப்பரன்ட் உள்ளது ஆனால் ஆப்பரேட்டர் எதிர்பார்க்கப்படுகிறது"
|
"அச்சு கூற்றில் ஆப்பரன்ட் உள்ளது ஆனால் ஆப்பரேட்டர் எதிர்பார்க்கப்படுகிறது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2237
|
#: ../src/ui/theme.c:2235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "அச்சு கூற்றில் ஆப்பரன்ட்டுக்கு பதில் ஆப்பரேட்டரால் முடிந்தது"
|
msgstr "அச்சு கூற்றில் ஆப்பரன்ட்டுக்கு பதில் ஆப்பரேட்டரால் முடிந்தது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2247
|
#: ../src/ui/theme.c:2245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
@@ -1140,39 +1115,39 @@ msgstr ""
|
|||||||
"அச்சு கூற்றில் \"%c\" ஆப்பரேட்டர் உள்ளது \"%c\" ஆப்பரேட்டருக்கு ஆப்பரன்ட் "
|
"அச்சு கூற்றில் \"%c\" ஆப்பரேட்டர் உள்ளது \"%c\" ஆப்பரேட்டருக்கு ஆப்பரன்ட் "
|
||||||
"இல்லை"
|
"இல்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2398 ../src/ui/theme.c:2443
|
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr "அச்சு கூற்றில் செல்லாத மாற்றி மற்றும் கான்ஸ்ட்டன் உள்ளது \"%s\""
|
msgstr "அச்சு கூற்றில் செல்லாத மாற்றி மற்றும் கான்ஸ்ட்டன் உள்ளது \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2497
|
#: ../src/ui/theme.c:2495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "ஆயத்தொலைவு தெரிவிப்பு பகுப்பி அதன் இடையகத்தை நிரப்பியது"
|
msgstr "ஆயத்தொலைவு தெரிவிப்பு பகுப்பி அதன் இடையகத்தை நிரப்பியது"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2526
|
#: ../src/ui/theme.c:2524
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"அச்சு கூற்றில் மூடிய அடைப்புக்குறி உள்ளது ஆனால் திறந்த அடைப்புகுறி இல்லை"
|
"அச்சு கூற்றில் மூடிய அடைப்புக்குறி உள்ளது ஆனால் திறந்த அடைப்புகுறி இல்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2590
|
#: ../src/ui/theme.c:2588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"அச்சு கூற்றில் திறந்த அடைப்புக்குறி உள்ளது ஆனால் மூடிய அடைப்புகுறி இல்லை"
|
"அச்சு கூற்றில் திறந்த அடைப்புக்குறி உள்ளது ஆனால் மூடிய அடைப்புகுறி இல்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2601
|
#: ../src/ui/theme.c:2599
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "அச்சுக்கூற்றில் ஆப்பரன்ட் மற்றும் ஆப்பரேட்டர் காணப்படவில்லை"
|
msgstr "அச்சுக்கூற்றில் ஆப்பரன்ட் மற்றும் ஆப்பரேட்டர் காணப்படவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2814 ../src/ui/theme.c:2834 ../src/ui/theme.c:2854
|
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "கருப்பொருளில் ஒரு கூற்று இருந்தது. அது பிழையை ஏற்படுத்தியது : %s\n"
|
msgstr "கருப்பொருளில் ஒரு கூற்று இருந்தது. அது பிழையை ஏற்படுத்தியது : %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4500
|
#: ../src/ui/theme.c:4498
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -1182,25 +1157,25 @@ msgstr ""
|
|||||||
"பாணிக்கு "
|
"பாணிக்கு "
|
||||||
"குறிப்பிடப்பட வேண்டும்"
|
"குறிப்பிடப்பட வேண்டும்"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5011 ../src/ui/theme.c:5036
|
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"காணவில்லை <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"காணவில்லை <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5084
|
#: ../src/ui/theme.c:5082
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "கருப்பொருளை ஏற்றுவதில் தோல்வி \"%s\": %s\n"
|
msgstr "கருப்பொருளை ஏற்றுவதில் தோல்வி \"%s\": %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5220 ../src/ui/theme.c:5227 ../src/ui/theme.c:5234
|
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||||
#: ../src/ui/theme.c:5241 ../src/ui/theme.c:5248
|
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "இல்லை<%s> கருப்பொருளுக்காக அமைக்கப்பட்டது \"%s\""
|
msgstr "இல்லை<%s> கருப்பொருளுக்காக அமைக்கப்பட்டது \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5256
|
#: ../src/ui/theme.c:5254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1209,7 +1184,7 @@ msgstr ""
|
|||||||
"சட்ட பாணி சாளர வகை இல்லை\"%s\" கருப்பொருளில் \"%s\", <window type=\"%s\" "
|
"சட்ட பாணி சாளர வகை இல்லை\"%s\" கருப்பொருளில் \"%s\", <window type=\"%s\" "
|
||||||
"style_set=\"whatever\"/> உறுப்பை சேர்க்கவும்"
|
"style_set=\"whatever\"/> உறுப்பை சேர்க்கவும்"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5663 ../src/ui/theme.c:5725 ../src/ui/theme.c:5788
|
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
@@ -1217,7 +1192,7 @@ msgstr ""
|
|||||||
"பயனீட்டாளர்-குறிப்பிட்ட கான்ஸ்டன் பெரிய எழுத்தில் துவங்க வேண்டும்; \"%s\" "
|
"பயனீட்டாளர்-குறிப்பிட்ட கான்ஸ்டன் பெரிய எழுத்தில் துவங்க வேண்டும்; \"%s\" "
|
||||||
"இல்லை"
|
"இல்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5671 ../src/ui/theme.c:5733 ../src/ui/theme.c:5796
|
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "கான்ஸ்டன் \"%s\" ஏற்கெனவே குறிப்பிடப்பட்டது"
|
msgstr "கான்ஸ்டன் \"%s\" ஏற்கெனவே குறிப்பிடப்பட்டது"
|
||||||
@@ -1600,7 +1575,7 @@ msgstr "உறுப்பிற்குள் உரை அனுமதி இ
|
|||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "<%s> இந்த கருப்பொருளுக்கு இரண்டுமுறை குறிப்பிட்டுள்ளது"
|
msgstr "<%s> இந்த கருப்பொருளுக்கு இரண்டுமுறை குறிப்பிட்டுள்ளது"
|
||||||
|
|
||||||
#: ../src/ui/theme-parser.c:4336
|
#: ../src/ui/theme-parser.c:4334
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "%s கருத்துக்கு செல்லுபடியாகும் கோப்பு கண்டுபிடித்தல் தோல்வியுற்றது \n"
|
msgstr "%s கருத்துக்கு செல்லுபடியாகும் கோப்பு கண்டுபிடித்தல் தோல்வியுற்றது \n"
|
||||||
@@ -1706,56 +1681,56 @@ msgstr "ஓரம்"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "இணைத்த மாதிரி உரையாடல்"
|
msgstr "இணைத்த மாதிரி உரையாடல்"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "பட்டன் உருவரை சோதனை %d"
|
msgstr "பட்டன் உருவரை சோதனை %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "%g சாளரத்தை வரைய மில்லிசெக்கண்டு"
|
msgstr "%g சாளரத்தை வரைய மில்லிசெக்கண்டு"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "பயன்பாடு: metacity-theme-viewer [THEMENAME]\n"
|
msgstr "பயன்பாடு: metacity-theme-viewer [THEMENAME]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "கருப்பொருளை ஏற்றுவதில் பிழை: %s\n"
|
msgstr "கருப்பொருளை ஏற்றுவதில் பிழை: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "கருப்பொருள் \"%s\" %g செகண்டில்\n"
|
msgstr "கருப்பொருள் \"%s\" %g செகண்டில்\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:870
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "இயல்பான தலைப்பு எழுத்துரு"
|
msgstr "இயல்பான தலைப்பு எழுத்துரு"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:876
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "சிறிய தலைப்பு எழுத்துரு"
|
msgstr "சிறிய தலைப்பு எழுத்துரு"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:882
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "பெரிய தலைப்பு எழுத்துரு"
|
msgstr "பெரிய தலைப்பு எழுத்துரு"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:887
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "பட்டன் உருவரை"
|
msgstr "பட்டன் உருவரை"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:892
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "நிர்ணயம்"
|
msgstr "நிர்ணயம்"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:944
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "சாளர தலைப்பு இங்கே"
|
msgstr "சாளர தலைப்பு இங்கே"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1047
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||||
@@ -1766,46 +1741,43 @@ msgstr ""
|
|||||||
"சேவகனின் "
|
"சேவகனின் "
|
||||||
"மூலத்தில் (%g மில்லி செகண்ட் சட்டத்திற்கு)\n"
|
"மூலத்தில் (%g மில்லி செகண்ட் சட்டத்திற்கு)\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1266
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr "நிலை கூற்று சோதனை உண்மையை தந்தது ஆனால் பிழை"
|
msgstr "நிலை கூற்று சோதனை உண்மையை தந்தது ஆனால் பிழை"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1268
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr "நிலை கூற்று சோதனை பொய்யை தந்தது ஆனால் பிழை"
|
msgstr "நிலை கூற்று சோதனை பொய்யை தந்தது ஆனால் பிழை"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1272
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "பிழை எதிர்பார்க்கப்பட்டடு ஆனால் தரப்படவில்லை"
|
msgstr "பிழை எதிர்பார்க்கப்பட்டடு ஆனால் தரப்படவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "பிழை %d எதிர்பார்க்கப்பட்டது %d தரப்படவில்லை"
|
msgstr "பிழை %d எதிர்பார்க்கப்பட்டது %d தரப்படவில்லை"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1280
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "பிழை எதிர்பார்க்கப்பட்டடு ஆனால் தரப்படவில்லை: %s"
|
msgstr "பிழை எதிர்பார்க்கப்பட்டடு ஆனால் தரப்படவில்லை: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1284
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "x மதிப்பு %d, %d எதிர்பார்க்கப்பட்டது"
|
msgstr "x மதிப்பு %d, %d எதிர்பார்க்கப்பட்டது"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "y மதிப்பு %d, %d எதிர்பார்க்கப்பட்டது"
|
msgstr "y மதிப்பு %d, %d எதிர்பார்க்கப்பட்டது"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1352
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "%d அச்சு கூற்று பகுக்கப்பட்டது %g செகண்டில் (%g சராசரி செகண்ட்)\n"
|
msgstr "%d அச்சு கூற்று பகுக்கப்பட்டது %g செகண்டில் (%g சராசரி செகண்ட்)\n"
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "சாளரத்தை சிறிதாக்கு"
|
|
||||||
|
|
||||||
#~ msgid "Comma-separated list of compositor plugins"
|
#~ msgid "Comma-separated list of compositor plugins"
|
||||||
#~ msgstr "பல்வினையாக்கியின் சொருகிகளின் கமாவால் பிரித்த பட்டியல்."
|
#~ msgstr "பல்வினையாக்கியின் சொருகிகளின் கமாவால் பிரித்த பட்டியல்."
|
||||||
|
|
||||||
|
|||||||
270
po/ug.po
270
po/ug.po
@@ -9,9 +9,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter\n"
|
"Project-Id-Version: mutter\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&keywords=I18N+L10N&component=general\n"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-31 13:47+0000\n"
|
"POT-Creation-Date: 2013-01-11 15:23+0000\n"
|
||||||
"PO-Revision-Date: 2013-04-06 18:40+0900\n"
|
"PO-Revision-Date: 2011-08-08 16:52+0600\n"
|
||||||
"Last-Translator: Gheyret Kenji <gheyret@gmail.com>\n"
|
"Last-Translator: Sahran <sahran.ug@gmail.com>\n"
|
||||||
"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
|
"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -63,6 +63,7 @@ msgid "Switch windows"
|
|||||||
msgstr "كۆزنەكلەرنى ئالماشتۇرۇش"
|
msgstr "كۆزنەكلەرنى ئالماشتۇرۇش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:12
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
|
#| msgid "Move between windows of an application immediately"
|
||||||
msgid "Switch windows of an application"
|
msgid "Switch windows of an application"
|
||||||
msgstr "پروگراممىنىڭ كۆزنىكىنى ئالماشتۇرۇش"
|
msgstr "پروگراممىنىڭ كۆزنىكىنى ئالماشتۇرۇش"
|
||||||
|
|
||||||
@@ -75,6 +76,7 @@ msgid "Switch windows directly"
|
|||||||
msgstr "كۆزنەكلەرنى بىۋاسىتە ئالماشتۇرۇش"
|
msgstr "كۆزنەكلەرنى بىۋاسىتە ئالماشتۇرۇش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:15
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
|
#| msgid "Move between windows of an application immediately"
|
||||||
msgid "Switch windows of an app directly"
|
msgid "Switch windows of an app directly"
|
||||||
msgstr "بىر پروگراممىنىڭ كۆزنەكلىرىنى بىۋاسىتە ئالماشتۇرۇش"
|
msgstr "بىر پروگراممىنىڭ كۆزنەكلىرىنى بىۋاسىتە ئالماشتۇرۇش"
|
||||||
|
|
||||||
@@ -83,6 +85,7 @@ msgid "Switch system controls directly"
|
|||||||
msgstr "سىستېما تىزگىنلىرىنى بىۋاسىتە ئالماشتۇرۇش"
|
msgstr "سىستېما تىزگىنلىرىنى بىۋاسىتە ئالماشتۇرۇش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:17
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
|
#| msgid "Hide all normal windows and set focus to the desktop"
|
||||||
msgid "Hide all normal windows"
|
msgid "Hide all normal windows"
|
||||||
msgstr "بارلىق نورمال كۆزنەكلەرنى يوشۇرۇش"
|
msgstr "بارلىق نورمال كۆزنەكلەرنى يوشۇرۇش"
|
||||||
|
|
||||||
@@ -103,18 +106,22 @@ msgid "Switch to workspace 4"
|
|||||||
msgstr "4-خىزمەت رايونىغا ئالمىشىش"
|
msgstr "4-خىزمەت رايونىغا ئالمىشىش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:22
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
|
#| msgid "Move to Workspace _Left"
|
||||||
msgid "Move to workspace left"
|
msgid "Move to workspace left"
|
||||||
msgstr "سولدىكى خىزمەت رايونىغا يۆتكەش"
|
msgstr "سولدىكى خىزمەت رايونىغا يۆتكەش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:23
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
|
#| msgid "Move to Workspace R_ight"
|
||||||
msgid "Move to workspace right"
|
msgid "Move to workspace right"
|
||||||
msgstr "ئوڭدىكى خىزمەت رايونىغا يۆتكەش"
|
msgstr "ئوڭدىكى خىزمەت رايونىغا يۆتكەش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:24
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
|
#| msgid "Move to Workspace _Left"
|
||||||
msgid "Move to workspace above"
|
msgid "Move to workspace above"
|
||||||
msgstr "ئۇستىدىكى خىزمەت رايونىغا يۆتكەش"
|
msgstr "ئۇستىدىكى خىزمەت رايونىغا يۆتكەش"
|
||||||
|
|
||||||
#: ../src/50-mutter-navigation.xml.in.h:25
|
#: ../src/50-mutter-navigation.xml.in.h:25
|
||||||
|
#| msgid "Move to Workspace _Down"
|
||||||
msgid "Move to workspace below"
|
msgid "Move to workspace below"
|
||||||
msgstr "تۆۋەندىكى خىزمەت رايونىغا يۆتكەش"
|
msgstr "تۆۋەندىكى خىزمەت رايونىغا يۆتكەش"
|
||||||
|
|
||||||
@@ -123,6 +130,7 @@ msgid "System"
|
|||||||
msgstr "سىستېما"
|
msgstr "سىستېما"
|
||||||
|
|
||||||
#: ../src/50-mutter-system.xml.in.h:2
|
#: ../src/50-mutter-system.xml.in.h:2
|
||||||
|
#| msgid "Show the panel's main menu"
|
||||||
msgid "Show the run command prompt"
|
msgid "Show the run command prompt"
|
||||||
msgstr "بۇيرۇق قۇرىنى كۆرسىتىدۇ"
|
msgstr "بۇيرۇق قۇرىنى كۆرسىتىدۇ"
|
||||||
|
|
||||||
@@ -163,6 +171,7 @@ msgid "Close window"
|
|||||||
msgstr "كۆزنەك ياپ"
|
msgstr "كۆزنەك ياپ"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:9
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
#| msgid "Resize window"
|
||||||
msgid "Hide window"
|
msgid "Hide window"
|
||||||
msgstr "كۆزنەكنى يوشۇرۇش"
|
msgstr "كۆزنەكنى يوشۇرۇش"
|
||||||
|
|
||||||
@@ -175,10 +184,12 @@ msgid "Resize window"
|
|||||||
msgstr "كۆزنەك چوڭلۇقىنى ئۆزگەرتىش"
|
msgstr "كۆزنەك چوڭلۇقىنى ئۆزگەرتىش"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:12
|
#: ../src/50-mutter-windows.xml.in.h:12
|
||||||
|
#| msgid "Toggle whether window is on all workspaces or just one"
|
||||||
msgid "Toggle window on all workspaces or one"
|
msgid "Toggle window on all workspaces or one"
|
||||||
msgstr "كۆزنەكنى بارلىق خىزمەت رايونى ياكى بىرىگىلا ئالماشتۇرۇش"
|
msgstr "كۆزنەكنى بارلىق خىزمەت رايونى ياكى بىرىگىلا ئالماشتۇرۇش"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:13
|
#: ../src/50-mutter-windows.xml.in.h:13
|
||||||
|
#| msgid "Raise window if it's covered by another window, otherwise lower it"
|
||||||
msgid "Raise window if covered, otherwise lower it"
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
msgstr "كۆزنەك توسۇلۇپ قالغان بولسا كۆتۈرسۇن، بولمىسا پەسلەتسۇن"
|
msgstr "كۆزنەك توسۇلۇپ قالغان بولسا كۆتۈرسۇن، بولمىسا پەسلەتسۇن"
|
||||||
|
|
||||||
@@ -208,18 +219,14 @@ msgstr "كۆزنەكنىڭ ئوڭ تەرىپىدە كۆرسەتسۇن"
|
|||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: ../src/compositor/compositor.c:568
|
#: ../src/compositor/compositor.c:512
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display \"%s"
|
"Another compositing manager is already running on screen %i on display \"%s"
|
||||||
"\"."
|
"\"."
|
||||||
msgstr "كۆرسەتكۈچ «%2$s» نىڭدىكى ئېكران %1$i دا بۆلەك باشقۇرغۇچ ئىجرا قىلىنىۋاتىدۇ."
|
msgstr "كۆرسەتكۈچ \"%2$s\" نىڭدىكى ئېكران %1$d دا بۆلەك باشقۇرغۇچ ئىجرا قىلىنىۋاتىدۇ."
|
||||||
|
|
||||||
#: ../src/compositor/meta-background.c:1064
|
#: ../src/core/bell.c:320
|
||||||
msgid "background texture could not be created from file"
|
|
||||||
msgstr "ھۆججەتتىن تەگلىك texture نى قۇرغىلى بولمايدۇ"
|
|
||||||
|
|
||||||
#: ../src/core/bell.c:322
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "قوڭغۇراق ھادىسىسى"
|
msgstr "قوڭغۇراق ھادىسىسى"
|
||||||
|
|
||||||
@@ -230,6 +237,7 @@ msgstr "نامەلۇم كۆزنەك ئۇچۇرى ئىلتىماسى:%d"
|
|||||||
|
|
||||||
#: ../src/core/delete.c:111
|
#: ../src/core/delete.c:111
|
||||||
#, c-format
|
#, c-format
|
||||||
|
#| msgid "<tt>%s</tt> is not responding."
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "%s نىڭدىن جاۋاب كەلمەيۋاتىدۇ."
|
msgstr "%s نىڭدىن جاۋاب كەلمەيۋاتىدۇ."
|
||||||
|
|
||||||
@@ -251,59 +259,53 @@ msgstr "كۈت(_W)"
|
|||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "مەجبۇرى ئاخىرلاشتۇر(_F)"
|
msgstr "مەجبۇرى ئاخىرلاشتۇر(_F)"
|
||||||
|
|
||||||
#: ../src/core/display.c:401
|
#: ../src/core/display.c:394
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "بىرىكتۈرۈش ئۈچۈن زۆرۈر بولغان كېڭەيتىلمە %s يوق"
|
msgstr "بىرىكتۈرۈش ئۈچۈن زۆرۈر بولغان كېڭەيتىلمە %s يوق"
|
||||||
|
|
||||||
#: ../src/core/display.c:493
|
#: ../src/core/display.c:491
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "X كۆزنەك سىستېمىسى كۆرسەتكۈچى ‹%s› نى ئېچىش مەغلۇپ بولدى\n"
|
msgstr "X كۆزنەك سىستېمىسى كۆرسەتكۈچى ‹%s› نى ئېچىش مەغلۇپ بولدى\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:935
|
#: ../src/core/keybindings.c:876
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
"binding\n"
|
"binding\n"
|
||||||
msgstr "باشقا پروگرامما %s كۇنۇپكىسى بىلەن سۈپەتلىگۈچى كۇنۇپكا %x نىڭ بىرىكمىسىنى ئىشلىتىۋاتىدۇ\n"
|
msgstr "باشقا پروگرامما %s كۇنۇپكىسى بىلەن سۈپەتلىگۈچى كۇنۇپكا %x نىڭ بىرىكمىسىنى ئىشلىتىۋاتىدۇ\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:1135
|
#: ../src/core/main.c:196
|
||||||
#, c-format
|
|
||||||
#| msgid "\"%s\" is not a valid value for focus attribute"
|
|
||||||
msgid "\"%s\" is not a valid accelerator\n"
|
|
||||||
msgstr "«%s» ئىناۋەتلىك تېزلەتكۈچ ئەمەس\n"
|
|
||||||
|
|
||||||
#: ../src/core/main.c:197
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "ئەڭگىمە باشقۇرغۇچقا باغلىنىشنى ئىناۋەتسىز قىل"
|
msgstr "ئەڭگىمە باشقۇرغۇچقا باغلىنىشنى چەكلە"
|
||||||
|
|
||||||
#: ../src/core/main.c:203
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
msgstr "ئىجرا قىلىنىۋاتقان كۆزنەك باشقۇرغۇچنى ئالماشتۇر"
|
msgstr "ئىجرا قىلىنىۋاتقان كۆزنەك باشقۇرغۇچنى ئالماشتۇر"
|
||||||
|
|
||||||
#: ../src/core/main.c:209
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "ئەڭگىمە باشقۇرغۇ ID سېنى بەلگىلە"
|
msgstr "ئەڭگىمە باشقۇرغۇ ID سېنى بەلگىلە"
|
||||||
|
|
||||||
#: ../src/core/main.c:214
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
msgstr "ئىشلىتىدىغان X كۆرسەتكۈچى"
|
msgstr "ئىشلىتىدىغان X كۆرسەتكۈچى"
|
||||||
|
|
||||||
#: ../src/core/main.c:220
|
#: ../src/core/main.c:219
|
||||||
msgid "Initialize session from savefile"
|
msgid "Initialize session from savefile"
|
||||||
msgstr "ساقلانغان ھۆججەتتىن ئەڭگىمەنى دەسلەپلەشتۈرۈش"
|
msgstr "ساقلانغان ھۆججەتتىن ئەڭگىمەنى دەسلەپلەشتۈرۈش"
|
||||||
|
|
||||||
#: ../src/core/main.c:226
|
#: ../src/core/main.c:225
|
||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "X نى قەدەمداش قىلىپ ئىشلەت"
|
msgstr "X نى قەدەمداش قىلىپ ئىشلەت"
|
||||||
|
|
||||||
#: ../src/core/main.c:534
|
#: ../src/core/main.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "ئۆرنەكلەر مۇندەرىجىسىنى ئىزدەش مەغلۇپ بولدى: %s\n"
|
msgstr "ئۆرنەكلەر مۇندەرىجىسىنى ئىزدەش مەغلۇپ بولدى: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:550
|
#: ../src/core/main.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -330,60 +332,61 @@ msgstr "نەشرىنى باس"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "ئىشلىتىدىغان Mutter قىستۇرمىسى"
|
msgstr "ئىشلىتىدىغان Mutter قىستۇرمىسى"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1095
|
#: ../src/core/prefs.c:1087
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
msgstr "بۇزۇلغان پروگراممىلارنى تۈزىتىش-ياخشىلاش ئىناۋەتسىز قىلىنغان. بەزى پروگراممىلار نورمال ئىشلىمەسلىكى مۇمكىن.\n"
|
msgstr "بۇزۇلغان پروگراممىلارنى تۈزىتىش-ياخشىلاش ئىناۋەتسىز قىلىنغان. بەزى پروگراممىلار نورمال ئىشلىمەسلىكى مۇمكىن.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1170
|
#: ../src/core/prefs.c:1162
|
||||||
#, c-format
|
#, c-format
|
||||||
|
#| msgid "Could not parse font description \"%s\" from GConf key %s\n"
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr "GSettings ئاچقۇچى %s نىڭ تەركىبىدىكى فونت چۈشەندۈرۈشى «%s»نى تەھلىل قىلغىنى بولمىدى\n"
|
msgstr "GSettings ئاچقۇچى %s نىڭ تەركىبىدىكى فونت چۈشەندۈرۈشى «%s»نى تەھلىل قىلغىنى بولمىدى\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1236
|
#: ../src/core/prefs.c:1228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
"modifier\n"
|
"modifier\n"
|
||||||
msgstr "سەپلىمە سانداندىن تېپىلغان «%s» چاشقىنەك توپچىسىنىڭ سۈپەتلىگۈچىسى ئۈچۈن ئىناۋەتسىز\n"
|
msgstr "سەپلىمە سانداندىن تېپىلغان «%s» چاشقىنەك توپچىسىنىڭ سۈپەتلىگۈچىسى ئۈچۈن ئىناۋەتسىز\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1788
|
#: ../src/core/prefs.c:1780
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
"\"%s\"\n"
|
"\"%s\"\n"
|
||||||
msgstr "سەپلىمە ساندىنىدىن تېپىلغان «%s»، «%s» كۇنۇپكا باغلانمىسىنىڭ ئىناۋەتلىك قىممىتى ئەمەس\n"
|
msgstr "سەپلىمە ساندىنىدىن تېپىلغان «%s»، «%s» كۇنۇپكا باغلانمىسىنىڭ ئىناۋەتلىك قىممىتى ئەمەس\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1887
|
#: ../src/core/prefs.c:1877
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "خىزمەت بوشلۇقى %d"
|
msgstr "خىزمەت بوشلۇقى %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:691
|
#: ../src/core/screen.c:658
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "كۆرسەتكۈچ ‹%2$s› دىكى ئېكران %1$d ئىناۋەتسىز\n"
|
msgstr "كۆرسەتكۈچ ‹%2$s› دىكى ئېكران %1$d ئىناۋەتسىز\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:707
|
#: ../src/core/screen.c:674
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
"replace option to replace the current window manager.\n"
|
"replace option to replace the current window manager.\n"
|
||||||
msgstr "كۆرسەتكۈچ «%2$s» دىكى ئېكران %1$d نىڭ كۆزنەك باشقۇرغۇسى بار؛ ھازىرقى كۆزنەك باشقۇرغۇنى ئالماشتۇرۇش ئۈچۈن --replace تاللانمىسىنى ئىشلىتىپ كۆرۈپ بېقىڭ.\n"
|
msgstr "كۆرسەتكۈچ «%2$s» دىكى ئېكران %1$d نىڭ كۆزنەك باشقۇرغۇسى بار؛ ھازىرقى كۆزنەك باشقۇرغۇنى ئالماشتۇرۇش ئۈچۈن --replace تاللانمىسىنى ئىشلىتىپ كۆرۈپ بېقىڭ.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:734
|
#: ../src/core/screen.c:701
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
msgstr "كۆرسەتكۈچ «%2$s» نىڭدىكى ئېكران %1$d دا كۆزنەك باشقۇرغۇنىڭ تاللانمىسىنى ئالغىلى بولمىدى\n"
|
msgstr "كۆرسەتكۈچ «%2$s» نىڭدىكى ئېكران %1$d دا كۆزنەك باشقۇرغۇنىڭ تاللانمىسىنى ئالغىلى بولمىدى\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:812
|
#: ../src/core/screen.c:770
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr "«%2$s» دىكى %1$d ئېكراندا بىر كۆزنەك باشقۇرغۇ بار\n"
|
msgstr "«%2$s» دىكى %1$d ئېكراندا بىر كۆزنەك باشقۇرغۇ بار\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:998
|
#: ../src/core/screen.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "«%2$s» دىكى %1$d ئېكراننى بوشاتقىلى بولمىدى\n"
|
msgstr "«%2$s» دىكى %1$d ئېكراننى بوشاتقىلى بولمىدى\n"
|
||||||
@@ -441,49 +444,49 @@ msgid ""
|
|||||||
"be restarted manually next time you log in."
|
"be restarted manually next time you log in."
|
||||||
msgstr "بۇ كۆزنەكلەردە «ھازىرقى تەڭشەكنى ساقلاش» ئىقتىدارىنى ئىشلەتكىلى بولمايدۇ. كېيىن كىرگەندە يەنە قوزغىتىڭ."
|
msgstr "بۇ كۆزنەكلەردە «ھازىرقى تەڭشەكنى ساقلاش» ئىقتىدارىنى ئىشلەتكىلى بولمايدۇ. كېيىن كىرگەندە يەنە قوزغىتىڭ."
|
||||||
|
|
||||||
#: ../src/core/util.c:84
|
#: ../src/core/util.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open debug log: %s\n"
|
msgid "Failed to open debug log: %s\n"
|
||||||
msgstr "سازلاش خاتىرىسىنى ئېچىش مەغلۇپ بولدى:%s\n"
|
msgstr "سازلاش خاتىرىسىنى ئېچىش مەغلۇپ بولدى:%s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:94
|
#: ../src/core/util.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to fdopen() log file %s: %s\n"
|
msgid "Failed to fdopen() log file %s: %s\n"
|
||||||
msgstr "خاتىرە ھۆججىتى %s غا fdopen() مەشغۇلاتى قىلغىلى بولمىدى:%s\n"
|
msgstr "خاتىرە ھۆججىتى %s غا fdopen() مەشغۇلاتى قىلغىلى بولمىدى:%s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:100
|
#: ../src/core/util.c:96
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "ئاچقان خاتىرە ھۆججەت %s\n"
|
msgstr "ئاچقان خاتىرە ھۆججەت %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:119 ../src/tools/mutter-message.c:149
|
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "Mutter تەرجىمە-تەھرىرلىگەندە تەپسىلات قوللاش ھالىتى قوشۇلمىغان\n"
|
msgstr "Mutter تەرجىمە-تەھرىرلىگەندە تەپسىلات قوللاش ھالىتى قوشۇلمىغان\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:264
|
#: ../src/core/util.c:259
|
||||||
msgid "Window manager: "
|
msgid "Window manager: "
|
||||||
msgstr "كۆزنەك باشقۇرغۇ: "
|
msgstr "كۆزنەك باشقۇرغۇ: "
|
||||||
|
|
||||||
#: ../src/core/util.c:412
|
#: ../src/core/util.c:407
|
||||||
msgid "Bug in window manager: "
|
msgid "Bug in window manager: "
|
||||||
msgstr "كۆزنەك باشقۇرغۇدىكى كەمتۈك: "
|
msgstr "كۆزنەك باشقۇرغۇدىكى كەمتۈك: "
|
||||||
|
|
||||||
#: ../src/core/util.c:443
|
#: ../src/core/util.c:438
|
||||||
msgid "Window manager warning: "
|
msgid "Window manager warning: "
|
||||||
msgstr "كۆزنەك باشقۇرغۇ ئاگاھلاندۇرۇشى: "
|
msgstr "كۆزنەك باشقۇرغۇ ئاگاھلاندۇرۇشى: "
|
||||||
|
|
||||||
#: ../src/core/util.c:471
|
#: ../src/core/util.c:466
|
||||||
msgid "Window manager error: "
|
msgid "Window manager error: "
|
||||||
msgstr "كۆزنەك باشقۇرغۇ خاتالىقى: "
|
msgstr "كۆزنەك باشقۇرغۇ خاتالىقى: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7596
|
#: ../src/core/window.c:7279
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
"window as specified in the ICCCM.\n"
|
"window as specified in the ICCCM.\n"
|
||||||
msgstr "كۆزنەك %s بەلگىلىمە ICCCM دا بەلگىلەنگەن WM_CLIENT_LEADER كۆزنەكنى ئەمەس SM_CLIENT_ID نى ئۆزى بەلگىلىۋېلىپتۇ.\n"
|
msgstr "كۆزنەك %s بەلگىلىمە ICCCM دا بەلگىلەنگەن WM_CLIENT_LEADER كۆزنەكنى ئەمەس SM_CLIENT_ID نى ئۆزى بەلگىلىۋېتىپتۇ.\n"
|
||||||
|
|
||||||
#. We ignore mwm_has_resize_func because WM_NORMAL_HINTS is the
|
#. We ignore mwm_has_resize_func because WM_NORMAL_HINTS is the
|
||||||
#. * authoritative source for that info. Some apps such as mplayer or
|
#. * authoritative source for that info. Some apps such as mplayer or
|
||||||
@@ -492,29 +495,29 @@ msgstr "كۆزنەك %s بەلگىلىمە ICCCM دا بەلگىلەنگەن WM
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:8320
|
#: ../src/core/window.c:7945
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
"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"
|
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
|
||||||
msgstr "كۆزنەك %s نىڭدا MWM بەلگىلەنگەن بولۇپ، بۇ كۆزنەك چوڭلۇقىنى ئۆزگەرتكىلى بولمايدۇ دېگەن مەنىدە. بىراق ئەڭ كىچىك چوڭلۇقى%d x %d، ۋە ئەڭ كىچىك چوڭلۇقى %d x %d قىلىپ بەلگىلىنىپتۇ. بۇنىڭ ھېچقانداق ئەھمىيىتى يوق.\n"
|
msgstr "كۆزنەك %s نىڭدا MWM بەلگىلەنگەن بولۇپ، بۇ كۆزنەك چوڭلۇقىنى ئۆزگەرتكىلى بولمايدۇ دېگەن مەنىدە. بىراق ئەڭ كىچىك چوڭلۇقى%d x %d، ۋە ئەڭ كىچىك چوڭلۇقى %d x %d قىلىپ بەلگىلىنىپتۇ. بۇنىڭ ھېچقانداق ئەھمىيىتى يوق.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:318
|
#: ../src/core/window-props.c:274
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "پروگرامما بىر ساختا _NET_WM_PID نى بەلگىلىدى%lu\n"
|
msgstr "پروگرامما بىر ساختا _NET_WM_PID نى بەلگىلىدى%lu\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:434
|
#: ../src/core/window-props.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (ھازىر %s نىڭ ئۈستىدە)"
|
msgstr "%s (ھازىر %s نىڭ ئۈستىدە)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1517
|
#: ../src/core/window-props.c:1448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr "%2$s گە بەلگىلەنگەن ئۈنۈمسىز WM_TRANSIENT_FOR كۆزنەك 0x%1$lx بولىدۇ.\n"
|
msgstr "%2$s گە بەلگىلەنگەن ئۈنۈمسىز WM_TRANSIENT_FOR كۆزنەك 0x%1$lx بولىدۇ.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1528
|
#: ../src/core/window-props.c:1459
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "%2$s نىڭ WM_TRANSIENT_FOR كۆزنەك0x%1$lx دەۋرىيلىك قۇرۇشى مۇمكىن.\n"
|
msgstr "%2$s نىڭ WM_TRANSIENT_FOR كۆزنەك0x%1$lx دەۋرىيلىك قۇرۇشى مۇمكىن.\n"
|
||||||
@@ -584,14 +587,14 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "خىزمەت رايونلىرى جانلىق باشقۇرۇلسۇن"
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
|
||||||
msgid ""
|
msgid ""
|
||||||
"Determines whether workspaces are managed dynamically or whether there's a "
|
"Determines whether workspaces are managed dynamically or whether there's a "
|
||||||
"static number of workspaces (determined by the num-workspaces key in org."
|
"static number of workspaces (determined by the num-workspaces key in org."
|
||||||
"gnome.desktop.wm.preferences)."
|
"gnome.desktop.wm.preferences)."
|
||||||
msgstr "خىزمەت رايونلىرى جانلىق باشقۇرۇلامدۇ ياكى خىزمەت رايونلىرىنىڭ سانى مۇقىم بولامدۇ بەلگىلەيدۇ(خىزمەت رايونلىرىنىڭ سانى org.gnome.desktop.wm.preferences دېگەن ئاچقۇچتا بەلگىلىنىدۇ)"
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
|
||||||
msgid "Workspaces only on primary"
|
msgid "Workspaces only on primary"
|
||||||
@@ -605,7 +608,7 @@ msgstr "خىزمەت رايونى ئالماشتۇرۇشنىڭ ھەممە ئېك
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
|
||||||
msgid "No tab popup"
|
msgid "No tab popup"
|
||||||
msgstr "بەتكۈچ سەكرىمىسۇن"
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -626,13 +629,13 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
|
||||||
msgid "Draggable border width"
|
msgid "Draggable border width"
|
||||||
msgstr "سۆرەشكە بولىدىغان گىرۋەكنىڭ كەڭلىكى"
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"The amount of total draggable borders. If the theme's visible borders are "
|
"The amount of total draggable borders. If the theme's visible borders are "
|
||||||
"not enough, invisible borders will be added to meet this value."
|
"not enough, invisible borders will be added to meet this value."
|
||||||
msgstr "سۆرەشكە بولىدىغان گىرۋەكنىڭ كەڭلىكى. ئۆرنەكتە كۆرسىتىلىۋاتقان گىرۋەكنىڭ كەڭلىكى بۇنىڭدىن كىچىك بولسا، كۆرسەتكىلى بولمايدىغان گىرۋەككە مۇشۇ قىممەتكە ماس كېلىدىغان قىلىپ قىممەت قوشۇلىدۇ."
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
||||||
msgid "Auto maximize nearly monitor sized windows"
|
msgid "Auto maximize nearly monitor sized windows"
|
||||||
@@ -640,17 +643,18 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, new windows that are initially the size of the monitor "
|
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||||
"automatically get maximized."
|
"when mapped."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||||
|
#| msgid "Remove Window From Top"
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "سەكرەپ چىققان بەتكۈچتىن كۆزنەك تاللىسۇن"
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "سەكرەپ چىققان بەتكۈچنى ئەمەلدىن قالدۇر"
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/tools/mutter-message.c:123
|
#: ../src/tools/mutter-message.c:123
|
||||||
#, c-format
|
#, c-format
|
||||||
@@ -851,266 +855,266 @@ msgstr "Mod5"
|
|||||||
#. Translators: This represents the size of a window. The first number is
|
#. Translators: This represents the size of a window. The first number is
|
||||||
#. * the width of the window and the second is the height.
|
#. * the width of the window and the second is the height.
|
||||||
#.
|
#.
|
||||||
#: ../src/ui/resizepopup.c:136
|
#: ../src/ui/resizepopup.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:236
|
#: ../src/ui/theme.c:235
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "چوققا"
|
msgstr "چوققا"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:238
|
#: ../src/ui/theme.c:237
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "ئاستى"
|
msgstr "ئاستى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:240
|
#: ../src/ui/theme.c:239
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "سول"
|
msgstr "سول"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:242
|
#: ../src/ui/theme.c:241
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "ئوڭ"
|
msgstr "ئوڭ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:270
|
#: ../src/ui/theme.c:269
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "كاندۇكنىڭ گېئومېتىرىيىلىك شەكلى «%s» ئۆلچەمنى ئىپادىلىمەيدۇ"
|
msgstr "كاندۇكنىڭ گېئومېتىرىيىلىك شەكلى «%s» ئۆلچەمنى ئىپادىلىمەيدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:289
|
#: ../src/ui/theme.c:288
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr "كاندۇكنىڭ گېئومېتىرىيىلىك شەكلى گىرۋەك «%2$s» نىڭ ئۆلچىمى «%1$s» ئىپادىلىمەيدۇ"
|
msgstr "كاندۇكنىڭ گېئومېتىرىيىلىك شەكلى گىرۋەك «%2$s» نىڭ ئۆلچىمى «%1$s» ئىپادىلىمەيدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:326
|
#: ../src/ui/theme.c:325
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "توپچىنىڭ ئېگىزلىك ۋە كەڭلىك نىسبىتى %g مۇۋاپىق ئەمەس"
|
msgstr "توپچىنىڭ ئېگىزلىك ۋە كەڭلىك نىسبىتى %g مۇۋاپىق ئەمەس"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:338
|
#: ../src/ui/theme.c:337
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "كاندۇكنىڭ گېئومېتىرىيىلىك شەكلى توپچىلارنىڭ چوڭلۇقىنى ئىپادىلىمەيدۇ"
|
msgstr "كاندۇكنىڭ گېئومېتىرىيىلىك شەكلى توپچىلارنىڭ چوڭلۇقىنى ئىپادىلىمەيدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1051
|
#: ../src/ui/theme.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "تەدرىجىي ئۆزگىرىشتە ئاز دېگەندە ئىككى خىل رەڭ بولۇش كېرەك"
|
msgstr "تەدرىجىي ئۆزگىرىشتە ئاز دېگەندە ئىككى خىل رەڭ بولۇش كېرەك"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1203
|
#: ../src/ui/theme.c:1202
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
||||||
msgstr "GTK رەڭ ئۆلچىمىدە ھالەتتىن كېيىن چوقۇم رەڭ ئاتى ۋە زاپاس بولۇشى لازىم، مەسىلەن، gtk:custom(foo,bar) ھالەت؛ «%s» نى تەھلىل قىلالمايدۇ"
|
msgstr "GTK رەڭ ئۆلچىمىدە ھالەتتىن كېيىن چوقۇم رەڭ ئاتى ۋە زاپاس بولۇشى لازىم، مەسىلەن، gtk:custom(foo,bar) ھالەت؛ «%s» نى تەھلىل قىلالمايدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1219
|
#: ../src/ui/theme.c:1218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
"_ are valid"
|
"_ are valid"
|
||||||
msgstr "gtk:custom نىڭ color_name پارامېتىرىدىكى ئىناۋەتسىز ھەرپ '%c'، پەقەت A-Za-z0-9-_ نىلا ئىشلەتكىلى بولىدۇ"
|
msgstr "gtk:custom نىڭ color_name پارامېتىرىدىكى ئىناۋەتسىز ھەرپ '%c'، پەقەت A-Za-z0-9-_ نىلا ئىشلەتكىلى بولىدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1233
|
#: ../src/ui/theme.c:1232
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
"fit the format"
|
"fit the format"
|
||||||
msgstr "Gtk:custom نىڭ پىچىمى \"gtk:custom(color_name,fallback)\" بولۇپ، «%s» پىچىمغا توغرا كەلمەيدۇ"
|
msgstr "Gtk:custom نىڭ پىچىمى \"gtk:custom(color_name,fallback)\" بولۇپ، «%s» پىچىمغا توغرا كەلمەيدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1278
|
#: ../src/ui/theme.c:1277
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
"where NORMAL is the state; could not parse \"%s\""
|
"where NORMAL is the state; could not parse \"%s\""
|
||||||
msgstr "GTK رەڭ بەلگىلىمىسىنىڭ ھالىتى چوقۇم gtk:fg[NORMAL] نىڭدەك تىرناق ئىچىگە ئېلىنىشى كېرەك؛ «%s» نى تەھلىل قىلغىلى بولمىدى."
|
msgstr "GTK رەڭ بەلگىلىمىسىنىڭ ھالىتى چوقۇم gtk:fg[NORMAL] نىڭدەك تىرناق ئىچىگە ئېلىنىشى كېرەك؛ «%s» نى تەھلىل قىلغىلى بولمىدى."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1292
|
#: ../src/ui/theme.c:1291
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||||
msgstr "GTK رەڭ بەلگىلىمىسىنىڭ ھالىتىنىڭ ئارقىسىغا سول تىرناق يېزىلىشى كېرەك. مەسىلەن gtk:fg[NORMAL] نىڭدەك بۇ يەردىكى «NORMAL» ھالەتنى بىلدۈرىدۇ؛ «%s» نى تەھلىل قىلغىلى بولمىدى."
|
msgstr "GTK رەڭ بەلگىلىمىسىنىڭ ھالىتىنىڭ ئارقىسىغا سول تىرناق يېزىلىشى كېرەك. مەسىلەن gtk:fg[NORMAL] نىڭدەك بۇ يەردىكى «NORMAL» ھالەتنى بىلدۈرىدۇ؛ «%s» نى تەھلىل قىلغىلى بولمىدى."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1303
|
#: ../src/ui/theme.c:1302
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "رەڭ بەلگىلىمىسىدىكى «%s» ھالەتنى چۈشەنگىلى بولمىدى"
|
msgstr "رەڭ بەلگىلىمىسىدىكى «%s» ھالەتنى چۈشەنگىلى بولمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1316
|
#: ../src/ui/theme.c:1315
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "رەڭ بەلگىلىمىسىدىكى «%s» رەڭ بۆلىكىنى چۈشەنگىلى بولمىدى"
|
msgstr "رەڭ بەلگىلىمىسىدىكى «%s» رەڭ بۆلىكىنى چۈشەنگىلى بولمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1345
|
#: ../src/ui/theme.c:1344
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
"format"
|
"format"
|
||||||
msgstr "بىرىكمە رەڭنىڭ فورماتى \"blend/bg_color/fg_color/alpha\"، «%s» بۇ پىچىمغا ماس كەلمىدى"
|
msgstr "بىرىكمە رەڭنىڭ فورماتى \"blend/bg_color/fg_color/alpha\"، «%s» بۇ پىچىمغا ماس كەلمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1356
|
#: ../src/ui/theme.c:1355
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "بىرىكمە رەڭدىكى ئالفا قىممىتى «%s» نى تەھلىل قىلغىلى بولمىدى"
|
msgstr "بىرىكمە رەڭدىكى ئالفا قىممىتى «%s» نى تەھلىل قىلغىلى بولمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1366
|
#: ../src/ui/theme.c:1365
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr "بىرىكمە رەڭنىڭ ئالفا قىممىتى «%s» نىڭ دائىرىسى 0.0 ~1.0 ئىچىدە ئەمەس"
|
msgstr "بىرىكمە رەڭنىڭ ئالفا قىممىتى «%s» نىڭ دائىرىسى 0.0 ~1.0 ئىچىدە ئەمەس"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1413
|
#: ../src/ui/theme.c:1412
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
msgstr "سايە پىچىمى «shade/base_color/factor»، «%s» بۇ پىچىمغا ماسلاشمىدى"
|
msgstr "سايە پىچىمى «shade/base_color/factor»، «%s» بۇ پىچىمغا ماسلاشمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1424
|
#: ../src/ui/theme.c:1423
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "سايە رەڭگىدىكى سايە فاكتور «%s» نى تەھلىل قىلغىلى بولمىدى"
|
msgstr "سايە رەڭگىدىكى سايە فاكتور «%s» نى تەھلىل قىلغىلى بولمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1434
|
#: ../src/ui/theme.c:1433
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "سايە رەڭگىدىكى سايە فاكتورى «%s» مەنپىي سان"
|
msgstr "سايە رەڭگىدىكى سايە فاكتورى «%s» مەنپىي سان"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1463
|
#: ../src/ui/theme.c:1462
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "رەڭ «%s» نى ئانالىز قىلغىلى بولمىدى"
|
msgstr "رەڭ «%s» نى ئانالىز قىلغىلى بولمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1780
|
#: ../src/ui/theme.c:1779
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە رۇخسەت قىلىنمىغان ھەرپ '‹%s› بار"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە رۇخسەت قىلىنمىغان ھەرپ '‹%s› بار"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1807
|
#: ../src/ui/theme.c:1806
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
"parsed"
|
"parsed"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە تەھلىل قىلغىلى بولمايدىغان كەسىر سان ‹%s› بار"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە تەھلىل قىلغىلى بولمايدىغان كەسىر سان ‹%s› بار"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1821
|
#: ../src/ui/theme.c:1820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە تەھلىل قىلغىلى بولمايدىغان پۈتۈن سان ‹%s› بار"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە تەھلىل قىلغىلى بولمايدىغان پۈتۈن سان ‹%s› بار"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1942
|
#: ../src/ui/theme.c:1941
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
"\"%s\""
|
"\"%s\""
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ بېشىدا نامەلۇم ئەمەل بار: «%s»"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ بېشىدا نامەلۇم ئەمەل بار: «%s»"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1999
|
#: ../src/ui/theme.c:1998
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "كوئوردېنات ئىپادىسى قۇرۇق ياكى چۈشىنىكسىز"
|
msgstr "كوئوردېنات ئىپادىسى قۇرۇق ياكى چۈشىنىكسىز"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2112 ../src/ui/theme.c:2122 ../src/ui/theme.c:2156
|
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "كوئوردېنات ئىپادىسى 0 نى بۆلگۈچى قىلغان"
|
msgstr "كوئوردېنات ئىپادىسى 0 نى بۆلگۈچى قىلغان"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2164
|
#: ../src/ui/theme.c:2163
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
msgstr "كوئوردېنات ئىپادىسى كەسىر سانغا mod ئەمىلىنى ئىشلەتمەكچى"
|
msgstr "كوئوردېنات ئىپادىسى كەسىر سانغا mod ئەمىلىنى ئىشلەتمەكچى"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2220
|
#: ../src/ui/theme.c:2219
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە سان كېلىدىغان يەردە ئەمەل «%s» بار ئىكەن"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە سان كېلىدىغان يەردە ئەمەل «%s» بار ئىكەن"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2229
|
#: ../src/ui/theme.c:2228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە ئەمەل كېلىدىغان يەردە سان بار ئىكەن"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە ئەمەل كېلىدىغان يەردە سان بار ئىكەن"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2237
|
#: ../src/ui/theme.c:2236
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "كوئوردېنات ئىپادىسى سان بىلەن ئاياغلاشماي ئەمەل بىلەن ئاياغلاشقان"
|
msgstr "كوئوردېنات ئىپادىسى سان بىلەن ئاياغلاشماي ئەمەل بىلەن ئاياغلاشقان"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2247
|
#: ../src/ui/theme.c:2246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
"operand in between"
|
"operand in between"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە ئەمەل «%2$c» نىڭ ئارقىسىدىن ئەمەل «%1$c» كېلىپتۇ، ئارىلىقتا سان يوق ئىكەن"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە ئەمەل «%2$c» نىڭ ئارقىسىدىن ئەمەل «%1$c» كېلىپتۇ، ئارىلىقتا سان يوق ئىكەن"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2398 ../src/ui/theme.c:2443
|
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە نامەلۇم ئۆزگەرگۈچى ياكى تۇراقلىق سان «%s» بار ئىكەن"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە نامەلۇم ئۆزگەرگۈچى ياكى تۇراقلىق سان «%s» بار ئىكەن"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2497
|
#: ../src/ui/theme.c:2496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "كوئوردېنات ئىپادىسىنى تەھلىل قىلىۋاتقاندا يىغلەك تېشىپ كەتتى."
|
msgstr "كوئوردېنات ئىپادىسىنى تەھلىل قىلىۋاتقاندا يىغلەك تېشىپ كەتتى."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2526
|
#: ../src/ui/theme.c:2525
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدىكى يېپىلغان تىرناققا ماس كېلىدىغان ئېچىلغان تىرناق يوق"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدىكى يېپىلغان تىرناققا ماس كېلىدىغان ئېچىلغان تىرناق يوق"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2590
|
#: ../src/ui/theme.c:2589
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدىكى ئېچىلغان تىرناققا ماس كېلىدىغان يېپىلغان تىرناق يوق"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدىكى ئېچىلغان تىرناققا ماس كېلىدىغان يېپىلغان تىرناق يوق"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2601
|
#: ../src/ui/theme.c:2600
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە ئەمەل(قوشۇش، ئېلىش...) ياكى سان يوق"
|
msgstr "كوئوردېنات ئىپادىسىنىڭ تەركىبىدە ئەمەل(قوشۇش، ئېلىش...) ياكى سان يوق"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2814 ../src/ui/theme.c:2834 ../src/ui/theme.c:2854
|
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "ئۆرنەك تەركىبىدە خاتالىق چىقىرىدىغان ئىپادە بار: %s\n"
|
msgstr "ئۆرنەك تەركىبىدە خاتالىق چىقىرىدىغان ئىپادە بار: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4500
|
#: ../src/ui/theme.c:4499
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
"specified for this frame style"
|
"specified for this frame style"
|
||||||
msgstr "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/>بۇ كۆزنەكنىڭ ئۇسلۇبى ئۈچۈن بەلگىلىنىشى زۆرۈر"
|
msgstr "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/>بۇ كۆزنەكنىڭ ئۇسلۇبى ئۈچۈن بەلگىلىنىشى زۆرۈر"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5011 ../src/ui/theme.c:5036
|
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr "<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/> يوق"
|
msgstr "<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/> يوق"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5084
|
#: ../src/ui/theme.c:5083
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "ئۆرنەك «%s» نى ئوقۇش مەغلۇپ بولدى: %s\n"
|
msgstr "ئۆرنەك «%s» نى ئوقۇش مەغلۇپ بولدى: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5220 ../src/ui/theme.c:5227 ../src/ui/theme.c:5234
|
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
||||||
#: ../src/ui/theme.c:5241 ../src/ui/theme.c:5248
|
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "ئۆرنەك «%2$s» نىڭ <%1$s> ئى بەلگىلەنمىگەن"
|
msgstr "ئۆرنەك «%2$s» نىڭ <%1$s> ئى بەلگىلەنمىگەن"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5256
|
#: ../src/ui/theme.c:5255
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
"type=\"%s\" style_set=\"whatever\"/> element"
|
"type=\"%s\" style_set=\"whatever\"/> element"
|
||||||
msgstr "ئۆرنەك «%2$s» نىڭ ئىچىدىكى كۆزنەك تىپى <%1$s> نىڭ كاندۇك ئۇسلۇبى بەلگىلەنمىگەن. بىر <window type=\"%3$s\" style_set=\"whatever\"/> ئېلېمېنتى قوشۇڭ"
|
msgstr "ئۆرنەك «%2$s» نىڭ ئىچىدىكى كۆزنەك تىپى <%1$s> نىڭ كاندۇك ئۇسلۇبى بەلگىلەنمىگەن. بىر <window type=\"%3$s\" style_set=\"whatever\"/> ئېلېمېنتى قوشۇڭ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5663 ../src/ui/theme.c:5725 ../src/ui/theme.c:5788
|
#: ../src/ui/theme.c:5659 ../src/ui/theme.c:5721 ../src/ui/theme.c:5784
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
msgstr "ئىشلەتكۈچى بەلگىلىگەن تۇراقلىق مىقدار چوقۇم چوڭ ھەرپ بىلەن باشلانسۇن؛ «%s» بولمايدۇ"
|
msgstr "ئىشلەتكۈچى بەلگىلىگەن تۇراقلىق مىقدار چوقۇم چوڭ ھەرپ بىلەن باشلانسۇن؛ «%s» بولمايدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5671 ../src/ui/theme.c:5733 ../src/ui/theme.c:5796
|
#: ../src/ui/theme.c:5667 ../src/ui/theme.c:5729 ../src/ui/theme.c:5792
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "تۇراقلىق سان «%s» غا ئېنىقلىما بېرىلگەن"
|
msgstr "تۇراقلىق سان «%s» غا ئېنىقلىما بېرىلگەن"
|
||||||
@@ -1470,7 +1474,7 @@ msgstr "ئېلېمېنت <%s> نىڭ ئىچىدە تېكىست بولسا بول
|
|||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "بۇ ئۆرنەك ئۈچۈن <%s> ئىككى قېتىم بەلگىلەنگەن"
|
msgstr "بۇ ئۆرنەك ئۈچۈن <%s> ئىككى قېتىم بەلگىلەنگەن"
|
||||||
|
|
||||||
#: ../src/ui/theme-parser.c:4336
|
#: ../src/ui/theme-parser.c:4334
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "ئۆرنەك %s ئۈچۈن ئىناۋەتلىك ھۆججەتنى تېپىش مەغلۇپ بولدى\n"
|
msgstr "ئۆرنەك %s ئۈچۈن ئىناۋەتلىك ھۆججەتنى تېپىش مەغلۇپ بولدى\n"
|
||||||
@@ -1576,96 +1580,96 @@ msgstr "گىرۋەك"
|
|||||||
msgid "Attached Modal Dialog"
|
msgid "Attached Modal Dialog"
|
||||||
msgstr "قوشۇلغان Modal سۆزلەشكۈ"
|
msgstr "قوشۇلغان Modal سۆزلەشكۈ"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:737
|
#: ../src/ui/theme-viewer.c:739
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button layout test %d"
|
msgid "Button layout test %d"
|
||||||
msgstr "توپچا ئورۇنلاشتۇرۇلۇشىنى سىناش %d"
|
msgstr "توپچا ئورۇنلاشتۇرۇلۇشىنى سىناش %d"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:766
|
#: ../src/ui/theme-viewer.c:768
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%g milliseconds to draw one window frame"
|
msgid "%g milliseconds to draw one window frame"
|
||||||
msgstr "بىر كۆزنەك كاندۇكىنى سىزىشقا كەتكەن ۋاقىت %g مىللىسېكۇنت"
|
msgstr "بىر كۆزنەك كاندۇكىنى سىزىشقا كەتكەن ۋاقىت %g مىللىسېكۇنت"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:811
|
#: ../src/ui/theme-viewer.c:813
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||||
msgstr "ئىشلىتىش ئۇسۇلى: metacity-theme-viewer [ئۆرنەك ئاتى]\n"
|
msgstr "ئىشلىتىش ئۇسۇلى: metacity-theme-viewer [ئۆرنەك ئاتى]\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:818
|
#: ../src/ui/theme-viewer.c:820
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error loading theme: %s\n"
|
msgid "Error loading theme: %s\n"
|
||||||
msgstr "ئۆرنەك ئوقۇشتا خاتالىق كۆرۈلدى: %s\n"
|
msgstr "ئۆرنەك ئوقۇشتا خاتالىق كۆرۈلدى: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:824
|
#: ../src/ui/theme-viewer.c:826
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||||
msgstr "«%s» دېگەن ئۆرنەكنى %g سېكۇنتتا ئوقۇدى\n"
|
msgstr "«%s» دېگەن ئۆرنەكنى %g سېكۇنتتا ئوقۇدى\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:869
|
#: ../src/ui/theme-viewer.c:871
|
||||||
msgid "Normal Title Font"
|
msgid "Normal Title Font"
|
||||||
msgstr "ئادەتتىكى ماۋزۇ خەت نۇسخىسى"
|
msgstr "ئادەتتىكى ماۋزۇ خەت نۇسخىسى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:875
|
#: ../src/ui/theme-viewer.c:877
|
||||||
msgid "Small Title Font"
|
msgid "Small Title Font"
|
||||||
msgstr "تارماق ماۋزۇ خەت نۇسخىسى"
|
msgstr "تارماق ماۋزۇ خەت نۇسخىسى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:881
|
#: ../src/ui/theme-viewer.c:883
|
||||||
msgid "Large Title Font"
|
msgid "Large Title Font"
|
||||||
msgstr "ماۋزۇ خەت نۇسخىسى"
|
msgstr "ماۋزۇ خەت نۇسخىسى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:886
|
#: ../src/ui/theme-viewer.c:888
|
||||||
msgid "Button Layouts"
|
msgid "Button Layouts"
|
||||||
msgstr "توپچا جايلاشتۇرۇشلىرى"
|
msgstr "توپچا جايلاشتۇرۇشلىرى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:891
|
#: ../src/ui/theme-viewer.c:893
|
||||||
msgid "Benchmark"
|
msgid "Benchmark"
|
||||||
msgstr "ئاساسىي كۆرسەتكۈچ"
|
msgstr "ئاساسىي كۆرسەتكۈچ"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:947
|
#: ../src/ui/theme-viewer.c:949
|
||||||
msgid "Window Title Goes Here"
|
msgid "Window Title Goes Here"
|
||||||
msgstr "بۇ يەردە كۆزنەك ماۋزۇسى كۆرسىتىلىدۇ"
|
msgstr "بۇ يەردە كۆزنەك ماۋزۇسى كۆرسىتىلىدۇ"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1053
|
#: ../src/ui/theme-viewer.c:1055
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
"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 "
|
"seconds wall clock time including X server resources (%g milliseconds per "
|
||||||
"frame)\n"
|
"frame)\n"
|
||||||
msgstr "%d دانە كاندۇك خېرىدار تەرەپتە %g سېكۇنتتا سىزىلدى(بىر كاندۇك ئۈچۈن %g مىللىسېكۇنت). ئەمەلىيەتتە X مۇلازىمېتىرىنىڭ مەنبەلىرىنىمۇ قوشۇپ %g سېكۇنت(بىر كاندۇكنى %g مىللىسېكۇنت) ۋاقىتتا سىزدى.\n"
|
msgstr "在 %2$g 的客户端秒(每帧 %3$g 毫秒)和包括 X 服务器资源在内的 %4$g 秒时钟时间(每帧 %5$g 毫秒)内绘制 %1$d 帧\n"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1273
|
#: ../src/ui/theme-viewer.c:1275
|
||||||
msgid "position expression test returned TRUE but set error"
|
msgid "position expression test returned TRUE but set error"
|
||||||
msgstr "ئورۇن ئىپادىسىنى سىناشتا TRUE قايتتى بىراق خاتالىق كۆرۈلدى"
|
msgstr "ئورۇن ئىپادىسىنى سىناشتا TRUE قايتتى بىراق خاتالىق كۆرۈلدى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1275
|
#: ../src/ui/theme-viewer.c:1277
|
||||||
msgid "position expression test returned FALSE but didn't set error"
|
msgid "position expression test returned FALSE but didn't set error"
|
||||||
msgstr "ئورۇن ئىپادىسىنى سىناشتا FALSE قايتتى بىراق خاتالىق كۆرۈلمىدى"
|
msgstr "ئورۇن ئىپادىسىنى سىناشتا FALSE قايتتى بىراق خاتالىق كۆرۈلمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1279
|
#: ../src/ui/theme-viewer.c:1281
|
||||||
msgid "Error was expected but none given"
|
msgid "Error was expected but none given"
|
||||||
msgstr "خاتالىق چىقىدىغان يەردە خاتالىق چىقمىدى"
|
msgstr "خاتالىق چىقىدىغان يەردە خاتالىق چىقمىدى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1281
|
#: ../src/ui/theme-viewer.c:1283
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error %d was expected but %d given"
|
msgid "Error %d was expected but %d given"
|
||||||
msgstr "خاتالىق %d چىقىدىغان يەردە %d چىقتى"
|
msgstr "خاتالىق %d چىقىدىغان يەردە %d چىقتى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1287
|
#: ../src/ui/theme-viewer.c:1289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error not expected but one was returned: %s"
|
msgid "Error not expected but one was returned: %s"
|
||||||
msgstr "خاتالىق چىقمايدىغان يەردە بىر خاتالىق چىقىپ قالدى: %s"
|
msgstr "خاتالىق چىقمايدىغان يەردە بىر خاتالىق چىقىپ قالدى: %s"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1291
|
#: ../src/ui/theme-viewer.c:1293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "x value was %d, %d was expected"
|
msgid "x value was %d, %d was expected"
|
||||||
msgstr "x نىڭ قىممىتى %d ئىكەن، ئەسلى %d بولسا بولاتتى"
|
msgstr "x نىڭ قىممىتى %d ئىكەن، ئەسلى %d بولسا بولاتتى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1294
|
#: ../src/ui/theme-viewer.c:1296
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "y value was %d, %d was expected"
|
msgid "y value was %d, %d was expected"
|
||||||
msgstr "y نىڭ قىممىتى %d ئىكەن، ئەسلى %d بولسا بولاتتى"
|
msgstr "y نىڭ قىممىتى %d ئىكەن، ئەسلى %d بولسا بولاتتى"
|
||||||
|
|
||||||
#: ../src/ui/theme-viewer.c:1359
|
#: ../src/ui/theme-viewer.c:1361
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "%d كوئوردېنات ئىپادىسى %g سېكۇنتتا تەھلىل قىلىندى(%g ئوتتۇرىچە سېكۇنت)\n"
|
msgstr "%d كوئوردېنات ئىپادىسى %g سېكۇنتتا تەھلىل قىلىندى(%g ئوتتۇرىچە سېكۇنت)\n"
|
||||||
|
|||||||
1038
po/zh_HK.po
1038
po/zh_HK.po
File diff suppressed because it is too large
Load Diff
1040
po/zh_TW.po
1040
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@@ -29,18 +29,6 @@
|
|||||||
<KeyListEntry name="move-to-workspace-down"
|
<KeyListEntry name="move-to-workspace-down"
|
||||||
_description="Move window one workspace down" />
|
_description="Move window one workspace down" />
|
||||||
|
|
||||||
<KeyListEntry name="move-to-monitor-left"
|
|
||||||
_description="Move window one monitor to the left" />
|
|
||||||
|
|
||||||
<KeyListEntry name="move-to-monitor-right"
|
|
||||||
_description="Move window one monitor to the right" />
|
|
||||||
|
|
||||||
<KeyListEntry name="move-to-monitor-up"
|
|
||||||
_description="Move window one monitor up" />
|
|
||||||
|
|
||||||
<KeyListEntry name="move-to-monitor-down"
|
|
||||||
_description="Move window one monitor down" />
|
|
||||||
|
|
||||||
<KeyListEntry name="switch-applications"
|
<KeyListEntry name="switch-applications"
|
||||||
_description="Switch applications"/>
|
_description="Switch applications"/>
|
||||||
|
|
||||||
|
|||||||
260
src/Makefile.am
260
src/Makefile.am
@@ -1,19 +1,15 @@
|
|||||||
# Flag build for parallelism; see https://savannah.gnu.org/patch/?6905
|
# Flag build for parallelism; see https://savannah.gnu.org/patch/?6905
|
||||||
.AUTOPARALLEL:
|
.AUTOPARALLEL:
|
||||||
|
|
||||||
lib_LTLIBRARIES = libmutter-wayland.la
|
lib_LTLIBRARIES = libmutter.la
|
||||||
|
|
||||||
SUBDIRS=compositor/plugins
|
SUBDIRS=wm-tester tools compositor/plugins
|
||||||
|
|
||||||
INCLUDES= \
|
INCLUDES= \
|
||||||
-DCLUTTER_ENABLE_COMPOSITOR_API \
|
|
||||||
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
|
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
|
||||||
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
||||||
-DCOGL_ENABLE_EXPERIMENTAL_2_0_API \
|
|
||||||
$(MUTTER_CFLAGS) \
|
$(MUTTER_CFLAGS) \
|
||||||
-I$(top_builddir) \
|
|
||||||
-I$(srcdir) \
|
-I$(srcdir) \
|
||||||
-I$(srcdir)/backends \
|
|
||||||
-I$(srcdir)/core \
|
-I$(srcdir)/core \
|
||||||
-I$(srcdir)/ui \
|
-I$(srcdir)/ui \
|
||||||
-I$(srcdir)/compositor \
|
-I$(srcdir)/compositor \
|
||||||
@@ -30,77 +26,26 @@ INCLUDES= \
|
|||||||
-DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) \
|
-DMUTTER_PLUGIN_API_VERSION=$(MUTTER_PLUGIN_API_VERSION) \
|
||||||
-DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" \
|
-DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" \
|
||||||
-DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\" \
|
-DMUTTER_PLUGIN_DIR=\"@MUTTER_PLUGIN_DIR@\" \
|
||||||
-DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
|
-DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\"
|
||||||
-DXWAYLAND_PATH='"@XWAYLAND_PATH@"'
|
|
||||||
|
|
||||||
mutter_built_sources = \
|
mutter_built_sources = \
|
||||||
$(dbus_idle_built_sources) \
|
mutter-enum-types.h \
|
||||||
$(dbus_display_config_built_sources) \
|
mutter-enum-types.c
|
||||||
mutter-enum-types.h \
|
|
||||||
mutter-enum-types.c \
|
|
||||||
gtk-shell-protocol.c \
|
|
||||||
gtk-shell-server-protocol.h \
|
|
||||||
xdg-shell-protocol.c \
|
|
||||||
xdg-shell-server-protocol.h \
|
|
||||||
xserver-protocol.c \
|
|
||||||
xserver-server-protocol.h
|
|
||||||
|
|
||||||
wayland_protocols = \
|
libmutter_la_SOURCES = \
|
||||||
wayland/protocol/gtk-shell.xml \
|
core/async-getprop.c \
|
||||||
wayland/protocol/xdg-shell.xml \
|
core/async-getprop.h \
|
||||||
wayland/protocol/xserver.xml
|
|
||||||
|
|
||||||
libmutter_wayland_la_SOURCES = \
|
|
||||||
backends/meta-backend.c \
|
|
||||||
backends/meta-backend.h \
|
|
||||||
backends/meta-cursor.c \
|
|
||||||
backends/meta-cursor.h \
|
|
||||||
backends/meta-cursor-private.h \
|
|
||||||
backends/meta-cursor-tracker.c \
|
|
||||||
backends/meta-cursor-tracker-private.h \
|
|
||||||
backends/meta-display-config-shared.h \
|
|
||||||
backends/meta-idle-monitor.c \
|
|
||||||
backends/meta-idle-monitor-private.h \
|
|
||||||
backends/meta-idle-monitor-dbus.c \
|
|
||||||
backends/meta-idle-monitor-dbus.h \
|
|
||||||
backends/meta-monitor-config.c \
|
|
||||||
backends/meta-monitor-config.h \
|
|
||||||
backends/meta-monitor-manager.c \
|
|
||||||
backends/meta-monitor-manager.h \
|
|
||||||
backends/meta-monitor-manager-dummy.c \
|
|
||||||
backends/meta-monitor-manager-dummy.h \
|
|
||||||
backends/edid-parse.c \
|
|
||||||
backends/edid.h \
|
|
||||||
backends/native/meta-idle-monitor-native.c \
|
|
||||||
backends/native/meta-idle-monitor-native.h \
|
|
||||||
backends/native/meta-monitor-manager-kms.c \
|
|
||||||
backends/native/meta-monitor-manager-kms.h \
|
|
||||||
backends/native/meta-weston-launch.c \
|
|
||||||
backends/native/meta-weston-launch.h \
|
|
||||||
backends/x11/meta-idle-monitor-xsync.c \
|
|
||||||
backends/x11/meta-idle-monitor-xsync.h \
|
|
||||||
backends/x11/meta-monitor-manager-xrandr.c \
|
|
||||||
backends/x11/meta-monitor-manager-xrandr.h \
|
|
||||||
core/above-tab-keycode.c \
|
|
||||||
core/barrier.c \
|
|
||||||
meta/barrier.h \
|
|
||||||
core/bell.c \
|
core/bell.c \
|
||||||
core/bell.h \
|
core/bell.h \
|
||||||
core/boxes.c \
|
core/boxes.c \
|
||||||
core/boxes-private.h \
|
core/boxes-private.h \
|
||||||
meta/boxes.h \
|
meta/boxes.h \
|
||||||
compositor/clutter-utils.c \
|
|
||||||
compositor/clutter-utils.h \
|
|
||||||
compositor/cogl-utils.c \
|
compositor/cogl-utils.c \
|
||||||
compositor/cogl-utils.h \
|
compositor/cogl-utils.h \
|
||||||
compositor/compositor.c \
|
compositor/compositor.c \
|
||||||
compositor/compositor-private.h \
|
compositor/compositor-private.h \
|
||||||
compositor/meta-background.c \
|
|
||||||
compositor/meta-background-actor.c \
|
compositor/meta-background-actor.c \
|
||||||
compositor/meta-background-actor-private.h \
|
compositor/meta-background-actor-private.h \
|
||||||
compositor/meta-background-group.c \
|
|
||||||
compositor/meta-cullable.c \
|
|
||||||
compositor/meta-cullable.h \
|
|
||||||
compositor/meta-module.c \
|
compositor/meta-module.c \
|
||||||
compositor/meta-module.h \
|
compositor/meta-module.h \
|
||||||
compositor/meta-plugin.c \
|
compositor/meta-plugin.c \
|
||||||
@@ -109,13 +54,6 @@ libmutter_wayland_la_SOURCES = \
|
|||||||
compositor/meta-shadow-factory.c \
|
compositor/meta-shadow-factory.c \
|
||||||
compositor/meta-shadow-factory-private.h \
|
compositor/meta-shadow-factory-private.h \
|
||||||
compositor/meta-shaped-texture.c \
|
compositor/meta-shaped-texture.c \
|
||||||
compositor/meta-shaped-texture-private.h \
|
|
||||||
compositor/meta-surface-actor.c \
|
|
||||||
compositor/meta-surface-actor.h \
|
|
||||||
compositor/meta-surface-actor-x11.c \
|
|
||||||
compositor/meta-surface-actor-x11.h \
|
|
||||||
compositor/meta-surface-actor-wayland.c \
|
|
||||||
compositor/meta-surface-actor-wayland.h \
|
|
||||||
compositor/meta-texture-rectangle.c \
|
compositor/meta-texture-rectangle.c \
|
||||||
compositor/meta-texture-rectangle.h \
|
compositor/meta-texture-rectangle.h \
|
||||||
compositor/meta-texture-tower.c \
|
compositor/meta-texture-tower.c \
|
||||||
@@ -129,13 +67,12 @@ libmutter_wayland_la_SOURCES = \
|
|||||||
compositor/region-utils.c \
|
compositor/region-utils.c \
|
||||||
compositor/region-utils.h \
|
compositor/region-utils.h \
|
||||||
meta/compositor.h \
|
meta/compositor.h \
|
||||||
meta/meta-background.h \
|
|
||||||
meta/meta-background-actor.h \
|
meta/meta-background-actor.h \
|
||||||
meta/meta-background-group.h \
|
|
||||||
meta/meta-plugin.h \
|
meta/meta-plugin.h \
|
||||||
meta/meta-shadow-factory.h \
|
meta/meta-shadow-factory.h \
|
||||||
meta/meta-window-actor.h \
|
meta/meta-window-actor.h \
|
||||||
meta/compositor-mutter.h \
|
meta/compositor-mutter.h \
|
||||||
|
core/above-tab-keycode.c \
|
||||||
core/constraints.c \
|
core/constraints.c \
|
||||||
core/constraints.h \
|
core/constraints.h \
|
||||||
core/core.c \
|
core/core.c \
|
||||||
@@ -143,19 +80,29 @@ libmutter_wayland_la_SOURCES = \
|
|||||||
core/display.c \
|
core/display.c \
|
||||||
core/display-private.h \
|
core/display-private.h \
|
||||||
meta/display.h \
|
meta/display.h \
|
||||||
|
ui/draw-workspace.c \
|
||||||
|
ui/draw-workspace.h \
|
||||||
core/edge-resistance.c \
|
core/edge-resistance.c \
|
||||||
core/edge-resistance.h \
|
core/edge-resistance.h \
|
||||||
core/events.c \
|
|
||||||
core/events.h \
|
|
||||||
core/errors.c \
|
core/errors.c \
|
||||||
meta/errors.h \
|
meta/errors.h \
|
||||||
|
core/eventqueue.c \
|
||||||
|
core/eventqueue.h \
|
||||||
core/frame.c \
|
core/frame.c \
|
||||||
core/frame.h \
|
core/frame.h \
|
||||||
ui/gradient.c \
|
ui/gradient.c \
|
||||||
meta/gradient.h \
|
meta/gradient.h \
|
||||||
|
core/group-private.h \
|
||||||
|
core/group-props.c \
|
||||||
|
core/group-props.h \
|
||||||
|
core/group.c \
|
||||||
|
meta/group.h \
|
||||||
|
core/iconcache.c \
|
||||||
|
core/iconcache.h \
|
||||||
core/keybindings.c \
|
core/keybindings.c \
|
||||||
core/keybindings-private.h \
|
core/keybindings-private.h \
|
||||||
core/main.c \
|
core/main.c \
|
||||||
|
core/mutter-Xatomtype.h \
|
||||||
core/place.c \
|
core/place.c \
|
||||||
core/place.h \
|
core/place.h \
|
||||||
core/prefs.c \
|
core/prefs.c \
|
||||||
@@ -164,21 +111,27 @@ libmutter_wayland_la_SOURCES = \
|
|||||||
core/screen-private.h \
|
core/screen-private.h \
|
||||||
meta/screen.h \
|
meta/screen.h \
|
||||||
meta/types.h \
|
meta/types.h \
|
||||||
|
core/session.c \
|
||||||
|
core/session.h \
|
||||||
core/stack.c \
|
core/stack.c \
|
||||||
core/stack.h \
|
core/stack.h \
|
||||||
core/stack-tracker.c \
|
core/stack-tracker.c \
|
||||||
core/stack-tracker.h \
|
core/stack-tracker.h \
|
||||||
core/util.c \
|
core/util.c \
|
||||||
meta/util.h \
|
meta/util.h \
|
||||||
core/util-private.h \
|
core/window-props.c \
|
||||||
|
core/window-props.h \
|
||||||
core/window.c \
|
core/window.c \
|
||||||
core/window-private.h \
|
core/window-private.h \
|
||||||
meta/window.h \
|
meta/window.h \
|
||||||
core/workspace.c \
|
core/workspace.c \
|
||||||
core/workspace-private.h \
|
core/workspace-private.h \
|
||||||
|
core/xprops.c \
|
||||||
|
core/xprops.h \
|
||||||
meta/common.h \
|
meta/common.h \
|
||||||
core/core.h \
|
core/core.h \
|
||||||
ui/ui.h \
|
ui/ui.h \
|
||||||
|
inlinepixbufs.h \
|
||||||
ui/frames.c \
|
ui/frames.c \
|
||||||
ui/frames.h \
|
ui/frames.h \
|
||||||
ui/menu.c \
|
ui/menu.c \
|
||||||
@@ -187,62 +140,25 @@ libmutter_wayland_la_SOURCES = \
|
|||||||
ui/metaaccellabel.h \
|
ui/metaaccellabel.h \
|
||||||
ui/resizepopup.c \
|
ui/resizepopup.c \
|
||||||
ui/resizepopup.h \
|
ui/resizepopup.h \
|
||||||
|
ui/tabpopup.c \
|
||||||
|
ui/tabpopup.h \
|
||||||
|
ui/tile-preview.c \
|
||||||
|
ui/tile-preview.h \
|
||||||
ui/theme-parser.c \
|
ui/theme-parser.c \
|
||||||
ui/theme.c \
|
ui/theme.c \
|
||||||
meta/theme.h \
|
meta/theme.h \
|
||||||
ui/theme-private.h \
|
ui/theme-private.h \
|
||||||
ui/ui.c \
|
ui/ui.c \
|
||||||
x11/iconcache.c \
|
meta/preview-widget.h \
|
||||||
x11/iconcache.h \
|
ui/preview-widget.c \
|
||||||
x11/async-getprop.c \
|
|
||||||
x11/async-getprop.h \
|
|
||||||
x11/group-private.h \
|
|
||||||
x11/group-props.c \
|
|
||||||
x11/group-props.h \
|
|
||||||
x11/group.c \
|
|
||||||
meta/group.h \
|
|
||||||
x11/session.c \
|
|
||||||
x11/session.h \
|
|
||||||
x11/window-props.c \
|
|
||||||
x11/window-props.h \
|
|
||||||
x11/window-x11.c \
|
|
||||||
x11/window-x11.h \
|
|
||||||
x11/window-x11-private.h \
|
|
||||||
x11/xprops.c \
|
|
||||||
x11/xprops.h \
|
|
||||||
x11/mutter-Xatomtype.h \
|
|
||||||
wayland/meta-wayland.c \
|
|
||||||
wayland/meta-wayland.h \
|
|
||||||
wayland/meta-wayland-private.h \
|
|
||||||
wayland/meta-xwayland-private.h \
|
|
||||||
wayland/meta-xwayland.c \
|
|
||||||
wayland/meta-wayland-data-device.c \
|
|
||||||
wayland/meta-wayland-data-device.h \
|
|
||||||
wayland/meta-wayland-keyboard.c \
|
|
||||||
wayland/meta-wayland-keyboard.h \
|
|
||||||
wayland/meta-wayland-pointer.c \
|
|
||||||
wayland/meta-wayland-pointer.h \
|
|
||||||
wayland/meta-wayland-seat.c \
|
|
||||||
wayland/meta-wayland-seat.h \
|
|
||||||
wayland/meta-wayland-stage.h \
|
|
||||||
wayland/meta-wayland-stage.c \
|
|
||||||
wayland/meta-wayland-surface.c \
|
|
||||||
wayland/meta-wayland-surface.h \
|
|
||||||
wayland/meta-wayland-types.h \
|
|
||||||
wayland/meta-wayland-versions.h \
|
|
||||||
wayland/window-wayland.c \
|
|
||||||
wayland/window-wayland.h
|
|
||||||
|
|
||||||
nodist_libmutter_wayland_la_SOURCES = \
|
|
||||||
$(mutter_built_sources)
|
$(mutter_built_sources)
|
||||||
|
|
||||||
libmutter_wayland_la_LDFLAGS = -no-undefined
|
libmutter_la_LDFLAGS = -no-undefined
|
||||||
libmutter_wayland_la_LIBADD = $(MUTTER_LIBS)
|
libmutter_la_LIBADD = $(MUTTER_LIBS)
|
||||||
|
|
||||||
# Headers installed for plugins; introspected information will
|
# Headers installed for plugins; introspected information will
|
||||||
# be extracted into Mutter-<version>.gir
|
# be extracted into Mutter-<version>.gir
|
||||||
libmutterinclude_base_headers = \
|
libmutterinclude_base_headers = \
|
||||||
meta/barrier.h \
|
|
||||||
meta/boxes.h \
|
meta/boxes.h \
|
||||||
meta/common.h \
|
meta/common.h \
|
||||||
meta/compositor-mutter.h \
|
meta/compositor-mutter.h \
|
||||||
@@ -254,10 +170,6 @@ libmutterinclude_base_headers = \
|
|||||||
meta/keybindings.h \
|
meta/keybindings.h \
|
||||||
meta/main.h \
|
meta/main.h \
|
||||||
meta/meta-background-actor.h \
|
meta/meta-background-actor.h \
|
||||||
meta/meta-background-group.h \
|
|
||||||
meta/meta-background.h \
|
|
||||||
meta/meta-cursor-tracker.h \
|
|
||||||
meta/meta-idle-monitor.h \
|
|
||||||
meta/meta-plugin.h \
|
meta/meta-plugin.h \
|
||||||
meta/meta-shaped-texture.h \
|
meta/meta-shaped-texture.h \
|
||||||
meta/meta-shadow-factory.h \
|
meta/meta-shadow-factory.h \
|
||||||
@@ -273,31 +185,22 @@ libmutterinclude_base_headers = \
|
|||||||
# Excluded from scanning for introspection but installed
|
# Excluded from scanning for introspection but installed
|
||||||
# atomnames.h: macros cause problems for scanning process
|
# atomnames.h: macros cause problems for scanning process
|
||||||
libmutterinclude_extra_headers = \
|
libmutterinclude_extra_headers = \
|
||||||
|
meta/preview-widget.h \
|
||||||
meta/atomnames.h
|
meta/atomnames.h
|
||||||
|
|
||||||
libmutterincludedir = $(includedir)/mutter-wayland/meta
|
libmutterincludedir = $(includedir)/mutter/meta
|
||||||
|
|
||||||
libmutterinclude_HEADERS = \
|
libmutterinclude_HEADERS = \
|
||||||
$(libmutterinclude_base_headers) \
|
$(libmutterinclude_base_headers) \
|
||||||
$(libmutterinclude_extra_headers)
|
$(libmutterinclude_extra_headers)
|
||||||
|
|
||||||
bin_PROGRAMS=mutter-wayland
|
mutter_theme_viewer_SOURCES= \
|
||||||
|
ui/theme-viewer.c
|
||||||
|
|
||||||
mutter_wayland_SOURCES = core/mutter.c
|
bin_PROGRAMS=mutter mutter-theme-viewer
|
||||||
mutter_wayland_LDADD = $(MUTTER_LIBS) libmutter-wayland.la
|
|
||||||
|
|
||||||
bin_PROGRAMS+=mutter-launch
|
mutter_SOURCES = core/mutter.c
|
||||||
|
mutter_LDADD = $(MUTTER_LIBS) libmutter.la
|
||||||
mutter_launch_SOURCES = \
|
|
||||||
backends/native/weston-launch.c \
|
|
||||||
backends/native/weston-launch.h
|
|
||||||
|
|
||||||
mutter_launch_CFLAGS = $(MUTTER_LAUNCH_CFLAGS) -DLIBDIR=\"$(libdir)\"
|
|
||||||
mutter_launch_LDFLAGS = $(MUTTER_LAUNCH_LIBS) -lpam
|
|
||||||
|
|
||||||
install-exec-hook:
|
|
||||||
-chown root $(DESTDIR)$(bindir)/mutter-launch
|
|
||||||
-chmod u+s $(DESTDIR)$(bindir)/mutter-launch
|
|
||||||
|
|
||||||
if HAVE_INTROSPECTION
|
if HAVE_INTROSPECTION
|
||||||
include $(INTROSPECTION_MAKEFILE)
|
include $(INTROSPECTION_MAKEFILE)
|
||||||
@@ -319,36 +222,43 @@ typelib_DATA = Meta-$(api_version).typelib
|
|||||||
|
|
||||||
INTROSPECTION_GIRS = Meta-$(api_version).gir
|
INTROSPECTION_GIRS = Meta-$(api_version).gir
|
||||||
|
|
||||||
Meta-$(api_version).gir: libmutter-wayland.la
|
Meta-$(api_version).gir: libmutter.la
|
||||||
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0 Cogl-1.0
|
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0 Cogl-1.0
|
||||||
@META_GIR@_EXPORT_PACKAGES = libmutter-wayland
|
@META_GIR@_EXPORT_PACKAGES = libmutter
|
||||||
@META_GIR@_CFLAGS = $(INCLUDES)
|
@META_GIR@_CFLAGS = $(INCLUDES)
|
||||||
@META_GIR@_LIBS = libmutter-wayland.la
|
@META_GIR@_LIBS = libmutter.la
|
||||||
@META_GIR@_FILES = \
|
@META_GIR@_FILES = \
|
||||||
mutter-enum-types.h \
|
mutter-enum-types.h \
|
||||||
$(libmutterinclude_base_headers) \
|
$(libmutterinclude_base_headers) \
|
||||||
$(filter %.c,$(libmutter_wayland_la_SOURCES) $(nodist_libmutter_wayland_la_SOURCES))
|
$(filter %.c,$(libmutter_la_SOURCES))
|
||||||
@META_GIR@_SCANNERFLAGS = --warn-all --warn-error
|
@META_GIR@_SCANNERFLAGS = --warn-all --warn-error
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
mutter_theme_viewer_LDADD= $(MUTTER_LIBS) libmutter.la
|
||||||
|
|
||||||
testboxes_SOURCES = core/testboxes.c
|
testboxes_SOURCES = core/testboxes.c
|
||||||
testgradient_SOURCES = ui/testgradient.c
|
testgradient_SOURCES = ui/testgradient.c
|
||||||
testasyncgetprop_SOURCES = x11/testasyncgetprop.c
|
testasyncgetprop_SOURCES = core/testasyncgetprop.c
|
||||||
|
|
||||||
noinst_PROGRAMS=testboxes testgradient testasyncgetprop
|
noinst_PROGRAMS=testboxes testgradient testasyncgetprop
|
||||||
|
|
||||||
testboxes_LDADD = $(MUTTER_LIBS) libmutter-wayland.la
|
testboxes_LDADD = $(MUTTER_LIBS) libmutter.la
|
||||||
testgradient_LDADD = $(MUTTER_LIBS) libmutter-wayland.la
|
testgradient_LDADD = $(MUTTER_LIBS) libmutter.la
|
||||||
testasyncgetprop_LDADD = $(MUTTER_LIBS) libmutter-wayland.la
|
testasyncgetprop_LDADD = $(MUTTER_LIBS) libmutter.la
|
||||||
|
|
||||||
@INTLTOOL_DESKTOP_RULE@
|
@INTLTOOL_DESKTOP_RULE@
|
||||||
|
|
||||||
desktopfilesdir=$(datadir)/applications
|
desktopfilesdir=$(datadir)/applications
|
||||||
desktopfiles_in_files=mutter-wayland.desktop.in
|
desktopfiles_in_files=mutter.desktop.in
|
||||||
desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
|
desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
|
||||||
desktopfiles_DATA = $(desktopfiles_files)
|
desktopfiles_DATA = $(desktopfiles_files)
|
||||||
|
|
||||||
|
wmpropertiesdir=$(datadir)/gnome/wm-properties
|
||||||
|
wmproperties_in_files=mutter-wm.desktop.in
|
||||||
|
wmproperties_files=$(wmproperties_in_files:.desktop.in=.desktop)
|
||||||
|
wmproperties_DATA = $(wmproperties_files)
|
||||||
|
|
||||||
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
|
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
|
||||||
xml_in_files = \
|
xml_in_files = \
|
||||||
50-mutter-navigation.xml.in \
|
50-mutter-navigation.xml.in \
|
||||||
@@ -356,28 +266,35 @@ xml_in_files = \
|
|||||||
50-mutter-windows.xml.in
|
50-mutter-windows.xml.in
|
||||||
xml_DATA = $(xml_in_files:.xml.in=.xml)
|
xml_DATA = $(xml_in_files:.xml.in=.xml)
|
||||||
|
|
||||||
dbus_idle_built_sources = meta-dbus-idle-monitor.c meta-dbus-idle-monitor.h
|
gsettings_SCHEMAS = org.gnome.mutter.gschema.xml
|
||||||
|
|
||||||
gsettings_SCHEMAS = org.gnome.mutter.gschema.xml org.gnome.mutter.wayland.gschema.xml
|
|
||||||
@INTLTOOL_XML_NOMERGE_RULE@
|
@INTLTOOL_XML_NOMERGE_RULE@
|
||||||
@GSETTINGS_RULES@
|
@GSETTINGS_RULES@
|
||||||
|
|
||||||
convertdir = $(datadir)/GConf/gsettings
|
convertdir = $(datadir)/GConf/gsettings
|
||||||
convert_DATA = mutter-schemas.convert
|
convert_DATA = mutter-schemas.convert
|
||||||
|
|
||||||
|
IMAGES=stock_maximize.png stock_minimize.png stock_delete.png
|
||||||
|
VARIABLES=stock_maximize_data $(srcdir)/stock_maximize.png \
|
||||||
|
stock_minimize_data $(srcdir)/stock_minimize.png \
|
||||||
|
stock_delete_data $(srcdir)/stock_delete.png
|
||||||
|
|
||||||
|
BUILT_SOURCES = inlinepixbufs.h
|
||||||
CLEANFILES = \
|
CLEANFILES = \
|
||||||
mutter-wayland.desktop \
|
inlinepixbufs.h \
|
||||||
|
mutter.desktop \
|
||||||
mutter-wm.desktop \
|
mutter-wm.desktop \
|
||||||
org.gnome.mutter.gschema.xml \
|
org.gnome.mutter.gschema.xml \
|
||||||
org.gnome.mutter.wayland.gschema.xml \
|
|
||||||
$(xml_DATA) \
|
$(xml_DATA) \
|
||||||
$(mutter_built_sources) \
|
$(mutter_built_sources) \
|
||||||
$(typelib_DATA) \
|
$(typelib_DATA) \
|
||||||
$(gir_DATA)
|
$(gir_DATA)
|
||||||
|
|
||||||
|
inlinepixbufs.h: $(IMAGES)
|
||||||
|
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
|
||||||
pkgconfig_DATA = libmutter-wayland.pc
|
pkgconfig_DATA = libmutter.pc mutter-plugins.pc
|
||||||
|
|
||||||
EXTRA_DIST=$(desktopfiles_files) \
|
EXTRA_DIST=$(desktopfiles_files) \
|
||||||
$(wmproperties_files) \
|
$(wmproperties_files) \
|
||||||
@@ -385,17 +302,14 @@ EXTRA_DIST=$(desktopfiles_files) \
|
|||||||
$(desktopfiles_in_files) \
|
$(desktopfiles_in_files) \
|
||||||
$(wmproperties_in_files) \
|
$(wmproperties_in_files) \
|
||||||
$(xml_in_files) \
|
$(xml_in_files) \
|
||||||
$(wayland_protocols) \
|
|
||||||
org.gnome.mutter.gschema.xml.in \
|
org.gnome.mutter.gschema.xml.in \
|
||||||
org.gnome.mutter.wayland.gschema.xml.in \
|
|
||||||
mutter-schemas.convert \
|
mutter-schemas.convert \
|
||||||
libmutter-wayland.pc.in \
|
libmutter.pc.in \
|
||||||
|
mutter-plugins.pc.in \
|
||||||
mutter-enum-types.h.in \
|
mutter-enum-types.h.in \
|
||||||
mutter-enum-types.c.in \
|
mutter-enum-types.c.in
|
||||||
org.gnome.Mutter.DisplayConfig.xml \
|
|
||||||
org.gnome.Mutter.IdleMonitor.xml
|
|
||||||
|
|
||||||
BUILT_SOURCES = $(mutter_built_sources)
|
BUILT_SOURCES += $(mutter_built_sources)
|
||||||
MUTTER_STAMP_FILES = stamp-mutter-enum-types.h
|
MUTTER_STAMP_FILES = stamp-mutter-enum-types.h
|
||||||
CLEANFILES += $(MUTTER_STAMP_FILES)
|
CLEANFILES += $(MUTTER_STAMP_FILES)
|
||||||
|
|
||||||
@@ -417,25 +331,3 @@ mutter-enum-types.c: stamp-mutter-enum-types.h mutter-enum-types.c.in
|
|||||||
$(libmutterinclude_base_headers) ) >> xgen-tetc && \
|
$(libmutterinclude_base_headers) ) >> xgen-tetc && \
|
||||||
cp xgen-tetc mutter-enum-types.c && \
|
cp xgen-tetc mutter-enum-types.c && \
|
||||||
rm -f xgen-tetc
|
rm -f xgen-tetc
|
||||||
|
|
||||||
dbus_display_config_built_sources = meta-dbus-display-config.c meta-dbus-display-config.h
|
|
||||||
|
|
||||||
$(dbus_display_config_built_sources) : Makefile.am org.gnome.Mutter.DisplayConfig.xml
|
|
||||||
$(AM_V_GEN)gdbus-codegen \
|
|
||||||
--interface-prefix org.gnome.Mutter \
|
|
||||||
--c-namespace MetaDBus \
|
|
||||||
--generate-c-code meta-dbus-display-config \
|
|
||||||
$(srcdir)/org.gnome.Mutter.DisplayConfig.xml
|
|
||||||
|
|
||||||
$(dbus_idle_built_sources) : Makefile.am org.gnome.Mutter.IdleMonitor.xml
|
|
||||||
$(AM_V_GEN)gdbus-codegen \
|
|
||||||
--interface-prefix org.gnome.Mutter \
|
|
||||||
--c-namespace MetaDBus \
|
|
||||||
--generate-c-code meta-dbus-idle-monitor \
|
|
||||||
--c-generate-object-manager \
|
|
||||||
$(srcdir)/org.gnome.Mutter.IdleMonitor.xml
|
|
||||||
|
|
||||||
%-protocol.c : $(srcdir)/wayland/protocol/%.xml
|
|
||||||
$(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
|
|
||||||
%-server-protocol.h : $(srcdir)/wayland/protocol/%.xml
|
|
||||||
$(AM_V_GEN)$(WAYLAND_SCANNER) server-header < $< > $@
|
|
||||||
|
|||||||
@@ -1,539 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2007 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Author: Soren Sandmann <sandmann@redhat.com> */
|
|
||||||
|
|
||||||
#include "edid.h"
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <glib.h>
|
|
||||||
|
|
||||||
static int
|
|
||||||
get_bit (int in, int bit)
|
|
||||||
{
|
|
||||||
return (in & (1 << bit)) >> bit;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
get_bits (int in, int begin, int end)
|
|
||||||
{
|
|
||||||
int mask = (1 << (end - begin + 1)) - 1;
|
|
||||||
|
|
||||||
return (in >> begin) & mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_header (const uchar *edid)
|
|
||||||
{
|
|
||||||
if (memcmp (edid, "\x00\xff\xff\xff\xff\xff\xff\x00", 8) == 0)
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_vendor_and_product_identification (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
int is_model_year;
|
|
||||||
|
|
||||||
/* Manufacturer Code */
|
|
||||||
info->manufacturer_code[0] = get_bits (edid[0x08], 2, 6);
|
|
||||||
info->manufacturer_code[1] = get_bits (edid[0x08], 0, 1) << 3;
|
|
||||||
info->manufacturer_code[1] |= get_bits (edid[0x09], 5, 7);
|
|
||||||
info->manufacturer_code[2] = get_bits (edid[0x09], 0, 4);
|
|
||||||
info->manufacturer_code[3] = '\0';
|
|
||||||
|
|
||||||
info->manufacturer_code[0] += 'A' - 1;
|
|
||||||
info->manufacturer_code[1] += 'A' - 1;
|
|
||||||
info->manufacturer_code[2] += 'A' - 1;
|
|
||||||
|
|
||||||
/* Product Code */
|
|
||||||
info->product_code = edid[0x0b] << 8 | edid[0x0a];
|
|
||||||
|
|
||||||
/* Serial Number */
|
|
||||||
info->serial_number =
|
|
||||||
edid[0x0c] | edid[0x0d] << 8 | edid[0x0e] << 16 | edid[0x0f] << 24;
|
|
||||||
|
|
||||||
/* Week and Year */
|
|
||||||
is_model_year = FALSE;
|
|
||||||
switch (edid[0x10])
|
|
||||||
{
|
|
||||||
case 0x00:
|
|
||||||
info->production_week = -1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0xff:
|
|
||||||
info->production_week = -1;
|
|
||||||
is_model_year = TRUE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
info->production_week = edid[0x10];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_model_year)
|
|
||||||
{
|
|
||||||
info->production_year = -1;
|
|
||||||
info->model_year = 1990 + edid[0x11];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
info->production_year = 1990 + edid[0x11];
|
|
||||||
info->model_year = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_edid_version (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
info->major_version = edid[0x12];
|
|
||||||
info->minor_version = edid[0x13];
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_display_parameters (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
/* Digital vs Analog */
|
|
||||||
info->is_digital = get_bit (edid[0x14], 7);
|
|
||||||
|
|
||||||
if (info->is_digital)
|
|
||||||
{
|
|
||||||
int bits;
|
|
||||||
|
|
||||||
static const int bit_depth[8] =
|
|
||||||
{
|
|
||||||
-1, 6, 8, 10, 12, 14, 16, -1
|
|
||||||
};
|
|
||||||
|
|
||||||
static const Interface interfaces[6] =
|
|
||||||
{
|
|
||||||
UNDEFINED, DVI, HDMI_A, HDMI_B, MDDI, DISPLAY_PORT
|
|
||||||
};
|
|
||||||
|
|
||||||
bits = get_bits (edid[0x14], 4, 6);
|
|
||||||
info->connector.digital.bits_per_primary = bit_depth[bits];
|
|
||||||
|
|
||||||
bits = get_bits (edid[0x14], 0, 3);
|
|
||||||
|
|
||||||
if (bits <= 5)
|
|
||||||
info->connector.digital.interface = interfaces[bits];
|
|
||||||
else
|
|
||||||
info->connector.digital.interface = UNDEFINED;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int bits = get_bits (edid[0x14], 5, 6);
|
|
||||||
|
|
||||||
static const double levels[][3] =
|
|
||||||
{
|
|
||||||
{ 0.7, 0.3, 1.0 },
|
|
||||||
{ 0.714, 0.286, 1.0 },
|
|
||||||
{ 1.0, 0.4, 1.4 },
|
|
||||||
{ 0.7, 0.0, 0.7 },
|
|
||||||
};
|
|
||||||
|
|
||||||
info->connector.analog.video_signal_level = levels[bits][0];
|
|
||||||
info->connector.analog.sync_signal_level = levels[bits][1];
|
|
||||||
info->connector.analog.total_signal_level = levels[bits][2];
|
|
||||||
|
|
||||||
info->connector.analog.blank_to_black = get_bit (edid[0x14], 4);
|
|
||||||
|
|
||||||
info->connector.analog.separate_hv_sync = get_bit (edid[0x14], 3);
|
|
||||||
info->connector.analog.composite_sync_on_h = get_bit (edid[0x14], 2);
|
|
||||||
info->connector.analog.composite_sync_on_green = get_bit (edid[0x14], 1);
|
|
||||||
|
|
||||||
info->connector.analog.serration_on_vsync = get_bit (edid[0x14], 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Screen Size / Aspect Ratio */
|
|
||||||
if (edid[0x15] == 0 && edid[0x16] == 0)
|
|
||||||
{
|
|
||||||
info->width_mm = -1;
|
|
||||||
info->height_mm = -1;
|
|
||||||
info->aspect_ratio = -1.0;
|
|
||||||
}
|
|
||||||
else if (edid[0x16] == 0)
|
|
||||||
{
|
|
||||||
info->width_mm = -1;
|
|
||||||
info->height_mm = -1;
|
|
||||||
info->aspect_ratio = 100.0 / (edid[0x15] + 99);
|
|
||||||
}
|
|
||||||
else if (edid[0x15] == 0)
|
|
||||||
{
|
|
||||||
info->width_mm = -1;
|
|
||||||
info->height_mm = -1;
|
|
||||||
info->aspect_ratio = 100.0 / (edid[0x16] + 99);
|
|
||||||
info->aspect_ratio = 1/info->aspect_ratio; /* portrait */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
info->width_mm = 10 * edid[0x15];
|
|
||||||
info->height_mm = 10 * edid[0x16];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Gamma */
|
|
||||||
if (edid[0x17] == 0xFF)
|
|
||||||
info->gamma = -1.0;
|
|
||||||
else
|
|
||||||
info->gamma = (edid[0x17] + 100.0) / 100.0;
|
|
||||||
|
|
||||||
/* Features */
|
|
||||||
info->standby = get_bit (edid[0x18], 7);
|
|
||||||
info->suspend = get_bit (edid[0x18], 6);
|
|
||||||
info->active_off = get_bit (edid[0x18], 5);
|
|
||||||
|
|
||||||
if (info->is_digital)
|
|
||||||
{
|
|
||||||
info->connector.digital.rgb444 = TRUE;
|
|
||||||
if (get_bit (edid[0x18], 3))
|
|
||||||
info->connector.digital.ycrcb444 = 1;
|
|
||||||
if (get_bit (edid[0x18], 4))
|
|
||||||
info->connector.digital.ycrcb422 = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int bits = get_bits (edid[0x18], 3, 4);
|
|
||||||
ColorType color_type[4] =
|
|
||||||
{
|
|
||||||
MONOCHROME, RGB, OTHER_COLOR, UNDEFINED_COLOR
|
|
||||||
};
|
|
||||||
|
|
||||||
info->connector.analog.color_type = color_type[bits];
|
|
||||||
}
|
|
||||||
|
|
||||||
info->srgb_is_standard = get_bit (edid[0x18], 2);
|
|
||||||
|
|
||||||
/* In 1.3 this is called "has preferred timing" */
|
|
||||||
info->preferred_timing_includes_native = get_bit (edid[0x18], 1);
|
|
||||||
|
|
||||||
/* FIXME: In 1.3 this indicates whether the monitor accepts GTF */
|
|
||||||
info->continuous_frequency = get_bit (edid[0x18], 0);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static double
|
|
||||||
decode_fraction (int high, int low)
|
|
||||||
{
|
|
||||||
double result = 0.0;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
high = (high << 2) | low;
|
|
||||||
|
|
||||||
for (i = 0; i < 10; ++i)
|
|
||||||
result += get_bit (high, i) * pow (2, i - 10);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_color_characteristics (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
info->red_x = decode_fraction (edid[0x1b], get_bits (edid[0x19], 6, 7));
|
|
||||||
info->red_y = decode_fraction (edid[0x1c], get_bits (edid[0x19], 5, 4));
|
|
||||||
info->green_x = decode_fraction (edid[0x1d], get_bits (edid[0x19], 2, 3));
|
|
||||||
info->green_y = decode_fraction (edid[0x1e], get_bits (edid[0x19], 0, 1));
|
|
||||||
info->blue_x = decode_fraction (edid[0x1f], get_bits (edid[0x1a], 6, 7));
|
|
||||||
info->blue_y = decode_fraction (edid[0x20], get_bits (edid[0x1a], 4, 5));
|
|
||||||
info->white_x = decode_fraction (edid[0x21], get_bits (edid[0x1a], 2, 3));
|
|
||||||
info->white_y = decode_fraction (edid[0x22], get_bits (edid[0x1a], 0, 1));
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_established_timings (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
static const Timing established[][8] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
{ 800, 600, 60 },
|
|
||||||
{ 800, 600, 56 },
|
|
||||||
{ 640, 480, 75 },
|
|
||||||
{ 640, 480, 72 },
|
|
||||||
{ 640, 480, 67 },
|
|
||||||
{ 640, 480, 60 },
|
|
||||||
{ 720, 400, 88 },
|
|
||||||
{ 720, 400, 70 }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{ 1280, 1024, 75 },
|
|
||||||
{ 1024, 768, 75 },
|
|
||||||
{ 1024, 768, 70 },
|
|
||||||
{ 1024, 768, 60 },
|
|
||||||
{ 1024, 768, 87 },
|
|
||||||
{ 832, 624, 75 },
|
|
||||||
{ 800, 600, 75 },
|
|
||||||
{ 800, 600, 72 }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 1152, 870, 75 }
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
int i, j, idx;
|
|
||||||
|
|
||||||
idx = 0;
|
|
||||||
for (i = 0; i < 3; ++i)
|
|
||||||
{
|
|
||||||
for (j = 0; j < 8; ++j)
|
|
||||||
{
|
|
||||||
int byte = edid[0x23 + i];
|
|
||||||
|
|
||||||
if (get_bit (byte, j) && established[i][j].frequency != 0)
|
|
||||||
info->established[idx++] = established[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_standard_timings (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < 8; i++)
|
|
||||||
{
|
|
||||||
int first = edid[0x26 + 2 * i];
|
|
||||||
int second = edid[0x27 + 2 * i];
|
|
||||||
|
|
||||||
if (first != 0x01 && second != 0x01)
|
|
||||||
{
|
|
||||||
int w = 8 * (first + 31);
|
|
||||||
int h = 0;
|
|
||||||
|
|
||||||
switch (get_bits (second, 6, 7))
|
|
||||||
{
|
|
||||||
case 0x00: h = (w / 16) * 10; break;
|
|
||||||
case 0x01: h = (w / 4) * 3; break;
|
|
||||||
case 0x02: h = (w / 5) * 4; break;
|
|
||||||
case 0x03: h = (w / 16) * 9; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
info->standard[i].width = w;
|
|
||||||
info->standard[i].height = h;
|
|
||||||
info->standard[i].frequency = get_bits (second, 0, 5) + 60;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
decode_lf_string (const uchar *s, int n_chars, char *result)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < n_chars; ++i)
|
|
||||||
{
|
|
||||||
if (s[i] == 0x0a)
|
|
||||||
{
|
|
||||||
*result++ = '\0';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (s[i] == 0x00)
|
|
||||||
{
|
|
||||||
/* Convert embedded 0's to spaces */
|
|
||||||
*result++ = ' ';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*result++ = s[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
decode_display_descriptor (const uchar *desc,
|
|
||||||
MonitorInfo *info)
|
|
||||||
{
|
|
||||||
switch (desc[0x03])
|
|
||||||
{
|
|
||||||
case 0xFC:
|
|
||||||
decode_lf_string (desc + 5, 13, info->dsc_product_name);
|
|
||||||
break;
|
|
||||||
case 0xFF:
|
|
||||||
decode_lf_string (desc + 5, 13, info->dsc_serial_number);
|
|
||||||
break;
|
|
||||||
case 0xFE:
|
|
||||||
decode_lf_string (desc + 5, 13, info->dsc_string);
|
|
||||||
break;
|
|
||||||
case 0xFD:
|
|
||||||
/* Range Limits */
|
|
||||||
break;
|
|
||||||
case 0xFB:
|
|
||||||
/* Color Point */
|
|
||||||
break;
|
|
||||||
case 0xFA:
|
|
||||||
/* Timing Identifications */
|
|
||||||
break;
|
|
||||||
case 0xF9:
|
|
||||||
/* Color Management */
|
|
||||||
break;
|
|
||||||
case 0xF8:
|
|
||||||
/* Timing Codes */
|
|
||||||
break;
|
|
||||||
case 0xF7:
|
|
||||||
/* Established Timings */
|
|
||||||
break;
|
|
||||||
case 0x10:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
decode_detailed_timing (const uchar *timing,
|
|
||||||
DetailedTiming *detailed)
|
|
||||||
{
|
|
||||||
int bits;
|
|
||||||
StereoType stereo[] =
|
|
||||||
{
|
|
||||||
NO_STEREO, NO_STEREO, FIELD_RIGHT, FIELD_LEFT,
|
|
||||||
TWO_WAY_RIGHT_ON_EVEN, TWO_WAY_LEFT_ON_EVEN,
|
|
||||||
FOUR_WAY_INTERLEAVED, SIDE_BY_SIDE
|
|
||||||
};
|
|
||||||
|
|
||||||
detailed->pixel_clock = (timing[0x00] | timing[0x01] << 8) * 10000;
|
|
||||||
detailed->h_addr = timing[0x02] | ((timing[0x04] & 0xf0) << 4);
|
|
||||||
detailed->h_blank = timing[0x03] | ((timing[0x04] & 0x0f) << 8);
|
|
||||||
detailed->v_addr = timing[0x05] | ((timing[0x07] & 0xf0) << 4);
|
|
||||||
detailed->v_blank = timing[0x06] | ((timing[0x07] & 0x0f) << 8);
|
|
||||||
detailed->h_front_porch = timing[0x08] | get_bits (timing[0x0b], 6, 7) << 8;
|
|
||||||
detailed->h_sync = timing[0x09] | get_bits (timing[0x0b], 4, 5) << 8;
|
|
||||||
detailed->v_front_porch =
|
|
||||||
get_bits (timing[0x0a], 4, 7) | get_bits (timing[0x0b], 2, 3) << 4;
|
|
||||||
detailed->v_sync =
|
|
||||||
get_bits (timing[0x0a], 0, 3) | get_bits (timing[0x0b], 0, 1) << 4;
|
|
||||||
detailed->width_mm = timing[0x0c] | get_bits (timing[0x0e], 4, 7) << 8;
|
|
||||||
detailed->height_mm = timing[0x0d] | get_bits (timing[0x0e], 0, 3) << 8;
|
|
||||||
detailed->right_border = timing[0x0f];
|
|
||||||
detailed->top_border = timing[0x10];
|
|
||||||
|
|
||||||
detailed->interlaced = get_bit (timing[0x11], 7);
|
|
||||||
|
|
||||||
/* Stereo */
|
|
||||||
bits = get_bits (timing[0x11], 5, 6) << 1 | get_bit (timing[0x11], 0);
|
|
||||||
detailed->stereo = stereo[bits];
|
|
||||||
|
|
||||||
/* Sync */
|
|
||||||
bits = timing[0x11];
|
|
||||||
|
|
||||||
detailed->digital_sync = get_bit (bits, 4);
|
|
||||||
if (detailed->digital_sync)
|
|
||||||
{
|
|
||||||
detailed->connector.digital.composite = !get_bit (bits, 3);
|
|
||||||
|
|
||||||
if (detailed->connector.digital.composite)
|
|
||||||
{
|
|
||||||
detailed->connector.digital.serrations = get_bit (bits, 2);
|
|
||||||
detailed->connector.digital.negative_vsync = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
detailed->connector.digital.serrations = FALSE;
|
|
||||||
detailed->connector.digital.negative_vsync = !get_bit (bits, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
detailed->connector.digital.negative_hsync = !get_bit (bits, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
detailed->connector.analog.bipolar = get_bit (bits, 3);
|
|
||||||
detailed->connector.analog.serrations = get_bit (bits, 2);
|
|
||||||
detailed->connector.analog.sync_on_green = !get_bit (bits, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
decode_descriptors (const uchar *edid, MonitorInfo *info)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
int timing_idx;
|
|
||||||
|
|
||||||
timing_idx = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 4; ++i)
|
|
||||||
{
|
|
||||||
int index = 0x36 + i * 18;
|
|
||||||
|
|
||||||
if (edid[index + 0] == 0x00 && edid[index + 1] == 0x00)
|
|
||||||
{
|
|
||||||
decode_display_descriptor (edid + index, info);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
decode_detailed_timing (edid + index, &(info->detailed_timings[timing_idx++]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
info->n_detailed_timings = timing_idx;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
decode_check_sum (const uchar *edid,
|
|
||||||
MonitorInfo *info)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
uchar check = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 128; ++i)
|
|
||||||
check += edid[i];
|
|
||||||
|
|
||||||
info->checksum = check;
|
|
||||||
}
|
|
||||||
|
|
||||||
MonitorInfo *
|
|
||||||
decode_edid (const uchar *edid)
|
|
||||||
{
|
|
||||||
MonitorInfo *info = g_new0 (MonitorInfo, 1);
|
|
||||||
|
|
||||||
decode_check_sum (edid, info);
|
|
||||||
|
|
||||||
if (decode_header (edid)
|
|
||||||
&& decode_vendor_and_product_identification (edid, info)
|
|
||||||
&& decode_edid_version (edid, info)
|
|
||||||
&& decode_display_parameters (edid, info)
|
|
||||||
&& decode_color_characteristics (edid, info)
|
|
||||||
&& decode_established_timings (edid, info)
|
|
||||||
&& decode_standard_timings (edid, info)
|
|
||||||
&& decode_descriptors (edid, info))
|
|
||||||
{
|
|
||||||
return info;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_free (info);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,195 +0,0 @@
|
|||||||
/* edid.h
|
|
||||||
*
|
|
||||||
* Copyright 2007, 2008, Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This file is part of the Gnome Library.
|
|
||||||
*
|
|
||||||
* The Gnome Library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Library General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* The Gnome Library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Library General Public
|
|
||||||
* License along with the Gnome Library; see the file COPYING.LIB. If not,
|
|
||||||
* write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Author: Soren Sandmann <sandmann@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef EDID_H
|
|
||||||
#define EDID_H
|
|
||||||
|
|
||||||
typedef unsigned char uchar;
|
|
||||||
typedef struct MonitorInfo MonitorInfo;
|
|
||||||
typedef struct Timing Timing;
|
|
||||||
typedef struct DetailedTiming DetailedTiming;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
UNDEFINED,
|
|
||||||
DVI,
|
|
||||||
HDMI_A,
|
|
||||||
HDMI_B,
|
|
||||||
MDDI,
|
|
||||||
DISPLAY_PORT
|
|
||||||
} Interface;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
UNDEFINED_COLOR,
|
|
||||||
MONOCHROME,
|
|
||||||
RGB,
|
|
||||||
OTHER_COLOR
|
|
||||||
} ColorType;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
NO_STEREO,
|
|
||||||
FIELD_RIGHT,
|
|
||||||
FIELD_LEFT,
|
|
||||||
TWO_WAY_RIGHT_ON_EVEN,
|
|
||||||
TWO_WAY_LEFT_ON_EVEN,
|
|
||||||
FOUR_WAY_INTERLEAVED,
|
|
||||||
SIDE_BY_SIDE
|
|
||||||
} StereoType;
|
|
||||||
|
|
||||||
struct Timing
|
|
||||||
{
|
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
int frequency;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct DetailedTiming
|
|
||||||
{
|
|
||||||
int pixel_clock;
|
|
||||||
int h_addr;
|
|
||||||
int h_blank;
|
|
||||||
int h_sync;
|
|
||||||
int h_front_porch;
|
|
||||||
int v_addr;
|
|
||||||
int v_blank;
|
|
||||||
int v_sync;
|
|
||||||
int v_front_porch;
|
|
||||||
int width_mm;
|
|
||||||
int height_mm;
|
|
||||||
int right_border;
|
|
||||||
int top_border;
|
|
||||||
int interlaced;
|
|
||||||
StereoType stereo;
|
|
||||||
|
|
||||||
int digital_sync;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int bipolar;
|
|
||||||
int serrations;
|
|
||||||
int sync_on_green;
|
|
||||||
} analog;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int composite;
|
|
||||||
int serrations;
|
|
||||||
int negative_vsync;
|
|
||||||
int negative_hsync;
|
|
||||||
} digital;
|
|
||||||
} connector;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct MonitorInfo
|
|
||||||
{
|
|
||||||
int checksum;
|
|
||||||
char manufacturer_code[4];
|
|
||||||
int product_code;
|
|
||||||
unsigned int serial_number;
|
|
||||||
|
|
||||||
int production_week; /* -1 if not specified */
|
|
||||||
int production_year; /* -1 if not specified */
|
|
||||||
int model_year; /* -1 if not specified */
|
|
||||||
|
|
||||||
int major_version;
|
|
||||||
int minor_version;
|
|
||||||
|
|
||||||
int is_digital;
|
|
||||||
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int bits_per_primary;
|
|
||||||
Interface interface;
|
|
||||||
int rgb444;
|
|
||||||
int ycrcb444;
|
|
||||||
int ycrcb422;
|
|
||||||
} digital;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
double video_signal_level;
|
|
||||||
double sync_signal_level;
|
|
||||||
double total_signal_level;
|
|
||||||
|
|
||||||
int blank_to_black;
|
|
||||||
|
|
||||||
int separate_hv_sync;
|
|
||||||
int composite_sync_on_h;
|
|
||||||
int composite_sync_on_green;
|
|
||||||
int serration_on_vsync;
|
|
||||||
ColorType color_type;
|
|
||||||
} analog;
|
|
||||||
} connector;
|
|
||||||
|
|
||||||
int width_mm; /* -1 if not specified */
|
|
||||||
int height_mm; /* -1 if not specified */
|
|
||||||
double aspect_ratio; /* -1.0 if not specififed */
|
|
||||||
|
|
||||||
double gamma; /* -1.0 if not specified */
|
|
||||||
|
|
||||||
int standby;
|
|
||||||
int suspend;
|
|
||||||
int active_off;
|
|
||||||
|
|
||||||
int srgb_is_standard;
|
|
||||||
int preferred_timing_includes_native;
|
|
||||||
int continuous_frequency;
|
|
||||||
|
|
||||||
double red_x;
|
|
||||||
double red_y;
|
|
||||||
double green_x;
|
|
||||||
double green_y;
|
|
||||||
double blue_x;
|
|
||||||
double blue_y;
|
|
||||||
double white_x;
|
|
||||||
double white_y;
|
|
||||||
|
|
||||||
Timing established[24]; /* Terminated by 0x0x0 */
|
|
||||||
Timing standard[8];
|
|
||||||
|
|
||||||
int n_detailed_timings;
|
|
||||||
DetailedTiming detailed_timings[4]; /* If monitor has a preferred
|
|
||||||
* mode, it is the first one
|
|
||||||
* (whether it has, is
|
|
||||||
* determined by the
|
|
||||||
* preferred_timing_includes
|
|
||||||
* bit.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Optional product description */
|
|
||||||
char dsc_serial_number[14];
|
|
||||||
char dsc_product_name[14];
|
|
||||||
char dsc_string[14]; /* Unspecified ASCII data */
|
|
||||||
};
|
|
||||||
|
|
||||||
MonitorInfo *decode_edid (const uchar *data);
|
|
||||||
char *make_display_name (const MonitorInfo *info);
|
|
||||||
char *make_display_size_string (int width_mm, int height_mm);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,157 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2014 Red Hat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
||||||
* 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* Written by:
|
|
||||||
* Jasper St. Pierre <jstpierre@mecheye.net>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "meta-backend.h"
|
|
||||||
#include <meta/main.h>
|
|
||||||
|
|
||||||
#include <gdk/gdkx.h>
|
|
||||||
#include <clutter/clutter.h>
|
|
||||||
#include <clutter/x11/clutter-x11.h>
|
|
||||||
|
|
||||||
#include "backends/native/meta-weston-launch.h"
|
|
||||||
#include <meta/util.h>
|
|
||||||
|
|
||||||
/* Mutter is responsible for pulling events off the X queue, so Clutter
|
|
||||||
* doesn't need (and shouldn't) run its normal event source which polls
|
|
||||||
* the X fd, but we do have to deal with dispatching events that accumulate
|
|
||||||
* in the clutter queue. This happens, for example, when clutter generate
|
|
||||||
* enter/leave events on mouse motion - several events are queued in the
|
|
||||||
* clutter queue but only one dispatched. It could also happen because of
|
|
||||||
* explicit calls to clutter_event_put(). We add a very simple custom
|
|
||||||
* event loop source which is simply responsible for pulling events off
|
|
||||||
* of the queue and dispatching them before we block for new events.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
event_prepare (GSource *source,
|
|
||||||
gint *timeout_)
|
|
||||||
{
|
|
||||||
*timeout_ = -1;
|
|
||||||
|
|
||||||
return clutter_events_pending ();
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
event_check (GSource *source)
|
|
||||||
{
|
|
||||||
return clutter_events_pending ();
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
event_dispatch (GSource *source,
|
|
||||||
GSourceFunc callback,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
ClutterEvent *event = clutter_event_get ();
|
|
||||||
|
|
||||||
if (event)
|
|
||||||
{
|
|
||||||
clutter_do_event (event);
|
|
||||||
clutter_event_free (event);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static GSourceFuncs event_funcs = {
|
|
||||||
event_prepare,
|
|
||||||
event_check,
|
|
||||||
event_dispatch
|
|
||||||
};
|
|
||||||
|
|
||||||
static MetaLauncher *launcher;
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_clutter_init (void)
|
|
||||||
{
|
|
||||||
GSource *source;
|
|
||||||
|
|
||||||
/* When running as an X11 compositor, we install our own event filter and
|
|
||||||
* pass events to Clutter explicitly, so we need to prevent Clutter from
|
|
||||||
* handling our events.
|
|
||||||
*
|
|
||||||
* However, when running as a Wayland compostior under X11 nested, Clutter
|
|
||||||
* Clutter needs to see events related to its own window. We need to
|
|
||||||
* eventually replace this with a proper frontend / backend split: Clutter
|
|
||||||
* under nested is connecting to the "host X server" to get its events it
|
|
||||||
* needs to put up a window, and GTK+ is connecting to the "inner X server".
|
|
||||||
* The two would the same in the X11 compositor case, but not when running
|
|
||||||
* XWayland as a Wayland compositor.
|
|
||||||
*/
|
|
||||||
if (!meta_is_wayland_compositor ())
|
|
||||||
{
|
|
||||||
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
|
|
||||||
clutter_x11_disable_event_retrieval ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If we're running on bare metal, we're a display server,
|
|
||||||
* so start talking to weston-launch. */
|
|
||||||
#if defined(CLUTTER_WINDOWING_EGL)
|
|
||||||
if (clutter_check_windowing_backend (CLUTTER_WINDOWING_EGL))
|
|
||||||
launcher = meta_launcher_new ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (clutter_init (NULL, NULL) != CLUTTER_INIT_SUCCESS)
|
|
||||||
g_error ("Unable to initialize Clutter.\n");
|
|
||||||
|
|
||||||
source = g_source_new (&event_funcs, sizeof (GSource));
|
|
||||||
g_source_attach (source, NULL);
|
|
||||||
g_source_unref (source);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
meta_activate_vt (int vt, GError **error)
|
|
||||||
{
|
|
||||||
if (launcher)
|
|
||||||
return meta_launcher_activate_vt (launcher, vt, error);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_debug ("Ignoring VT switch keybinding, not running as display server");
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_activate_session:
|
|
||||||
*
|
|
||||||
* Tells mutter to activate the session. When mutter is a
|
|
||||||
* Wayland compositor, this tells logind to switch over to
|
|
||||||
* the new session.
|
|
||||||
*/
|
|
||||||
gboolean
|
|
||||||
meta_activate_session (void)
|
|
||||||
{
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
if (!meta_launcher_activate_vt (launcher, -1, &error))
|
|
||||||
{
|
|
||||||
g_warning ("Could not activate session: %s\n", error->message);
|
|
||||||
g_error_free (error);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Author: Giovanni Campagna <gcampagn@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_CURSOR_PRIVATE_H
|
|
||||||
#define META_CURSOR_PRIVATE_H
|
|
||||||
|
|
||||||
#include "meta-cursor.h"
|
|
||||||
|
|
||||||
#include <cogl/cogl.h>
|
|
||||||
#include <gbm.h>
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
CoglTexture2D *texture;
|
|
||||||
struct gbm_bo *bo;
|
|
||||||
int hot_x, hot_y;
|
|
||||||
} MetaCursorImage;
|
|
||||||
|
|
||||||
struct _MetaCursorReference {
|
|
||||||
int ref_count;
|
|
||||||
|
|
||||||
MetaCursorImage image;
|
|
||||||
};
|
|
||||||
|
|
||||||
CoglTexture *meta_cursor_reference_get_cogl_texture (MetaCursorReference *cursor,
|
|
||||||
int *hot_x,
|
|
||||||
int *hot_y);
|
|
||||||
|
|
||||||
struct gbm_bo *meta_cursor_reference_get_gbm_bo (MetaCursorReference *cursor,
|
|
||||||
int *hot_x,
|
|
||||||
int *hot_y);
|
|
||||||
|
|
||||||
#endif /* META_CURSOR_PRIVATE_H */
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Author: Giovanni Campagna <gcampagn@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_CURSOR_TRACKER_PRIVATE_H
|
|
||||||
#define META_CURSOR_TRACKER_PRIVATE_H
|
|
||||||
|
|
||||||
#include <meta/meta-cursor-tracker.h>
|
|
||||||
#include <wayland-server.h>
|
|
||||||
|
|
||||||
#include "meta-cursor.h"
|
|
||||||
|
|
||||||
struct _MetaCursorTracker {
|
|
||||||
GObject parent_instance;
|
|
||||||
|
|
||||||
MetaScreen *screen;
|
|
||||||
|
|
||||||
gboolean is_showing;
|
|
||||||
gboolean has_hw_cursor;
|
|
||||||
|
|
||||||
/* The cursor tracker stores the cursor for the current grab
|
|
||||||
* operation, the cursor for the window with pointer focus, and
|
|
||||||
* the cursor for the root window, which contains either the
|
|
||||||
* default arrow cursor or the 'busy' hourglass if we're launching
|
|
||||||
* an app.
|
|
||||||
*
|
|
||||||
* We choose the first one available -- if there's a grab cursor,
|
|
||||||
* we choose that cursor, if there's window cursor, we choose that,
|
|
||||||
* otherwise we choose the root cursor.
|
|
||||||
*
|
|
||||||
* The displayed_cursor contains the chosen cursor.
|
|
||||||
*/
|
|
||||||
MetaCursorReference *displayed_cursor;
|
|
||||||
|
|
||||||
MetaCursorReference *grab_cursor;
|
|
||||||
|
|
||||||
/* Wayland clients can set a NULL buffer as their cursor
|
|
||||||
* explicitly, which means that we shouldn't display anything.
|
|
||||||
* So, we can't simply store a NULL in window_cursor to
|
|
||||||
* determine an unset window cursor; we need an extra boolean.
|
|
||||||
*/
|
|
||||||
gboolean has_window_cursor;
|
|
||||||
MetaCursorReference *window_cursor;
|
|
||||||
|
|
||||||
MetaCursorReference *root_cursor;
|
|
||||||
|
|
||||||
MetaCursorReference *theme_cursors[META_CURSOR_LAST];
|
|
||||||
|
|
||||||
int current_x, current_y;
|
|
||||||
MetaRectangle current_rect;
|
|
||||||
MetaRectangle previous_rect;
|
|
||||||
gboolean previous_is_valid;
|
|
||||||
|
|
||||||
CoglPipeline *pipeline;
|
|
||||||
int drm_fd;
|
|
||||||
struct gbm_device *gbm;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaCursorTrackerClass {
|
|
||||||
GObjectClass parent_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
gboolean meta_cursor_tracker_handle_xevent (MetaCursorTracker *tracker,
|
|
||||||
XEvent *xevent);
|
|
||||||
|
|
||||||
void meta_cursor_tracker_set_grab_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorReference *cursor);
|
|
||||||
void meta_cursor_tracker_set_window_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorReference *cursor);
|
|
||||||
void meta_cursor_tracker_unset_window_cursor (MetaCursorTracker *tracker);
|
|
||||||
void meta_cursor_tracker_set_root_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorReference *cursor);
|
|
||||||
|
|
||||||
void meta_cursor_tracker_update_position (MetaCursorTracker *tracker,
|
|
||||||
int new_x,
|
|
||||||
int new_y);
|
|
||||||
void meta_cursor_tracker_paint (MetaCursorTracker *tracker);
|
|
||||||
|
|
||||||
void meta_cursor_tracker_force_update (MetaCursorTracker *tracker);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,738 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Author: Giovanni Campagna <gcampagn@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SECTION:cursor-tracker
|
|
||||||
* @title: MetaCursorTracker
|
|
||||||
* @short_description: Mutter cursor tracking helper. Originally only
|
|
||||||
* tracking the cursor image, now more of a "core
|
|
||||||
* pointer abstraction"
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <meta/main.h>
|
|
||||||
#include <meta/util.h>
|
|
||||||
#include <meta/errors.h>
|
|
||||||
|
|
||||||
#include <cogl/cogl.h>
|
|
||||||
#include <cogl/cogl-wayland-server.h>
|
|
||||||
#include <clutter/clutter.h>
|
|
||||||
#include <gbm.h>
|
|
||||||
|
|
||||||
#include <gdk/gdk.h>
|
|
||||||
#include <gdk/gdkx.h>
|
|
||||||
|
|
||||||
#include "meta-cursor-private.h"
|
|
||||||
#include "meta-cursor-tracker-private.h"
|
|
||||||
#include "screen-private.h"
|
|
||||||
#include "meta-monitor-manager.h"
|
|
||||||
|
|
||||||
#include "wayland/meta-wayland-private.h"
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaCursorTracker, meta_cursor_tracker, G_TYPE_OBJECT);
|
|
||||||
|
|
||||||
enum {
|
|
||||||
CURSOR_CHANGED,
|
|
||||||
LAST_SIGNAL
|
|
||||||
};
|
|
||||||
|
|
||||||
static guint signals[LAST_SIGNAL];
|
|
||||||
|
|
||||||
static void meta_cursor_tracker_set_crtc_has_hw_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCRTC *crtc,
|
|
||||||
gboolean has_hw_cursor);
|
|
||||||
static void sync_cursor (MetaCursorTracker *tracker);
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_tracker_init (MetaCursorTracker *self)
|
|
||||||
{
|
|
||||||
/* (JS) Best (?) that can be assumed since XFixes doesn't provide a way of
|
|
||||||
detecting if the system mouse cursor is showing or not.
|
|
||||||
|
|
||||||
On wayland we start with the cursor showing
|
|
||||||
*/
|
|
||||||
self->is_showing = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_tracker_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
MetaCursorTracker *self = META_CURSOR_TRACKER (object);
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (self->displayed_cursor)
|
|
||||||
meta_cursor_reference_unref (self->displayed_cursor);
|
|
||||||
if (self->root_cursor)
|
|
||||||
meta_cursor_reference_unref (self->root_cursor);
|
|
||||||
|
|
||||||
for (i = 0; i < META_CURSOR_LAST; i++)
|
|
||||||
if (self->theme_cursors[i])
|
|
||||||
meta_cursor_reference_unref (self->theme_cursors[i]);
|
|
||||||
|
|
||||||
if (self->pipeline)
|
|
||||||
cogl_object_unref (self->pipeline);
|
|
||||||
if (self->gbm)
|
|
||||||
gbm_device_destroy (self->gbm);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_cursor_tracker_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_tracker_class_init (MetaCursorTrackerClass *klass)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
||||||
|
|
||||||
object_class->finalize = meta_cursor_tracker_finalize;
|
|
||||||
|
|
||||||
signals[CURSOR_CHANGED] = g_signal_new ("cursor-changed",
|
|
||||||
G_TYPE_FROM_CLASS (klass),
|
|
||||||
G_SIGNAL_RUN_LAST,
|
|
||||||
0,
|
|
||||||
NULL, NULL, NULL,
|
|
||||||
G_TYPE_NONE, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_monitors_changed (MetaMonitorManager *monitors,
|
|
||||||
MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
MetaCRTC *crtcs;
|
|
||||||
unsigned int i, n_crtcs;
|
|
||||||
|
|
||||||
if (!tracker->has_hw_cursor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Go through the new list of monitors, find out where the cursor is */
|
|
||||||
meta_monitor_manager_get_resources (monitors, NULL, NULL, &crtcs, &n_crtcs, NULL, NULL);
|
|
||||||
|
|
||||||
for (i = 0; i < n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaRectangle *rect = &crtcs[i].rect;
|
|
||||||
gboolean has;
|
|
||||||
|
|
||||||
has = meta_rectangle_overlap (&tracker->current_rect, rect);
|
|
||||||
|
|
||||||
/* Need to do it unconditionally here, our tracking is
|
|
||||||
wrong because we reloaded the CRTCs */
|
|
||||||
meta_cursor_tracker_set_crtc_has_hw_cursor (tracker, &crtcs[i], has);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaCursorTracker *
|
|
||||||
make_wayland_cursor_tracker (MetaScreen *screen)
|
|
||||||
{
|
|
||||||
MetaWaylandCompositor *compositor;
|
|
||||||
CoglContext *ctx;
|
|
||||||
MetaMonitorManager *monitors;
|
|
||||||
MetaCursorTracker *self;
|
|
||||||
|
|
||||||
self = g_object_new (META_TYPE_CURSOR_TRACKER, NULL);
|
|
||||||
self->screen = screen;
|
|
||||||
|
|
||||||
ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
|
||||||
self->pipeline = cogl_pipeline_new (ctx);
|
|
||||||
|
|
||||||
compositor = meta_wayland_compositor_get_default ();
|
|
||||||
compositor->seat->cursor_tracker = self;
|
|
||||||
meta_cursor_tracker_update_position (self,
|
|
||||||
wl_fixed_to_int (compositor->seat->pointer.x),
|
|
||||||
wl_fixed_to_int (compositor->seat->pointer.y));
|
|
||||||
|
|
||||||
#if defined(CLUTTER_WINDOWING_EGL)
|
|
||||||
if (clutter_check_windowing_backend (CLUTTER_WINDOWING_EGL))
|
|
||||||
{
|
|
||||||
CoglRenderer *cogl_renderer = cogl_display_get_renderer (cogl_context_get_display (ctx));
|
|
||||||
self->drm_fd = cogl_kms_renderer_get_kms_fd (cogl_renderer);
|
|
||||||
self->gbm = gbm_create_device (self->drm_fd);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
monitors = meta_monitor_manager_get ();
|
|
||||||
g_signal_connect_object (monitors, "monitors-changed",
|
|
||||||
G_CALLBACK (on_monitors_changed), self, 0);
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaCursorTracker *
|
|
||||||
make_x11_cursor_tracker (MetaScreen *screen)
|
|
||||||
{
|
|
||||||
MetaCursorTracker *self = g_object_new (META_TYPE_CURSOR_TRACKER, NULL);
|
|
||||||
self->screen = screen;
|
|
||||||
|
|
||||||
XFixesSelectCursorInput (screen->display->xdisplay,
|
|
||||||
screen->xroot,
|
|
||||||
XFixesDisplayCursorNotifyMask);
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_cursor_tracker_get_for_screen:
|
|
||||||
* @screen: the #MetaScreen
|
|
||||||
*
|
|
||||||
* Retrieves the cursor tracker object for @screen.
|
|
||||||
*
|
|
||||||
* Returns: (transfer none):
|
|
||||||
*/
|
|
||||||
MetaCursorTracker *
|
|
||||||
meta_cursor_tracker_get_for_screen (MetaScreen *screen)
|
|
||||||
{
|
|
||||||
MetaCursorTracker *self;
|
|
||||||
|
|
||||||
if (screen->cursor_tracker)
|
|
||||||
return screen->cursor_tracker;
|
|
||||||
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
self = make_wayland_cursor_tracker (screen);
|
|
||||||
else
|
|
||||||
self = make_x11_cursor_tracker (screen);
|
|
||||||
|
|
||||||
screen->cursor_tracker = self;
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
set_window_cursor (MetaCursorTracker *tracker,
|
|
||||||
gboolean has_cursor,
|
|
||||||
MetaCursorReference *cursor)
|
|
||||||
{
|
|
||||||
g_clear_pointer (&tracker->window_cursor, meta_cursor_reference_unref);
|
|
||||||
if (cursor)
|
|
||||||
tracker->window_cursor = meta_cursor_reference_ref (cursor);
|
|
||||||
tracker->has_window_cursor = has_cursor;
|
|
||||||
sync_cursor (tracker);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
meta_cursor_tracker_handle_xevent (MetaCursorTracker *tracker,
|
|
||||||
XEvent *xevent)
|
|
||||||
{
|
|
||||||
XFixesCursorNotifyEvent *notify_event;
|
|
||||||
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (xevent->xany.type != tracker->screen->display->xfixes_event_base + XFixesCursorNotify)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
notify_event = (XFixesCursorNotifyEvent *)xevent;
|
|
||||||
if (notify_event->subtype != XFixesDisplayCursorNotify)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
set_window_cursor (tracker, FALSE, NULL);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaCursorReference *
|
|
||||||
meta_cursor_reference_take_texture (CoglTexture2D *texture,
|
|
||||||
int hot_x,
|
|
||||||
int hot_y)
|
|
||||||
{
|
|
||||||
MetaCursorReference *self;
|
|
||||||
|
|
||||||
self = g_slice_new0 (MetaCursorReference);
|
|
||||||
self->ref_count = 1;
|
|
||||||
self->image.texture = texture;
|
|
||||||
self->image.hot_x = hot_x;
|
|
||||||
self->image.hot_y = hot_y;
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
ensure_xfixes_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
XFixesCursorImage *cursor_image;
|
|
||||||
CoglTexture2D *sprite;
|
|
||||||
guint8 *cursor_data;
|
|
||||||
gboolean free_cursor_data;
|
|
||||||
CoglContext *ctx;
|
|
||||||
|
|
||||||
if (tracker->has_window_cursor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
cursor_image = XFixesGetCursorImage (tracker->screen->display->xdisplay);
|
|
||||||
if (!cursor_image)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Like all X APIs, XFixesGetCursorImage() returns arrays of 32-bit
|
|
||||||
* quantities as arrays of long; we need to convert on 64 bit */
|
|
||||||
if (sizeof(long) == 4)
|
|
||||||
{
|
|
||||||
cursor_data = (guint8 *)cursor_image->pixels;
|
|
||||||
free_cursor_data = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int i, j;
|
|
||||||
guint32 *cursor_words;
|
|
||||||
gulong *p;
|
|
||||||
guint32 *q;
|
|
||||||
|
|
||||||
cursor_words = g_new (guint32, cursor_image->width * cursor_image->height);
|
|
||||||
cursor_data = (guint8 *)cursor_words;
|
|
||||||
|
|
||||||
p = cursor_image->pixels;
|
|
||||||
q = cursor_words;
|
|
||||||
for (j = 0; j < cursor_image->height; j++)
|
|
||||||
for (i = 0; i < cursor_image->width; i++)
|
|
||||||
*(q++) = *(p++);
|
|
||||||
|
|
||||||
free_cursor_data = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
|
||||||
sprite = cogl_texture_2d_new_from_data (ctx,
|
|
||||||
cursor_image->width,
|
|
||||||
cursor_image->height,
|
|
||||||
CLUTTER_CAIRO_FORMAT_ARGB32,
|
|
||||||
cursor_image->width * 4, /* stride */
|
|
||||||
cursor_data,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
if (free_cursor_data)
|
|
||||||
g_free (cursor_data);
|
|
||||||
|
|
||||||
if (sprite != NULL)
|
|
||||||
{
|
|
||||||
MetaCursorReference *cursor = meta_cursor_reference_take_texture (sprite,
|
|
||||||
cursor_image->xhot,
|
|
||||||
cursor_image->yhot);
|
|
||||||
set_window_cursor (tracker, TRUE, cursor);
|
|
||||||
}
|
|
||||||
XFree (cursor_image);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_cursor_tracker_get_sprite:
|
|
||||||
*
|
|
||||||
* Returns: (transfer none):
|
|
||||||
*/
|
|
||||||
CoglTexture *
|
|
||||||
meta_cursor_tracker_get_sprite (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (META_IS_CURSOR_TRACKER (tracker), NULL);
|
|
||||||
|
|
||||||
if (!meta_is_wayland_compositor ())
|
|
||||||
ensure_xfixes_cursor (tracker);
|
|
||||||
|
|
||||||
if (tracker->displayed_cursor)
|
|
||||||
return meta_cursor_reference_get_cogl_texture (tracker->displayed_cursor, NULL, NULL);
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_cursor_tracker_get_hot:
|
|
||||||
* @tracker:
|
|
||||||
* @x: (out):
|
|
||||||
* @y: (out):
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_get_hot (MetaCursorTracker *tracker,
|
|
||||||
int *x,
|
|
||||||
int *y)
|
|
||||||
{
|
|
||||||
g_return_if_fail (META_IS_CURSOR_TRACKER (tracker));
|
|
||||||
|
|
||||||
if (!meta_is_wayland_compositor ())
|
|
||||||
ensure_xfixes_cursor (tracker);
|
|
||||||
|
|
||||||
if (tracker->displayed_cursor)
|
|
||||||
meta_cursor_reference_get_cogl_texture (tracker->displayed_cursor, x, y);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (x)
|
|
||||||
*x = 0;
|
|
||||||
if (y)
|
|
||||||
*y = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_set_grab_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorReference *cursor)
|
|
||||||
{
|
|
||||||
g_clear_pointer (&tracker->grab_cursor, meta_cursor_reference_unref);
|
|
||||||
if (cursor)
|
|
||||||
tracker->grab_cursor = meta_cursor_reference_ref (cursor);
|
|
||||||
|
|
||||||
sync_cursor (tracker);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_set_window_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorReference *cursor)
|
|
||||||
{
|
|
||||||
set_window_cursor (tracker, TRUE, cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_unset_window_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
set_window_cursor (tracker, FALSE, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_set_root_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorReference *cursor)
|
|
||||||
{
|
|
||||||
g_clear_pointer (&tracker->root_cursor, meta_cursor_reference_unref);
|
|
||||||
if (cursor)
|
|
||||||
tracker->root_cursor = meta_cursor_reference_ref (cursor);
|
|
||||||
|
|
||||||
sync_cursor (tracker);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
should_have_hw_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
if (tracker->displayed_cursor)
|
|
||||||
return (meta_cursor_reference_get_gbm_bo (tracker->displayed_cursor, NULL, NULL) != NULL);
|
|
||||||
else
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
update_hw_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
MetaMonitorManager *monitors;
|
|
||||||
MetaCRTC *crtcs;
|
|
||||||
unsigned int i, n_crtcs;
|
|
||||||
gboolean enabled;
|
|
||||||
|
|
||||||
enabled = should_have_hw_cursor (tracker);
|
|
||||||
tracker->has_hw_cursor = enabled;
|
|
||||||
|
|
||||||
monitors = meta_monitor_manager_get ();
|
|
||||||
meta_monitor_manager_get_resources (monitors, NULL, NULL, &crtcs, &n_crtcs, NULL, NULL);
|
|
||||||
|
|
||||||
for (i = 0; i < n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaRectangle *rect = &crtcs[i].rect;
|
|
||||||
gboolean has;
|
|
||||||
|
|
||||||
has = enabled && meta_rectangle_overlap (&tracker->current_rect, rect);
|
|
||||||
|
|
||||||
if (has || crtcs[i].has_hw_cursor)
|
|
||||||
meta_cursor_tracker_set_crtc_has_hw_cursor (tracker, &crtcs[i], has);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
move_hw_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
MetaMonitorManager *monitors;
|
|
||||||
MetaCRTC *crtcs;
|
|
||||||
unsigned int i, n_crtcs;
|
|
||||||
|
|
||||||
monitors = meta_monitor_manager_get ();
|
|
||||||
meta_monitor_manager_get_resources (monitors, NULL, NULL, &crtcs, &n_crtcs, NULL, NULL);
|
|
||||||
|
|
||||||
g_assert (tracker->has_hw_cursor);
|
|
||||||
|
|
||||||
for (i = 0; i < n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaRectangle *rect = &crtcs[i].rect;
|
|
||||||
gboolean has;
|
|
||||||
|
|
||||||
has = meta_rectangle_overlap (&tracker->current_rect, rect);
|
|
||||||
|
|
||||||
if (has != crtcs[i].has_hw_cursor)
|
|
||||||
meta_cursor_tracker_set_crtc_has_hw_cursor (tracker, &crtcs[i], has);
|
|
||||||
if (has)
|
|
||||||
drmModeMoveCursor (tracker->drm_fd, crtcs[i].crtc_id,
|
|
||||||
tracker->current_rect.x - rect->x,
|
|
||||||
tracker->current_rect.y - rect->y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaCursorReference *
|
|
||||||
get_displayed_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
if (!tracker->is_showing)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (tracker->grab_cursor)
|
|
||||||
return tracker->grab_cursor;
|
|
||||||
|
|
||||||
if (tracker->has_window_cursor)
|
|
||||||
return tracker->window_cursor;
|
|
||||||
|
|
||||||
return tracker->root_cursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
update_displayed_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
{
|
|
||||||
if (tracker->displayed_cursor)
|
|
||||||
{
|
|
||||||
CoglTexture *texture = meta_cursor_reference_get_cogl_texture (tracker->displayed_cursor, NULL, NULL);
|
|
||||||
cogl_pipeline_set_layer_texture (tracker->pipeline, 0, texture);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
cogl_pipeline_set_layer_texture (tracker->pipeline, 0, NULL);
|
|
||||||
|
|
||||||
update_hw_cursor (tracker);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
sync_displayed_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
MetaCursorReference *displayed_cursor = get_displayed_cursor (tracker);
|
|
||||||
|
|
||||||
if (tracker->displayed_cursor == displayed_cursor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
g_clear_pointer (&tracker->displayed_cursor, meta_cursor_reference_unref);
|
|
||||||
if (displayed_cursor)
|
|
||||||
tracker->displayed_cursor = meta_cursor_reference_ref (displayed_cursor);
|
|
||||||
|
|
||||||
update_displayed_cursor (tracker);
|
|
||||||
g_signal_emit (tracker, signals[CURSOR_CHANGED], 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_tracker_queue_redraw (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
|
|
||||||
ClutterActor *stage = compositor->stage;
|
|
||||||
cairo_rectangle_int_t clip;
|
|
||||||
|
|
||||||
g_assert (meta_is_wayland_compositor ());
|
|
||||||
|
|
||||||
/* Clear the location the cursor was at before, if we need to. */
|
|
||||||
if (tracker->previous_is_valid)
|
|
||||||
{
|
|
||||||
clip.x = tracker->previous_rect.x;
|
|
||||||
clip.y = tracker->previous_rect.y;
|
|
||||||
clip.width = tracker->previous_rect.width;
|
|
||||||
clip.height = tracker->previous_rect.height;
|
|
||||||
clutter_actor_queue_redraw_with_clip (stage, &clip);
|
|
||||||
tracker->previous_is_valid = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tracker->has_hw_cursor || !tracker->displayed_cursor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
clip.x = tracker->current_rect.x;
|
|
||||||
clip.y = tracker->current_rect.y;
|
|
||||||
clip.width = tracker->current_rect.width;
|
|
||||||
clip.height = tracker->current_rect.height;
|
|
||||||
clutter_actor_queue_redraw_with_clip (stage, &clip);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
sync_cursor (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
MetaCursorReference *displayed_cursor;
|
|
||||||
|
|
||||||
sync_displayed_cursor (tracker);
|
|
||||||
displayed_cursor = tracker->displayed_cursor;
|
|
||||||
|
|
||||||
if (displayed_cursor)
|
|
||||||
{
|
|
||||||
CoglTexture *texture;
|
|
||||||
int hot_x, hot_y;
|
|
||||||
|
|
||||||
texture = meta_cursor_reference_get_cogl_texture (displayed_cursor, &hot_x, &hot_y);
|
|
||||||
|
|
||||||
tracker->current_rect.x = tracker->current_x - hot_x;
|
|
||||||
tracker->current_rect.y = tracker->current_y - hot_y;
|
|
||||||
tracker->current_rect.width = cogl_texture_get_width (COGL_TEXTURE (texture));
|
|
||||||
tracker->current_rect.height = cogl_texture_get_height (COGL_TEXTURE (texture));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tracker->current_rect.x = 0;
|
|
||||||
tracker->current_rect.y = 0;
|
|
||||||
tracker->current_rect.width = 0;
|
|
||||||
tracker->current_rect.height = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
{
|
|
||||||
if (tracker->has_hw_cursor)
|
|
||||||
move_hw_cursor (tracker);
|
|
||||||
else
|
|
||||||
meta_cursor_tracker_queue_redraw (tracker);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_update_position (MetaCursorTracker *tracker,
|
|
||||||
int new_x,
|
|
||||||
int new_y)
|
|
||||||
{
|
|
||||||
g_assert (meta_is_wayland_compositor ());
|
|
||||||
|
|
||||||
tracker->current_x = new_x;
|
|
||||||
tracker->current_y = new_y;
|
|
||||||
|
|
||||||
sync_cursor (tracker);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_paint (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
g_assert (meta_is_wayland_compositor ());
|
|
||||||
|
|
||||||
if (tracker->has_hw_cursor || !tracker->displayed_cursor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
cogl_framebuffer_draw_rectangle (cogl_get_draw_framebuffer (),
|
|
||||||
tracker->pipeline,
|
|
||||||
tracker->current_rect.x,
|
|
||||||
tracker->current_rect.y,
|
|
||||||
tracker->current_rect.x +
|
|
||||||
tracker->current_rect.width,
|
|
||||||
tracker->current_rect.y +
|
|
||||||
tracker->current_rect.height);
|
|
||||||
|
|
||||||
tracker->previous_rect = tracker->current_rect;
|
|
||||||
tracker->previous_is_valid = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_tracker_set_crtc_has_hw_cursor (MetaCursorTracker *tracker,
|
|
||||||
MetaCRTC *crtc,
|
|
||||||
gboolean has)
|
|
||||||
{
|
|
||||||
if (has)
|
|
||||||
{
|
|
||||||
MetaCursorReference *displayed_cursor = tracker->displayed_cursor;
|
|
||||||
struct gbm_bo *bo;
|
|
||||||
union gbm_bo_handle handle;
|
|
||||||
int width, height;
|
|
||||||
int hot_x, hot_y;
|
|
||||||
|
|
||||||
bo = meta_cursor_reference_get_gbm_bo (displayed_cursor, &hot_x, &hot_y);
|
|
||||||
|
|
||||||
handle = gbm_bo_get_handle (bo);
|
|
||||||
width = gbm_bo_get_width (bo);
|
|
||||||
height = gbm_bo_get_height (bo);
|
|
||||||
|
|
||||||
drmModeSetCursor2 (tracker->drm_fd, crtc->crtc_id, handle.u32,
|
|
||||||
width, height, hot_x, hot_y);
|
|
||||||
crtc->has_hw_cursor = TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
drmModeSetCursor2 (tracker->drm_fd, crtc->crtc_id, 0, 0, 0, 0, 0);
|
|
||||||
crtc->has_hw_cursor = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_pointer_position_gdk (int *x,
|
|
||||||
int *y,
|
|
||||||
int *mods)
|
|
||||||
{
|
|
||||||
GdkDeviceManager *gmanager;
|
|
||||||
GdkDevice *gdevice;
|
|
||||||
GdkScreen *gscreen;
|
|
||||||
|
|
||||||
gmanager = gdk_display_get_device_manager (gdk_display_get_default ());
|
|
||||||
gdevice = gdk_x11_device_manager_lookup (gmanager, META_VIRTUAL_CORE_POINTER_ID);
|
|
||||||
|
|
||||||
gdk_device_get_position (gdevice, &gscreen, x, y);
|
|
||||||
if (mods)
|
|
||||||
gdk_device_get_state (gdevice,
|
|
||||||
gdk_screen_get_root_window (gscreen),
|
|
||||||
NULL, (GdkModifierType*)mods);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_pointer_position_clutter (int *x,
|
|
||||||
int *y,
|
|
||||||
int *mods)
|
|
||||||
{
|
|
||||||
ClutterDeviceManager *cmanager;
|
|
||||||
ClutterInputDevice *cdevice;
|
|
||||||
ClutterPoint point;
|
|
||||||
|
|
||||||
cmanager = clutter_device_manager_get_default ();
|
|
||||||
cdevice = clutter_device_manager_get_core_device (cmanager, CLUTTER_POINTER_DEVICE);
|
|
||||||
|
|
||||||
clutter_input_device_get_coords (cdevice, NULL, &point);
|
|
||||||
if (x)
|
|
||||||
*x = point.x;
|
|
||||||
if (y)
|
|
||||||
*y = point.y;
|
|
||||||
if (mods)
|
|
||||||
*mods = clutter_input_device_get_modifier_state (cdevice);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker,
|
|
||||||
int *x,
|
|
||||||
int *y,
|
|
||||||
ClutterModifierType *mods)
|
|
||||||
{
|
|
||||||
/* We can't use the clutter interface when not running as a wayland compositor,
|
|
||||||
because we need to query the server, rather than using the last cached value.
|
|
||||||
OTOH, on wayland we can't use GDK, because that only sees the events
|
|
||||||
we forward to xwayland.
|
|
||||||
*/
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
get_pointer_position_clutter (x, y, (int*)mods);
|
|
||||||
else
|
|
||||||
get_pointer_position_gdk (x, y, (int*)mods);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_set_pointer_visible (MetaCursorTracker *tracker,
|
|
||||||
gboolean visible)
|
|
||||||
{
|
|
||||||
if (visible == tracker->is_showing)
|
|
||||||
return;
|
|
||||||
tracker->is_showing = visible;
|
|
||||||
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
{
|
|
||||||
sync_cursor (tracker);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (visible)
|
|
||||||
XFixesShowCursor (tracker->screen->display->xdisplay,
|
|
||||||
tracker->screen->xroot);
|
|
||||||
else
|
|
||||||
XFixesHideCursor (tracker->screen->display->xdisplay,
|
|
||||||
tracker->screen->xroot);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_tracker_force_update (MetaCursorTracker *tracker)
|
|
||||||
{
|
|
||||||
g_assert (meta_is_wayland_compositor ());
|
|
||||||
|
|
||||||
update_hw_cursor (tracker);
|
|
||||||
sync_cursor (tracker);
|
|
||||||
}
|
|
||||||
@@ -1,412 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Author: Giovanni Campagna <gcampagn@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "meta-cursor-private.h"
|
|
||||||
|
|
||||||
#include <meta/errors.h>
|
|
||||||
|
|
||||||
#include "display-private.h"
|
|
||||||
#include "screen-private.h"
|
|
||||||
#include "meta-cursor-tracker-private.h" /* for tracker->gbm */
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include <X11/cursorfont.h>
|
|
||||||
#include <X11/extensions/Xfixes.h>
|
|
||||||
#include <X11/Xcursor/Xcursor.h>
|
|
||||||
|
|
||||||
#include <cogl/cogl-wayland-server.h>
|
|
||||||
|
|
||||||
MetaCursorReference *
|
|
||||||
meta_cursor_reference_ref (MetaCursorReference *self)
|
|
||||||
{
|
|
||||||
g_assert (self->ref_count > 0);
|
|
||||||
self->ref_count++;
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_image_free (MetaCursorImage *image)
|
|
||||||
{
|
|
||||||
cogl_object_unref (image->texture);
|
|
||||||
if (image->bo)
|
|
||||||
gbm_bo_destroy (image->bo);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_reference_free (MetaCursorReference *self)
|
|
||||||
{
|
|
||||||
meta_cursor_image_free (&self->image);
|
|
||||||
g_slice_free (MetaCursorReference, self);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_cursor_reference_unref (MetaCursorReference *self)
|
|
||||||
{
|
|
||||||
self->ref_count--;
|
|
||||||
|
|
||||||
if (self->ref_count == 0)
|
|
||||||
meta_cursor_reference_free (self);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
translate_meta_cursor (MetaCursor cursor,
|
|
||||||
guint *glyph_out,
|
|
||||||
const char **name_out)
|
|
||||||
{
|
|
||||||
guint glyph = XC_num_glyphs;
|
|
||||||
const char *name = NULL;
|
|
||||||
|
|
||||||
switch (cursor)
|
|
||||||
{
|
|
||||||
case META_CURSOR_DEFAULT:
|
|
||||||
glyph = XC_left_ptr;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_NORTH_RESIZE:
|
|
||||||
glyph = XC_top_side;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_SOUTH_RESIZE:
|
|
||||||
glyph = XC_bottom_side;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_WEST_RESIZE:
|
|
||||||
glyph = XC_left_side;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_EAST_RESIZE:
|
|
||||||
glyph = XC_right_side;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_SE_RESIZE:
|
|
||||||
glyph = XC_bottom_right_corner;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_SW_RESIZE:
|
|
||||||
glyph = XC_bottom_left_corner;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_NE_RESIZE:
|
|
||||||
glyph = XC_top_right_corner;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_NW_RESIZE:
|
|
||||||
glyph = XC_top_left_corner;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_MOVE_OR_RESIZE_WINDOW:
|
|
||||||
glyph = XC_fleur;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_BUSY:
|
|
||||||
glyph = XC_watch;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_DND_IN_DRAG:
|
|
||||||
name = "dnd-none";
|
|
||||||
break;
|
|
||||||
case META_CURSOR_DND_MOVE:
|
|
||||||
name = "dnd-move";
|
|
||||||
break;
|
|
||||||
case META_CURSOR_DND_COPY:
|
|
||||||
name = "dnd-copy";
|
|
||||||
break;
|
|
||||||
case META_CURSOR_DND_UNSUPPORTED_TARGET:
|
|
||||||
name = "dnd-none";
|
|
||||||
break;
|
|
||||||
case META_CURSOR_POINTING_HAND:
|
|
||||||
glyph = XC_hand2;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_CROSSHAIR:
|
|
||||||
glyph = XC_crosshair;
|
|
||||||
break;
|
|
||||||
case META_CURSOR_IBEAM:
|
|
||||||
glyph = XC_xterm;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
g_assert_not_reached ();
|
|
||||||
glyph = 0; /* silence compiler */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
*glyph_out = glyph;
|
|
||||||
*name_out = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Cursor
|
|
||||||
load_cursor_on_server (MetaDisplay *display,
|
|
||||||
MetaCursor cursor)
|
|
||||||
{
|
|
||||||
Cursor xcursor;
|
|
||||||
guint glyph;
|
|
||||||
const char *name;
|
|
||||||
|
|
||||||
translate_meta_cursor (cursor, &glyph, &name);
|
|
||||||
|
|
||||||
if (name != NULL)
|
|
||||||
xcursor = XcursorLibraryLoadCursor (display->xdisplay, name);
|
|
||||||
else
|
|
||||||
xcursor = XCreateFontCursor (display->xdisplay, glyph);
|
|
||||||
|
|
||||||
return xcursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
Cursor
|
|
||||||
meta_display_create_x_cursor (MetaDisplay *display,
|
|
||||||
MetaCursor cursor)
|
|
||||||
{
|
|
||||||
return load_cursor_on_server (display, cursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
static XcursorImage *
|
|
||||||
load_cursor_on_client (MetaDisplay *display,
|
|
||||||
MetaCursor cursor)
|
|
||||||
{
|
|
||||||
XcursorImage *image;
|
|
||||||
guint glyph;
|
|
||||||
const char *name;
|
|
||||||
const char *theme = XcursorGetTheme (display->xdisplay);
|
|
||||||
int size = XcursorGetDefaultSize (display->xdisplay);
|
|
||||||
|
|
||||||
translate_meta_cursor (cursor, &glyph, &name);
|
|
||||||
|
|
||||||
if (name != NULL)
|
|
||||||
image = XcursorLibraryLoadImage (name, theme, size);
|
|
||||||
else
|
|
||||||
image = XcursorShapeLoadImage (glyph, theme, size);
|
|
||||||
|
|
||||||
return image;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_image_load_gbm_buffer (struct gbm_device *gbm,
|
|
||||||
MetaCursorImage *image,
|
|
||||||
uint8_t *pixels,
|
|
||||||
int width,
|
|
||||||
int height,
|
|
||||||
int rowstride,
|
|
||||||
uint32_t gbm_format)
|
|
||||||
{
|
|
||||||
if (width > 64 || height > 64)
|
|
||||||
{
|
|
||||||
meta_warning ("Invalid theme cursor size (must be at most 64x64)\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gbm_device_is_format_supported (gbm, gbm_format,
|
|
||||||
GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE))
|
|
||||||
{
|
|
||||||
uint8_t buf[4 * 64 * 64];
|
|
||||||
int i;
|
|
||||||
|
|
||||||
image->bo = gbm_bo_create (gbm, 64, 64,
|
|
||||||
gbm_format, GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE);
|
|
||||||
|
|
||||||
memset (buf, 0, sizeof(buf));
|
|
||||||
for (i = 0; i < height; i++)
|
|
||||||
memcpy (buf + i * 4 * 64, pixels + i * rowstride, width * 4);
|
|
||||||
|
|
||||||
gbm_bo_write (image->bo, buf, 64 * 64 * 4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
meta_warning ("HW cursor for format %d not supported\n", gbm_format);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_image_load_from_xcursor_image (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorImage *image,
|
|
||||||
XcursorImage *xc_image)
|
|
||||||
{
|
|
||||||
int width, height, rowstride;
|
|
||||||
CoglPixelFormat cogl_format;
|
|
||||||
uint32_t gbm_format;
|
|
||||||
ClutterBackend *clutter_backend;
|
|
||||||
CoglContext *cogl_context;
|
|
||||||
|
|
||||||
width = xc_image->width;
|
|
||||||
height = xc_image->height;
|
|
||||||
rowstride = width * 4;
|
|
||||||
|
|
||||||
gbm_format = GBM_FORMAT_ARGB8888;
|
|
||||||
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
|
||||||
cogl_format = COGL_PIXEL_FORMAT_BGRA_8888;
|
|
||||||
#else
|
|
||||||
cogl_format = COGL_PIXEL_FORMAT_ARGB_8888;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
image->hot_x = xc_image->xhot;
|
|
||||||
image->hot_y = xc_image->yhot;
|
|
||||||
|
|
||||||
clutter_backend = clutter_get_default_backend ();
|
|
||||||
cogl_context = clutter_backend_get_cogl_context (clutter_backend);
|
|
||||||
image->texture = cogl_texture_2d_new_from_data (cogl_context,
|
|
||||||
width, height,
|
|
||||||
cogl_format,
|
|
||||||
rowstride,
|
|
||||||
(uint8_t *) xc_image->pixels,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
if (tracker->gbm)
|
|
||||||
meta_cursor_image_load_gbm_buffer (tracker->gbm,
|
|
||||||
image,
|
|
||||||
(uint8_t *) xc_image->pixels,
|
|
||||||
width, height, rowstride,
|
|
||||||
gbm_format);
|
|
||||||
}
|
|
||||||
|
|
||||||
MetaCursorReference *
|
|
||||||
meta_cursor_reference_from_theme (MetaCursorTracker *tracker,
|
|
||||||
MetaCursor cursor)
|
|
||||||
{
|
|
||||||
MetaCursorReference *self;
|
|
||||||
XcursorImage *image;
|
|
||||||
|
|
||||||
if (tracker->theme_cursors[cursor])
|
|
||||||
return meta_cursor_reference_ref (tracker->theme_cursors[cursor]);
|
|
||||||
|
|
||||||
image = load_cursor_on_client (tracker->screen->display, cursor);
|
|
||||||
if (!image)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
self = g_slice_new0 (MetaCursorReference);
|
|
||||||
self->ref_count = 1;
|
|
||||||
meta_cursor_image_load_from_xcursor_image (tracker, &self->image, image);
|
|
||||||
|
|
||||||
XcursorImageDestroy (image);
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_cursor_image_load_from_buffer (MetaCursorTracker *tracker,
|
|
||||||
MetaCursorImage *image,
|
|
||||||
struct wl_resource *buffer,
|
|
||||||
int hot_x,
|
|
||||||
int hot_y)
|
|
||||||
{
|
|
||||||
ClutterBackend *backend;
|
|
||||||
CoglContext *cogl_context;
|
|
||||||
struct wl_shm_buffer *shm_buffer;
|
|
||||||
uint32_t gbm_format;
|
|
||||||
int width, height;
|
|
||||||
|
|
||||||
image->hot_x = hot_x;
|
|
||||||
image->hot_y = hot_y;
|
|
||||||
|
|
||||||
backend = clutter_get_default_backend ();
|
|
||||||
cogl_context = clutter_backend_get_cogl_context (backend);
|
|
||||||
|
|
||||||
image->texture = cogl_wayland_texture_2d_new_from_buffer (cogl_context, buffer, NULL);
|
|
||||||
|
|
||||||
width = cogl_texture_get_width (COGL_TEXTURE (image->texture));
|
|
||||||
height = cogl_texture_get_height (COGL_TEXTURE (image->texture));
|
|
||||||
|
|
||||||
shm_buffer = wl_shm_buffer_get (buffer);
|
|
||||||
if (shm_buffer)
|
|
||||||
{
|
|
||||||
if (tracker->gbm)
|
|
||||||
{
|
|
||||||
int rowstride = wl_shm_buffer_get_stride (shm_buffer);
|
|
||||||
|
|
||||||
switch (wl_shm_buffer_get_format (shm_buffer))
|
|
||||||
{
|
|
||||||
#if G_BYTE_ORDER == G_BIG_ENDIAN
|
|
||||||
case WL_SHM_FORMAT_ARGB8888:
|
|
||||||
gbm_format = GBM_FORMAT_ARGB8888;
|
|
||||||
break;
|
|
||||||
case WL_SHM_FORMAT_XRGB8888:
|
|
||||||
gbm_format = GBM_FORMAT_XRGB8888;
|
|
||||||
break;
|
|
||||||
#else
|
|
||||||
case WL_SHM_FORMAT_ARGB8888:
|
|
||||||
gbm_format = GBM_FORMAT_ARGB8888;
|
|
||||||
break;
|
|
||||||
case WL_SHM_FORMAT_XRGB8888:
|
|
||||||
gbm_format = GBM_FORMAT_XRGB8888;
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
default:
|
|
||||||
g_warn_if_reached ();
|
|
||||||
gbm_format = GBM_FORMAT_ARGB8888;
|
|
||||||
}
|
|
||||||
|
|
||||||
meta_cursor_image_load_gbm_buffer (tracker->gbm,
|
|
||||||
image,
|
|
||||||
(uint8_t *) wl_shm_buffer_get_data (shm_buffer),
|
|
||||||
width, height, rowstride,
|
|
||||||
gbm_format);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* HW cursors must be 64x64, but 64x64 is huge, and no cursor theme actually uses
|
|
||||||
that, so themed cursors must be padded with transparent pixels to fill the
|
|
||||||
overlay. This is trivial if we have CPU access to the data, but it's not
|
|
||||||
possible if the buffer is in GPU memory (and possibly tiled too), so if we
|
|
||||||
don't get the right size, we fallback to GL.
|
|
||||||
*/
|
|
||||||
if (width != 64 || height != 64)
|
|
||||||
{
|
|
||||||
meta_warning ("Invalid cursor size (must be 64x64), falling back to software (GL) cursors\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tracker->gbm)
|
|
||||||
{
|
|
||||||
image->bo = gbm_bo_import (tracker->gbm, GBM_BO_IMPORT_WL_BUFFER,
|
|
||||||
buffer, GBM_BO_USE_CURSOR_64X64);
|
|
||||||
if (!image->bo)
|
|
||||||
meta_warning ("Importing HW cursor from wl_buffer failed\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MetaCursorReference *
|
|
||||||
meta_cursor_reference_from_buffer (MetaCursorTracker *tracker,
|
|
||||||
struct wl_resource *buffer,
|
|
||||||
int hot_x,
|
|
||||||
int hot_y)
|
|
||||||
{
|
|
||||||
MetaCursorReference *self;
|
|
||||||
|
|
||||||
self = g_slice_new0 (MetaCursorReference);
|
|
||||||
self->ref_count = 1;
|
|
||||||
meta_cursor_image_load_from_buffer (tracker, &self->image, buffer, hot_x, hot_y);
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
CoglTexture *
|
|
||||||
meta_cursor_reference_get_cogl_texture (MetaCursorReference *cursor,
|
|
||||||
int *hot_x,
|
|
||||||
int *hot_y)
|
|
||||||
{
|
|
||||||
if (hot_x)
|
|
||||||
*hot_x = cursor->image.hot_x;
|
|
||||||
if (hot_y)
|
|
||||||
*hot_y = cursor->image.hot_y;
|
|
||||||
return COGL_TEXTURE (cursor->image.texture);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct gbm_bo *
|
|
||||||
meta_cursor_reference_get_gbm_bo (MetaCursorReference *cursor,
|
|
||||||
int *hot_x,
|
|
||||||
int *hot_y)
|
|
||||||
{
|
|
||||||
if (hot_x)
|
|
||||||
*hot_x = cursor->image.hot_x;
|
|
||||||
if (hot_y)
|
|
||||||
*hot_y = cursor->image.hot_y;
|
|
||||||
return cursor->image.bo;
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Author: Giovanni Campagna <gcampagn@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_CURSOR_H
|
|
||||||
#define META_CURSOR_H
|
|
||||||
|
|
||||||
typedef struct _MetaCursorReference MetaCursorReference;
|
|
||||||
|
|
||||||
MetaCursorReference * meta_cursor_reference_ref (MetaCursorReference *cursor);
|
|
||||||
void meta_cursor_reference_unref (MetaCursorReference *cursor);
|
|
||||||
|
|
||||||
#include <meta/meta-cursor-tracker.h>
|
|
||||||
#include <meta/common.h>
|
|
||||||
#include <wayland-server.h>
|
|
||||||
|
|
||||||
MetaCursorReference * meta_cursor_reference_from_theme (MetaCursorTracker *tracker,
|
|
||||||
MetaCursor cursor);
|
|
||||||
|
|
||||||
MetaCursorReference * meta_cursor_reference_from_buffer (MetaCursorTracker *tracker,
|
|
||||||
struct wl_resource *buffer,
|
|
||||||
int hot_x,
|
|
||||||
int hot_y);
|
|
||||||
|
|
||||||
#endif /* META_CURSOR_H */
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2013 Red Hat Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* This file is shared between mutter (src/core/meta-display-config-shared.h)
|
|
||||||
and gnome-desktop (libgnome-desktop/meta-xrandr-shared.h).
|
|
||||||
|
|
||||||
The canonical place for all changes is mutter.
|
|
||||||
|
|
||||||
There should be no includes in this file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_DISPLAY_CONFIG_SHARED_H
|
|
||||||
#define META_DISPLAY_CONFIG_SHARED_H
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
META_POWER_SAVE_UNSUPPORTED = -1,
|
|
||||||
META_POWER_SAVE_ON = 0,
|
|
||||||
META_POWER_SAVE_STANDBY,
|
|
||||||
META_POWER_SAVE_SUSPEND,
|
|
||||||
META_POWER_SAVE_OFF,
|
|
||||||
} MetaPowerSave;
|
|
||||||
|
|
||||||
#endif /* META_DISPLAY_CONFIG_SHARED_H */
|
|
||||||
@@ -1,286 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
|
|
||||||
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "meta-idle-monitor-dbus.h"
|
|
||||||
#include <meta/meta-idle-monitor.h>
|
|
||||||
#include "meta-dbus-idle-monitor.h"
|
|
||||||
|
|
||||||
#include <clutter/clutter.h>
|
|
||||||
#include <meta/util.h>
|
|
||||||
#include <meta/main.h> /* for meta_get_replace_current_wm () */
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
handle_get_idletime (MetaDBusIdleMonitor *skeleton,
|
|
||||||
GDBusMethodInvocation *invocation,
|
|
||||||
MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
guint64 idletime;
|
|
||||||
|
|
||||||
idletime = meta_idle_monitor_get_idletime (monitor);
|
|
||||||
meta_dbus_idle_monitor_complete_get_idletime (skeleton, invocation, idletime);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
MetaDBusIdleMonitor *dbus_monitor;
|
|
||||||
MetaIdleMonitor *monitor;
|
|
||||||
char *dbus_name;
|
|
||||||
guint watch_id;
|
|
||||||
guint name_watcher_id;
|
|
||||||
} DBusWatch;
|
|
||||||
|
|
||||||
static void
|
|
||||||
destroy_dbus_watch (gpointer data)
|
|
||||||
{
|
|
||||||
DBusWatch *watch = data;
|
|
||||||
|
|
||||||
g_object_unref (watch->dbus_monitor);
|
|
||||||
g_object_unref (watch->monitor);
|
|
||||||
g_free (watch->dbus_name);
|
|
||||||
g_bus_unwatch_name (watch->name_watcher_id);
|
|
||||||
|
|
||||||
g_slice_free (DBusWatch, watch);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
dbus_idle_callback (MetaIdleMonitor *monitor,
|
|
||||||
guint watch_id,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
DBusWatch *watch = user_data;
|
|
||||||
GDBusInterfaceSkeleton *skeleton = G_DBUS_INTERFACE_SKELETON (watch->dbus_monitor);
|
|
||||||
|
|
||||||
g_dbus_connection_emit_signal (g_dbus_interface_skeleton_get_connection (skeleton),
|
|
||||||
watch->dbus_name,
|
|
||||||
g_dbus_interface_skeleton_get_object_path (skeleton),
|
|
||||||
"org.gnome.Mutter.IdleMonitor",
|
|
||||||
"WatchFired",
|
|
||||||
g_variant_new ("(u)", watch_id),
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
name_vanished_callback (GDBusConnection *connection,
|
|
||||||
const char *name,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
DBusWatch *watch = user_data;
|
|
||||||
|
|
||||||
meta_idle_monitor_remove_watch (watch->monitor, watch->watch_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static DBusWatch *
|
|
||||||
make_dbus_watch (MetaDBusIdleMonitor *skeleton,
|
|
||||||
GDBusMethodInvocation *invocation,
|
|
||||||
MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
DBusWatch *watch;
|
|
||||||
|
|
||||||
watch = g_slice_new (DBusWatch);
|
|
||||||
watch->dbus_monitor = g_object_ref (skeleton);
|
|
||||||
watch->monitor = g_object_ref (monitor);
|
|
||||||
watch->dbus_name = g_strdup (g_dbus_method_invocation_get_sender (invocation));
|
|
||||||
watch->name_watcher_id = g_bus_watch_name_on_connection (g_dbus_method_invocation_get_connection (invocation),
|
|
||||||
watch->dbus_name,
|
|
||||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
|
||||||
NULL, /* appeared */
|
|
||||||
name_vanished_callback,
|
|
||||||
watch, NULL);
|
|
||||||
|
|
||||||
return watch;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
handle_add_idle_watch (MetaDBusIdleMonitor *skeleton,
|
|
||||||
GDBusMethodInvocation *invocation,
|
|
||||||
guint64 interval,
|
|
||||||
MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
DBusWatch *watch;
|
|
||||||
|
|
||||||
watch = make_dbus_watch (skeleton, invocation, monitor);
|
|
||||||
watch->watch_id = meta_idle_monitor_add_idle_watch (monitor, interval,
|
|
||||||
dbus_idle_callback, watch, destroy_dbus_watch);
|
|
||||||
|
|
||||||
meta_dbus_idle_monitor_complete_add_idle_watch (skeleton, invocation, watch->watch_id);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
handle_add_user_active_watch (MetaDBusIdleMonitor *skeleton,
|
|
||||||
GDBusMethodInvocation *invocation,
|
|
||||||
MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
DBusWatch *watch;
|
|
||||||
|
|
||||||
watch = make_dbus_watch (skeleton, invocation, monitor);
|
|
||||||
watch->watch_id = meta_idle_monitor_add_user_active_watch (monitor,
|
|
||||||
dbus_idle_callback, watch,
|
|
||||||
destroy_dbus_watch);
|
|
||||||
|
|
||||||
meta_dbus_idle_monitor_complete_add_user_active_watch (skeleton, invocation, watch->watch_id);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
handle_remove_watch (MetaDBusIdleMonitor *skeleton,
|
|
||||||
GDBusMethodInvocation *invocation,
|
|
||||||
guint id,
|
|
||||||
MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
meta_idle_monitor_remove_watch (monitor, id);
|
|
||||||
meta_dbus_idle_monitor_complete_remove_watch (skeleton, invocation);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
create_monitor_skeleton (GDBusObjectManagerServer *manager,
|
|
||||||
MetaIdleMonitor *monitor,
|
|
||||||
const char *path)
|
|
||||||
{
|
|
||||||
MetaDBusIdleMonitor *skeleton;
|
|
||||||
MetaDBusObjectSkeleton *object;
|
|
||||||
|
|
||||||
skeleton = meta_dbus_idle_monitor_skeleton_new ();
|
|
||||||
g_signal_connect_object (skeleton, "handle-add-idle-watch",
|
|
||||||
G_CALLBACK (handle_add_idle_watch), monitor, 0);
|
|
||||||
g_signal_connect_object (skeleton, "handle-add-user-active-watch",
|
|
||||||
G_CALLBACK (handle_add_user_active_watch), monitor, 0);
|
|
||||||
g_signal_connect_object (skeleton, "handle-remove-watch",
|
|
||||||
G_CALLBACK (handle_remove_watch), monitor, 0);
|
|
||||||
g_signal_connect_object (skeleton, "handle-get-idletime",
|
|
||||||
G_CALLBACK (handle_get_idletime), monitor, 0);
|
|
||||||
|
|
||||||
object = meta_dbus_object_skeleton_new (path);
|
|
||||||
meta_dbus_object_skeleton_set_idle_monitor (object, skeleton);
|
|
||||||
|
|
||||||
g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_device_added (ClutterDeviceManager *device_manager,
|
|
||||||
ClutterInputDevice *device,
|
|
||||||
GDBusObjectManagerServer *manager)
|
|
||||||
{
|
|
||||||
|
|
||||||
MetaIdleMonitor *monitor;
|
|
||||||
int device_id;
|
|
||||||
char *path;
|
|
||||||
|
|
||||||
device_id = clutter_input_device_get_device_id (device);
|
|
||||||
monitor = meta_idle_monitor_get_for_device (device_id);
|
|
||||||
path = g_strdup_printf ("/org/gnome/Mutter/IdleMonitor/Device%d", device_id);
|
|
||||||
|
|
||||||
create_monitor_skeleton (manager, monitor, path);
|
|
||||||
g_free (path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_device_removed (ClutterDeviceManager *device_manager,
|
|
||||||
ClutterInputDevice *device,
|
|
||||||
GDBusObjectManagerServer *manager)
|
|
||||||
{
|
|
||||||
int device_id;
|
|
||||||
char *path;
|
|
||||||
|
|
||||||
device_id = clutter_input_device_get_device_id (device);
|
|
||||||
path = g_strdup_printf ("/org/gnome/Mutter/IdleMonitor/Device%d", device_id);
|
|
||||||
g_dbus_object_manager_server_unexport (manager, path);
|
|
||||||
g_free (path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_bus_acquired (GDBusConnection *connection,
|
|
||||||
const char *name,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
GDBusObjectManagerServer *manager;
|
|
||||||
ClutterDeviceManager *device_manager;
|
|
||||||
MetaIdleMonitor *monitor;
|
|
||||||
GSList *devices, *iter;
|
|
||||||
char *path;
|
|
||||||
|
|
||||||
manager = g_dbus_object_manager_server_new ("/org/gnome/Mutter/IdleMonitor");
|
|
||||||
|
|
||||||
/* We never clear the core monitor, as that's supposed to cumulate idle times from
|
|
||||||
all devices */
|
|
||||||
monitor = meta_idle_monitor_get_core ();
|
|
||||||
path = g_strdup ("/org/gnome/Mutter/IdleMonitor/Core");
|
|
||||||
create_monitor_skeleton (manager, monitor, path);
|
|
||||||
g_free (path);
|
|
||||||
|
|
||||||
device_manager = clutter_device_manager_get_default ();
|
|
||||||
devices = clutter_device_manager_list_devices (device_manager);
|
|
||||||
|
|
||||||
for (iter = devices; iter; iter = iter->next)
|
|
||||||
on_device_added (device_manager, iter->data, manager);
|
|
||||||
|
|
||||||
g_slist_free (devices);
|
|
||||||
|
|
||||||
g_signal_connect_object (device_manager, "device-added",
|
|
||||||
G_CALLBACK (on_device_added), manager, 0);
|
|
||||||
g_signal_connect_object (device_manager, "device-removed",
|
|
||||||
G_CALLBACK (on_device_removed), manager, 0);
|
|
||||||
|
|
||||||
g_dbus_object_manager_server_set_connection (manager, connection);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_name_acquired (GDBusConnection *connection,
|
|
||||||
const char *name,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
meta_verbose ("Acquired name %s\n", name);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_name_lost (GDBusConnection *connection,
|
|
||||||
const char *name,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
meta_verbose ("Lost or failed to acquire name %s\n", name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_idle_monitor_init_dbus (void)
|
|
||||||
{
|
|
||||||
static int dbus_name_id;
|
|
||||||
|
|
||||||
if (dbus_name_id > 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
dbus_name_id = g_bus_own_name (G_BUS_TYPE_SESSION,
|
|
||||||
"org.gnome.Mutter.IdleMonitor",
|
|
||||||
G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT |
|
|
||||||
(meta_get_replace_current_wm () ?
|
|
||||||
G_BUS_NAME_OWNER_FLAGS_REPLACE : 0),
|
|
||||||
on_bus_acquired,
|
|
||||||
on_name_acquired,
|
|
||||||
on_name_lost,
|
|
||||||
NULL, NULL);
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
|
|
||||||
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_IDLE_MONITOR_DBUS_H
|
|
||||||
#define META_IDLE_MONITOR_DBUS_H
|
|
||||||
|
|
||||||
void meta_idle_monitor_init_dbus (void);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
|
|
||||||
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_IDLE_MONITOR_PRIVATE_H
|
|
||||||
#define META_IDLE_MONITOR_PRIVATE_H
|
|
||||||
|
|
||||||
#include <meta/meta-idle-monitor.h>
|
|
||||||
#include "display-private.h"
|
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/extensions/sync.h>
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
MetaIdleMonitor *monitor;
|
|
||||||
guint id;
|
|
||||||
MetaIdleMonitorWatchFunc callback;
|
|
||||||
gpointer user_data;
|
|
||||||
GDestroyNotify notify;
|
|
||||||
guint64 timeout_msec;
|
|
||||||
int idle_source_id;
|
|
||||||
} MetaIdleMonitorWatch;
|
|
||||||
|
|
||||||
struct _MetaIdleMonitor
|
|
||||||
{
|
|
||||||
GObject parent_instance;
|
|
||||||
|
|
||||||
GHashTable *watches;
|
|
||||||
int device_id;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaIdleMonitorClass
|
|
||||||
{
|
|
||||||
GObjectClass parent_class;
|
|
||||||
|
|
||||||
gint64 (*get_idletime) (MetaIdleMonitor *monitor);
|
|
||||||
MetaIdleMonitorWatch * (*make_watch) (MetaIdleMonitor *monitor,
|
|
||||||
guint64 timeout_msec,
|
|
||||||
MetaIdleMonitorWatchFunc callback,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify notify);
|
|
||||||
};
|
|
||||||
|
|
||||||
void _meta_idle_monitor_watch_fire (MetaIdleMonitorWatch *watch);
|
|
||||||
|
|
||||||
#endif /* META_IDLE_MONITOR_PRIVATE_H */
|
|
||||||
@@ -1,367 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
|
|
||||||
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SECTION:idle-monitor
|
|
||||||
* @title: MetaIdleMonitor
|
|
||||||
* @short_description: Mutter idle counter (similar to X's IDLETIME)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <clutter/clutter.h>
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/extensions/sync.h>
|
|
||||||
|
|
||||||
#include <meta/util.h>
|
|
||||||
#include <meta/main.h>
|
|
||||||
#include <meta/meta-idle-monitor.h>
|
|
||||||
#include "meta-idle-monitor-private.h"
|
|
||||||
#include "meta-idle-monitor-dbus.h"
|
|
||||||
#include "backends/x11/meta-idle-monitor-xsync.h"
|
|
||||||
#include "backends/native/meta-idle-monitor-native.h"
|
|
||||||
|
|
||||||
G_STATIC_ASSERT(sizeof(unsigned long) == sizeof(gpointer));
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
PROP_DEVICE_ID,
|
|
||||||
PROP_LAST,
|
|
||||||
};
|
|
||||||
|
|
||||||
static GParamSpec *obj_props[PROP_LAST];
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaIdleMonitor, meta_idle_monitor, G_TYPE_OBJECT)
|
|
||||||
|
|
||||||
static MetaIdleMonitor *device_monitors[256];
|
|
||||||
static int device_id_max;
|
|
||||||
|
|
||||||
void
|
|
||||||
_meta_idle_monitor_watch_fire (MetaIdleMonitorWatch *watch)
|
|
||||||
{
|
|
||||||
MetaIdleMonitor *monitor;
|
|
||||||
guint id;
|
|
||||||
gboolean is_user_active_watch;
|
|
||||||
|
|
||||||
monitor = watch->monitor;
|
|
||||||
g_object_ref (monitor);
|
|
||||||
|
|
||||||
if (watch->idle_source_id)
|
|
||||||
{
|
|
||||||
g_source_remove (watch->idle_source_id);
|
|
||||||
watch->idle_source_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = watch->id;
|
|
||||||
is_user_active_watch = (watch->timeout_msec == 0);
|
|
||||||
|
|
||||||
if (watch->callback)
|
|
||||||
watch->callback (monitor, id, watch->user_data);
|
|
||||||
|
|
||||||
if (is_user_active_watch)
|
|
||||||
meta_idle_monitor_remove_watch (monitor, id);
|
|
||||||
|
|
||||||
g_object_unref (monitor);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_dispose (GObject *object)
|
|
||||||
{
|
|
||||||
MetaIdleMonitor *monitor = META_IDLE_MONITOR (object);
|
|
||||||
|
|
||||||
g_clear_pointer (&monitor->watches, g_hash_table_destroy);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_idle_monitor_parent_class)->dispose (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_get_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
MetaIdleMonitor *monitor = META_IDLE_MONITOR (object);
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_DEVICE_ID:
|
|
||||||
g_value_set_int (value, monitor->device_id);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_set_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
MetaIdleMonitor *monitor = META_IDLE_MONITOR (object);
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_DEVICE_ID:
|
|
||||||
monitor->device_id = g_value_get_int (value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_class_init (MetaIdleMonitorClass *klass)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
||||||
|
|
||||||
object_class->dispose = meta_idle_monitor_dispose;
|
|
||||||
object_class->get_property = meta_idle_monitor_get_property;
|
|
||||||
object_class->set_property = meta_idle_monitor_set_property;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MetaIdleMonitor:device_id:
|
|
||||||
*
|
|
||||||
* The device to listen to idletime on.
|
|
||||||
*/
|
|
||||||
obj_props[PROP_DEVICE_ID] =
|
|
||||||
g_param_spec_int ("device-id",
|
|
||||||
"Device ID",
|
|
||||||
"The device to listen to idletime on",
|
|
||||||
0, 255, 0,
|
|
||||||
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
|
|
||||||
g_object_class_install_property (object_class, PROP_DEVICE_ID, obj_props[PROP_DEVICE_ID]);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_init (MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static GType
|
|
||||||
get_idle_monitor_type (void)
|
|
||||||
{
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
return META_TYPE_IDLE_MONITOR_NATIVE;
|
|
||||||
else
|
|
||||||
return META_TYPE_IDLE_MONITOR_XSYNC;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
ensure_device_monitor (int device_id)
|
|
||||||
{
|
|
||||||
if (device_monitors[device_id])
|
|
||||||
return;
|
|
||||||
|
|
||||||
device_monitors[device_id] = g_object_new (get_idle_monitor_type (),
|
|
||||||
"device-id", device_id,
|
|
||||||
NULL);
|
|
||||||
device_id_max = MAX (device_id_max, device_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FIXME -- destroy device monitors at some point */
|
|
||||||
G_GNUC_UNUSED static void
|
|
||||||
destroy_device_monitor (int device_id)
|
|
||||||
{
|
|
||||||
g_clear_object (&device_monitors[device_id]);
|
|
||||||
if (device_id == device_id_max)
|
|
||||||
device_id_max--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_idle_monitor_get_core:
|
|
||||||
*
|
|
||||||
* Returns: (transfer none): the #MetaIdleMonitor that tracks the server-global
|
|
||||||
* idletime for all devices. To track device-specific idletime,
|
|
||||||
* use meta_idle_monitor_get_for_device().
|
|
||||||
*/
|
|
||||||
MetaIdleMonitor *
|
|
||||||
meta_idle_monitor_get_core (void)
|
|
||||||
{
|
|
||||||
ensure_device_monitor (0);
|
|
||||||
return device_monitors[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_idle_monitor_get_for_device:
|
|
||||||
* @device_id: the device to get the idle time for.
|
|
||||||
*
|
|
||||||
* Returns: (transfer none): a new #MetaIdleMonitor that tracks the
|
|
||||||
* device-specific idletime for @device. To track server-global idletime
|
|
||||||
* for all devices, use meta_idle_monitor_get_core().
|
|
||||||
*/
|
|
||||||
MetaIdleMonitor *
|
|
||||||
meta_idle_monitor_get_for_device (int device_id)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (device_id > 0 && device_id < 256, NULL);
|
|
||||||
|
|
||||||
ensure_device_monitor (device_id);
|
|
||||||
return device_monitors[device_id];
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaIdleMonitorWatch *
|
|
||||||
make_watch (MetaIdleMonitor *monitor,
|
|
||||||
guint64 timeout_msec,
|
|
||||||
MetaIdleMonitorWatchFunc callback,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify notify)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatch *watch;
|
|
||||||
|
|
||||||
watch = META_IDLE_MONITOR_GET_CLASS (monitor)->make_watch (monitor,
|
|
||||||
timeout_msec,
|
|
||||||
callback,
|
|
||||||
user_data,
|
|
||||||
notify);
|
|
||||||
|
|
||||||
g_hash_table_insert (monitor->watches,
|
|
||||||
GUINT_TO_POINTER (watch->id),
|
|
||||||
watch);
|
|
||||||
return watch;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_idle_monitor_add_idle_watch:
|
|
||||||
* @monitor: A #MetaIdleMonitor
|
|
||||||
* @interval_msec: The idletime interval, in milliseconds
|
|
||||||
* @callback: (allow-none): The callback to call when the user has
|
|
||||||
* accumulated @interval_msec milliseconds of idle time.
|
|
||||||
* @user_data: (allow-none): The user data to pass to the callback
|
|
||||||
* @notify: A #GDestroyNotify
|
|
||||||
*
|
|
||||||
* Returns: a watch id
|
|
||||||
*
|
|
||||||
* Adds a watch for a specific idle time. The callback will be called
|
|
||||||
* when the user has accumulated @interval_msec milliseconds of idle time.
|
|
||||||
* This function will return an ID that can either be passed to
|
|
||||||
* meta_idle_monitor_remove_watch(), or can be used to tell idle time
|
|
||||||
* watches apart if you have more than one.
|
|
||||||
*
|
|
||||||
* Also note that this function will only care about positive transitions
|
|
||||||
* (user's idle time exceeding a certain time). If you want to know about
|
|
||||||
* when the user has become active, use
|
|
||||||
* meta_idle_monitor_add_user_active_watch().
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
meta_idle_monitor_add_idle_watch (MetaIdleMonitor *monitor,
|
|
||||||
guint64 interval_msec,
|
|
||||||
MetaIdleMonitorWatchFunc callback,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify notify)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatch *watch;
|
|
||||||
|
|
||||||
g_return_val_if_fail (META_IS_IDLE_MONITOR (monitor), 0);
|
|
||||||
g_return_val_if_fail (interval_msec > 0, 0);
|
|
||||||
|
|
||||||
watch = make_watch (monitor,
|
|
||||||
interval_msec,
|
|
||||||
callback,
|
|
||||||
user_data,
|
|
||||||
notify);
|
|
||||||
|
|
||||||
return watch->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_idle_monitor_add_user_active_watch:
|
|
||||||
* @monitor: A #MetaIdleMonitor
|
|
||||||
* @callback: (allow-none): The callback to call when the user is
|
|
||||||
* active again.
|
|
||||||
* @user_data: (allow-none): The user data to pass to the callback
|
|
||||||
* @notify: A #GDestroyNotify
|
|
||||||
*
|
|
||||||
* Returns: a watch id
|
|
||||||
*
|
|
||||||
* Add a one-time watch to know when the user is active again.
|
|
||||||
* Note that this watch is one-time and will de-activate after the
|
|
||||||
* function is called, for efficiency purposes. It's most convenient
|
|
||||||
* to call this when an idle watch, as added by
|
|
||||||
* meta_idle_monitor_add_idle_watch(), has triggered.
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
meta_idle_monitor_add_user_active_watch (MetaIdleMonitor *monitor,
|
|
||||||
MetaIdleMonitorWatchFunc callback,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify notify)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatch *watch;
|
|
||||||
|
|
||||||
g_return_val_if_fail (META_IS_IDLE_MONITOR (monitor), 0);
|
|
||||||
|
|
||||||
watch = make_watch (monitor,
|
|
||||||
0,
|
|
||||||
callback,
|
|
||||||
user_data,
|
|
||||||
notify);
|
|
||||||
|
|
||||||
return watch->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_idle_monitor_remove_watch:
|
|
||||||
* @monitor: A #MetaIdleMonitor
|
|
||||||
* @id: A watch ID
|
|
||||||
*
|
|
||||||
* Removes an idle time watcher, previously added by
|
|
||||||
* meta_idle_monitor_add_idle_watch() or
|
|
||||||
* meta_idle_monitor_add_user_active_watch().
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
meta_idle_monitor_remove_watch (MetaIdleMonitor *monitor,
|
|
||||||
guint id)
|
|
||||||
{
|
|
||||||
g_return_if_fail (META_IS_IDLE_MONITOR (monitor));
|
|
||||||
|
|
||||||
g_object_ref (monitor);
|
|
||||||
g_hash_table_remove (monitor->watches,
|
|
||||||
GUINT_TO_POINTER (id));
|
|
||||||
g_object_unref (monitor);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_idle_monitor_get_idletime:
|
|
||||||
* @monitor: A #MetaIdleMonitor
|
|
||||||
*
|
|
||||||
* Returns: The current idle time, in milliseconds, or -1 for not supported
|
|
||||||
*/
|
|
||||||
gint64
|
|
||||||
meta_idle_monitor_get_idletime (MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
return META_IDLE_MONITOR_GET_CLASS (monitor)->get_idletime (monitor);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_idle_monitor_xsync_handle_xevent_all (XEvent *xevent)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (meta_is_wayland_compositor ())
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (i = 0; i <= device_id_max; i++)
|
|
||||||
if (device_monitors[i])
|
|
||||||
meta_idle_monitor_xsync_handle_xevent (device_monitors[i], (XSyncAlarmNotifyEvent*)xevent);
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,55 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2001 Havoc Pennington
|
|
||||||
* Copyright (C) 2003 Rob Adams
|
|
||||||
* Copyright (C) 2004-2006 Elijah Newren
|
|
||||||
* Copyright (C) 2013 Red Hat Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_MONITOR_CONFIG_H
|
|
||||||
#define META_MONITOR_CONFIG_H
|
|
||||||
|
|
||||||
#include "meta-monitor-manager.h"
|
|
||||||
|
|
||||||
#define META_TYPE_MONITOR_CONFIG (meta_monitor_config_get_type ())
|
|
||||||
#define META_MONITOR_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_MONITOR_CONFIG, MetaMonitorConfig))
|
|
||||||
#define META_MONITOR_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_MONITOR_CONFIG, MetaMonitorConfigClass))
|
|
||||||
#define META_IS_MONITOR_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_MONITOR_CONFIG))
|
|
||||||
#define META_IS_MONITOR_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_MONITOR_CONFIG))
|
|
||||||
#define META_MONITOR_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_MONITOR_CONFIG, MetaMonitorConfigClass))
|
|
||||||
|
|
||||||
GType meta_monitor_config_get_type (void) G_GNUC_CONST;
|
|
||||||
|
|
||||||
MetaMonitorConfig *meta_monitor_config_new (void);
|
|
||||||
|
|
||||||
gboolean meta_monitor_config_match_current (MetaMonitorConfig *config,
|
|
||||||
MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
gboolean meta_monitor_config_apply_stored (MetaMonitorConfig *config,
|
|
||||||
MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
void meta_monitor_config_make_default (MetaMonitorConfig *config,
|
|
||||||
MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
void meta_monitor_config_update_current (MetaMonitorConfig *config,
|
|
||||||
MetaMonitorManager *manager);
|
|
||||||
void meta_monitor_config_make_persistent (MetaMonitorConfig *config);
|
|
||||||
|
|
||||||
void meta_monitor_config_restore_previous (MetaMonitorConfig *config,
|
|
||||||
MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
#endif /* META_MONITOR_CONFIG_H */
|
|
||||||
@@ -1,227 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2001, 2002 Havoc Pennington
|
|
||||||
* Copyright (C) 2002, 2003 Red Hat Inc.
|
|
||||||
* Some ICCCM manager selection code derived from fvwm2,
|
|
||||||
* Copyright (C) 2001 Dominik Vogt, Matthias Clasen, and fvwm2 team
|
|
||||||
* Copyright (C) 2003 Rob Adams
|
|
||||||
* Copyright (C) 2004-2006 Elijah Newren
|
|
||||||
* Copyright (C) 2013 Red Hat Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "meta-monitor-manager-dummy.h"
|
|
||||||
|
|
||||||
#define ALL_WL_TRANSFORMS ((1 << (WL_OUTPUT_TRANSFORM_FLIPPED_270 + 1)) - 1)
|
|
||||||
|
|
||||||
struct _MetaMonitorManagerDummy
|
|
||||||
{
|
|
||||||
MetaMonitorManager parent_instance;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaMonitorManagerDummyClass
|
|
||||||
{
|
|
||||||
MetaMonitorManagerClass parent_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaMonitorManagerDummy, meta_monitor_manager_dummy, META_TYPE_MONITOR_MANAGER);
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_dummy_read_current (MetaMonitorManager *manager)
|
|
||||||
{
|
|
||||||
manager->max_screen_width = 65535;
|
|
||||||
manager->max_screen_height = 65535;
|
|
||||||
manager->screen_width = 1024;
|
|
||||||
manager->screen_height = 768;
|
|
||||||
|
|
||||||
manager->modes = g_new0 (MetaMonitorMode, 1);
|
|
||||||
manager->n_modes = 1;
|
|
||||||
|
|
||||||
manager->modes[0].mode_id = 0;
|
|
||||||
manager->modes[0].width = 1024;
|
|
||||||
manager->modes[0].height = 768;
|
|
||||||
manager->modes[0].refresh_rate = 60.0;
|
|
||||||
|
|
||||||
manager->crtcs = g_new0 (MetaCRTC, 1);
|
|
||||||
manager->n_crtcs = 1;
|
|
||||||
|
|
||||||
manager->crtcs[0].crtc_id = 1;
|
|
||||||
manager->crtcs[0].rect.x = 0;
|
|
||||||
manager->crtcs[0].rect.y = 0;
|
|
||||||
manager->crtcs[0].rect.width = manager->modes[0].width;
|
|
||||||
manager->crtcs[0].rect.height = manager->modes[0].height;
|
|
||||||
manager->crtcs[0].current_mode = &manager->modes[0];
|
|
||||||
manager->crtcs[0].transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
|
||||||
manager->crtcs[0].all_transforms = ALL_WL_TRANSFORMS;
|
|
||||||
manager->crtcs[0].is_dirty = FALSE;
|
|
||||||
manager->crtcs[0].logical_monitor = NULL;
|
|
||||||
|
|
||||||
manager->outputs = g_new0 (MetaOutput, 1);
|
|
||||||
manager->n_outputs = 1;
|
|
||||||
|
|
||||||
manager->outputs[0].crtc = &manager->crtcs[0];
|
|
||||||
manager->outputs[0].output_id = 1;
|
|
||||||
manager->outputs[0].name = g_strdup ("LVDS");
|
|
||||||
manager->outputs[0].vendor = g_strdup ("MetaProducts Inc.");
|
|
||||||
manager->outputs[0].product = g_strdup ("unknown");
|
|
||||||
manager->outputs[0].serial = g_strdup ("0xC0FFEE");
|
|
||||||
manager->outputs[0].width_mm = 222;
|
|
||||||
manager->outputs[0].height_mm = 125;
|
|
||||||
manager->outputs[0].subpixel_order = COGL_SUBPIXEL_ORDER_UNKNOWN;
|
|
||||||
manager->outputs[0].preferred_mode = &manager->modes[0];
|
|
||||||
manager->outputs[0].n_modes = 1;
|
|
||||||
manager->outputs[0].modes = g_new0 (MetaMonitorMode *, 1);
|
|
||||||
manager->outputs[0].modes[0] = &manager->modes[0];
|
|
||||||
manager->outputs[0].n_possible_crtcs = 1;
|
|
||||||
manager->outputs[0].possible_crtcs = g_new0 (MetaCRTC *, 1);
|
|
||||||
manager->outputs[0].possible_crtcs[0] = &manager->crtcs[0];
|
|
||||||
manager->outputs[0].n_possible_clones = 0;
|
|
||||||
manager->outputs[0].possible_clones = g_new0 (MetaOutput *, 0);
|
|
||||||
manager->outputs[0].backlight = -1;
|
|
||||||
manager->outputs[0].backlight_min = 0;
|
|
||||||
manager->outputs[0].backlight_max = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_dummy_apply_config (MetaMonitorManager *manager,
|
|
||||||
MetaCRTCInfo **crtcs,
|
|
||||||
unsigned int n_crtcs,
|
|
||||||
MetaOutputInfo **outputs,
|
|
||||||
unsigned int n_outputs)
|
|
||||||
{
|
|
||||||
unsigned i;
|
|
||||||
int screen_width = 0, screen_height = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaCRTCInfo *crtc_info = crtcs[i];
|
|
||||||
MetaCRTC *crtc = crtc_info->crtc;
|
|
||||||
crtc->is_dirty = TRUE;
|
|
||||||
|
|
||||||
if (crtc_info->mode == NULL)
|
|
||||||
{
|
|
||||||
crtc->rect.x = 0;
|
|
||||||
crtc->rect.y = 0;
|
|
||||||
crtc->rect.width = 0;
|
|
||||||
crtc->rect.height = 0;
|
|
||||||
crtc->current_mode = NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MetaMonitorMode *mode;
|
|
||||||
MetaOutput *output;
|
|
||||||
int i, n_outputs;
|
|
||||||
int width, height;
|
|
||||||
|
|
||||||
mode = crtc_info->mode;
|
|
||||||
|
|
||||||
if (meta_monitor_transform_is_rotated (crtc_info->transform))
|
|
||||||
{
|
|
||||||
width = mode->height;
|
|
||||||
height = mode->width;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
width = mode->width;
|
|
||||||
height = mode->height;
|
|
||||||
}
|
|
||||||
|
|
||||||
crtc->rect.x = crtc_info->x;
|
|
||||||
crtc->rect.y = crtc_info->y;
|
|
||||||
crtc->rect.width = width;
|
|
||||||
crtc->rect.height = height;
|
|
||||||
crtc->current_mode = mode;
|
|
||||||
crtc->transform = crtc_info->transform;
|
|
||||||
|
|
||||||
screen_width = MAX (screen_width, crtc_info->x + width);
|
|
||||||
screen_height = MAX (screen_height, crtc_info->y + height);
|
|
||||||
|
|
||||||
n_outputs = crtc_info->outputs->len;
|
|
||||||
for (i = 0; i < n_outputs; i++)
|
|
||||||
{
|
|
||||||
output = ((MetaOutput**)crtc_info->outputs->pdata)[i];
|
|
||||||
|
|
||||||
output->is_dirty = TRUE;
|
|
||||||
output->crtc = crtc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutputInfo *output_info = outputs[i];
|
|
||||||
MetaOutput *output = output_info->output;
|
|
||||||
|
|
||||||
output->is_primary = output_info->is_primary;
|
|
||||||
output->is_presentation = output_info->is_presentation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable CRTCs not mentioned in the list */
|
|
||||||
for (i = 0; i < manager->n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaCRTC *crtc = &manager->crtcs[i];
|
|
||||||
|
|
||||||
crtc->logical_monitor = NULL;
|
|
||||||
|
|
||||||
if (crtc->is_dirty)
|
|
||||||
{
|
|
||||||
crtc->is_dirty = FALSE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
crtc->rect.x = 0;
|
|
||||||
crtc->rect.y = 0;
|
|
||||||
crtc->rect.width = 0;
|
|
||||||
crtc->rect.height = 0;
|
|
||||||
crtc->current_mode = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable outputs not mentioned in the list */
|
|
||||||
for (i = 0; i < manager->n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutput *output = &manager->outputs[i];
|
|
||||||
|
|
||||||
if (output->is_dirty)
|
|
||||||
{
|
|
||||||
output->is_dirty = FALSE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
output->crtc = NULL;
|
|
||||||
output->is_primary = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
manager->screen_width = screen_width;
|
|
||||||
manager->screen_height = screen_height;
|
|
||||||
|
|
||||||
meta_monitor_manager_rebuild_derived (manager);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_dummy_class_init (MetaMonitorManagerDummyClass *klass)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerClass *manager_class = META_MONITOR_MANAGER_CLASS (klass);
|
|
||||||
|
|
||||||
manager_class->read_current = meta_monitor_manager_dummy_read_current;
|
|
||||||
manager_class->apply_configuration = meta_monitor_manager_dummy_apply_config;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_dummy_init (MetaMonitorManagerDummy *manager)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2001 Havoc Pennington
|
|
||||||
* Copyright (C) 2003 Rob Adams
|
|
||||||
* Copyright (C) 2004-2006 Elijah Newren
|
|
||||||
* Copyright (C) 2013 Red Hat Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_MONITOR_MANAGER_DUMMY_H
|
|
||||||
#define META_MONITOR_MANAGER_DUMMY_H
|
|
||||||
|
|
||||||
#include "meta-monitor-manager.h"
|
|
||||||
|
|
||||||
#define META_TYPE_MONITOR_MANAGER_DUMMY (meta_monitor_manager_dummy_get_type ())
|
|
||||||
#define META_MONITOR_MANAGER_DUMMY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_MONITOR_MANAGER_DUMMY, MetaMonitorManagerDummy))
|
|
||||||
#define META_MONITOR_MANAGER_DUMMY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_MONITOR_MANAGER_DUMMY, MetaMonitorManagerDummyClass))
|
|
||||||
#define META_IS_MONITOR_MANAGER_DUMMY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_MONITOR_MANAGER_DUMMY))
|
|
||||||
#define META_IS_MONITOR_MANAGER_DUMMY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_MONITOR_MANAGER_DUMMY))
|
|
||||||
#define META_MONITOR_MANAGER_DUMMY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_MONITOR_MANAGER_DUMMY, MetaMonitorManagerDummyClass))
|
|
||||||
|
|
||||||
typedef struct _MetaMonitorManagerDummyClass MetaMonitorManagerDummyClass;
|
|
||||||
typedef struct _MetaMonitorManagerDummy MetaMonitorManagerDummy;
|
|
||||||
|
|
||||||
GType meta_monitor_manager_dummy_get_type (void);
|
|
||||||
|
|
||||||
#endif /* META_MONITOR_MANAGER_DUMMY_H */
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,353 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file screen-private.h Handling of monitor configuration
|
|
||||||
*
|
|
||||||
* Managing multiple monitors
|
|
||||||
* This file contains structures and functions that handle
|
|
||||||
* multiple monitors, including reading the current configuration
|
|
||||||
* and available hardware, and applying it.
|
|
||||||
*
|
|
||||||
* This interface is private to mutter, API users should look
|
|
||||||
* at MetaScreen instead.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2001 Havoc Pennington
|
|
||||||
* Copyright (C) 2003 Rob Adams
|
|
||||||
* Copyright (C) 2004-2006 Elijah Newren
|
|
||||||
* Copyright (C) 2013 Red Hat Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_MONITOR_PRIVATE_H
|
|
||||||
#define META_MONITOR_PRIVATE_H
|
|
||||||
|
|
||||||
#include <cogl/cogl.h>
|
|
||||||
#include <libgnome-desktop/gnome-pnp-ids.h>
|
|
||||||
|
|
||||||
#include "display-private.h"
|
|
||||||
#include <meta/screen.h>
|
|
||||||
#include "stack-tracker.h"
|
|
||||||
#include "ui.h"
|
|
||||||
#include <wayland-server.h>
|
|
||||||
|
|
||||||
#include "meta-display-config-shared.h"
|
|
||||||
#include "meta-dbus-display-config.h"
|
|
||||||
|
|
||||||
typedef struct _MetaMonitorManagerClass MetaMonitorManagerClass;
|
|
||||||
typedef struct _MetaMonitorManager MetaMonitorManager;
|
|
||||||
typedef struct _MetaMonitorConfigClass MetaMonitorConfigClass;
|
|
||||||
typedef struct _MetaMonitorConfig MetaMonitorConfig;
|
|
||||||
|
|
||||||
typedef struct _MetaOutput MetaOutput;
|
|
||||||
typedef struct _MetaCRTC MetaCRTC;
|
|
||||||
typedef struct _MetaMonitorMode MetaMonitorMode;
|
|
||||||
typedef struct _MetaMonitorInfo MetaMonitorInfo;
|
|
||||||
typedef struct _MetaCRTCInfo MetaCRTCInfo;
|
|
||||||
typedef struct _MetaOutputInfo MetaOutputInfo;
|
|
||||||
|
|
||||||
struct _MetaOutput
|
|
||||||
{
|
|
||||||
/* The CRTC driving this output, NULL if the output is not enabled */
|
|
||||||
MetaCRTC *crtc;
|
|
||||||
/* The low-level ID of this output, used to apply back configuration */
|
|
||||||
glong output_id;
|
|
||||||
char *name;
|
|
||||||
char *vendor;
|
|
||||||
char *product;
|
|
||||||
char *serial;
|
|
||||||
int width_mm;
|
|
||||||
int height_mm;
|
|
||||||
CoglSubpixelOrder subpixel_order;
|
|
||||||
|
|
||||||
MetaMonitorMode *preferred_mode;
|
|
||||||
MetaMonitorMode **modes;
|
|
||||||
unsigned int n_modes;
|
|
||||||
|
|
||||||
MetaCRTC **possible_crtcs;
|
|
||||||
unsigned int n_possible_crtcs;
|
|
||||||
|
|
||||||
MetaOutput **possible_clones;
|
|
||||||
unsigned int n_possible_clones;
|
|
||||||
|
|
||||||
int backlight;
|
|
||||||
int backlight_min;
|
|
||||||
int backlight_max;
|
|
||||||
|
|
||||||
/* Used when changing configuration */
|
|
||||||
gboolean is_dirty;
|
|
||||||
|
|
||||||
/* The low-level bits used to build the high-level info
|
|
||||||
in MetaMonitorInfo
|
|
||||||
|
|
||||||
XXX: flags maybe?
|
|
||||||
There is a lot of code that uses MonitorInfo->is_primary,
|
|
||||||
but nobody uses MetaOutput yet
|
|
||||||
*/
|
|
||||||
gboolean is_primary;
|
|
||||||
gboolean is_presentation;
|
|
||||||
|
|
||||||
gpointer driver_private;
|
|
||||||
GDestroyNotify driver_notify;
|
|
||||||
|
|
||||||
/* get a new preferred mode on hotplug events, to handle dynamic guest resizing */
|
|
||||||
gboolean hotplug_mode_update;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaCRTC
|
|
||||||
{
|
|
||||||
glong crtc_id;
|
|
||||||
MetaRectangle rect;
|
|
||||||
MetaMonitorMode *current_mode;
|
|
||||||
enum wl_output_transform transform;
|
|
||||||
unsigned int all_transforms;
|
|
||||||
|
|
||||||
/* Only used to build the logical configuration
|
|
||||||
from the HW one
|
|
||||||
*/
|
|
||||||
MetaMonitorInfo *logical_monitor;
|
|
||||||
|
|
||||||
/* Used when changing configuration */
|
|
||||||
gboolean is_dirty;
|
|
||||||
|
|
||||||
/* Updated by MetaCursorTracker */
|
|
||||||
gboolean has_hw_cursor;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaMonitorMode
|
|
||||||
{
|
|
||||||
/* The low-level ID of this mode, used to apply back configuration */
|
|
||||||
glong mode_id;
|
|
||||||
char *name;
|
|
||||||
|
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
float refresh_rate;
|
|
||||||
|
|
||||||
gpointer driver_private;
|
|
||||||
GDestroyNotify driver_notify;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MetaMonitorInfo:
|
|
||||||
*
|
|
||||||
* A structure with high-level information about monitors.
|
|
||||||
* This corresponds to a subset of the compositor coordinate space.
|
|
||||||
* Clones are only reported once, irrespective of the way
|
|
||||||
* they're implemented (two CRTCs configured for the same
|
|
||||||
* coordinates or one CRTCs driving two outputs). Inactive CRTCs
|
|
||||||
* are ignored, and so are disabled outputs.
|
|
||||||
*/
|
|
||||||
struct _MetaMonitorInfo
|
|
||||||
{
|
|
||||||
int number;
|
|
||||||
int xinerama_index;
|
|
||||||
MetaRectangle rect;
|
|
||||||
gboolean is_primary;
|
|
||||||
gboolean is_presentation; /* XXX: not yet used */
|
|
||||||
gboolean in_fullscreen;
|
|
||||||
|
|
||||||
/* The primary or first output for this monitor, 0 if we can't figure out.
|
|
||||||
It can be matched to an output_id of a MetaOutput.
|
|
||||||
|
|
||||||
This is used as an opaque token on reconfiguration when switching from
|
|
||||||
clone to extened, to decide on what output the windows should go next
|
|
||||||
(it's an attempt to keep windows on the same monitor, and preferably on
|
|
||||||
the primary one).
|
|
||||||
*/
|
|
||||||
glong output_id;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* MetaCRTCInfo:
|
|
||||||
* This represents the writable part of a CRTC, as deserialized from DBus
|
|
||||||
* or built by MetaMonitorConfig
|
|
||||||
*
|
|
||||||
* Note: differently from the other structures in this file, MetaCRTCInfo
|
|
||||||
* is handled by pointer. This is to accomodate the usage in MetaMonitorConfig
|
|
||||||
*/
|
|
||||||
struct _MetaCRTCInfo {
|
|
||||||
MetaCRTC *crtc;
|
|
||||||
MetaMonitorMode *mode;
|
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
enum wl_output_transform transform;
|
|
||||||
GPtrArray *outputs;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* MetaOutputInfo:
|
|
||||||
* this is the same as MetaOutputInfo, but for CRTCs
|
|
||||||
*/
|
|
||||||
struct _MetaOutputInfo {
|
|
||||||
MetaOutput *output;
|
|
||||||
gboolean is_primary;
|
|
||||||
gboolean is_presentation;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define META_TYPE_MONITOR_MANAGER (meta_monitor_manager_get_type ())
|
|
||||||
#define META_MONITOR_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_MONITOR_MANAGER, MetaMonitorManager))
|
|
||||||
#define META_MONITOR_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_MONITOR_MANAGER, MetaMonitorManagerClass))
|
|
||||||
#define META_IS_MONITOR_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_MONITOR_MANAGER))
|
|
||||||
#define META_IS_MONITOR_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_MONITOR_MANAGER))
|
|
||||||
#define META_MONITOR_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_MONITOR_MANAGER, MetaMonitorManagerClass))
|
|
||||||
|
|
||||||
struct _MetaMonitorManager
|
|
||||||
{
|
|
||||||
MetaDBusDisplayConfigSkeleton parent_instance;
|
|
||||||
|
|
||||||
/* XXX: this structure is very badly
|
|
||||||
packed, but I like the logical organization
|
|
||||||
of fields */
|
|
||||||
|
|
||||||
gboolean in_init;
|
|
||||||
unsigned int serial;
|
|
||||||
|
|
||||||
MetaPowerSave power_save_mode;
|
|
||||||
|
|
||||||
int max_screen_width;
|
|
||||||
int max_screen_height;
|
|
||||||
int screen_width;
|
|
||||||
int screen_height;
|
|
||||||
|
|
||||||
/* Outputs refer to physical screens,
|
|
||||||
CRTCs refer to stuff that can drive outputs
|
|
||||||
(like encoders, but less tied to the HW),
|
|
||||||
while monitor_infos refer to logical ones.
|
|
||||||
*/
|
|
||||||
MetaOutput *outputs;
|
|
||||||
unsigned int n_outputs;
|
|
||||||
|
|
||||||
MetaMonitorMode *modes;
|
|
||||||
unsigned int n_modes;
|
|
||||||
|
|
||||||
MetaCRTC *crtcs;
|
|
||||||
unsigned int n_crtcs;
|
|
||||||
|
|
||||||
MetaMonitorInfo *monitor_infos;
|
|
||||||
unsigned int n_monitor_infos;
|
|
||||||
int primary_monitor_index;
|
|
||||||
|
|
||||||
int dbus_name_id;
|
|
||||||
|
|
||||||
int persistent_timeout_id;
|
|
||||||
MetaMonitorConfig *config;
|
|
||||||
|
|
||||||
GnomePnpIds *pnp_ids;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaMonitorManagerClass
|
|
||||||
{
|
|
||||||
MetaDBusDisplayConfigSkeletonClass parent_class;
|
|
||||||
|
|
||||||
void (*read_current) (MetaMonitorManager *);
|
|
||||||
|
|
||||||
char* (*get_edid_file) (MetaMonitorManager *,
|
|
||||||
MetaOutput *);
|
|
||||||
GBytes* (*read_edid) (MetaMonitorManager *,
|
|
||||||
MetaOutput *);
|
|
||||||
|
|
||||||
void (*apply_configuration) (MetaMonitorManager *,
|
|
||||||
MetaCRTCInfo **,
|
|
||||||
unsigned int ,
|
|
||||||
MetaOutputInfo **,
|
|
||||||
unsigned int);
|
|
||||||
|
|
||||||
void (*set_power_save_mode) (MetaMonitorManager *,
|
|
||||||
MetaPowerSave);
|
|
||||||
|
|
||||||
void (*change_backlight) (MetaMonitorManager *,
|
|
||||||
MetaOutput *,
|
|
||||||
int);
|
|
||||||
|
|
||||||
void (*get_crtc_gamma) (MetaMonitorManager *,
|
|
||||||
MetaCRTC *,
|
|
||||||
gsize *,
|
|
||||||
unsigned short **,
|
|
||||||
unsigned short **,
|
|
||||||
unsigned short **);
|
|
||||||
void (*set_crtc_gamma) (MetaMonitorManager *,
|
|
||||||
MetaCRTC *,
|
|
||||||
gsize ,
|
|
||||||
unsigned short *,
|
|
||||||
unsigned short *,
|
|
||||||
unsigned short *);
|
|
||||||
|
|
||||||
gboolean (*handle_xevent) (MetaMonitorManager *,
|
|
||||||
XEvent *);
|
|
||||||
};
|
|
||||||
|
|
||||||
GType meta_monitor_manager_get_type (void);
|
|
||||||
|
|
||||||
void meta_monitor_manager_initialize (void);
|
|
||||||
MetaMonitorManager *meta_monitor_manager_get (void);
|
|
||||||
|
|
||||||
void meta_monitor_manager_rebuild_derived (MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
MetaMonitorInfo *meta_monitor_manager_get_monitor_infos (MetaMonitorManager *manager,
|
|
||||||
unsigned int *n_infos);
|
|
||||||
|
|
||||||
MetaOutput *meta_monitor_manager_get_outputs (MetaMonitorManager *manager,
|
|
||||||
unsigned int *n_outputs);
|
|
||||||
|
|
||||||
void meta_monitor_manager_get_resources (MetaMonitorManager *manager,
|
|
||||||
MetaMonitorMode **modes,
|
|
||||||
unsigned int *n_modes,
|
|
||||||
MetaCRTC **crtcs,
|
|
||||||
unsigned int *n_crtcs,
|
|
||||||
MetaOutput **outputs,
|
|
||||||
unsigned int *n_outputs);
|
|
||||||
|
|
||||||
int meta_monitor_manager_get_primary_index (MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
gboolean meta_monitor_manager_handle_xevent (MetaMonitorManager *manager,
|
|
||||||
XEvent *event);
|
|
||||||
|
|
||||||
void meta_monitor_manager_get_screen_size (MetaMonitorManager *manager,
|
|
||||||
int *width,
|
|
||||||
int *height);
|
|
||||||
|
|
||||||
void meta_monitor_manager_get_screen_limits (MetaMonitorManager *manager,
|
|
||||||
int *width,
|
|
||||||
int *height);
|
|
||||||
|
|
||||||
void meta_monitor_manager_apply_configuration (MetaMonitorManager *manager,
|
|
||||||
MetaCRTCInfo **crtcs,
|
|
||||||
unsigned int n_crtcs,
|
|
||||||
MetaOutputInfo **outputs,
|
|
||||||
unsigned int n_outputs);
|
|
||||||
|
|
||||||
void meta_monitor_manager_confirm_configuration (MetaMonitorManager *manager,
|
|
||||||
gboolean ok);
|
|
||||||
|
|
||||||
void meta_crtc_info_free (MetaCRTCInfo *info);
|
|
||||||
void meta_output_info_free (MetaOutputInfo *info);
|
|
||||||
|
|
||||||
void meta_monitor_manager_free_output_array (MetaOutput *old_outputs,
|
|
||||||
int n_old_outputs);
|
|
||||||
void meta_monitor_manager_free_mode_array (MetaMonitorMode *old_modes,
|
|
||||||
int n_old_modes);
|
|
||||||
gboolean meta_monitor_manager_has_hotplug_mode_update (MetaMonitorManager *manager);
|
|
||||||
|
|
||||||
/* Returns true if transform causes width and height to be inverted
|
|
||||||
This is true for the odd transforms in the enum */
|
|
||||||
static inline gboolean
|
|
||||||
meta_monitor_transform_is_rotated (enum wl_output_transform transform)
|
|
||||||
{
|
|
||||||
return (transform % 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
|
|
||||||
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "meta-idle-monitor-native.h"
|
|
||||||
#include "meta-idle-monitor-private.h"
|
|
||||||
|
|
||||||
#include <meta/util.h>
|
|
||||||
#include "display-private.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
struct _MetaIdleMonitorNative
|
|
||||||
{
|
|
||||||
MetaIdleMonitor parent;
|
|
||||||
|
|
||||||
guint64 last_event_time;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaIdleMonitorNativeClass
|
|
||||||
{
|
|
||||||
MetaIdleMonitorClass parent_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
MetaIdleMonitorWatch base;
|
|
||||||
|
|
||||||
GSource *timeout_source;
|
|
||||||
} MetaIdleMonitorWatchNative;
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaIdleMonitorNative, meta_idle_monitor_native, META_TYPE_IDLE_MONITOR)
|
|
||||||
|
|
||||||
static gint64
|
|
||||||
meta_idle_monitor_native_get_idletime (MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorNative *monitor_native = META_IDLE_MONITOR_NATIVE (monitor);
|
|
||||||
|
|
||||||
return (g_get_monotonic_time () - monitor_native->last_event_time) / 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
static guint32
|
|
||||||
get_next_watch_serial (void)
|
|
||||||
{
|
|
||||||
static guint32 serial = 0;
|
|
||||||
g_atomic_int_inc (&serial);
|
|
||||||
return serial;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
native_dispatch_timeout (GSource *source,
|
|
||||||
GSourceFunc callback,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatchNative *watch_native = user_data;
|
|
||||||
MetaIdleMonitorWatch *watch = (MetaIdleMonitorWatch *) watch_native;
|
|
||||||
|
|
||||||
_meta_idle_monitor_watch_fire (watch);
|
|
||||||
g_source_set_ready_time (watch_native->timeout_source, -1);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static GSourceFuncs native_source_funcs = {
|
|
||||||
NULL, /* prepare */
|
|
||||||
NULL, /* check */
|
|
||||||
native_dispatch_timeout,
|
|
||||||
NULL, /* finalize */
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
free_watch (gpointer data)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatchNative *watch_native = data;
|
|
||||||
MetaIdleMonitorWatch *watch = (MetaIdleMonitorWatch *) watch_native;
|
|
||||||
MetaIdleMonitor *monitor = watch->monitor;
|
|
||||||
|
|
||||||
g_object_ref (monitor);
|
|
||||||
|
|
||||||
if (watch->idle_source_id)
|
|
||||||
{
|
|
||||||
g_source_remove (watch->idle_source_id);
|
|
||||||
watch->idle_source_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (watch->notify != NULL)
|
|
||||||
watch->notify (watch->user_data);
|
|
||||||
|
|
||||||
if (watch_native->timeout_source != NULL)
|
|
||||||
g_source_destroy (watch_native->timeout_source);
|
|
||||||
|
|
||||||
g_object_unref (monitor);
|
|
||||||
g_slice_free (MetaIdleMonitorWatchNative, watch_native);
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaIdleMonitorWatch *
|
|
||||||
meta_idle_monitor_native_make_watch (MetaIdleMonitor *monitor,
|
|
||||||
guint64 timeout_msec,
|
|
||||||
MetaIdleMonitorWatchFunc callback,
|
|
||||||
gpointer user_data,
|
|
||||||
GDestroyNotify notify)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatchNative *watch_native;
|
|
||||||
MetaIdleMonitorWatch *watch;
|
|
||||||
MetaIdleMonitorNative *monitor_native = META_IDLE_MONITOR_NATIVE (monitor);
|
|
||||||
|
|
||||||
watch_native = g_slice_new0 (MetaIdleMonitorWatchNative);
|
|
||||||
watch = (MetaIdleMonitorWatch *) watch_native;
|
|
||||||
|
|
||||||
watch->monitor = monitor;
|
|
||||||
watch->id = get_next_watch_serial ();
|
|
||||||
watch->callback = callback;
|
|
||||||
watch->user_data = user_data;
|
|
||||||
watch->notify = notify;
|
|
||||||
watch->timeout_msec = timeout_msec;
|
|
||||||
|
|
||||||
if (timeout_msec != 0)
|
|
||||||
{
|
|
||||||
GSource *source = g_source_new (&native_source_funcs, sizeof (GSource));
|
|
||||||
|
|
||||||
g_source_set_callback (source, NULL, watch, NULL);
|
|
||||||
g_source_set_ready_time (source, monitor_native->last_event_time + timeout_msec * 1000);
|
|
||||||
g_source_attach (source, NULL);
|
|
||||||
g_source_unref (source);
|
|
||||||
|
|
||||||
watch_native->timeout_source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
return watch;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_native_class_init (MetaIdleMonitorNativeClass *klass)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorClass *idle_monitor_class = META_IDLE_MONITOR_CLASS (klass);
|
|
||||||
|
|
||||||
idle_monitor_class->get_idletime = meta_idle_monitor_native_get_idletime;
|
|
||||||
idle_monitor_class->make_watch = meta_idle_monitor_native_make_watch;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_idle_monitor_native_init (MetaIdleMonitorNative *monitor_native)
|
|
||||||
{
|
|
||||||
MetaIdleMonitor *monitor = META_IDLE_MONITOR (monitor_native);
|
|
||||||
|
|
||||||
monitor->watches = g_hash_table_new_full (NULL, NULL, NULL, free_watch);
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
MetaIdleMonitorNative *monitor_native;
|
|
||||||
GList *fired_watches;
|
|
||||||
} CheckNativeClosure;
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
check_native_watch (gpointer key,
|
|
||||||
gpointer value,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorWatchNative *watch_native = value;
|
|
||||||
MetaIdleMonitorWatch *watch = (MetaIdleMonitorWatch *) watch_native;
|
|
||||||
CheckNativeClosure *closure = user_data;
|
|
||||||
gboolean steal;
|
|
||||||
|
|
||||||
if (watch->timeout_msec == 0)
|
|
||||||
{
|
|
||||||
closure->fired_watches = g_list_prepend (closure->fired_watches, watch);
|
|
||||||
steal = TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_source_set_ready_time (watch_native->timeout_source,
|
|
||||||
closure->monitor_native->last_event_time +
|
|
||||||
watch->timeout_msec * 1000);
|
|
||||||
steal = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return steal;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
fire_native_watch (gpointer watch,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
_meta_idle_monitor_watch_fire (watch);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_idle_monitor_native_reset_idletime (MetaIdleMonitor *monitor)
|
|
||||||
{
|
|
||||||
MetaIdleMonitorNative *monitor_native = META_IDLE_MONITOR_NATIVE (monitor);
|
|
||||||
CheckNativeClosure closure;
|
|
||||||
|
|
||||||
monitor_native->last_event_time = g_get_monotonic_time ();
|
|
||||||
|
|
||||||
closure.monitor_native = monitor_native;
|
|
||||||
closure.fired_watches = NULL;
|
|
||||||
g_hash_table_foreach_steal (monitor->watches, check_native_watch, &closure);
|
|
||||||
|
|
||||||
g_list_foreach (closure.fired_watches, fire_native_watch, NULL);
|
|
||||||
g_list_free (closure.fired_watches);
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
|
|
||||||
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_IDLE_MONITOR_NATIVE_H
|
|
||||||
#define META_IDLE_MONITOR_NATIVE_H
|
|
||||||
|
|
||||||
#include <glib-object.h>
|
|
||||||
#include <meta/meta-idle-monitor.h>
|
|
||||||
|
|
||||||
#define META_TYPE_IDLE_MONITOR_NATIVE (meta_idle_monitor_native_get_type ())
|
|
||||||
#define META_IDLE_MONITOR_NATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_IDLE_MONITOR_NATIVE, MetaIdleMonitorNative))
|
|
||||||
#define META_IDLE_MONITOR_NATIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_IDLE_MONITOR_NATIVE, MetaIdleMonitorNativeClass))
|
|
||||||
#define META_IS_IDLE_MONITOR_NATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_IDLE_MONITOR_NATIVE))
|
|
||||||
#define META_IS_IDLE_MONITOR_NATIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_IDLE_MONITOR_NATIVE))
|
|
||||||
#define META_IDLE_MONITOR_NATIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_IDLE_MONITOR_NATIVE, MetaIdleMonitorNativeClass))
|
|
||||||
|
|
||||||
typedef struct _MetaIdleMonitorNative MetaIdleMonitorNative;
|
|
||||||
typedef struct _MetaIdleMonitorNativeClass MetaIdleMonitorNativeClass;
|
|
||||||
|
|
||||||
GType meta_idle_monitor_native_get_type (void);
|
|
||||||
|
|
||||||
void meta_idle_monitor_native_reset_idletime (MetaIdleMonitor *monitor);
|
|
||||||
|
|
||||||
#endif /* META_IDLE_MONITOR_NATIVE_H */
|
|
||||||
@@ -1,939 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2013 Red Hat Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
||||||
* 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* Author: Giovanni Campagna <gcampagn@redhat.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "meta-monitor-manager-kms.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <clutter/clutter.h>
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <xf86drm.h>
|
|
||||||
#include <xf86drmMode.h>
|
|
||||||
|
|
||||||
#include <meta/main.h>
|
|
||||||
#include <meta/errors.h>
|
|
||||||
#include "edid.h"
|
|
||||||
|
|
||||||
#define ALL_WL_TRANSFORMS ((1 << (WL_OUTPUT_TRANSFORM_FLIPPED_270 + 1)) - 1)
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
drmModeConnector *connector;
|
|
||||||
|
|
||||||
unsigned n_encoders;
|
|
||||||
drmModeEncoderPtr *encoders;
|
|
||||||
drmModeEncoderPtr current_encoder;
|
|
||||||
|
|
||||||
/* bitmasks of encoder position in the resources array */
|
|
||||||
uint32_t encoder_mask;
|
|
||||||
uint32_t enc_clone_mask;
|
|
||||||
|
|
||||||
uint32_t dpms_prop_id;
|
|
||||||
uint32_t edid_blob_id;
|
|
||||||
} MetaOutputKms;
|
|
||||||
|
|
||||||
struct _MetaMonitorManagerKms
|
|
||||||
{
|
|
||||||
MetaMonitorManager parent_instance;
|
|
||||||
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
drmModeConnector **connectors;
|
|
||||||
unsigned int n_connectors;
|
|
||||||
|
|
||||||
drmModeEncoder **encoders;
|
|
||||||
unsigned int n_encoders;
|
|
||||||
|
|
||||||
drmModeEncoder *current_encoder;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaMonitorManagerKmsClass
|
|
||||||
{
|
|
||||||
MetaMonitorManagerClass parent_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaMonitorManagerKms, meta_monitor_manager_kms, META_TYPE_MONITOR_MANAGER);
|
|
||||||
|
|
||||||
static void
|
|
||||||
free_resources (MetaMonitorManagerKms *manager_kms)
|
|
||||||
{
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
for (i = 0; i < manager_kms->n_encoders; i++)
|
|
||||||
drmModeFreeEncoder (manager_kms->encoders[i]);
|
|
||||||
for (i = 0; i < manager_kms->n_connectors; i++)
|
|
||||||
drmModeFreeConnector (manager_kms->connectors[i]);
|
|
||||||
|
|
||||||
g_free (manager_kms->encoders);
|
|
||||||
g_free (manager_kms->connectors);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
compare_outputs (const void *one,
|
|
||||||
const void *two)
|
|
||||||
{
|
|
||||||
const MetaOutput *o_one = one, *o_two = two;
|
|
||||||
|
|
||||||
return strcmp (o_one->name, o_two->name);
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *
|
|
||||||
make_output_name (drmModeConnector *connector)
|
|
||||||
{
|
|
||||||
static const char * const connector_type_names[] = {
|
|
||||||
"unknown", "VGA", "DVII", "DVID", "DVID", "Composite",
|
|
||||||
"SVIDEO", "LVDS", "Component", "9PinDIN", "DisplayPort",
|
|
||||||
"HDMIA", "HDMIB", "TV", "eDP"
|
|
||||||
};
|
|
||||||
const char *connector_type_name;
|
|
||||||
|
|
||||||
if (connector->connector_type < G_N_ELEMENTS (connector_type_names))
|
|
||||||
connector_type_name = connector_type_names[connector->connector_type];
|
|
||||||
else
|
|
||||||
connector_type_name = "unknown";
|
|
||||||
|
|
||||||
return g_strdup_printf ("%s%d", connector_type_name, connector->connector_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_output_destroy_notify (MetaOutput *output)
|
|
||||||
{
|
|
||||||
MetaOutputKms *output_kms;
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
output_kms = output->driver_private;
|
|
||||||
|
|
||||||
for (i = 0; i < output_kms->n_encoders; i++)
|
|
||||||
drmModeFreeEncoder (output_kms->encoders[i]);
|
|
||||||
g_free (output_kms->encoders);
|
|
||||||
|
|
||||||
g_slice_free (MetaOutputKms, output_kms);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_mode_destroy_notify (MetaMonitorMode *output)
|
|
||||||
{
|
|
||||||
g_slice_free (drmModeModeInfo, output->driver_private);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
drm_mode_equal (gconstpointer one,
|
|
||||||
gconstpointer two)
|
|
||||||
{
|
|
||||||
const drmModeModeInfo *m_one = one;
|
|
||||||
const drmModeModeInfo *m_two = two;
|
|
||||||
|
|
||||||
return m_one->clock == m_two->clock &&
|
|
||||||
m_one->hdisplay == m_two->hdisplay &&
|
|
||||||
m_one->hsync_start == m_two->hsync_start &&
|
|
||||||
m_one->hsync_end == m_two->hsync_end &&
|
|
||||||
m_one->htotal == m_two->htotal &&
|
|
||||||
m_one->hskew == m_two->hskew &&
|
|
||||||
m_one->vdisplay == m_two->vdisplay &&
|
|
||||||
m_one->vsync_start == m_two->vsync_start &&
|
|
||||||
m_one->vsync_end == m_two->vsync_end &&
|
|
||||||
m_one->vtotal == m_two->vtotal &&
|
|
||||||
m_one->vscan == m_two->vscan &&
|
|
||||||
m_one->vrefresh == m_two->vrefresh &&
|
|
||||||
m_one->flags == m_two->flags &&
|
|
||||||
m_one->type == m_two->type &&
|
|
||||||
strncmp (m_one->name, m_two->name, DRM_DISPLAY_MODE_LEN) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static guint
|
|
||||||
drm_mode_hash (gconstpointer ptr)
|
|
||||||
{
|
|
||||||
const drmModeModeInfo *mode = ptr;
|
|
||||||
guint hash = 0;
|
|
||||||
|
|
||||||
/* We don't include the name in the hash because it's generally
|
|
||||||
derived from the other fields (hdisplay, vdisplay and flags)
|
|
||||||
*/
|
|
||||||
|
|
||||||
hash ^= mode->clock;
|
|
||||||
hash ^= mode->hdisplay ^ mode->hsync_start ^ mode->hsync_end;
|
|
||||||
hash ^= mode->vdisplay ^ mode->vsync_start ^ mode->vsync_end;
|
|
||||||
hash ^= mode->vrefresh;
|
|
||||||
hash ^= mode->flags ^ mode->type;
|
|
||||||
|
|
||||||
return hash;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
find_properties (MetaMonitorManagerKms *manager_kms,
|
|
||||||
MetaOutputKms *output_kms)
|
|
||||||
{
|
|
||||||
drmModePropertyPtr prop;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < output_kms->connector->count_props; i++)
|
|
||||||
{
|
|
||||||
prop = drmModeGetProperty (manager_kms->fd, output_kms->connector->props[i]);
|
|
||||||
if (!prop)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if ((prop->flags & DRM_MODE_PROP_ENUM) &&
|
|
||||||
strcmp(prop->name, "DPMS") == 0)
|
|
||||||
output_kms->dpms_prop_id = prop->prop_id;
|
|
||||||
else if ((prop->flags & DRM_MODE_PROP_BLOB) &&
|
|
||||||
strcmp (prop->name, "EDID") == 0)
|
|
||||||
output_kms->edid_blob_id = output_kms->connector->prop_values[i];
|
|
||||||
|
|
||||||
drmModeFreeProperty(prop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static GBytes *
|
|
||||||
read_output_edid (MetaMonitorManagerKms *manager_kms,
|
|
||||||
MetaOutput *output)
|
|
||||||
{
|
|
||||||
MetaOutputKms *output_kms = output->driver_private;
|
|
||||||
drmModePropertyBlobPtr edid_blob = NULL;
|
|
||||||
|
|
||||||
if (output_kms->edid_blob_id == 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
edid_blob = drmModeGetPropertyBlob (manager_kms->fd, output_kms->edid_blob_id);
|
|
||||||
if (!edid_blob)
|
|
||||||
{
|
|
||||||
meta_warning ("Failed to read EDID of output %s: %s\n", output->name, strerror(errno));
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (edid_blob->length > 0)
|
|
||||||
return g_bytes_new_with_free_func (edid_blob->data, edid_blob->length,
|
|
||||||
(GDestroyNotify)drmModeFreePropertyBlob, edid_blob);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
drmModeFreePropertyBlob (edid_blob);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaMonitorMode *
|
|
||||||
find_meta_mode (MetaMonitorManager *manager,
|
|
||||||
const drmModeModeInfo *drm_mode)
|
|
||||||
{
|
|
||||||
unsigned k;
|
|
||||||
|
|
||||||
for (k = 0; k < manager->n_modes; k++)
|
|
||||||
{
|
|
||||||
if (drm_mode_equal (drm_mode, manager->modes[k].driver_private))
|
|
||||||
return &manager->modes[k];
|
|
||||||
}
|
|
||||||
|
|
||||||
g_assert_not_reached ();
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaOutput *
|
|
||||||
find_output_by_id (MetaOutput *outputs,
|
|
||||||
unsigned n_outputs,
|
|
||||||
glong id)
|
|
||||||
{
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
for (i = 0; i < n_outputs; i++)
|
|
||||||
if (outputs[i].output_id == id)
|
|
||||||
return &outputs[i];
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_read_current (MetaMonitorManager *manager)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
|
||||||
drmModeRes *resources;
|
|
||||||
GHashTable *modes;
|
|
||||||
GHashTableIter iter;
|
|
||||||
drmModeModeInfo *mode;
|
|
||||||
unsigned int i, j, k;
|
|
||||||
unsigned int n_actual_outputs;
|
|
||||||
int width, height;
|
|
||||||
MetaOutput *old_outputs;
|
|
||||||
unsigned int n_old_outputs;
|
|
||||||
|
|
||||||
resources = drmModeGetResources(manager_kms->fd);
|
|
||||||
modes = g_hash_table_new (drm_mode_hash, drm_mode_equal);
|
|
||||||
|
|
||||||
manager->max_screen_width = resources->max_width;
|
|
||||||
manager->max_screen_height = resources->max_height;
|
|
||||||
|
|
||||||
manager->power_save_mode = META_POWER_SAVE_ON;
|
|
||||||
|
|
||||||
old_outputs = manager->outputs;
|
|
||||||
n_old_outputs = manager->n_outputs;
|
|
||||||
|
|
||||||
/* Note: we must not free the public structures (output, crtc, monitor
|
|
||||||
mode and monitor info) here, they must be kept alive until the API
|
|
||||||
users are done with them after we emit monitors-changed, and thus
|
|
||||||
are freed by the platform-independent layer. */
|
|
||||||
free_resources (manager_kms);
|
|
||||||
|
|
||||||
manager_kms->n_connectors = resources->count_connectors;
|
|
||||||
manager_kms->connectors = g_new (drmModeConnector *, manager_kms->n_connectors);
|
|
||||||
for (i = 0; i < manager_kms->n_connectors; i++)
|
|
||||||
{
|
|
||||||
drmModeConnector *connector;
|
|
||||||
|
|
||||||
connector = drmModeGetConnector (manager_kms->fd, resources->connectors[i]);
|
|
||||||
manager_kms->connectors[i] = connector;
|
|
||||||
|
|
||||||
if (connector->connection == DRM_MODE_CONNECTED)
|
|
||||||
{
|
|
||||||
/* Collect all modes for this connector */
|
|
||||||
for (j = 0; j < (unsigned)connector->count_modes; j++)
|
|
||||||
g_hash_table_add (modes, &connector->modes[j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
manager_kms->n_encoders = resources->count_encoders;
|
|
||||||
manager_kms->encoders = g_new (drmModeEncoder *, manager_kms->n_encoders);
|
|
||||||
for (i = 0; i < manager_kms->n_encoders; i++)
|
|
||||||
{
|
|
||||||
manager_kms->encoders[i] = drmModeGetEncoder (manager_kms->fd,
|
|
||||||
resources->encoders[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
manager->n_modes = g_hash_table_size (modes);
|
|
||||||
manager->modes = g_new0 (MetaMonitorMode, manager->n_modes);
|
|
||||||
g_hash_table_iter_init (&iter, modes);
|
|
||||||
i = 0;
|
|
||||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer)&mode))
|
|
||||||
{
|
|
||||||
MetaMonitorMode *meta_mode;
|
|
||||||
|
|
||||||
meta_mode = &manager->modes[i];
|
|
||||||
|
|
||||||
meta_mode->mode_id = i;
|
|
||||||
meta_mode->name = g_strndup (mode->name, DRM_DISPLAY_MODE_LEN);
|
|
||||||
meta_mode->width = mode->hdisplay;
|
|
||||||
meta_mode->height = mode->vdisplay;
|
|
||||||
meta_mode->refresh_rate = (1000 * mode->clock /
|
|
||||||
((float)mode->htotal * mode->vtotal));
|
|
||||||
|
|
||||||
meta_mode->driver_private = g_slice_dup (drmModeModeInfo, mode);
|
|
||||||
meta_mode->driver_notify = (GDestroyNotify)meta_monitor_mode_destroy_notify;
|
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
g_hash_table_destroy (modes);
|
|
||||||
|
|
||||||
manager->n_crtcs = resources->count_crtcs;
|
|
||||||
manager->crtcs = g_new0 (MetaCRTC, manager->n_crtcs);
|
|
||||||
width = 0; height = 0;
|
|
||||||
for (i = 0; i < (unsigned)resources->count_crtcs; i++)
|
|
||||||
{
|
|
||||||
drmModeCrtc *crtc;
|
|
||||||
MetaCRTC *meta_crtc;
|
|
||||||
|
|
||||||
crtc = drmModeGetCrtc (manager_kms->fd, resources->crtcs[i]);
|
|
||||||
|
|
||||||
meta_crtc = &manager->crtcs[i];
|
|
||||||
|
|
||||||
meta_crtc->crtc_id = crtc->crtc_id;
|
|
||||||
meta_crtc->rect.x = crtc->x;
|
|
||||||
meta_crtc->rect.y = crtc->y;
|
|
||||||
meta_crtc->rect.width = crtc->width;
|
|
||||||
meta_crtc->rect.height = crtc->height;
|
|
||||||
meta_crtc->is_dirty = FALSE;
|
|
||||||
meta_crtc->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
|
||||||
/* FIXME: implement! */
|
|
||||||
meta_crtc->all_transforms = 1 << WL_OUTPUT_TRANSFORM_NORMAL;
|
|
||||||
|
|
||||||
if (crtc->mode_valid)
|
|
||||||
{
|
|
||||||
for (j = 0; j < manager->n_modes; j++)
|
|
||||||
{
|
|
||||||
if (drm_mode_equal (&crtc->mode, manager->modes[j].driver_private))
|
|
||||||
{
|
|
||||||
meta_crtc->current_mode = &manager->modes[j];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
width = MAX (width, meta_crtc->rect.x + meta_crtc->rect.width);
|
|
||||||
height = MAX (height, meta_crtc->rect.y + meta_crtc->rect.height);
|
|
||||||
}
|
|
||||||
|
|
||||||
drmModeFreeCrtc (crtc);
|
|
||||||
}
|
|
||||||
|
|
||||||
manager->screen_width = width;
|
|
||||||
manager->screen_height = height;
|
|
||||||
|
|
||||||
manager->outputs = g_new0 (MetaOutput, manager_kms->n_connectors);
|
|
||||||
n_actual_outputs = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < manager_kms->n_connectors; i++)
|
|
||||||
{
|
|
||||||
MetaOutput *meta_output, *old_output;
|
|
||||||
MetaOutputKms *output_kms;
|
|
||||||
drmModeConnector *connector;
|
|
||||||
GArray *crtcs;
|
|
||||||
unsigned int crtc_mask;
|
|
||||||
GBytes *edid;
|
|
||||||
|
|
||||||
connector = manager_kms->connectors[i];
|
|
||||||
meta_output = &manager->outputs[n_actual_outputs];
|
|
||||||
|
|
||||||
if (connector->connection == DRM_MODE_CONNECTED)
|
|
||||||
{
|
|
||||||
meta_output->driver_private = output_kms = g_slice_new0 (MetaOutputKms);
|
|
||||||
meta_output->driver_notify = (GDestroyNotify)meta_output_destroy_notify;
|
|
||||||
|
|
||||||
meta_output->output_id = connector->connector_id;
|
|
||||||
meta_output->name = make_output_name (connector);
|
|
||||||
meta_output->width_mm = connector->mmWidth;
|
|
||||||
meta_output->height_mm = connector->mmHeight;
|
|
||||||
|
|
||||||
switch (connector->subpixel)
|
|
||||||
{
|
|
||||||
case DRM_MODE_SUBPIXEL_NONE:
|
|
||||||
meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_NONE;
|
|
||||||
break;
|
|
||||||
case DRM_MODE_SUBPIXEL_HORIZONTAL_RGB:
|
|
||||||
meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_HORIZONTAL_RGB;
|
|
||||||
break;
|
|
||||||
case DRM_MODE_SUBPIXEL_HORIZONTAL_BGR:
|
|
||||||
meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_HORIZONTAL_BGR;
|
|
||||||
break;
|
|
||||||
case DRM_MODE_SUBPIXEL_VERTICAL_RGB:
|
|
||||||
meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_VERTICAL_RGB;
|
|
||||||
break;
|
|
||||||
case DRM_MODE_SUBPIXEL_VERTICAL_BGR:
|
|
||||||
meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_VERTICAL_BGR;
|
|
||||||
break;
|
|
||||||
case DRM_MODE_SUBPIXEL_UNKNOWN:
|
|
||||||
default:
|
|
||||||
meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_UNKNOWN;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
meta_output->n_modes = connector->count_modes;
|
|
||||||
meta_output->modes = g_new0 (MetaMonitorMode *, meta_output->n_modes);
|
|
||||||
for (j = 0; j < meta_output->n_modes; j++)
|
|
||||||
meta_output->modes[j] = find_meta_mode (manager, &connector->modes[j]);
|
|
||||||
meta_output->preferred_mode = meta_output->modes[0];
|
|
||||||
|
|
||||||
output_kms->connector = connector;
|
|
||||||
output_kms->n_encoders = connector->count_encoders;
|
|
||||||
output_kms->encoders = g_new0 (drmModeEncoderPtr, output_kms->n_encoders);
|
|
||||||
|
|
||||||
crtc_mask = ~(unsigned int)0;
|
|
||||||
for (j = 0; j < output_kms->n_encoders; j++)
|
|
||||||
{
|
|
||||||
output_kms->encoders[j] = drmModeGetEncoder (manager_kms->fd, connector->encoders[j]);
|
|
||||||
|
|
||||||
/* We only list CRTCs as supported if they are supported by all encoders
|
|
||||||
for this connectors.
|
|
||||||
|
|
||||||
This is what xf86-video-modesetting does (see drmmode_output_init())
|
|
||||||
*/
|
|
||||||
crtc_mask &= output_kms->encoders[j]->possible_crtcs;
|
|
||||||
|
|
||||||
if (output_kms->encoders[j]->encoder_id == connector->encoder_id)
|
|
||||||
output_kms->current_encoder = output_kms->encoders[j];
|
|
||||||
}
|
|
||||||
|
|
||||||
crtcs = g_array_new (FALSE, FALSE, sizeof (MetaCRTC*));
|
|
||||||
|
|
||||||
for (j = 0; j < manager->n_crtcs; j++)
|
|
||||||
{
|
|
||||||
if (crtc_mask & (1 << j))
|
|
||||||
{
|
|
||||||
MetaCRTC *crtc = &manager->crtcs[j];
|
|
||||||
g_array_append_val (crtcs, crtc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
meta_output->n_possible_crtcs = crtcs->len;
|
|
||||||
meta_output->possible_crtcs = (void*)g_array_free (crtcs, FALSE);
|
|
||||||
|
|
||||||
if (output_kms->current_encoder && output_kms->current_encoder->crtc_id != 0)
|
|
||||||
{
|
|
||||||
for (j = 0; j < manager->n_crtcs; j++)
|
|
||||||
{
|
|
||||||
if (manager->crtcs[j].crtc_id == output_kms->current_encoder->crtc_id)
|
|
||||||
{
|
|
||||||
meta_output->crtc = &manager->crtcs[j];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
meta_output->crtc = NULL;
|
|
||||||
|
|
||||||
old_output = find_output_by_id (old_outputs, n_old_outputs,
|
|
||||||
meta_output->output_id);
|
|
||||||
if (old_output)
|
|
||||||
{
|
|
||||||
meta_output->is_primary = old_output->is_primary;
|
|
||||||
meta_output->is_presentation = old_output->is_presentation;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
meta_output->is_primary = FALSE;
|
|
||||||
meta_output->is_presentation = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
find_properties (manager_kms, output_kms);
|
|
||||||
|
|
||||||
edid = read_output_edid (manager_kms, meta_output);
|
|
||||||
if (edid)
|
|
||||||
{
|
|
||||||
MonitorInfo *parsed_edid;
|
|
||||||
gsize len;
|
|
||||||
|
|
||||||
parsed_edid = decode_edid (g_bytes_get_data (edid, &len));
|
|
||||||
if (parsed_edid)
|
|
||||||
{
|
|
||||||
meta_output->vendor = g_strndup (parsed_edid->manufacturer_code, 4);
|
|
||||||
meta_output->product = g_strndup (parsed_edid->dsc_product_name, 14);
|
|
||||||
meta_output->serial = g_strndup (parsed_edid->dsc_serial_number, 14);
|
|
||||||
|
|
||||||
g_free (parsed_edid);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_bytes_unref (edid);
|
|
||||||
}
|
|
||||||
if (!meta_output->vendor)
|
|
||||||
{
|
|
||||||
meta_output->vendor = g_strdup ("unknown");
|
|
||||||
meta_output->product = g_strdup ("unknown");
|
|
||||||
meta_output->serial = g_strdup ("unknown");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FIXME: backlight is a very driver specific thing unfortunately,
|
|
||||||
every DDX does its own thing, and the dumb KMS API does not include it.
|
|
||||||
|
|
||||||
For example, xf86-video-intel has a list of paths to probe in /sys/class/backlight
|
|
||||||
(one for each major HW maker, and then some).
|
|
||||||
We can't do the same because we're not root.
|
|
||||||
It might be best to leave backlight out of the story and rely on the setuid
|
|
||||||
helper in gnome-settings-daemon.
|
|
||||||
*/
|
|
||||||
meta_output->backlight_min = 0;
|
|
||||||
meta_output->backlight_max = 0;
|
|
||||||
meta_output->backlight = -1;
|
|
||||||
|
|
||||||
n_actual_outputs++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
manager->n_outputs = n_actual_outputs;
|
|
||||||
manager->outputs = g_renew (MetaOutput, manager->outputs, manager->n_outputs);
|
|
||||||
|
|
||||||
/* Sort the outputs for easier handling in MetaMonitorConfig */
|
|
||||||
qsort (manager->outputs, manager->n_outputs, sizeof (MetaOutput), compare_outputs);
|
|
||||||
|
|
||||||
/* Now fix the clones.
|
|
||||||
Code mostly inspired by xf86-video-modesetting. */
|
|
||||||
|
|
||||||
/* XXX: intel hardware doesn't usually have clones, but I only have laptops with
|
|
||||||
intel cards, so this code was never tested! */
|
|
||||||
for (i = 0; i < manager->n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutput *meta_output;
|
|
||||||
MetaOutputKms *output_kms;
|
|
||||||
|
|
||||||
meta_output = &manager->outputs[i];
|
|
||||||
output_kms = meta_output->driver_private;
|
|
||||||
|
|
||||||
output_kms->enc_clone_mask = 0xff;
|
|
||||||
output_kms->encoder_mask = 0;
|
|
||||||
|
|
||||||
for (j = 0; j < output_kms->n_encoders; j++)
|
|
||||||
{
|
|
||||||
for (k = 0; k < manager_kms->n_encoders; k++)
|
|
||||||
{
|
|
||||||
if (output_kms->encoders[j]->encoder_id == manager_kms->encoders[k]->encoder_id)
|
|
||||||
{
|
|
||||||
output_kms->encoder_mask |= (1 << k);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
output_kms->enc_clone_mask &= output_kms->encoders[j]->possible_clones;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < manager->n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutput *meta_output;
|
|
||||||
MetaOutputKms *output_kms;
|
|
||||||
|
|
||||||
meta_output = &manager->outputs[i];
|
|
||||||
output_kms = meta_output->driver_private;
|
|
||||||
|
|
||||||
if (output_kms->enc_clone_mask == 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for (j = 0; j < manager->n_outputs; j++)
|
|
||||||
{
|
|
||||||
MetaOutput *meta_clone;
|
|
||||||
MetaOutputKms *clone_kms;
|
|
||||||
|
|
||||||
meta_clone = &manager->outputs[i];
|
|
||||||
clone_kms = meta_clone->driver_private;
|
|
||||||
|
|
||||||
if (meta_clone == meta_output)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (clone_kms->encoder_mask == 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (clone_kms->encoder_mask == output_kms->enc_clone_mask)
|
|
||||||
{
|
|
||||||
meta_output->n_possible_clones++;
|
|
||||||
meta_output->possible_clones = g_renew (MetaOutput *,
|
|
||||||
meta_output->possible_clones,
|
|
||||||
meta_output->n_possible_clones);
|
|
||||||
meta_output->possible_clones[meta_output->n_possible_clones - 1] = meta_clone;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
drmModeFreeResources (resources);
|
|
||||||
}
|
|
||||||
|
|
||||||
static GBytes *
|
|
||||||
meta_monitor_manager_kms_read_edid (MetaMonitorManager *manager,
|
|
||||||
MetaOutput *output)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
|
||||||
|
|
||||||
return read_output_edid (manager_kms, output);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_set_power_save_mode (MetaMonitorManager *manager,
|
|
||||||
MetaPowerSave mode)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
|
||||||
uint64_t state;
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
switch (mode) {
|
|
||||||
case META_POWER_SAVE_ON:
|
|
||||||
state = DRM_MODE_DPMS_ON;
|
|
||||||
break;
|
|
||||||
case META_POWER_SAVE_STANDBY:
|
|
||||||
state = DRM_MODE_DPMS_STANDBY;
|
|
||||||
break;
|
|
||||||
case META_POWER_SAVE_SUSPEND:
|
|
||||||
state = DRM_MODE_DPMS_SUSPEND;
|
|
||||||
break;
|
|
||||||
case META_POWER_SAVE_OFF:
|
|
||||||
state = DRM_MODE_DPMS_OFF;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < manager->n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutput *meta_output;
|
|
||||||
MetaOutputKms *output_kms;
|
|
||||||
|
|
||||||
meta_output = &manager->outputs[i];
|
|
||||||
output_kms = meta_output->driver_private;
|
|
||||||
|
|
||||||
if (output_kms->dpms_prop_id != 0)
|
|
||||||
{
|
|
||||||
int ok = drmModeConnectorSetProperty(manager_kms->fd, meta_output->output_id,
|
|
||||||
output_kms->dpms_prop_id, state);
|
|
||||||
|
|
||||||
if (ok < 0)
|
|
||||||
meta_warning ("Failed to set power save mode for output %s: %s\n",
|
|
||||||
meta_output->name, strerror (errno));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
crtc_free (CoglKmsCrtc *crtc)
|
|
||||||
{
|
|
||||||
g_free (crtc->connectors);
|
|
||||||
g_slice_free (CoglKmsCrtc, crtc);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_apply_configuration (MetaMonitorManager *manager,
|
|
||||||
MetaCRTCInfo **crtcs,
|
|
||||||
unsigned int n_crtcs,
|
|
||||||
MetaOutputInfo **outputs,
|
|
||||||
unsigned int n_outputs)
|
|
||||||
{
|
|
||||||
ClutterBackend *backend;
|
|
||||||
CoglContext *cogl_context;
|
|
||||||
CoglDisplay *cogl_display;
|
|
||||||
unsigned i;
|
|
||||||
GPtrArray *cogl_crtcs;
|
|
||||||
int screen_width, screen_height;
|
|
||||||
gboolean ok;
|
|
||||||
GError *error;
|
|
||||||
|
|
||||||
cogl_crtcs = g_ptr_array_new_full (manager->n_crtcs, (GDestroyNotify)crtc_free);
|
|
||||||
screen_width = 0; screen_height = 0;
|
|
||||||
for (i = 0; i < n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaCRTCInfo *crtc_info = crtcs[i];
|
|
||||||
MetaCRTC *crtc = crtc_info->crtc;
|
|
||||||
CoglKmsCrtc *cogl_crtc;
|
|
||||||
|
|
||||||
crtc->is_dirty = TRUE;
|
|
||||||
|
|
||||||
cogl_crtc = g_slice_new0 (CoglKmsCrtc);
|
|
||||||
g_ptr_array_add (cogl_crtcs, cogl_crtc);
|
|
||||||
|
|
||||||
if (crtc_info->mode == NULL)
|
|
||||||
{
|
|
||||||
cogl_crtc->id = crtc->crtc_id;
|
|
||||||
cogl_crtc->x = 0;
|
|
||||||
cogl_crtc->y = 0;
|
|
||||||
cogl_crtc->count = 0;
|
|
||||||
memset (&cogl_crtc->mode, 0, sizeof (drmModeModeInfo));
|
|
||||||
cogl_crtc->connectors = NULL;
|
|
||||||
cogl_crtc->count = 0;
|
|
||||||
|
|
||||||
crtc->rect.x = 0;
|
|
||||||
crtc->rect.y = 0;
|
|
||||||
crtc->rect.width = 0;
|
|
||||||
crtc->rect.height = 0;
|
|
||||||
crtc->current_mode = NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MetaMonitorMode *mode;
|
|
||||||
uint32_t *connectors;
|
|
||||||
unsigned int j, n_connectors;
|
|
||||||
int width, height;
|
|
||||||
|
|
||||||
mode = crtc_info->mode;
|
|
||||||
|
|
||||||
cogl_crtc->id = crtc->crtc_id;
|
|
||||||
cogl_crtc->x = crtc_info->x;
|
|
||||||
cogl_crtc->y = crtc_info->y;
|
|
||||||
cogl_crtc->count = n_connectors = crtc_info->outputs->len;
|
|
||||||
cogl_crtc->connectors = connectors = g_new (uint32_t, n_connectors);
|
|
||||||
|
|
||||||
for (j = 0; j < n_connectors; j++)
|
|
||||||
{
|
|
||||||
MetaOutput *output = g_ptr_array_index (crtc_info->outputs, j);
|
|
||||||
|
|
||||||
connectors[j] = output->output_id;
|
|
||||||
|
|
||||||
output->is_dirty = TRUE;
|
|
||||||
output->crtc = crtc;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy (&cogl_crtc->mode, crtc_info->mode->driver_private,
|
|
||||||
sizeof (drmModeModeInfo));
|
|
||||||
|
|
||||||
if (meta_monitor_transform_is_rotated (crtc_info->transform))
|
|
||||||
{
|
|
||||||
width = mode->height;
|
|
||||||
height = mode->width;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
width = mode->width;
|
|
||||||
height = mode->height;
|
|
||||||
}
|
|
||||||
|
|
||||||
screen_width = MAX (screen_width, crtc_info->x + width);
|
|
||||||
screen_height = MAX (screen_height, crtc_info->y + height);
|
|
||||||
|
|
||||||
crtc->rect.x = crtc_info->x;
|
|
||||||
crtc->rect.y = crtc_info->y;
|
|
||||||
crtc->rect.width = width;
|
|
||||||
crtc->rect.height = height;
|
|
||||||
crtc->current_mode = mode;
|
|
||||||
crtc->transform = crtc_info->transform;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable CRTCs not mentioned in the list (they have is_dirty == FALSE,
|
|
||||||
because they weren't seen in the first loop) */
|
|
||||||
for (i = 0; i < manager->n_crtcs; i++)
|
|
||||||
{
|
|
||||||
MetaCRTC *crtc = &manager->crtcs[i];
|
|
||||||
CoglKmsCrtc *cogl_crtc;
|
|
||||||
|
|
||||||
crtc->logical_monitor = NULL;
|
|
||||||
|
|
||||||
if (crtc->is_dirty)
|
|
||||||
{
|
|
||||||
crtc->is_dirty = FALSE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
cogl_crtc = g_slice_new0 (CoglKmsCrtc);
|
|
||||||
g_ptr_array_add (cogl_crtcs, cogl_crtc);
|
|
||||||
|
|
||||||
cogl_crtc->id = crtc->crtc_id;
|
|
||||||
cogl_crtc->x = 0;
|
|
||||||
cogl_crtc->y = 0;
|
|
||||||
cogl_crtc->count = 0;
|
|
||||||
memset (&cogl_crtc->mode, 0, sizeof (drmModeModeInfo));
|
|
||||||
cogl_crtc->connectors = NULL;
|
|
||||||
cogl_crtc->count = 0;
|
|
||||||
|
|
||||||
crtc->rect.x = 0;
|
|
||||||
crtc->rect.y = 0;
|
|
||||||
crtc->rect.width = 0;
|
|
||||||
crtc->rect.height = 0;
|
|
||||||
crtc->current_mode = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
backend = clutter_get_default_backend ();
|
|
||||||
cogl_context = clutter_backend_get_cogl_context (backend);
|
|
||||||
cogl_display = cogl_context_get_display (cogl_context);
|
|
||||||
|
|
||||||
error = NULL;
|
|
||||||
ok = cogl_kms_display_set_layout (cogl_display, screen_width, screen_height,
|
|
||||||
(CoglKmsCrtc**)cogl_crtcs->pdata, cogl_crtcs->len, &error);
|
|
||||||
g_ptr_array_unref (cogl_crtcs);
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
{
|
|
||||||
meta_warning ("Applying display configuration failed: %s\n", error->message);
|
|
||||||
g_error_free (error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutputInfo *output_info = outputs[i];
|
|
||||||
MetaOutput *output = output_info->output;
|
|
||||||
|
|
||||||
output->is_primary = output_info->is_primary;
|
|
||||||
output->is_presentation = output_info->is_presentation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable outputs not mentioned in the list */
|
|
||||||
for (i = 0; i < manager->n_outputs; i++)
|
|
||||||
{
|
|
||||||
MetaOutput *output = &manager->outputs[i];
|
|
||||||
|
|
||||||
if (output->is_dirty)
|
|
||||||
{
|
|
||||||
output->is_dirty = FALSE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
output->crtc = NULL;
|
|
||||||
output->is_primary = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
manager->screen_width = screen_width;
|
|
||||||
manager->screen_height = screen_height;
|
|
||||||
|
|
||||||
meta_monitor_manager_rebuild_derived (manager);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_get_crtc_gamma (MetaMonitorManager *manager,
|
|
||||||
MetaCRTC *crtc,
|
|
||||||
gsize *size,
|
|
||||||
unsigned short **red,
|
|
||||||
unsigned short **green,
|
|
||||||
unsigned short **blue)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
|
||||||
drmModeCrtc *kms_crtc;
|
|
||||||
|
|
||||||
kms_crtc = drmModeGetCrtc (manager_kms->fd, crtc->crtc_id);
|
|
||||||
|
|
||||||
*size = kms_crtc->gamma_size;
|
|
||||||
*red = g_new (unsigned short, *size);
|
|
||||||
*green = g_new (unsigned short, *size);
|
|
||||||
*blue = g_new (unsigned short, *size);
|
|
||||||
|
|
||||||
drmModeCrtcGetGamma (manager_kms->fd, crtc->crtc_id, *size, *red, *green, *blue);
|
|
||||||
|
|
||||||
drmModeFreeCrtc (kms_crtc);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_set_crtc_gamma (MetaMonitorManager *manager,
|
|
||||||
MetaCRTC *crtc,
|
|
||||||
gsize size,
|
|
||||||
unsigned short *red,
|
|
||||||
unsigned short *green,
|
|
||||||
unsigned short *blue)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
|
||||||
|
|
||||||
drmModeCrtcSetGamma (manager_kms->fd, crtc->crtc_id, size, red, green, blue);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_init (MetaMonitorManagerKms *manager_kms)
|
|
||||||
{
|
|
||||||
ClutterBackend *backend;
|
|
||||||
CoglContext *cogl_context;
|
|
||||||
CoglDisplay *cogl_display;
|
|
||||||
CoglRenderer *cogl_renderer;
|
|
||||||
|
|
||||||
backend = clutter_get_default_backend ();
|
|
||||||
cogl_context = clutter_backend_get_cogl_context (backend);
|
|
||||||
cogl_display = cogl_context_get_display (cogl_context);
|
|
||||||
cogl_renderer = cogl_display_get_renderer (cogl_display);
|
|
||||||
|
|
||||||
manager_kms->fd = cogl_kms_renderer_get_kms_fd (cogl_renderer);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (object);
|
|
||||||
|
|
||||||
free_resources (manager_kms);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_monitor_manager_kms_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_monitor_manager_kms_class_init (MetaMonitorManagerKmsClass *klass)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerClass *manager_class = META_MONITOR_MANAGER_CLASS (klass);
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
||||||
|
|
||||||
object_class->finalize = meta_monitor_manager_kms_finalize;
|
|
||||||
|
|
||||||
manager_class->read_current = meta_monitor_manager_kms_read_current;
|
|
||||||
manager_class->read_edid = meta_monitor_manager_kms_read_edid;
|
|
||||||
manager_class->apply_configuration = meta_monitor_manager_kms_apply_configuration;
|
|
||||||
manager_class->set_power_save_mode = meta_monitor_manager_kms_set_power_save_mode;
|
|
||||||
manager_class->get_crtc_gamma = meta_monitor_manager_kms_get_crtc_gamma;
|
|
||||||
manager_class->set_crtc_gamma = meta_monitor_manager_kms_set_crtc_gamma;
|
|
||||||
}
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user