Compare commits
84 Commits
3.7.91
...
wip/is-swi
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2467439d94 | ||
![]() |
0e83b748d5 | ||
![]() |
bda4af5504 | ||
![]() |
f97d8dfb6c | ||
![]() |
46f0cffa53 | ||
![]() |
b6203192b5 | ||
![]() |
992a15e640 | ||
![]() |
f1620abfad | ||
![]() |
591523e473 | ||
![]() |
72769e113a | ||
![]() |
387cb83c8a | ||
![]() |
577e5e2e1a | ||
![]() |
47cf63bebe | ||
![]() |
0e58906194 | ||
![]() |
13c7020b80 | ||
![]() |
5ed6e37e3c | ||
![]() |
9ed3a77102 | ||
![]() |
acd99927f9 | ||
![]() |
13c92f63bb | ||
![]() |
12400caef8 | ||
![]() |
a1b3fdfbd6 | ||
![]() |
4b47c59a04 | ||
![]() |
5d223c189c | ||
![]() |
c5d0923453 | ||
![]() |
41f8fccf6b | ||
![]() |
e02ad64fef | ||
![]() |
8db53af1f8 | ||
![]() |
defaa5876c | ||
![]() |
e7870cb665 | ||
![]() |
64eb42023c | ||
![]() |
e7faef860b | ||
![]() |
4dfbe9a493 | ||
![]() |
6a17bb4cf5 | ||
![]() |
58496de595 | ||
![]() |
f80a15f312 | ||
![]() |
9df2d83aa0 | ||
![]() |
1582448553 | ||
![]() |
eefa62bcd4 | ||
![]() |
e216b6ca0f | ||
![]() |
8a33880c00 | ||
![]() |
7a8c45dda8 | ||
![]() |
af01ddaf5d | ||
![]() |
5ceffe86ee | ||
![]() |
49df033b4e | ||
![]() |
ac3465ffbb | ||
![]() |
884ab602cb | ||
![]() |
d944bda7b9 | ||
![]() |
11f7cfb27b | ||
![]() |
64358d9901 | ||
![]() |
2efed44257 | ||
![]() |
69c72ebb26 | ||
![]() |
00a842f41b | ||
![]() |
460dc9f2ef | ||
![]() |
be46869782 | ||
![]() |
2863eba2e7 | ||
![]() |
e0b698d365 | ||
![]() |
edeac1de09 | ||
![]() |
9281a1c191 | ||
![]() |
a3826987e6 | ||
![]() |
e46c7fd27b | ||
![]() |
0bb8d29be4 | ||
![]() |
1f905bd0e2 | ||
![]() |
cce5ad7cc0 | ||
![]() |
97a4cc8c9b | ||
![]() |
592374bc62 | ||
![]() |
2e0f979613 | ||
![]() |
6d365a700c | ||
![]() |
72a9eb6a3e | ||
![]() |
ae3cfe6c01 | ||
![]() |
da557cb712 | ||
![]() |
c1e41d558f | ||
![]() |
889844b004 | ||
![]() |
6311a3ebc1 | ||
![]() |
0f6c1db2ba | ||
![]() |
e6ec1abbfa | ||
![]() |
42621c960e | ||
![]() |
8e9ae2eb50 | ||
![]() |
ca7843372c | ||
![]() |
1202714428 | ||
![]() |
45addabe5d | ||
![]() |
31abad0ea5 | ||
![]() |
c169d29836 | ||
![]() |
df8ad83cec | ||
![]() |
381a9c2650 |
17
.gitignore
vendored
17
.gitignore
vendored
@@ -75,3 +75,20 @@ src/stamp-mutter-enum-types.h
|
||||
src/mutter-marshal.[ch]
|
||||
src/stamp-mutter-marshal.h
|
||||
src/mutter-plugins.pc
|
||||
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
|
||||
|
@@ -4,3 +4,5 @@ SUBDIRS=src po doc
|
||||
EXTRA_DIST = HACKING MAINTAINERS rationales.txt
|
||||
|
||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
|
||||
|
35
NEWS
35
NEWS
@@ -1,3 +1,38 @@
|
||||
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]
|
||||
|
@@ -1,8 +1,8 @@
|
||||
AC_PREREQ(2.50)
|
||||
|
||||
m4_define([mutter_major_version], [3])
|
||||
m4_define([mutter_minor_version], [7])
|
||||
m4_define([mutter_micro_version], [91])
|
||||
m4_define([mutter_minor_version], [8])
|
||||
m4_define([mutter_micro_version], [0])
|
||||
|
||||
m4_define([mutter_version],
|
||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||
@@ -364,6 +364,8 @@ if test "x$enable_debug" = "xyes"; then
|
||||
CFLAGS="$CFLAGS -g -O"
|
||||
fi
|
||||
|
||||
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
|
||||
|
||||
#### Warnings (last since -Werror can disturb other tests)
|
||||
|
||||
# Stay command-line compatible with the gnome-common configure option. Here
|
||||
@@ -434,6 +436,8 @@ AC_CONFIG_FILES([
|
||||
Makefile
|
||||
doc/Makefile
|
||||
doc/man/Makefile
|
||||
doc/reference/Makefile
|
||||
doc/reference/meta-docs.sgml
|
||||
src/Makefile
|
||||
src/wm-tester/Makefile
|
||||
src/libmutter.pc
|
||||
|
@@ -1,4 +1,4 @@
|
||||
SUBDIRS = man
|
||||
SUBDIRS = man reference
|
||||
|
||||
EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
|
||||
how-to-get-focus-right.txt
|
||||
|
166
doc/reference/Makefile.am
Normal file
166
doc/reference/Makefile.am
Normal file
@@ -0,0 +1,166 @@
|
||||
## 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.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
|
59
doc/reference/meta-docs.sgml.in
Normal file
59
doc/reference/meta-docs.sgml.in
Normal file
@@ -0,0 +1,59 @@
|
||||
<?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>
|
667
doc/reference/meta-sections.txt
Normal file
667
doc/reference/meta-sections.txt
Normal file
@@ -0,0 +1,667 @@
|
||||
<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_window_mapped
|
||||
meta_compositor_window_unmapped
|
||||
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_keybindings_switch_window
|
||||
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>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_application_based
|
||||
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_outer_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>
|
||||
|
15
doc/reference/mutter-overview.xml
Normal file
15
doc/reference/mutter-overview.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<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>
|
100
doc/reference/running-mutter.xml
Normal file
100
doc/reference/running-mutter.xml
Normal file
@@ -0,0 +1,100 @@
|
||||
<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>
|
@@ -80,6 +80,7 @@ sr@latin
|
||||
sv
|
||||
ta
|
||||
te
|
||||
tg
|
||||
th
|
||||
tk
|
||||
tr
|
||||
|
224
po/ar.po
224
po/ar.po
@@ -4,14 +4,14 @@
|
||||
# Arafat Medini <lumina@silverpen.de>, 2003.
|
||||
# Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004.
|
||||
# Djihed Afifi <djihed@gmail.com>, 2006.
|
||||
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
|
||||
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
|
||||
# Anas Afif Emad <anas.e87@gmail.com>, 2008.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity.HEAD\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-24 13:14+0200\n"
|
||||
"PO-Revision-Date: 2012-12-24 13:17+0200\n"
|
||||
"POT-Creation-Date: 2013-03-09 22:48+0200\n"
|
||||
"PO-Revision-Date: 2013-03-09 22:48+0200\n"
|
||||
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
|
||||
"Language-Team: Arabic <doc@arabeyes.org>\n"
|
||||
"Language: ar\n"
|
||||
@@ -167,8 +167,8 @@ msgid "Close window"
|
||||
msgstr "أغلق النّافذة"
|
||||
|
||||
#: ../src/50-mutter-windows.xml.in.h:9
|
||||
msgid "Minimize window"
|
||||
msgstr "صغّر النّافذة"
|
||||
msgid "Hide window"
|
||||
msgstr "أخفِ النّافذة"
|
||||
|
||||
#: ../src/50-mutter-windows.xml.in.h:10
|
||||
msgid "Move window"
|
||||
@@ -212,13 +212,17 @@ msgstr "المنظور مقسوم على اليسار"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:512
|
||||
#: ../src/compositor/compositor.c:502
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%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
|
||||
msgid "Bell event"
|
||||
msgstr "حدث جرس"
|
||||
@@ -251,23 +255,28 @@ msgstr "ا_نتظر"
|
||||
msgid "_Force Quit"
|
||||
msgstr "أ_جبر الإنهاء"
|
||||
|
||||
#: ../src/core/display.c:394
|
||||
#: ../src/core/display.c:402
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب"
|
||||
|
||||
#: ../src/core/display.c:491
|
||||
#: ../src/core/display.c:494
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
"binding\n"
|
||||
msgstr "يستعمل برنامج آخر المفتاح %s بالفعل مع المغيرين %x كرابط\n"
|
||||
|
||||
#: ../src/core/keybindings.c:1129
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "\"%s\" ليس اختصارا صحيحا\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "عطّل الاتصال بمدير الجلسة"
|
||||
@@ -292,12 +301,12 @@ msgstr "ابدأ الجلسة من ملف محفوظ"
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "اجعل نداءات س متزامنة"
|
||||
|
||||
#: ../src/core/main.c:496
|
||||
#: ../src/core/main.c:533
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "فشلت قراءة دليل السِمات : %s\n"
|
||||
|
||||
#: ../src/core/main.c:512
|
||||
#: ../src/core/main.c:549
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -325,7 +334,7 @@ msgstr "اطبع الإصدارة"
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "ملحق مَتَر الذي سيُستخدم"
|
||||
|
||||
#: ../src/core/prefs.c:1079
|
||||
#: ../src/core/prefs.c:1087
|
||||
msgid ""
|
||||
"Workarounds for broken applications disabled. Some applications may not "
|
||||
"behave properly.\n"
|
||||
@@ -333,12 +342,12 @@ msgstr ""
|
||||
"عطّلت الحلول الجزئيّة للتطبيقات المعطوبة . ربما لن تتصرف بعض التطبيقات "
|
||||
"بسلامة.\n"
|
||||
|
||||
#: ../src/core/prefs.c:1154
|
||||
#: ../src/core/prefs.c:1162
|
||||
#, c-format
|
||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||
msgstr "لا يمكن تحليل وصف الخط \"%s\" من مفتاح GSettings %s\n"
|
||||
|
||||
#: ../src/core/prefs.c:1220
|
||||
#: ../src/core/prefs.c:1228
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||
@@ -346,7 +355,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لمغير أزرار الفأرة\n"
|
||||
|
||||
#: ../src/core/prefs.c:1757
|
||||
#: ../src/core/prefs.c:1780
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||
@@ -355,17 +364,17 @@ msgstr ""
|
||||
"\"%s\" الموجود في قاعدة بيانات الإعدادات ليس قيمة سليمة لارتباط المفتاح \"%s"
|
||||
"\"\n"
|
||||
|
||||
#: ../src/core/prefs.c:1854
|
||||
#: ../src/core/prefs.c:1879
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "مساحة العمل %d"
|
||||
|
||||
#: ../src/core/screen.c:658
|
||||
#: ../src/core/screen.c:674
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "الشاشة %d على العرض '%s' غير صحيحة\n"
|
||||
|
||||
#: ../src/core/screen.c:674
|
||||
#: ../src/core/screen.c:690
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -374,18 +383,18 @@ msgstr ""
|
||||
"الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل "
|
||||
"--replace لتحُلّ محلّ مدير النوافذ الحالي.\n"
|
||||
|
||||
#: ../src/core/screen.c:701
|
||||
#: ../src/core/screen.c:717
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n"
|
||||
|
||||
#: ../src/core/screen.c:770
|
||||
#: ../src/core/screen.c:795
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n"
|
||||
|
||||
#: ../src/core/screen.c:955
|
||||
#: ../src/core/screen.c:980
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n"
|
||||
@@ -482,7 +491,7 @@ msgid "Window manager error: "
|
||||
msgstr "خطأ مدير النوافذ: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7275
|
||||
#: ../src/core/window.c:7538
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -498,7 +507,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:7941
|
||||
#: ../src/core/window.c:8262
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -507,22 +516,22 @@ msgstr ""
|
||||
"ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم "
|
||||
"الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n"
|
||||
|
||||
#: ../src/core/window-props.c:274
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "ضبط التطبيق رمز NET_WM_PID غير مفهوم %lu\n"
|
||||
|
||||
#: ../src/core/window-props.c:393
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (على %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1448
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1459
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, fuzzy, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
|
||||
@@ -645,10 +654,20 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
||||
msgid "Select window from tab popup"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
||||
msgid "Cancel tab popup"
|
||||
msgstr ""
|
||||
|
||||
@@ -851,69 +870,69 @@ msgstr "Mod5"
|
||||
#. Translators: This represents the size of a window. The first number is
|
||||
#. * the width of the window and the second is the height.
|
||||
#.
|
||||
#: ../src/ui/resizepopup.c:113
|
||||
#: ../src/ui/resizepopup.c:136
|
||||
#, c-format
|
||||
msgid "%d x %d"
|
||||
msgstr "%d × %d"
|
||||
|
||||
#: ../src/ui/theme.c:234
|
||||
#: ../src/ui/theme.c:235
|
||||
msgid "top"
|
||||
msgstr "أعلى"
|
||||
|
||||
#: ../src/ui/theme.c:236
|
||||
#: ../src/ui/theme.c:237
|
||||
msgid "bottom"
|
||||
msgstr "أسفل"
|
||||
|
||||
#: ../src/ui/theme.c:238
|
||||
#: ../src/ui/theme.c:239
|
||||
msgid "left"
|
||||
msgstr "يسار"
|
||||
|
||||
#: ../src/ui/theme.c:240
|
||||
#: ../src/ui/theme.c:241
|
||||
msgid "right"
|
||||
msgstr "يمين"
|
||||
|
||||
#: ../src/ui/theme.c:268
|
||||
#: ../src/ui/theme.c:269
|
||||
#, c-format
|
||||
msgid "frame geometry does not specify \"%s\" dimension"
|
||||
msgstr "هندسة الإطار لا تخصص البعد \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:287
|
||||
#: ../src/ui/theme.c:288
|
||||
#, c-format
|
||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||
msgstr "هندسة الإطار لا تخصص البعد \"%s\" للحد \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:324
|
||||
#: ../src/ui/theme.c:325
|
||||
#, c-format
|
||||
msgid "Button aspect ratio %g is not reasonable"
|
||||
msgstr "النسبة الجانبية للزر %g غير معقولة"
|
||||
|
||||
#: ../src/ui/theme.c:336
|
||||
#: ../src/ui/theme.c:337
|
||||
#, c-format
|
||||
msgid "Frame geometry does not specify size of buttons"
|
||||
msgstr "هندسة الإطار لا تخصص حجم الأزرار"
|
||||
|
||||
#: ../src/ui/theme.c:1049
|
||||
#: ../src/ui/theme.c:1050
|
||||
#, c-format
|
||||
msgid "Gradients should have at least two colors"
|
||||
msgstr "يجب أن يكون للتّدرُّجات لونان على الأقل"
|
||||
|
||||
#: ../src/ui/theme.c:1201
|
||||
#: ../src/ui/theme.c:1202
|
||||
#, fuzzy, c-format
|
||||
msgid ""
|
||||
"GTK custom color specification must have color name and fallback in "
|
||||
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
|
||||
msgstr ""
|
||||
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:fg"
|
||||
"[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:"
|
||||
"fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1217
|
||||
#: ../src/ui/theme.c:1218
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||
"_ are valid"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/ui/theme.c:1231
|
||||
#: ../src/ui/theme.c:1232
|
||||
#, fuzzy, c-format
|
||||
msgid ""
|
||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||
@@ -921,7 +940,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
|
||||
|
||||
#: ../src/ui/theme.c:1276
|
||||
#: ../src/ui/theme.c:1277
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
@@ -930,158 +949,158 @@ msgstr ""
|
||||
"يجب أن تكون حالة تخصيصات ألوان جتك في قوسان قائمان، مثال gtk:fg[NORMAL] "
|
||||
"NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1290
|
||||
#: ../src/ui/theme.c:1291
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||
msgstr ""
|
||||
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:fg"
|
||||
"[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:"
|
||||
"fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1301
|
||||
#: ../src/ui/theme.c:1302
|
||||
#, c-format
|
||||
msgid "Did not understand state \"%s\" in color specification"
|
||||
msgstr "لم تفهم الحالة \"%s\" في تخصيص الألوان"
|
||||
|
||||
#: ../src/ui/theme.c:1314
|
||||
#: ../src/ui/theme.c:1315
|
||||
#, c-format
|
||||
msgid "Did not understand color component \"%s\" in color specification"
|
||||
msgstr "لم يفهم جزء اللون \"%s\" في تخصيص اللون"
|
||||
|
||||
#: ../src/ui/theme.c:1343
|
||||
#: ../src/ui/theme.c:1344
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||
"format"
|
||||
msgstr "تهيئة الخلط \"blend/bg_color/fg_color/alpha\"، \"%s\"لا يناسب التهيئة"
|
||||
|
||||
#: ../src/ui/theme.c:1354
|
||||
#: ../src/ui/theme.c:1355
|
||||
#, c-format
|
||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||
msgstr "لا يمكن تحليل قيمة الشفافية \"%s\" في اللون المخلط"
|
||||
|
||||
#: ../src/ui/theme.c:1364
|
||||
#: ../src/ui/theme.c:1365
|
||||
#, c-format
|
||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||
msgstr "قيمة الشفافية \"%s\" في اللون المخلوط ليست بين 0.0 و 1.0"
|
||||
|
||||
#: ../src/ui/theme.c:1411
|
||||
#: ../src/ui/theme.c:1412
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgstr ""
|
||||
"تهيئة التظليل هي \"تظليل/اللون_الأساسي/العامل\"، \"%s\" لا يناسب التهيئة"
|
||||
|
||||
#: ../src/ui/theme.c:1422
|
||||
#: ../src/ui/theme.c:1423
|
||||
#, c-format
|
||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||
msgstr "لا يمكن تحليل عامل التظليل \"%s\" في اللون المظلل"
|
||||
|
||||
#: ../src/ui/theme.c:1432
|
||||
#: ../src/ui/theme.c:1433
|
||||
#, c-format
|
||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||
msgstr "عامل التظليل \"%s\" في اللون المظلل سلبي"
|
||||
|
||||
#: ../src/ui/theme.c:1461
|
||||
#: ../src/ui/theme.c:1462
|
||||
#, c-format
|
||||
msgid "Could not parse color \"%s\""
|
||||
msgstr "لا يمكن تحليل اللون \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1778
|
||||
#: ../src/ui/theme.c:1779
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr "تعبير الإحداثيّات يحتوي على الرمز '%s' الممنوع"
|
||||
|
||||
#: ../src/ui/theme.c:1805
|
||||
#: ../src/ui/theme.c:1806
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contains floating point number '%s' which could not be "
|
||||
"parsed"
|
||||
msgstr "تعبير الإحداثيّات يحتوي على عدد نقطة متغيرة '%s' تعذّر تحليله"
|
||||
|
||||
#: ../src/ui/theme.c:1819
|
||||
#: ../src/ui/theme.c:1820
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr "تعبير الإحداثيّات يحتوي على عدد صحيح '%s' تعذّر تحليله"
|
||||
|
||||
#: ../src/ui/theme.c:1940
|
||||
#: ../src/ui/theme.c:1941
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contained unknown operator at the start of this text: "
|
||||
"\"%s\""
|
||||
msgstr "تعبير الإحداثيّات يحتوي على مقسوم مجهول عند بداية هذا النص: \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1997
|
||||
#: ../src/ui/theme.c:1998
|
||||
#, c-format
|
||||
msgid "Coordinate expression was empty or not understood"
|
||||
msgstr "تعبير الإحداثيّات فارغ أو لم يفهم"
|
||||
|
||||
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||
#: ../src/ui/theme.c:2111 ../src/ui/theme.c:2121 ../src/ui/theme.c:2155
|
||||
#, c-format
|
||||
msgid "Coordinate expression results in division by zero"
|
||||
msgstr "تعبير الإحداثيّات ينتُج عند القسمة على صفر"
|
||||
|
||||
#: ../src/ui/theme.c:2162
|
||||
#: ../src/ui/theme.c:2163
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||
msgstr "تعبير الإحداثيّاتيّات يحاول استعمال مقسوم mod على عدد فاصلة متحرّكة"
|
||||
|
||||
#: ../src/ui/theme.c:2218
|
||||
#: ../src/ui/theme.c:2219
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgstr "تعبير الإحداثيّات له مقسوم \"%s\" بالرغم من ترقبه قاسم"
|
||||
|
||||
#: ../src/ui/theme.c:2227
|
||||
#: ../src/ui/theme.c:2228
|
||||
#, c-format
|
||||
msgid "Coordinate expression had an operand where an operator was expected"
|
||||
msgstr "تعبير الإحداثيّات له قاسم بالرغم من ترقبه لمقسوم"
|
||||
|
||||
#: ../src/ui/theme.c:2235
|
||||
#: ../src/ui/theme.c:2236
|
||||
#, c-format
|
||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||
msgstr "انتهى تعبير الإحداثيّات بمقسوم عوضا عن قاسم"
|
||||
|
||||
#: ../src/ui/theme.c:2245
|
||||
#: ../src/ui/theme.c:2246
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||
"operand in between"
|
||||
msgstr "لتعبير الإحداثيّات مقسوم \"%c\" يتبع القاسم \"%c\" بدون قاسم بينهما"
|
||||
|
||||
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||
#: ../src/ui/theme.c:2397 ../src/ui/theme.c:2442
|
||||
#, c-format
|
||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||
msgstr "كان لتعبير الإحداثيّات متغير أو ثابت \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:2495
|
||||
#: ../src/ui/theme.c:2496
|
||||
#, c-format
|
||||
msgid "Coordinate expression parser overflowed its buffer."
|
||||
msgstr "غمر محلّل تعبير الإحداثيّات مجاله"
|
||||
|
||||
#: ../src/ui/theme.c:2524
|
||||
#: ../src/ui/theme.c:2525
|
||||
#, c-format
|
||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||
msgstr "كان لتعبير الإحداثيّات قوس غلق بدون قوس فتح"
|
||||
|
||||
#: ../src/ui/theme.c:2588
|
||||
#: ../src/ui/theme.c:2589
|
||||
#, c-format
|
||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||
msgstr "كان لتعبير الإحداثيات قوس فتح بدون قوس غلق"
|
||||
|
||||
#: ../src/ui/theme.c:2599
|
||||
#: ../src/ui/theme.c:2600
|
||||
#, c-format
|
||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||
msgstr "تعبير الإحداثيات لا يملك قاسمات و مقسومات"
|
||||
|
||||
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||
#: ../src/ui/theme.c:2813 ../src/ui/theme.c:2833 ../src/ui/theme.c:2853
|
||||
#, c-format
|
||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||
msgstr "احتوت السِمة على تعبير ادى الى خطأ: %s\n"
|
||||
|
||||
#: ../src/ui/theme.c:4498
|
||||
#: ../src/ui/theme.c:4499
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -1090,25 +1109,25 @@ msgstr ""
|
||||
"يجب تخصيص <button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> "
|
||||
"لأسلوب الإطار هذا"
|
||||
|
||||
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||
#: ../src/ui/theme.c:5010 ../src/ui/theme.c:5035
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgstr ""
|
||||
"<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/> مفقود"
|
||||
|
||||
#: ../src/ui/theme.c:5082
|
||||
#: ../src/ui/theme.c:5083
|
||||
#, c-format
|
||||
msgid "Failed to load theme \"%s\": %s\n"
|
||||
msgstr "فشل تحميل السِمة \"%s\": %s\n"
|
||||
|
||||
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||
#: ../src/ui/theme.c:5219 ../src/ui/theme.c:5226 ../src/ui/theme.c:5233
|
||||
#: ../src/ui/theme.c:5240 ../src/ui/theme.c:5247
|
||||
#, c-format
|
||||
msgid "No <%s> set for theme \"%s\""
|
||||
msgstr "لا <%s> ضبط للسِمة \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:5254
|
||||
#: ../src/ui/theme.c:5255
|
||||
#, c-format
|
||||
msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
@@ -1117,14 +1136,14 @@ msgstr ""
|
||||
"لا أسلوب إطار مضبوط لنوع النافذة \"%s\" في السِمة \"%s\"، اضف عنصر <window "
|
||||
"type=\"%s\" style_set=\"whatever\"/>"
|
||||
|
||||
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
msgstr ""
|
||||
"الثوابت المعرفة من طرف المستخدم يجب أن تبدأ بحروف كبيرة، \"%s\" لا يبدأ بذلك"
|
||||
|
||||
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "عُرِّف الثابت \"%s\" بالفعل"
|
||||
@@ -1599,56 +1618,56 @@ msgstr "حد"
|
||||
msgid "Attached Modal Dialog"
|
||||
msgstr "صندوق حوار سائد"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:739
|
||||
#: ../src/ui/theme-viewer.c:737
|
||||
#, c-format
|
||||
msgid "Button layout test %d"
|
||||
msgstr "تجربة تصميم الأزرار %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:768
|
||||
#: ../src/ui/theme-viewer.c:766
|
||||
#, c-format
|
||||
msgid "%g milliseconds to draw one window frame"
|
||||
msgstr "%g ملي ثانية لرسم إظار واحد للنافذة"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:813
|
||||
#: ../src/ui/theme-viewer.c:811
|
||||
#, c-format
|
||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||
msgstr "الإستعمال: metacity-theme-viewer [THEMENAME]\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:820
|
||||
#: ../src/ui/theme-viewer.c:818
|
||||
#, c-format
|
||||
msgid "Error loading theme: %s\n"
|
||||
msgstr "خطأ عند تحميل السِمة: %s\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:826
|
||||
#: ../src/ui/theme-viewer.c:824
|
||||
#, c-format
|
||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||
msgstr "حُمِّلت السِمة \"%s\" في %g ثواني\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:870
|
||||
#: ../src/ui/theme-viewer.c:869
|
||||
msgid "Normal Title Font"
|
||||
msgstr "خط عنوان عادي"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:876
|
||||
#: ../src/ui/theme-viewer.c:875
|
||||
msgid "Small Title Font"
|
||||
msgstr "خط عنوان صغير"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:882
|
||||
#: ../src/ui/theme-viewer.c:881
|
||||
msgid "Large Title Font"
|
||||
msgstr "خط عنوان كبير"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:887
|
||||
#: ../src/ui/theme-viewer.c:886
|
||||
msgid "Button Layouts"
|
||||
msgstr "تصاميم الأزرار"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:892
|
||||
#: ../src/ui/theme-viewer.c:891
|
||||
msgid "Benchmark"
|
||||
msgstr "علامة إهتداء"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:949
|
||||
#: ../src/ui/theme-viewer.c:947
|
||||
msgid "Window Title Goes Here"
|
||||
msgstr "عنوان النافذة يكون هنا"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1052
|
||||
#: ../src/ui/theme-viewer.c:1053
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||
@@ -1658,43 +1677,46 @@ msgstr ""
|
||||
"دفعت %d إطارات في %g ثوان بإتجاه العميل (%g ملي ثانية لكل إطار) و %g ثواني "
|
||||
"بوقت ساعة حائطية مع مصادر خادوم X (%g ملي ثانية لكل إطار)\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1271
|
||||
#: ../src/ui/theme-viewer.c:1273
|
||||
msgid "position expression test returned TRUE but set error"
|
||||
msgstr "أرجع إختبار تعبير الموقع TRUE لكنه لم يكتشف الخطأ"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1273
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
msgid "position expression test returned FALSE but didn't set error"
|
||||
msgstr "أرجع إختبار تعبير الموقع خطأ لكنه لم يكتشف الخطأ"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1277
|
||||
#: ../src/ui/theme-viewer.c:1279
|
||||
msgid "Error was expected but none given"
|
||||
msgstr "تُرُقِّب خطأ لكن لم يعطى أي خطأ"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1279
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#, c-format
|
||||
msgid "Error %d was expected but %d given"
|
||||
msgstr "تُرقّب %d لكن أعطى %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1285
|
||||
#: ../src/ui/theme-viewer.c:1287
|
||||
#, c-format
|
||||
msgid "Error not expected but one was returned: %s"
|
||||
msgstr "لم يُترقب خطأ لكنه أرجع واحدًا: %s"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1289
|
||||
#: ../src/ui/theme-viewer.c:1291
|
||||
#, c-format
|
||||
msgid "x value was %d, %d was expected"
|
||||
msgstr "قيمة س كانت %d، تُرُقِّب %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1292
|
||||
#: ../src/ui/theme-viewer.c:1294
|
||||
#, c-format
|
||||
msgid "y value was %d, %d was expected"
|
||||
msgstr "قيمة ص كانت %d، تُرُقَِب %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1357
|
||||
#: ../src/ui/theme-viewer.c:1359
|
||||
#, c-format
|
||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||
msgstr "حُلِّلت %d تعابير الإحداثيات في %g ثواني (بمعدّل %g ثوان)\n"
|
||||
|
||||
#~ msgid "Minimize window"
|
||||
#~ msgstr "صغّر النّافذة"
|
||||
|
||||
#~ msgid "Comma-separated list of compositor plugins"
|
||||
#~ msgstr "قائمة بملحقات المزج مفصولة بفاصلة"
|
||||
|
||||
|
105
po/as.po
105
po/as.po
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: as\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-01-11 15:23+0000\n"
|
||||
"PO-Revision-Date: 2013-01-16 14:25+0530\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-07 19:33+0530\n"
|
||||
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
|
||||
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
|
||||
"Language: as_IN\n"
|
||||
@@ -168,7 +168,6 @@ msgid "Close window"
|
||||
msgstr "উইন্ডো বন্ধ কৰক"
|
||||
|
||||
#: ../src/50-mutter-windows.xml.in.h:9
|
||||
#| msgid "Resize window"
|
||||
msgid "Hide window"
|
||||
msgstr "উইন্ডোক লুকাওক"
|
||||
|
||||
@@ -214,13 +213,17 @@ msgstr "বিভাজনক সোঁফালে দৰ্শন কৰক"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:512
|
||||
#: ../src/compositor/compositor.c:507
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
"\"."
|
||||
msgstr "অন্য মিশ্ৰণ ব্যৱস্থাপক ইতিমধ্যে চলি আছে পৰ্দা %i প্ৰদৰ্শন \"%s\"।"
|
||||
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "পটভূমিৰ ৰূপ ফাইলৰ পৰা সৃষ্টি কৰিব পৰা নগল"
|
||||
|
||||
#: ../src/core/bell.c:320
|
||||
msgid "Bell event"
|
||||
msgstr "ঘন্টা ঘটনা"
|
||||
@@ -255,17 +258,17 @@ msgstr "অপেক্ষা কৰক (_W)"
|
||||
msgid "_Force Quit"
|
||||
msgstr "বলপূৰ্বক বন্ধ কৰক (_F)"
|
||||
|
||||
#: ../src/core/display.c:394
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "মিশ্ৰণৰ বাবে সন্ধানহিন %s সম্প্ৰসাৰনৰ প্ৰয়োজন"
|
||||
|
||||
#: ../src/core/display.c:491
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "X উইন্ডো চিস্টেম প্ৰদৰ্শন '%s'খোলিব পৰা নগল \n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -275,6 +278,12 @@ msgstr ""
|
||||
"ব্যৱহাৰ "
|
||||
"কৰি আছে\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\" এটা বৈধ ত্বৰক নহয়\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "অধিবেশন ব্যৱস্থাপকৰ সৈতে সংযোগ বিচ্ছিন্ন কৰক"
|
||||
@@ -365,17 +374,17 @@ msgid ""
|
||||
msgstr ""
|
||||
"সংৰূপ ডাটাবেইচত উপলব্ধ \"%s\", \"%s\" কি-বাইন্ডিং ৰ ক্ষেত্ৰত বৈধ মান নহয়\n"
|
||||
|
||||
#: ../src/core/prefs.c:1877
|
||||
#: ../src/core/prefs.c:1879
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "কৰ্মস্থান %d"
|
||||
|
||||
#: ../src/core/screen.c:658
|
||||
#: ../src/core/screen.c:673
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "পৰ্দা %d প্ৰদৰ্শন '%s' ত অবৈধ\n"
|
||||
|
||||
#: ../src/core/screen.c:674
|
||||
#: ../src/core/screen.c:689
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -385,19 +394,19 @@ msgstr ""
|
||||
"উইন্ডো "
|
||||
"ব্যৱস্থাপক পৰিবৰ্তন কৰোঁতে --replace বিকল্প প্ৰয়োগ কৰক।\n"
|
||||
|
||||
#: ../src/core/screen.c:701
|
||||
#: ../src/core/screen.c:716
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr ""
|
||||
"উইন্ডো ব্যৱস্থাপকৰ নিৰ্বাচন গ্ৰহণ কৰোঁতে ব্যৰ্থ পৰ্দা %d প্ৰদৰ্শন \"%s\"\n"
|
||||
|
||||
#: ../src/core/screen.c:770
|
||||
#: ../src/core/screen.c:794
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "পৰ্দা %d প্ৰদৰ্শন \"%s\" ৰ এটা উইন্ডো ব্যৱস্থাপক ইতিমধ্যে আছে\n"
|
||||
|
||||
#: ../src/core/screen.c:955
|
||||
#: ../src/core/screen.c:979
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "পৰ্দা %d মুক্ত কৰিব পৰা নগল প্ৰদৰ্শন \"%s\"\n"
|
||||
@@ -496,7 +505,7 @@ msgid "Window manager error: "
|
||||
msgstr "উইন্ডো ব্যৱস্থাপক ত্ৰুটি: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7279
|
||||
#: ../src/core/window.c:7539
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -512,7 +521,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:7945
|
||||
#: ../src/core/window.c:8263
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -523,22 +532,22 @@ msgstr ""
|
||||
"বিশেষ "
|
||||
"এটা সংজ্ঞা নিদিয়ে।\n"
|
||||
|
||||
#: ../src/core/window-props.c:274
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "এপ্লিকেচন দ্বাৰা ভুল _NET_WM_PID %lu নিৰ্ধাৰিত হৈছে\n"
|
||||
|
||||
#: ../src/core/window-props.c:393
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (%s ৰ ওপৰত)"
|
||||
|
||||
#: ../src/core/window-props.c:1448
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "অবৈধ WM_TRANSIENT_FOR উইন্ডো 0x%lx, %s ৰ বাবে নিৰ্ধাৰিত হৈছে।\n"
|
||||
|
||||
#: ../src/core/window-props.c:1459
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "WM_TRANSIENT_FOR window 0x%lx এ %s ৰ বাবে লুপ সৃষ্টি কৰিব।\n"
|
||||
@@ -692,12 +701,16 @@ msgid "Auto maximize nearly monitor sized windows"
|
||||
msgstr "মনিটৰৰ প্ৰায় সমান আকাৰৰ উইন্ডোসমূহক স্বচালিতভাৱে ডাঙৰ কৰক"
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||
#| msgid ""
|
||||
#| "If enabled, monitor nearly monitor sized windows automatically get "
|
||||
#| "maximized when mapped."
|
||||
msgid ""
|
||||
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||
"when mapped."
|
||||
"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"
|
||||
@@ -906,7 +919,7 @@ msgstr "Mod5"
|
||||
#. Translators: This represents the size of a window. The first number is
|
||||
#. * the width of the window and the second is the height.
|
||||
#.
|
||||
#: ../src/ui/resizepopup.c:113
|
||||
#: ../src/ui/resizepopup.c:136
|
||||
#, c-format
|
||||
msgid "%d x %d"
|
||||
msgstr "%d x %d"
|
||||
@@ -1189,14 +1202,14 @@ msgstr ""
|
||||
"থীম \"%s\" ত উইন্ডো ধৰণ \"%s\" ৰ বাবে কোনো ফ্ৰেইম শৈলী সংহিত নাই, এটা <window "
|
||||
"type=\"%s\" style_set=\"whatever\"/> উপাদন যোগ কৰক"
|
||||
|
||||
#: ../src/ui/theme.c:5659 ../src/ui/theme.c:5721 ../src/ui/theme.c:5784
|
||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
msgstr ""
|
||||
"ব্যৱহাৰকাৰী-বিৱৰিত ধ্ৰুৱকসমূহ এটা ডাঙৰ ফলাৰ সৈতে আৰম্ভ হব লাগিব; \"%s\" নহয়"
|
||||
|
||||
#: ../src/ui/theme.c:5667 ../src/ui/theme.c:5729 ../src/ui/theme.c:5792
|
||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "ধ্ৰুৱক \"%s\" ইতিমধ্যে বিৱৰিত"
|
||||
@@ -1685,56 +1698,56 @@ msgstr "প্ৰান্ত"
|
||||
msgid "Attached Modal Dialog"
|
||||
msgstr "সংযুক্ত মোডাল ডাইলগ"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:739
|
||||
#: ../src/ui/theme-viewer.c:737
|
||||
#, c-format
|
||||
msgid "Button layout test %d"
|
||||
msgstr "বুটাম বিন্যাসৰ পৰীক্ষা %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:768
|
||||
#: ../src/ui/theme-viewer.c:766
|
||||
#, c-format
|
||||
msgid "%g milliseconds to draw one window frame"
|
||||
msgstr "এটা উইন্ডো ফ্ৰেইম আকিবলে %g মিলিছেকেণ্ড"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:813
|
||||
#: ../src/ui/theme-viewer.c:811
|
||||
#, c-format
|
||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||
msgstr "ব্যৱহাৰপদ্ধতি: metacity-theme-viewer [THEMENAME]\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:820
|
||||
#: ../src/ui/theme-viewer.c:818
|
||||
#, c-format
|
||||
msgid "Error loading theme: %s\n"
|
||||
msgstr "থীম ল'ড কৰোতে ত্ৰুটি: %s\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:826
|
||||
#: ../src/ui/theme-viewer.c:824
|
||||
#, c-format
|
||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||
msgstr "\"%s\" থীম %g ছেকেণ্ডত ল'ড কৰা হৈছে\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:871
|
||||
#: ../src/ui/theme-viewer.c:869
|
||||
msgid "Normal Title Font"
|
||||
msgstr "স্বাভাবিক শীৰ্ষক ফন্ট"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:877
|
||||
#: ../src/ui/theme-viewer.c:875
|
||||
msgid "Small Title Font"
|
||||
msgstr "সৰু শীৰ্ষক ফন্ট"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:883
|
||||
#: ../src/ui/theme-viewer.c:881
|
||||
msgid "Large Title Font"
|
||||
msgstr "ডাঙৰ শীৰ্ষক ফন্ট"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:888
|
||||
#: ../src/ui/theme-viewer.c:886
|
||||
msgid "Button Layouts"
|
||||
msgstr "বুটামৰ বিন্যাসসমূহ"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:893
|
||||
#: ../src/ui/theme-viewer.c:891
|
||||
msgid "Benchmark"
|
||||
msgstr "ধাপ"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:949
|
||||
#: ../src/ui/theme-viewer.c:947
|
||||
msgid "Window Title Goes Here"
|
||||
msgstr "উইন্ডো শীৰ্ষক ইয়াত যাব"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1055
|
||||
#: ../src/ui/theme-viewer.c:1053
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||
@@ -1747,39 +1760,39 @@ msgstr ""
|
||||
"অকাঁ "
|
||||
"হৈছিল\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
#: ../src/ui/theme-viewer.c:1273
|
||||
msgid "position expression test returned TRUE but set error"
|
||||
msgstr "অবস্থান অভিব্যক্তিৰ পৰীক্ষায়ে TRUE ঘুৰাই দিলেও ত্ৰুটি সংহিত হৈছে"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1277
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
msgid "position expression test returned FALSE but didn't set error"
|
||||
msgstr "অবস্থান অভিব্যক্তিৰ পৰীক্ষায়ে FALSE ঘুৰাই দিলেও ত্ৰুটি সংহিত নাই হোৱা"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#: ../src/ui/theme-viewer.c:1279
|
||||
msgid "Error was expected but none given"
|
||||
msgstr "ত্ৰুটি প্ৰত্যাশিত আছিল কিন্তু কোনো এটা দিয়া হোৱা নাই"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1283
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#, c-format
|
||||
msgid "Error %d was expected but %d given"
|
||||
msgstr "ত্ৰুটি %d প্ৰত্যাশিত আছিল কিন্তু %d প্ৰদান কৰা হৈছে"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1289
|
||||
#: ../src/ui/theme-viewer.c:1287
|
||||
#, c-format
|
||||
msgid "Error not expected but one was returned: %s"
|
||||
msgstr "ত্ৰুটি প্ৰত্যাশিত নহয় কিন্তু প্ৰাপ্ত: %s"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1293
|
||||
#: ../src/ui/theme-viewer.c:1291
|
||||
#, c-format
|
||||
msgid "x value was %d, %d was expected"
|
||||
msgstr "x ৰ মান %d, %d প্ৰত্যাশিত"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1296
|
||||
#: ../src/ui/theme-viewer.c:1294
|
||||
#, c-format
|
||||
msgid "y value was %d, %d was expected"
|
||||
msgstr "y ৰ মান %d, %d প্ৰত্যাশিত"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1361
|
||||
#: ../src/ui/theme-viewer.c:1359
|
||||
#, c-format
|
||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||
msgstr "%d অক্ষ অভিব্যক্তিসমূহ %g ছেকেণ্ডত বিশ্লেষণ কৰা হৈছে (গড় %g ছেকেণ্ড)\n"
|
||||
|
98
po/be.po
98
po/be.po
@@ -4,7 +4,7 @@ msgstr ""
|
||||
"Project-Id-Version: mutter.master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-01-11 15:23+0000\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2012-10-13 17:44+0300\n"
|
||||
"Last-Translator: Ігар Грачышка <ihar.hrachyshka@gmail.com>\n"
|
||||
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
||||
@@ -206,7 +206,7 @@ msgstr "Падзяліць прагляд справа"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:512
|
||||
#: ../src/compositor/compositor.c:507
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
@@ -214,6 +214,10 @@ msgid ""
|
||||
msgstr ""
|
||||
"Іншы кампазітны кіраўнік вокнаў ужо абслугоўвае экран %i дысплея \"%s\"."
|
||||
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "не ўдалося стварыць фонавую тэкстуру з файла"
|
||||
|
||||
#: ../src/core/bell.c:320
|
||||
msgid "Bell event"
|
||||
msgstr "Падзея з сігналам"
|
||||
@@ -247,18 +251,18 @@ msgstr "_Пачакаць"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Змусіць да выхаду"
|
||||
|
||||
#: ../src/core/display.c:394
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr ""
|
||||
"Адсутнічае пашырэнне \"%s\", патрэбнае для ажыццяўлення кампазітнага вываду"
|
||||
|
||||
#: ../src/core/display.c:491
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Не ўдалося адкрыць X-дысплей аконнай сістэмы \"%s\"\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -267,6 +271,11 @@ 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
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Выключыць злучэнне з кіраўніком сеансаў"
|
||||
@@ -359,17 +368,17 @@ msgstr ""
|
||||
"Значэнне \"%s\", знойдзенае ў базе канфігурацыйных даных, не азначае "
|
||||
"клавіятурны скарот \"%s\"\n"
|
||||
|
||||
#: ../src/core/prefs.c:1877
|
||||
#: ../src/core/prefs.c:1879
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Прастора працы %d"
|
||||
|
||||
#: ../src/core/screen.c:658
|
||||
#: ../src/core/screen.c:673
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "Экран %d на дысплеі \"%s\" хібны\n"
|
||||
|
||||
#: ../src/core/screen.c:674
|
||||
#: ../src/core/screen.c:689
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -378,19 +387,19 @@ msgstr ""
|
||||
"Экран %d на дысплеі \"%s\" ужо мае аконнага кіраўніка. Каб замяніць яго "
|
||||
"новым, дадайце опцыю --replace.\n"
|
||||
|
||||
#: ../src/core/screen.c:701
|
||||
#: ../src/core/screen.c:716
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr ""
|
||||
"Не ўдалося пераняць вылучэнне кіраўніка вокнаў для экрана %d дысплея \"%s\"\n"
|
||||
|
||||
#: ../src/core/screen.c:770
|
||||
#: ../src/core/screen.c:794
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "Экран %d на дысплеі \"%s\" ужо мае кіраўніка вокнаў\n"
|
||||
|
||||
#: ../src/core/screen.c:955
|
||||
#: ../src/core/screen.c:979
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "Не ўдалося вызваліць экран %d на дысплеі \"%s\"\n"
|
||||
@@ -490,7 +499,7 @@ msgid "Window manager error: "
|
||||
msgstr "Памылка кіраўніка вокнаў: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7279
|
||||
#: ../src/core/window.c:7539
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -506,7 +515,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:7945
|
||||
#: ../src/core/window.c:8263
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -516,22 +525,22 @@ msgstr ""
|
||||
"памеру, але разам з гэтым прызначыла для сябе мінімальны памер %d x %d і "
|
||||
"максімальны памер %d x %d. Такія паводзіны не маюць сэнсу.\n"
|
||||
|
||||
#: ../src/core/window-props.c:274
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "Праграма прызначыла памылковае значэнне _NET_WM_PID %lu\n"
|
||||
|
||||
#: ../src/core/window-props.c:393
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (на %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1448
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "Для %2$s вызначана хібнае акно WM_TRANSIENT_FOR 0x%1$lx.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1459
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "WM_TRANSIENT_FOR акно 0x%lx для %s стварыла б цыкл.\n"
|
||||
@@ -680,13 +689,15 @@ msgstr ""
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
||||
msgid "Auto maximize nearly monitor sized windows"
|
||||
msgstr ""
|
||||
msgstr "Аўтаматычна максімалізаваць вокны, якія расцягнутыя амаль на ўвесь экран"
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||
msgid ""
|
||||
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||
"when mapped."
|
||||
"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"
|
||||
@@ -895,7 +906,7 @@ msgstr "Mod5"
|
||||
#. Translators: This represents the size of a window. The first number is
|
||||
#. * the width of the window and the second is the height.
|
||||
#.
|
||||
#: ../src/ui/resizepopup.c:113
|
||||
#: ../src/ui/resizepopup.c:136
|
||||
#, c-format
|
||||
msgid "%d x %d"
|
||||
msgstr "%d x %d"
|
||||
@@ -1180,7 +1191,7 @@ msgstr ""
|
||||
"Стыль рамкі не вызначаны для вокнаў тыпу \"%s\" для матыву аздаблення \"%s"
|
||||
"\". Дадайце <window type=\"%s\" style_set=\"штосьці\"/>."
|
||||
|
||||
#: ../src/ui/theme.c:5659 ../src/ui/theme.c:5721 ../src/ui/theme.c:5784
|
||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
@@ -1188,7 +1199,7 @@ msgstr ""
|
||||
"Назвы канстантаў, вызначаных карыстальнікам, мусяць пачынацца з вялікай "
|
||||
"літары. \"%s\" не адпавядае гэтаму патрабаванню."
|
||||
|
||||
#: ../src/ui/theme.c:5667 ../src/ui/theme.c:5729 ../src/ui/theme.c:5792
|
||||
#: ../src/ui/theme.c:5670 ../src/ui/theme.c:5732 ../src/ui/theme.c:5795
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "Канстанта \"%s\" ужо азначана"
|
||||
@@ -1680,56 +1691,56 @@ msgstr "Аблямоўка"
|
||||
msgid "Attached Modal Dialog"
|
||||
msgstr "Прычапленае мадальнае дыялогавае акенца"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:739
|
||||
#: ../src/ui/theme-viewer.c:737
|
||||
#, c-format
|
||||
msgid "Button layout test %d"
|
||||
msgstr "Выпрабаванне размяшчэння кнопак %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:768
|
||||
#: ../src/ui/theme-viewer.c:766
|
||||
#, c-format
|
||||
msgid "%g milliseconds to draw one window frame"
|
||||
msgstr "%g мілісекунд, каб намаляваць адну рамку акна"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:813
|
||||
#: ../src/ui/theme-viewer.c:811
|
||||
#, c-format
|
||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||
msgstr "Правілы карыстання: metacity-theme-viewer [НАЗВА_МАТЫВУ]\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:820
|
||||
#: ../src/ui/theme-viewer.c:818
|
||||
#, c-format
|
||||
msgid "Error loading theme: %s\n"
|
||||
msgstr "Памылка загрузкі матыву аздаблення: %s\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:826
|
||||
#: ../src/ui/theme-viewer.c:824
|
||||
#, c-format
|
||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||
msgstr "Матыў аздаблення \"%s\" загружаны за %g секунд\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:871
|
||||
#: ../src/ui/theme-viewer.c:869
|
||||
msgid "Normal Title Font"
|
||||
msgstr "Звычайны шрыфт загалоўка"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:877
|
||||
#: ../src/ui/theme-viewer.c:875
|
||||
msgid "Small Title Font"
|
||||
msgstr "Маленькі шрыфт загалоўка"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:883
|
||||
#: ../src/ui/theme-viewer.c:881
|
||||
msgid "Large Title Font"
|
||||
msgstr "Вялікі шрыфт загалоўка"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:888
|
||||
#: ../src/ui/theme-viewer.c:886
|
||||
msgid "Button Layouts"
|
||||
msgstr "Размяшчэнне кнопак"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:893
|
||||
#: ../src/ui/theme-viewer.c:891
|
||||
msgid "Benchmark"
|
||||
msgstr "Выпрабаванне"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:949
|
||||
#: ../src/ui/theme-viewer.c:947
|
||||
msgid "Window Title Goes Here"
|
||||
msgstr "Месца для загалоўка акна"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1055
|
||||
#: ../src/ui/theme-viewer.c:1053
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||
@@ -1740,42 +1751,41 @@ msgstr ""
|
||||
"і %g секунд каляндарнага часу, уключна з рэсурсамі X-сервера (%g мілісекунд "
|
||||
"на рамку)\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
#: ../src/ui/theme-viewer.c:1273
|
||||
msgid "position expression test returned TRUE but set error"
|
||||
msgstr "выпрабаванне выразу пазіцыі вярнула TRUE, але паведаміла аб памылцы"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1277
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
msgid "position expression test returned FALSE but didn't set error"
|
||||
msgstr ""
|
||||
"выпрабаванне выразу пазіцыі вярнула FALSE, але не паведаміла аб памылцы"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#: ../src/ui/theme-viewer.c:1279
|
||||
msgid "Error was expected but none given"
|
||||
msgstr "Чакалася памылка, але звесткі не атрыманыя"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1283
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#, c-format
|
||||
msgid "Error %d was expected but %d given"
|
||||
msgstr "Чакалася памылка %d, але атрымана %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1289
|
||||
#: ../src/ui/theme-viewer.c:1287
|
||||
#, c-format
|
||||
msgid "Error not expected but one was returned: %s"
|
||||
msgstr "Атрымана нечаканая памылка: %s"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1293
|
||||
#: ../src/ui/theme-viewer.c:1291
|
||||
#, c-format
|
||||
msgid "x value was %d, %d was expected"
|
||||
msgstr "X-значэнне было %d, а чакалася %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1296
|
||||
#: ../src/ui/theme-viewer.c:1294
|
||||
#, c-format
|
||||
msgid "y value was %d, %d was expected"
|
||||
msgstr "Y-значэнне было %d, а чакалася %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1361
|
||||
#: ../src/ui/theme-viewer.c:1359
|
||||
#, 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
112
po/el.po
112
po/el.po
@@ -18,8 +18,8 @@ msgstr ""
|
||||
"Project-Id-Version: metacity.gnome-2-26\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter"
|
||||
"&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-02-20 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-02-26 11:38+0300\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-09 09:02+0300\n"
|
||||
"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>\n"
|
||||
"Language-Team: team@gnome.gr\n"
|
||||
"Language: el\n"
|
||||
@@ -228,7 +228,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Εκτελείται ένας άλλος διαχειριστής παραθύρων στην οθόνη %i προβολή \"%s\"."
|
||||
|
||||
#: ../src/compositor/meta-background.c:1116
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "η υφή παρασκηνίου δεν μπόρεσε να δημιουργηθεί από αρχείο"
|
||||
|
||||
@@ -243,7 +243,6 @@ msgstr "Άγνωστη αίτηση πληροφοριών παραθύρου: %
|
||||
|
||||
#: ../src/core/delete.c:111
|
||||
#, c-format
|
||||
#| msgid "%s is not responding."
|
||||
msgid "“%s” is not responding."
|
||||
msgstr "Το “%s” δεν ανταποκρίνεται."
|
||||
|
||||
@@ -267,18 +266,18 @@ msgstr "_Αναμονή"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Εξαναγκασμός σε τερματισμό"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "Λείπει η επέκταση %s που απαιτείται για compositing"
|
||||
|
||||
# gconf/gconf-internals.c:2416
|
||||
#: ../src/core/display.c:485
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Αποτυχία ανοίγματος οθόνης του συστήματος παραθύρων Χ '%s'\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -287,6 +286,12 @@ msgstr ""
|
||||
"Κάποιο άλλο πρόγραμμα χρησιμοποιεί ήδη το κλειδί %s με μετατροπείς %x ώς "
|
||||
"δεσμό\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\" δεν είναι έγκυρος επιταχυντής\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Απενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας"
|
||||
@@ -395,9 +400,10 @@ msgstr "Η οθόνη %d στην προβολή '%s' δεν είναι έγκυ
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
"replace option to replace the current window manager.\n"
|
||||
msgstr "Η οθόνη %d στην προβολή \"%s\" έχει ήδη ένα διαχειριστή παραθύρων· προσπαθήστε "
|
||||
"να χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε τον τρέχων "
|
||||
"διαχειριστή παραθύρων.\n"
|
||||
msgstr ""
|
||||
"Η οθόνη %d στην προβολή \"%s\" έχει ήδη ένα διαχειριστή παραθύρων· "
|
||||
"προσπαθήστε να χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε "
|
||||
"τον τρέχων διαχειριστή παραθύρων.\n"
|
||||
|
||||
#: ../src/core/screen.c:716
|
||||
#, c-format
|
||||
@@ -516,7 +522,7 @@ msgid "Window manager error: "
|
||||
msgstr "Σφάλμα διαχειριστή παραθύρων: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7503
|
||||
#: ../src/core/window.c:7539
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -532,31 +538,32 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8227
|
||||
#: ../src/core/window.c:8263
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
|
||||
msgstr "Το παράθυρο %s όρισε μια συμβουλή MWM ότι δεν είναι δυνατή η αλλαγή "
|
||||
msgstr ""
|
||||
"Το παράθυρο %s όρισε μια συμβουλή MWM ότι δεν είναι δυνατή η αλλαγή "
|
||||
"μεγέθους, αλλά όρισε ελάχιστο μέγεθος %d x %d και μέγιστο μέγεθος %d x %d; "
|
||||
"αυτό είναι ακατανόητο.\n"
|
||||
|
||||
#: ../src/core/window-props.c:304
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "Η εφαρμογή έθεσε ένα πλαστό _NET_WM_PID %lu\n"
|
||||
|
||||
#: ../src/core/window-props.c:423
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (σε %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1506
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "Άκυρο WM_TRANSIENT_FOR παράθυρο 0x%lx που καθορίστηκε για %s.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1517
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr ""
|
||||
@@ -588,7 +595,8 @@ msgstr "Η ιδιότητα %s στο παράθυρο 0x%lx περιείχε μ
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Property %s on window 0x%lx contained invalid UTF-8 for item %d in the list\n"
|
||||
msgstr "Η ιδιότητα %s στο παράθυρο 0x%lx περιείχε μη έγκυρο UTF-8 για το "
|
||||
msgstr ""
|
||||
"Η ιδιότητα %s στο παράθυρο 0x%lx περιείχε μη έγκυρο UTF-8 για το "
|
||||
"αντικείμενο %d στη λίστα\n"
|
||||
|
||||
#: ../src/mutter.desktop.in.h:1 ../src/mutter-wm.desktop.in.h:1
|
||||
@@ -606,10 +614,10 @@ msgid ""
|
||||
"\"Windows key\" on PC hardware. It's expected that this binding either the "
|
||||
"default or set to the empty string."
|
||||
msgstr ""
|
||||
"Αυτό το πλήκτρο θα ξεκινήσει την \"επικάλυψη\", που είναι συνδυασμένο σύστημα "
|
||||
"επισκόπησης παραθύρων και εκκίνησης εφαρμογών. Η προεπιλογή προτίθεται να "
|
||||
"είναι το \"πλήκτρο Windows\" σε μηχανήματα PC. Αναμένεται ότι αυτή η "
|
||||
"αντιστοίχιση θα είναι είτε η προεπιλογή ή θα ορίζεται στο κενό "
|
||||
"Αυτό το πλήκτρο θα ξεκινήσει την \"επικάλυψη\", που είναι συνδυασμένο "
|
||||
"σύστημα επισκόπησης παραθύρων και εκκίνησης εφαρμογών. Η προεπιλογή "
|
||||
"προτίθεται να είναι το \"πλήκτρο Windows\" σε μηχανήματα PC. Αναμένεται ότι "
|
||||
"αυτή η αντιστοίχιση θα είναι είτε η προεπιλογή ή θα ορίζεται στο κενό "
|
||||
"αλφαριθμητικό."
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
|
||||
@@ -639,8 +647,8 @@ msgid ""
|
||||
"area. Dropping windows on the top screen edge maximizes them completely."
|
||||
msgstr ""
|
||||
"Αν είναι ενεργοποιημένο, με τη μετακίνηση των παραθύρων στις κάθετες πλευρές "
|
||||
"της οθόνης τα παράθυρα μεγιστοποιούνται και αλλάζουν το μέγεθος τους ώστε "
|
||||
"να καλύψουν το μισό της οθόνης. Το σύρσιμο των παραθύρων στο πάνω μέρος της "
|
||||
"της οθόνης τα παράθυρα μεγιστοποιούνται και αλλάζουν το μέγεθος τους ώστε να "
|
||||
"καλύψουν το μισό της οθόνης. Το σύρσιμο των παραθύρων στο πάνω μέρος της "
|
||||
"οθόνης τα μεγιστοποιεί ολοκληρωτικά."
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
|
||||
@@ -1012,8 +1020,8 @@ msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
"where NORMAL is the state; could not parse \"%s\""
|
||||
msgstr ""
|
||||
"Ο καθορισμός χρώματος GTK θα πρέπει να έχει τη κατάσταση σε αγκύλες, π.χ "
|
||||
"gtk:fg[NORMAL] όπου NORMAL είναι η κατάσταση· αδυναμία ανάλυσης \"%s\""
|
||||
"Ο καθορισμός χρώματος GTK θα πρέπει να έχει τη κατάσταση σε αγκύλες, π.χ gtk:"
|
||||
"fg[NORMAL] όπου NORMAL είναι η κατάσταση· αδυναμία ανάλυσης \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1291
|
||||
#, c-format
|
||||
@@ -1060,8 +1068,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgstr ""
|
||||
"Ο τύπος σκίασης είναι \"shade/base_color/factor\", το \"%s\" δεν ταιριάζει στον "
|
||||
"τύπο"
|
||||
"Ο τύπος σκίασης είναι \"shade/base_color/factor\", το \"%s\" δεν ταιριάζει "
|
||||
"στον τύπο"
|
||||
|
||||
#: ../src/ui/theme.c:1423
|
||||
#, c-format
|
||||
@@ -1081,7 +1089,8 @@ msgstr "Αδύνατη η ανάλυση χρώματος \"%s\""
|
||||
#: ../src/ui/theme.c:1779
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr "Η έκφραση συντεταγμένης περιέχει ένα χαρακτήρα '%s' που δεν επιτρέπεται"
|
||||
msgstr ""
|
||||
"Η έκφραση συντεταγμένης περιέχει ένα χαρακτήρα '%s' που δεν επιτρέπεται"
|
||||
|
||||
#: ../src/ui/theme.c:1806
|
||||
#, c-format
|
||||
@@ -1096,8 +1105,7 @@ msgstr ""
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr ""
|
||||
"Η έκφραση συντεταγμένης περιέχει έναν ακέραιο '%s' που δεν μπορεί να "
|
||||
"αναλυθεί"
|
||||
"Η έκφραση συντεταγμένης περιέχει έναν ακέραιο '%s' που δεν μπορεί να αναλυθεί"
|
||||
|
||||
#: ../src/ui/theme.c:1941
|
||||
#, c-format
|
||||
@@ -1130,7 +1138,8 @@ msgstr ""
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgstr "Η συντεταγμένη έκφραση έχει έναν τελεστή \"%s\" ενώ αναμενόταν τελεστέος"
|
||||
msgstr ""
|
||||
"Η συντεταγμένη έκφραση έχει έναν τελεστή \"%s\" ενώ αναμενόταν τελεστέος"
|
||||
|
||||
#: ../src/ui/theme.c:2228
|
||||
#, c-format
|
||||
@@ -1199,7 +1208,8 @@ msgstr ""
|
||||
#, c-format
|
||||
msgid ""
|
||||
"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:5083
|
||||
#, c-format
|
||||
@@ -1219,8 +1229,8 @@ msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
"type=\"%s\" style_set=\"whatever\"/> element"
|
||||
msgstr ""
|
||||
"Δεν έχει ορισθεί τεχνοτροπία πλαισίου για τον τύπο παραθύρου \"%s\" στο θέμα \""
|
||||
"%s\", προσθέστε ένα <window type=\"%s\" style_set=\"whatever\"/> στοιχείο"
|
||||
"Δεν έχει ορισθεί τεχνοτροπία πλαισίου για τον τύπο παραθύρου \"%s\" στο θέμα "
|
||||
"\"%s\", προσθέστε ένα <window type=\"%s\" style_set=\"whatever\"/> στοιχείο"
|
||||
|
||||
#: ../src/ui/theme.c:5662 ../src/ui/theme.c:5724 ../src/ui/theme.c:5787
|
||||
#, c-format
|
||||
@@ -1298,7 +1308,8 @@ msgstr "Η γωνία θα πρέπει να είναι ανάμεσα σε 0.0
|
||||
#: ../src/ui/theme-parser.c:798
|
||||
#, c-format
|
||||
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
|
||||
msgstr "Το Alpha θα πρέπει να είναι ανάμεσα σε 0.0 (αόρατο) και 1.0 (πλήρης ορατό), "
|
||||
msgstr ""
|
||||
"Το Alpha θα πρέπει να είναι ανάμεσα σε 0.0 (αόρατο) και 1.0 (πλήρης ορατό), "
|
||||
"ήταν %g\n"
|
||||
|
||||
#: ../src/ui/theme-parser.c:863
|
||||
@@ -1390,13 +1401,15 @@ msgstr "Το περίγραμμα \"%s\" είναι άγνωστο"
|
||||
#, c-format
|
||||
msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
|
||||
msgstr ""
|
||||
"Δεν υπάρχει γνώρισμα \"έναρξη_γωνίας\" ή γνώρισμα \"από\" για το στοιχείο <%s>"
|
||||
"Δεν υπάρχει γνώρισμα \"έναρξη_γωνίας\" ή γνώρισμα \"από\" για το στοιχείο <"
|
||||
"%s>"
|
||||
|
||||
#: ../src/ui/theme-parser.c:1875
|
||||
#, c-format
|
||||
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
|
||||
msgstr ""
|
||||
"Δεν υπάρχει γνώρισμα \"επέκταση_γωνίας\" ή γνώρισμα \"σε\" για το στοιχείο <%s>"
|
||||
"Δεν υπάρχει γνώρισμα \"επέκταση_γωνίας\" ή γνώρισμα \"σε\" για το στοιχείο <"
|
||||
"%s>"
|
||||
|
||||
#: ../src/ui/theme-parser.c:2115
|
||||
#, c-format
|
||||
@@ -1433,8 +1446,8 @@ msgstr "Δεν έχουν ορισθεί <draw_ops> που ονομάζοντα
|
||||
#, c-format
|
||||
msgid "Including draw_ops \"%s\" here would create a circular reference"
|
||||
msgstr ""
|
||||
"Αν συμπεριλάβετε εδώ λειτουργίες_σχεδίασης \"%s\" θα δημιουργήσετε μια κυκλική "
|
||||
"αναφορά"
|
||||
"Αν συμπεριλάβετε εδώ λειτουργίες_σχεδίασης \"%s\" θα δημιουργήσετε μια "
|
||||
"κυκλική αναφορά"
|
||||
|
||||
#: ../src/ui/theme-parser.c:2917
|
||||
#, c-format
|
||||
@@ -1531,8 +1544,8 @@ msgid ""
|
||||
"Can't have a two draw_ops for a <piece> element (theme specified a draw_ops "
|
||||
"attribute and also a <draw_ops> element, or specified two elements)"
|
||||
msgstr ""
|
||||
"Δεν μπορεί να υπάρχουν δυο λειτουργίες_σχεδίασης για ένα στοιχείο <piece> ( "
|
||||
"το θέμα έχει καθορίσει ένα γνώρισμα λειτουργίας_σχεδίασης και ακόμα ένα "
|
||||
"Δεν μπορεί να υπάρχουν δυο λειτουργίες_σχεδίασης για ένα στοιχείο <piece> "
|
||||
"( το θέμα έχει καθορίσει ένα γνώρισμα λειτουργίας_σχεδίασης και ακόμα ένα "
|
||||
"στοιχείο <draw_ops> ή καθόρισε δύο στοιχεία)"
|
||||
|
||||
#: ../src/ui/theme-parser.c:3332
|
||||
@@ -1540,8 +1553,8 @@ msgid ""
|
||||
"Can't have a two draw_ops for a <button> element (theme specified a draw_ops "
|
||||
"attribute and also a <draw_ops> element, or specified two elements)"
|
||||
msgstr ""
|
||||
"Δεν μπορεί να υπάρχουν δυο λειτουργίες_σχεδίασης για ένα στοιχείο <button> ( "
|
||||
"το θέμα έχει καθορίσει ένα γνώρισμα λειτουργίας_σχεδίασης και ακόμα ένα "
|
||||
"Δεν μπορεί να υπάρχουν δυο λειτουργίες_σχεδίασης για ένα στοιχείο <button> "
|
||||
"( το θέμα έχει καθορίσει ένα γνώρισμα λειτουργίας_σχεδίασης και ακόμα ένα "
|
||||
"στοιχείο <draw_ops> ή καθόρισε δύο στοιχεία)"
|
||||
|
||||
#: ../src/ui/theme-parser.c:3370
|
||||
@@ -1584,8 +1597,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"Element <%s> is not allowed inside a name/author/date/description element"
|
||||
msgstr ""
|
||||
"Το στοιχείο <%s> δεν επιτρέπεται μέσα σε στοιχείο "
|
||||
"ονόματος/συγγραφέα/ημερομηνίας/περιγραφής"
|
||||
"Το στοιχείο <%s> δεν επιτρέπεται μέσα σε στοιχείο ονόματος/συγγραφέα/"
|
||||
"ημερομηνίας/περιγραφής"
|
||||
|
||||
#: ../src/ui/theme-parser.c:3587
|
||||
#, c-format
|
||||
@@ -1597,13 +1610,14 @@ msgstr "Το στοιχείο <%s> δεν επιτρέπεται μέσα σε
|
||||
msgid ""
|
||||
"Element <%s> is not allowed inside a distance/border/aspect_ratio element"
|
||||
msgstr ""
|
||||
"Το στοιχείο <%s> δεν επιτρέπεται μέσα σε στοιχείο "
|
||||
"απόστασης/περιγράμματος/aspect_ratio"
|
||||
"Το στοιχείο <%s> δεν επιτρέπεται μέσα σε στοιχείο απόστασης/περιγράμματος/"
|
||||
"aspect_ratio"
|
||||
|
||||
#: ../src/ui/theme-parser.c:3621
|
||||
#, c-format
|
||||
msgid "Element <%s> is not allowed inside a draw operation element"
|
||||
msgstr "Το στοιχείο <%s> δεν επιτρέπεται μέσα σε στοιχείο λειτουργίας σχεδίασης"
|
||||
msgstr ""
|
||||
"Το στοιχείο <%s> δεν επιτρέπεται μέσα σε στοιχείο λειτουργίας σχεδίασης"
|
||||
|
||||
#: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
|
||||
#: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
|
||||
|
664
po/en_GB.po
664
po/en_GB.po
File diff suppressed because it is too large
Load Diff
30
po/et.po
30
po/et.po
@@ -7,15 +7,15 @@
|
||||
#
|
||||
# Tõivo Leedjärv <toivo linux ee>, 2004.
|
||||
# Ivar Smolin <okul linux ee>, 2005, 2006, 2009–2011.
|
||||
# Mattias Põldaru <mahfiaz@gmail.com>, 2008–2011, 2012.
|
||||
# Mattias Põldaru <mahfiaz@gmail.com>, 2008–2011, 2012, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter MASTER\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2012-12-18 22:30+0000\n"
|
||||
"PO-Revision-Date: 2012-12-19 18:06+0300\n"
|
||||
"POT-Creation-Date: 2013-03-12 18:53+0000\n"
|
||||
"PO-Revision-Date: 2013-03-12 20:55+0300\n"
|
||||
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
|
||||
"Language-Team: Estonian <>\n"
|
||||
"Language: et\n"
|
||||
@@ -132,8 +132,8 @@ msgstr "Varjatud oleku vahetamine"
|
||||
msgid "Close window"
|
||||
msgstr "Akna sulgemine"
|
||||
|
||||
msgid "Minimize window"
|
||||
msgstr "Akna minimeerimine"
|
||||
msgid "Hide window"
|
||||
msgstr "Peida aken"
|
||||
|
||||
msgid "Move window"
|
||||
msgstr "Akna liigutamine"
|
||||
@@ -173,6 +173,9 @@ msgid ""
|
||||
"\"."
|
||||
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"
|
||||
msgstr "Helina sündmus"
|
||||
|
||||
@@ -214,6 +217,10 @@ msgstr ""
|
||||
"Mõni teine programm juba kasutab klahvi %s koos muuteklahvidega %x "
|
||||
"kiirklahvina\n"
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "\"%s\" pole sobiv kiirklahv\n"
|
||||
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Seansihalduriga ühendumise keelamine"
|
||||
|
||||
@@ -549,6 +556,16 @@ msgstr ""
|
||||
"Lohistatava äärise laius. Kui kujunduse nähtavatest ääristest ei piisa, "
|
||||
"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"
|
||||
msgstr "Akna valimine tabulaatori hüpikaknalt"
|
||||
|
||||
@@ -1417,3 +1434,6 @@ msgstr "y väärtus oli %d, oodati väärtust %d"
|
||||
msgid "%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"
|
||||
|
33
po/fr.po
33
po/fr.po
@@ -20,7 +20,7 @@ msgstr ""
|
||||
"org/enter_bug.cgi?product=mutter&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-02-20 15:50+0000\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2012-10-15 21:26+0200\n"
|
||||
"Last-Translator: Alain Lojewski <allomervan@gmail.com>\n"
|
||||
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
|
||||
@@ -229,7 +229,7 @@ msgstr ""
|
||||
"Un autre gestionnaire de composition est déjà lancé sur l'écran %i de "
|
||||
"l'affichage « %s »."
|
||||
|
||||
#: ../src/compositor/meta-background.c:1116
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "la texture d'arrière-plan n'a pas pu être créée depuis le fichier"
|
||||
|
||||
@@ -267,17 +267,17 @@ msgstr "_Attendre"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Forcer à quitter"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "Il manque l'extension %s nécessaire à la composition"
|
||||
|
||||
#: ../src/core/display.c:485
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Impossible d'ouvrir le visuel « %s » du système X Window\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -286,6 +286,11 @@ msgstr ""
|
||||
"Un autre programme utilise déjà la clé %s avec les modificateurs %x comme "
|
||||
"liaison\n"
|
||||
|
||||
#: ../src/core/keybindings.c:1129
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "« %s » n'est pas un accélérateur valide\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Désactiver la connexion au gestionnaire de sessions"
|
||||
@@ -514,7 +519,7 @@ msgid "Window manager error: "
|
||||
msgstr "Erreur du gestionnaire de fenêtres : "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7503
|
||||
#: ../src/core/window.c:7539
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -530,7 +535,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8227
|
||||
#: ../src/core/window.c:8263
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -540,22 +545,22 @@ msgstr ""
|
||||
"redimensionnable, mais positionne une taille minimale de %d x %d et une "
|
||||
"taille maximale de %d x %d ; ceci n'a pas beaucoup de sens.\n"
|
||||
|
||||
#: ../src/core/window-props.c:304
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "L'application a défini un _NET_WM_PID %lu erroné\n"
|
||||
|
||||
#: ../src/core/window-props.c:423
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (sur %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1506
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "Fenêtre WM_TRANSIENT_FOR 0x%lx non valide indiquée pour %s.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1517
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "Fenêtre WM_TRANSIENT_FOR 0x%lx pour %s créerait une boucle.\n"
|
||||
@@ -716,8 +721,8 @@ msgid ""
|
||||
"If enabled, new windows that are initially the size of the monitor "
|
||||
"automatically get maximized."
|
||||
msgstr ""
|
||||
"Si activé, les nouvelles fenêtres qui ont presque la taille de l'écran "
|
||||
"à l'ouverture seront maximisées automatiquement."
|
||||
"Si activé, les nouvelles fenêtres qui ont presque la taille de l'écran à "
|
||||
"l'ouverture seront maximisées automatiquement."
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||
msgid "Select window from tab popup"
|
||||
@@ -1347,7 +1352,7 @@ msgstr "<%s> doit indiquer une géométrie ou un parent qui en possède une"
|
||||
|
||||
#: ../src/ui/theme-parser.c:1196
|
||||
msgid "You must specify a background for an alpha value to be meaningful"
|
||||
msgstr "Vous devez indiquer une valeur pour le paramètre alpha."
|
||||
msgstr "Vous devez indiquer un arrière-plan pour qu'une valeur alpha ait du sens."
|
||||
|
||||
#: ../src/ui/theme-parser.c:1264
|
||||
#, c-format
|
||||
|
37
po/it.po
37
po/it.po
@@ -12,8 +12,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-25 22:09+0100\n"
|
||||
"PO-Revision-Date: 2013-02-25 22:09+0100\n"
|
||||
"POT-Creation-Date: 2013-03-12 18:34+0100\n"
|
||||
"PO-Revision-Date: 2013-03-12 18:35+0100\n"
|
||||
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
|
||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
||||
"Language: it\n"
|
||||
@@ -216,7 +216,7 @@ msgstr "Massimizza a destra"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:507
|
||||
#: ../src/compositor/compositor.c:502
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
@@ -225,7 +225,7 @@ msgstr ""
|
||||
"Un altro compositing manager è già in esecuzione sullo schermo %i sul "
|
||||
"display «%s»."
|
||||
|
||||
#: ../src/compositor/meta-background.c:1116
|
||||
#: ../src/compositor/meta-background.c:1180
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "La texture dello sfondo non può essere creata dal file"
|
||||
|
||||
@@ -265,17 +265,17 @@ msgstr "_Attendi"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Forza uscita"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:402
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "Estensione %s richiesta per il compositing mancante"
|
||||
|
||||
#: ../src/core/display.c:484
|
||||
#: ../src/core/display.c:494
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Apertura del display «%s» di X Window System non riuscita\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -284,6 +284,11 @@ msgstr ""
|
||||
"Qualche altro programma sta già usando il tasto %s con i modificatori %x "
|
||||
"come una associazione di tasti\n"
|
||||
|
||||
#: ../src/core/keybindings.c:1129
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "«%s» non è una scorciatoia valida\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Disabilita la connessione al gestore di sessione"
|
||||
@@ -308,12 +313,12 @@ msgstr "Inizializza la sessione da file salvato"
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "Rende le chiamate X sincrone"
|
||||
|
||||
#: ../src/core/main.c:494
|
||||
#: ../src/core/main.c:533
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "Scansione della directory dei temi non riuscita: %s\n"
|
||||
|
||||
#: ../src/core/main.c:510
|
||||
#: ../src/core/main.c:549
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -382,12 +387,12 @@ msgstr ""
|
||||
msgid "Workspace %d"
|
||||
msgstr "Spazio di lavoro %d"
|
||||
|
||||
#: ../src/core/screen.c:673
|
||||
#: ../src/core/screen.c:674
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "Lo schermo %d nel display «%s» non è valido\n"
|
||||
|
||||
#: ../src/core/screen.c:689
|
||||
#: ../src/core/screen.c:690
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -396,7 +401,7 @@ msgstr ""
|
||||
"Lo schermo %d sul display «%s» ha già un window manager; provare a "
|
||||
"utilizzare l'opzione --replace per sostituirlo.\n"
|
||||
|
||||
#: ../src/core/screen.c:716
|
||||
#: ../src/core/screen.c:717
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
@@ -404,12 +409,12 @@ msgstr ""
|
||||
"Impossibile acquisire la selezione del window manager per lo schermo %d nel "
|
||||
"display «%s»\n"
|
||||
|
||||
#: ../src/core/screen.c:794
|
||||
#: ../src/core/screen.c:795
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "Lo schermo %d sul display «%s» ha già un window manager\n"
|
||||
|
||||
#: ../src/core/screen.c:979
|
||||
#: ../src/core/screen.c:980
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "Impossibile rilasciare lo schermo %d sul display «%s»\n"
|
||||
@@ -509,7 +514,7 @@ msgid "Window manager error: "
|
||||
msgstr "Errore del window manager: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7540
|
||||
#: ../src/core/window.c:7538
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -525,7 +530,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8264
|
||||
#: ../src/core/window.c:8262
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
|
504
po/pt_BR.po
504
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"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-01-12 04:34+0000\n"
|
||||
"PO-Revision-Date: 2013-01-13 11:53+0100\n"
|
||||
"POT-Creation-Date: 2013-03-07 14:02+0000\n"
|
||||
"PO-Revision-Date: 2013-03-07 17:16+0100\n"
|
||||
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
|
||||
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
|
||||
"Language: sl_SI\n"
|
||||
@@ -215,7 +215,7 @@ msgstr "Poglej razdelek na desni"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:512
|
||||
#: ../src/compositor/compositor.c:502
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
@@ -223,6 +223,10 @@ msgid ""
|
||||
msgstr ""
|
||||
"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
|
||||
msgid "Bell event"
|
||||
msgstr "Dogodek zvonjenja"
|
||||
@@ -257,24 +261,29 @@ msgstr "_Počakaj"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Vsili konec"
|
||||
|
||||
#: ../src/core/display.c:394
|
||||
#: ../src/core/display.c:402
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "Manjka razširitev %s, ki je ključna za sestavljanje"
|
||||
|
||||
#: ../src/core/display.c:491
|
||||
#: ../src/core/display.c:494
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Ni mogoče odpreti zaslona '%s' okenskega sistema X\n"
|
||||
|
||||
# G:1 K:0 O:0
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
"binding\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
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Onemogoči povezavo z upravljalnikom sej"
|
||||
@@ -299,12 +308,12 @@ msgstr "Začni sejo iz shranjene datoteke"
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "Uskladi klice X"
|
||||
|
||||
#: ../src/core/main.c:494
|
||||
#: ../src/core/main.c:533
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "Ni mogoče preiskati mape tem: %s\n"
|
||||
|
||||
#: ../src/core/main.c:510
|
||||
#: ../src/core/main.c:549
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -367,17 +376,17 @@ msgstr ""
|
||||
"bližnjico \"%s\"\n"
|
||||
|
||||
# G:1 K:0 O:0
|
||||
#: ../src/core/prefs.c:1877
|
||||
#: ../src/core/prefs.c:1879
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Delovna površina %d"
|
||||
|
||||
#: ../src/core/screen.c:658
|
||||
#: ../src/core/screen.c:674
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "Zaslon %d na prikazu '%s' ni veljaven\n"
|
||||
|
||||
#: ../src/core/screen.c:674
|
||||
#: ../src/core/screen.c:690
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -386,19 +395,19 @@ msgstr ""
|
||||
"Zaslon %d na prikazu \"%s\" je že upravljan z upravljalnikom oken; "
|
||||
"poskušajte uporabiti možnost --replace za zamenjavo trenutnega.\n"
|
||||
|
||||
#: ../src/core/screen.c:701
|
||||
#: ../src/core/screen.c:717
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr ""
|
||||
"Ni mogoče dobiti izbire upravljalnika oken na zaslonu %d prikaza \"%s\"\n"
|
||||
|
||||
#: ../src/core/screen.c:770
|
||||
#: ../src/core/screen.c:795
|
||||
#, c-format
|
||||
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"
|
||||
|
||||
#: ../src/core/screen.c:955
|
||||
#: ../src/core/screen.c:980
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "Ni mogoče opustiti zaslona %d na prikazu \"%s\"\n"
|
||||
@@ -500,7 +509,7 @@ msgid "Window manager error: "
|
||||
msgstr "Napaka upravljalnika oken: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7279
|
||||
#: ../src/core/window.c:7538
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -516,7 +525,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:7945
|
||||
#: ../src/core/window.c:8262
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -526,22 +535,22 @@ msgstr ""
|
||||
"pa določi najmanjšo velikost na %d x %d in največjo na %d x %d; vrednost ni "
|
||||
"smiselna.\n"
|
||||
|
||||
#: ../src/core/window-props.c:274
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "Program je nastavil pokvarjen _NET_WM_PID %lu\n"
|
||||
|
||||
#: ../src/core/window-props.c:393
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (na %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1448
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
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"
|
||||
|
||||
#: ../src/core/window-props.c:1459
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
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"
|
||||
@@ -691,11 +700,11 @@ msgstr "Samodejno razpni okna, ki so skoraj enaka velikosti zaslona"
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||
msgid ""
|
||||
"If enabled, monitor nearly monitor sized windows automatically get maximized "
|
||||
"when mapped."
|
||||
"If enabled, new windows that are initially the size of the monitor "
|
||||
"automatically get maximized."
|
||||
msgstr ""
|
||||
"Izbrana možnost omogoča, da bodo okna, ki so skoraj tako velika kot je velik "
|
||||
"zaslon, samodejno razpeta med preslikavo."
|
||||
"Izbrana možnost omogoča, da bodo okna, ki so skoraj tako velika, kot je "
|
||||
"velik zaslon, med preslikavo samodejno razpeta."
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:19
|
||||
msgid "Select window from tab popup"
|
||||
@@ -922,7 +931,7 @@ msgstr "Mod5"
|
||||
#. Translators: This represents the size of a window. The first number is
|
||||
#. * the width of the window and the second is the height.
|
||||
#.
|
||||
#: ../src/ui/resizepopup.c:113
|
||||
#: ../src/ui/resizepopup.c:136
|
||||
#, c-format
|
||||
msgid "%d x %d"
|
||||
msgstr "%d x %d"
|
||||
@@ -1702,56 +1711,56 @@ msgstr "Okvir"
|
||||
msgid "Attached Modal Dialog"
|
||||
msgstr "Pripeto modalno okno"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:739
|
||||
#: ../src/ui/theme-viewer.c:737
|
||||
#, c-format
|
||||
msgid "Button layout test %d"
|
||||
msgstr "Preizkus razporeditve gumbov %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:768
|
||||
#: ../src/ui/theme-viewer.c:766
|
||||
#, c-format
|
||||
msgid "%g milliseconds to draw one window frame"
|
||||
msgstr "%g milisekund za risanje ene sličice okna"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:813
|
||||
#: ../src/ui/theme-viewer.c:811
|
||||
#, c-format
|
||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||
msgstr "Uporaba: metacity-theme-viewer [IMETEME]\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:820
|
||||
#: ../src/ui/theme-viewer.c:818
|
||||
#, c-format
|
||||
msgid "Error loading theme: %s\n"
|
||||
msgstr "Napaka med nalaganjem teme: %s\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:826
|
||||
#: ../src/ui/theme-viewer.c:824
|
||||
#, c-format
|
||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||
msgstr "Tema \"%s\" naložena v %g sekundah\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:871
|
||||
#: ../src/ui/theme-viewer.c:869
|
||||
msgid "Normal Title Font"
|
||||
msgstr "Običajna pisava naziva"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:877
|
||||
#: ../src/ui/theme-viewer.c:875
|
||||
msgid "Small Title Font"
|
||||
msgstr "Majhna pisava naziva"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:883
|
||||
#: ../src/ui/theme-viewer.c:881
|
||||
msgid "Large Title Font"
|
||||
msgstr "Velika pisava naziva"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:888
|
||||
#: ../src/ui/theme-viewer.c:886
|
||||
msgid "Button Layouts"
|
||||
msgstr "Razpored gumbov"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:893
|
||||
#: ../src/ui/theme-viewer.c:891
|
||||
msgid "Benchmark"
|
||||
msgstr "Primerjalni preizkus"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:949
|
||||
#: ../src/ui/theme-viewer.c:947
|
||||
msgid "Window Title Goes Here"
|
||||
msgstr "Tukaj je izpisan naziv okna"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1055
|
||||
#: ../src/ui/theme-viewer.c:1053
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||
@@ -1762,41 +1771,41 @@ msgstr ""
|
||||
"sekund v času stenske ure, upoštevajoč sredstva strežnika X (%g milisekund "
|
||||
"na sličico)\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
#: ../src/ui/theme-viewer.c:1273
|
||||
msgid "position expression test returned TRUE but set error"
|
||||
msgstr ""
|
||||
"preizkus izjave položaja je vrnil logični PRAV, vendar je določil tudi "
|
||||
"napako"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1277
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
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"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#: ../src/ui/theme-viewer.c:1279
|
||||
msgid "Error was expected but none given"
|
||||
msgstr "Pričakovana je napaka, vendar ni odziva"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1283
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#, c-format
|
||||
msgid "Error %d was expected but %d given"
|
||||
msgstr "Pričakovana je napaka %d, vrnjena pa je bila %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1289
|
||||
#: ../src/ui/theme-viewer.c:1287
|
||||
#, c-format
|
||||
msgid "Error not expected but one was returned: %s"
|
||||
msgstr "Napaka ni pričakovana, vendar je vrnjen odziv: %s"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1293
|
||||
#: ../src/ui/theme-viewer.c:1291
|
||||
#, c-format
|
||||
msgid "x value was %d, %d was expected"
|
||||
msgstr "vrednost x je %d, pričakovana pa je %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1296
|
||||
#: ../src/ui/theme-viewer.c:1294
|
||||
#, c-format
|
||||
msgid "y value was %d, %d was expected"
|
||||
msgstr "vrednost y je %d, pričakovana pa je %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1361
|
||||
#: ../src/ui/theme-viewer.c:1359
|
||||
#, c-format
|
||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||
msgstr ""
|
||||
|
30
po/sr.po
30
po/sr.po
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: mutter\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter"
|
||||
"&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-02-20 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-01 11:30+0200\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-11 11:40+0200\n"
|
||||
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
||||
"Language-Team: Serbian <gnom@prevod.org>\n"
|
||||
"Language: sr\n"
|
||||
@@ -220,7 +220,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Неки други композитни управник је већ покренут на приказу %i еркана „%s“."
|
||||
|
||||
#: ../src/compositor/meta-background.c:1116
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "склоп позадине не може бити створен из датотеке"
|
||||
|
||||
@@ -258,17 +258,17 @@ msgstr "_Сачекај"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Приморај излаз"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "Недостаје потребан композитни додатак %s"
|
||||
|
||||
#: ../src/core/display.c:485
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Нисам успео да отворим екран „%s“ Икс система прозора\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -277,6 +277,12 @@ msgstr ""
|
||||
"Неки други програм већ користи тастер %s са измењивачима %x за неку "
|
||||
"функцију\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“ није исправна пречица\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Искључује везу са управником сесије"
|
||||
@@ -493,7 +499,7 @@ msgid "Window manager error: "
|
||||
msgstr "Грешка управника прозора: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7503
|
||||
#: ../src/core/window.c:7539
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -509,7 +515,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8227
|
||||
#: ../src/core/window.c:8263
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -519,22 +525,22 @@ msgstr ""
|
||||
"али је поставио најмању величину %d x %d и највећу величину %d x %d што нема "
|
||||
"много смисла.\n"
|
||||
|
||||
#: ../src/core/window-props.c:304
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "Програм је поставио нетачан _NET_WM_PID %lu\n"
|
||||
|
||||
#: ../src/core/window-props.c:423
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (на %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1506
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "Неисправан прозор 0x%lx наведен као WM_TRANSIENT_FOR за %s.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1517
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "WM_TRANSIENT_FOR прозор 0x%lx за %s ће направити петљу.\n"
|
||||
|
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: mutter\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter"
|
||||
"&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-02-20 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-01 11:30+0200\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-11 11:40+0200\n"
|
||||
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
|
||||
"Language-Team: Serbian <gnom@prevod.org>\n"
|
||||
"Language: sr\n"
|
||||
@@ -220,7 +220,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Neki drugi kompozitni upravnik je već pokrenut na prikazu %i erkana „%s“."
|
||||
|
||||
#: ../src/compositor/meta-background.c:1116
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "sklop pozadine ne može biti stvoren iz datoteke"
|
||||
|
||||
@@ -258,17 +258,17 @@ msgstr "_Sačekaj"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Primoraj izlaz"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "Nedostaje potreban kompozitni dodatak %s"
|
||||
|
||||
#: ../src/core/display.c:485
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Nisam uspeo da otvorim ekran „%s“ Iks sistema prozora\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -277,6 +277,12 @@ msgstr ""
|
||||
"Neki drugi program već koristi taster %s sa izmenjivačima %x za neku "
|
||||
"funkciju\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“ nije ispravna prečica\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Isključuje vezu sa upravnikom sesije"
|
||||
@@ -493,7 +499,7 @@ msgid "Window manager error: "
|
||||
msgstr "Greška upravnika prozora: "
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7503
|
||||
#: ../src/core/window.c:7539
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -509,7 +515,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8227
|
||||
#: ../src/core/window.c:8263
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -519,22 +525,22 @@ msgstr ""
|
||||
"ali je postavio najmanju veličinu %d x %d i najveću veličinu %d x %d što nema "
|
||||
"mnogo smisla.\n"
|
||||
|
||||
#: ../src/core/window-props.c:304
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "Program je postavio netačan _NET_WM_PID %lu\n"
|
||||
|
||||
#: ../src/core/window-props.c:423
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (na %s)"
|
||||
|
||||
#: ../src/core/window-props.c:1506
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "Neispravan prozor 0x%lx naveden kao WM_TRANSIENT_FOR za %s.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1517
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "WM_TRANSIENT_FOR prozor 0x%lx za %s će napraviti petlju.\n"
|
||||
|
282
po/ta.po
282
po/ta.po
@@ -7,17 +7,17 @@
|
||||
# Dinesh Nadarajah <n_dinesh@yahoo.com>, 2003.
|
||||
# Jayaradha N <jaya@pune.redhat.com>, 2004.
|
||||
# Felix <ifelix@redhat.com>, 2006.
|
||||
# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007, 2010, 2011, 2012.
|
||||
# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007, 2010, 2011, 2012, 2013.
|
||||
# Dr.T.vasudevan <agnihot3@gmail.com>, 2009.
|
||||
# I. Felix <ifelix@redhat.com>, 2009, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity.gnome-2-26.ta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-02 17:25+0530\n"
|
||||
"PO-Revision-Date: 2012-12-02 18:58+0530\n"
|
||||
"POT-Creation-Date: 2013-03-23 14:03+0530\n"
|
||||
"PO-Revision-Date: 2013-03-23 14:11+0530\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -70,58 +70,62 @@ msgid "Switch applications"
|
||||
msgstr "பயன்பாடுகளுக்கிடையே மாறவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:11
|
||||
msgid "Switch windows"
|
||||
msgstr "சாளரத்தை மாற்றுக"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||
msgid "Switch windows of an application"
|
||||
msgstr "ஒரு பயன்பாட்டின் சாளரங்களிடையே மாறவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||
msgid "Switch system controls"
|
||||
msgstr "கணினி கட்டுப்பாடுகளை மாற்றவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||
msgid "Switch windows directly"
|
||||
msgstr "சாளரங்களிடையே உடனடியாக நகரவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||
msgid "Switch windows of an app directly"
|
||||
msgstr "ஒரு பயன்பாட்டின் சாளரங்களிடையே நேரடியாக நகரவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||
msgid "Switch system controls directly"
|
||||
msgstr "கணினி கட்டுப்பாடுகளை நேரடியாக மாற்றவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||
msgid "Hide all normal windows"
|
||||
msgstr "எல்லா வழக்கமான சாளரங்களையும் மறை"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||
msgid "Switch to workspace 1"
|
||||
msgstr "பணியிடம் 1க்கு மாறு"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||
msgid "Switch to workspace 2"
|
||||
msgstr "பணியிடம் 2 க்கு மாறு"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||
msgid "Switch to workspace 3"
|
||||
msgstr "பணியிடம் 3 க்கு மாறு"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||
msgid "Switch to workspace 4"
|
||||
msgstr "பணியிடம் 4 க்கு மாறு"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||
msgid "Move to workspace left"
|
||||
msgstr "வேலையிடத்தை இடப்பக்கத்திற்கு நகர்த்தவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||
msgid "Move to workspace right"
|
||||
msgstr "வேலையிடத்தை வலப்பக்கத்திற்கு நகர்த்தவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||
msgid "Move to workspace above"
|
||||
msgstr "வேலையிடத்தை மேல்பக்கத்திற்கு நகர்த்தவும்"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||
#: ../src/50-mutter-navigation.xml.in.h:25
|
||||
msgid "Move to workspace below"
|
||||
msgstr "வேலையிடத்தை கீழே நகர்த்தவும் "
|
||||
|
||||
@@ -170,8 +174,8 @@ msgid "Close window"
|
||||
msgstr "சாளரம் மூடவும்"
|
||||
|
||||
#: ../src/50-mutter-windows.xml.in.h:9
|
||||
msgid "Minimize window"
|
||||
msgstr "சாளரத்தை சிறிதாக்கு"
|
||||
msgid "Hide window"
|
||||
msgstr "சாளரத்தை மறை "
|
||||
|
||||
#: ../src/50-mutter-windows.xml.in.h:10
|
||||
msgid "Move window"
|
||||
@@ -217,7 +221,7 @@ msgstr "வலது பக்கத்தில் பிளந்து பா
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:492
|
||||
#: ../src/compositor/compositor.c:568
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
@@ -225,7 +229,11 @@ msgid ""
|
||||
msgstr ""
|
||||
" %i திரையில் காட்சி \"%s\" இல் இன்னொரு சாளர மேலாளர் இயங்கிக்கொண்டு இருக்கிறது."
|
||||
|
||||
#: ../src/core/bell.c:320
|
||||
#: ../src/compositor/meta-background.c:1191
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "கோப்பிலிருந்து பின் புல இழை நய அமைப்பை உருவாக்க முடியவில்லை."
|
||||
|
||||
#: ../src/core/bell.c:322
|
||||
msgid "Bell event"
|
||||
msgstr "மணி நிகழ்ச்சி"
|
||||
|
||||
@@ -260,17 +268,17 @@ msgstr "_காத்திரு"
|
||||
msgid "_Force Quit"
|
||||
msgstr "கட்டாய வெளியேற்றம் (_F)"
|
||||
|
||||
#: ../src/core/display.c:397
|
||||
#: ../src/core/display.c:401
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "நீட்சி %s காணப்படவில்லை பவின் ஆக்கத்துக்கு அது அவசியம்"
|
||||
|
||||
#: ../src/core/display.c:494
|
||||
#: ../src/core/display.c:493
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "X சாளர காட்சியை திறப்பதில் தோல்வி '%s'\n"
|
||||
|
||||
#: ../src/core/keybindings.c:860
|
||||
#: ../src/core/keybindings.c:935
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
@@ -278,36 +286,41 @@ msgid ""
|
||||
msgstr ""
|
||||
"விசை %s ஐ மாற்றி %x ஓடு இணைத்து வேறு நிரல் பயன்படுத்திக்கொண்டிருக்கிறது\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
#: ../src/core/keybindings.c:1135
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "\"%s\" செல்லாத முடுக்கி\n"
|
||||
|
||||
#: ../src/core/main.c:197
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "அமர்வு மேலாளருடன் இருக்கும் இணைப்பை முடக்கு"
|
||||
|
||||
#: ../src/core/main.c:202
|
||||
#: ../src/core/main.c:203
|
||||
msgid "Replace the running window manager"
|
||||
msgstr "இயங்கும் சாளர மேலாளரை மாற்றுக"
|
||||
|
||||
#: ../src/core/main.c:208
|
||||
#: ../src/core/main.c:209
|
||||
msgid "Specify session management ID"
|
||||
msgstr "அமர்வு மேலாண் எண்ணை குறிப்பிடு"
|
||||
|
||||
#: ../src/core/main.c:213
|
||||
#: ../src/core/main.c:214
|
||||
msgid "X Display to use"
|
||||
msgstr "பயன்படுத்த வேண்டிய X காட்சி"
|
||||
|
||||
#: ../src/core/main.c:219
|
||||
#: ../src/core/main.c:220
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr "அமர்வை சேவ்பைல் இலிருந்து துவக்கு "
|
||||
|
||||
#: ../src/core/main.c:225
|
||||
#: ../src/core/main.c:226
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "எக்ஸ் அழைப்புகளை ஒத்திசை."
|
||||
|
||||
#: ../src/core/main.c:494
|
||||
#: ../src/core/main.c:534
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "கருப்பொருள் அடைவை வருடுவதில் தோல்வி: %s\n"
|
||||
|
||||
#: ../src/core/main.c:510
|
||||
#: ../src/core/main.c:550
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -341,7 +354,7 @@ msgstr "அச்சு பதிப்பு"
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "பயன்படுத்த க்ளட்டர் செருகிகள்"
|
||||
|
||||
#: ../src/core/prefs.c:1079
|
||||
#: ../src/core/prefs.c:1095
|
||||
msgid ""
|
||||
"Workarounds for broken applications disabled. Some applications may not "
|
||||
"behave properly.\n"
|
||||
@@ -349,14 +362,14 @@ msgstr ""
|
||||
"உடைந்த பயன்பாடுகளின் செயல்பாடு தடைசெய்யப்பட்டது, சில பயன்பாடுகள் சரியாக வேலை "
|
||||
"செய்யாது.\n"
|
||||
|
||||
#: ../src/core/prefs.c:1154
|
||||
#: ../src/core/prefs.c:1170
|
||||
#, c-format
|
||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||
msgstr ""
|
||||
"எழுத்துரு விளக்கம் \"%s\" ஐ ஜிசெட்டிங்க்ஸ் விசையிலிருந்து பகுக்க முடியவில்லை %"
|
||||
"s\n"
|
||||
|
||||
#: ../src/core/prefs.c:1220
|
||||
#: ../src/core/prefs.c:1236
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||
@@ -364,24 +377,24 @@ msgid ""
|
||||
msgstr ""
|
||||
"அமைப்பு பாங்கில் உள்ள \"%s\" சுட்டி பட்டன் மாற்றியில் செல்லாத மதிப்பு\n"
|
||||
|
||||
#: ../src/core/prefs.c:1757
|
||||
#: ../src/core/prefs.c:1788
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||
"\"%s\"\n"
|
||||
msgstr "\"%s\" அமைப்பு தரவுத்தளத்தில் உள்ள மதிப்பு செல்லாத கீபைன்டிங்\"%s\"\n"
|
||||
|
||||
#: ../src/core/prefs.c:1854
|
||||
#: ../src/core/prefs.c:1887
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "வேலையிடம் %d"
|
||||
|
||||
#: ../src/core/screen.c:652
|
||||
#: ../src/core/screen.c:691
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "திரை %d காட்சி '%s' இல் செல்லாது\n"
|
||||
|
||||
#: ../src/core/screen.c:668
|
||||
#: ../src/core/screen.c:707
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -390,18 +403,18 @@ msgstr ""
|
||||
"திரை %d காட்சி \"%s\" க்கு சாளர மேலாளர் உள்ளது; --replace தேர்வை பயன்படுத்தி "
|
||||
"தற்போதைய சாளரத்தை மாற்றவும்.\n"
|
||||
|
||||
#: ../src/core/screen.c:695
|
||||
#: ../src/core/screen.c:734
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr "திரையில் சாளர மேலாளர் தேர்வை பெறமுடியவில்லை %d காட்சி \"%s\"\n"
|
||||
|
||||
#: ../src/core/screen.c:750
|
||||
#: ../src/core/screen.c:812
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "திரை %d யின் காட்சி \"%s\" க்கு சாளர மேலாளர் ஏற்கெனவே உள்ளது\n"
|
||||
|
||||
#: ../src/core/screen.c:935
|
||||
#: ../src/core/screen.c:998
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "திரை %d ஐ விடுவிக்க முடியவில்லை \"%s\"\n"
|
||||
@@ -462,44 +475,44 @@ msgstr ""
|
||||
" "தற்போதைய அமைப்பை சேமி" செயலுக்கு ஆதரவு இல்லை மேலும் அடுத்த முறை "
|
||||
"உள்நுழையும் போது நீங்களாக துவக்க வேண்டும்"
|
||||
|
||||
#: ../src/core/util.c:80
|
||||
#: ../src/core/util.c:84
|
||||
#, c-format
|
||||
msgid "Failed to open debug log: %s\n"
|
||||
msgstr "பிழைதிருத்த பட்டியலை திறப்பதில் தோல்வி: %s\n"
|
||||
|
||||
#: ../src/core/util.c:90
|
||||
#: ../src/core/util.c:94
|
||||
#, c-format
|
||||
msgid "Failed to fdopen() log file %s: %s\n"
|
||||
msgstr "fdopen() பதிவுக்கோப்பு தோல்வி %s: %s\n"
|
||||
|
||||
#: ../src/core/util.c:96
|
||||
#: ../src/core/util.c:100
|
||||
#, c-format
|
||||
msgid "Opened log file %s\n"
|
||||
msgstr "பதிவுக்கோப்பு திறக்கப்பட்டது %s\n"
|
||||
|
||||
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
|
||||
#: ../src/core/util.c:119 ../src/tools/mutter-message.c:149
|
||||
#, c-format
|
||||
msgid "Mutter was compiled without support for verbose mode\n"
|
||||
msgstr "வெர்போஸ் ஆதரவு இல்லாமல் மட்டர் அமைக்கப்பட்டது\n"
|
||||
|
||||
#: ../src/core/util.c:259
|
||||
#: ../src/core/util.c:264
|
||||
msgid "Window manager: "
|
||||
msgstr "சாளர மேலாளர்:"
|
||||
|
||||
#: ../src/core/util.c:407
|
||||
#: ../src/core/util.c:412
|
||||
msgid "Bug in window manager: "
|
||||
msgstr "சாளர மேலாளரில் பிழை"
|
||||
|
||||
#: ../src/core/util.c:438
|
||||
#: ../src/core/util.c:443
|
||||
msgid "Window manager warning: "
|
||||
msgstr "சாளர மேலாளர் எச்சரிக்கை:"
|
||||
|
||||
#: ../src/core/util.c:466
|
||||
#: ../src/core/util.c:471
|
||||
msgid "Window manager error: "
|
||||
msgstr "சாளர மேலாளர் பிழை"
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7240
|
||||
#: ../src/core/window.c:7596
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -516,7 +529,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:7905
|
||||
#: ../src/core/window.c:8320
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
@@ -526,22 +539,22 @@ msgstr ""
|
||||
"அதிக "
|
||||
"பட்ச அளவு %d x %d; பொருள் தரும்படி இல்லை.\n"
|
||||
|
||||
#: ../src/core/window-props.c:274
|
||||
#: ../src/core/window-props.c:318
|
||||
#, c-format
|
||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||
msgstr "பயன்பாடு பொய்யான ஒரு _NET_WM_PID %lu ஐ அமைத்தது\n"
|
||||
|
||||
#: ../src/core/window-props.c:393
|
||||
#: ../src/core/window-props.c:434
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (%s மீது)"
|
||||
|
||||
#: ../src/core/window-props.c:1448
|
||||
#: ../src/core/window-props.c:1517
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "செல்லாத WM_TRANSIENT_FOR சாளரம் 0x%lx இதற்கு குறிக்கப்பட்டது: %s.\n"
|
||||
|
||||
#: ../src/core/window-props.c:1459
|
||||
#: ../src/core/window-props.c:1528
|
||||
#, c-format
|
||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||
msgstr "WM_TRANSIENT_FOR சாளரம் 0x%lx %s க்கு சுழல் நிகழ்வை உருவாக்கும்.\n"
|
||||
@@ -693,10 +706,22 @@ msgstr ""
|
||||
"இந்த மதிப்பை அடைய மறை விளிம்பு சேர்க்கப்படும்."
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
||||
msgid "Auto maximize nearly monitor sized windows"
|
||||
msgstr "ஏறத்தாழ திரை அளவுள்ள சாளரங்களை தானியங்கியாக அதிக பட்ச அளவாக்கு"
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||
msgid ""
|
||||
"If enabled, 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"
|
||||
msgstr "கீற்றுத்துள்ளலிருந்து சாளரத்தை தேர்ந்தெடுக்கவும்."
|
||||
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:20
|
||||
msgid "Cancel tab popup"
|
||||
msgstr "கீற்று துள்ளுவதை இரத்து செய்"
|
||||
|
||||
@@ -899,53 +924,53 @@ msgstr "Mod5"
|
||||
#. Translators: This represents the size of a window. The first number is
|
||||
#. * the width of the window and the second is the height.
|
||||
#.
|
||||
#: ../src/ui/resizepopup.c:113
|
||||
#: ../src/ui/resizepopup.c:136
|
||||
#, c-format
|
||||
msgid "%d x %d"
|
||||
msgstr "%d x %d"
|
||||
|
||||
#: ../src/ui/theme.c:234
|
||||
#: ../src/ui/theme.c:236
|
||||
msgid "top"
|
||||
msgstr "மேல்"
|
||||
|
||||
#: ../src/ui/theme.c:236
|
||||
#: ../src/ui/theme.c:238
|
||||
msgid "bottom"
|
||||
msgstr "கீழ்"
|
||||
|
||||
#: ../src/ui/theme.c:238
|
||||
#: ../src/ui/theme.c:240
|
||||
msgid "left"
|
||||
msgstr "இடது"
|
||||
|
||||
#: ../src/ui/theme.c:240
|
||||
#: ../src/ui/theme.c:242
|
||||
msgid "right"
|
||||
msgstr "வலது"
|
||||
|
||||
#: ../src/ui/theme.c:268
|
||||
#: ../src/ui/theme.c:270
|
||||
#, c-format
|
||||
msgid "frame geometry does not specify \"%s\" dimension"
|
||||
msgstr "சட்ட வடிவியல் \"%s\" அளவை குறிப்பிடவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:287
|
||||
#: ../src/ui/theme.c:289
|
||||
#, c-format
|
||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||
msgstr "\"%s\" ஓரத்திற்கு வடிவியல் \"%s\" அளவை குறிப்பிடவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:324
|
||||
#: ../src/ui/theme.c:326
|
||||
#, c-format
|
||||
msgid "Button aspect ratio %g is not reasonable"
|
||||
msgstr "பட்டன் அளவு விகிதம் %g சரியில்ல"
|
||||
|
||||
#: ../src/ui/theme.c:336
|
||||
#: ../src/ui/theme.c:338
|
||||
#, c-format
|
||||
msgid "Frame geometry does not specify size of buttons"
|
||||
msgstr "சட்ட அளவு பட்டன் அளவை குறிப்பிடவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1049
|
||||
#: ../src/ui/theme.c:1051
|
||||
#, c-format
|
||||
msgid "Gradients should have at least two colors"
|
||||
msgstr "க்ரேடியன்டில் இரண்டு நிறங்களாவது இருக்க வேண்டும்"
|
||||
|
||||
#: ../src/ui/theme.c:1201
|
||||
#: ../src/ui/theme.c:1203
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK custom color specification must have color name and fallback in "
|
||||
@@ -955,7 +980,7 @@ msgstr ""
|
||||
"அடைப்புக்குறிகளுக்குள்ளும் "
|
||||
"கொண்டிருக்க வேண்டும் உம் gtk:custom(foo,bar); \"%s\" ஐ பகுக்க முடியவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1217
|
||||
#: ../src/ui/theme.c:1219
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||
@@ -965,7 +990,7 @@ msgstr ""
|
||||
"A-Za-z0-9-"
|
||||
"_ ஆகியன மட்டுமே செல்லுபடியாகும்."
|
||||
|
||||
#: ../src/ui/theme.c:1231
|
||||
#: ../src/ui/theme.c:1233
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||
@@ -974,7 +999,7 @@ msgstr ""
|
||||
"ஜிடிகே:தனிப்பயன் ஒழுங்கு \"gtk:custom(color_name,fallback)\", \"%s\" இந்த "
|
||||
"ஒழுங்குக்கு பொருந்தாது"
|
||||
|
||||
#: ../src/ui/theme.c:1276
|
||||
#: ../src/ui/theme.c:1278
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
@@ -984,7 +1009,7 @@ msgstr ""
|
||||
"நிலையை "
|
||||
"குறிக்கும் பகுக்க முடியாது \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1290
|
||||
#: ../src/ui/theme.c:1292
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||
@@ -994,17 +1019,17 @@ msgstr ""
|
||||
"NORMAL "
|
||||
"நிலையை குறிக்கும் பகுக்க முடியாது \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1301
|
||||
#: ../src/ui/theme.c:1303
|
||||
#, c-format
|
||||
msgid "Did not understand state \"%s\" in color specification"
|
||||
msgstr "நிலை \"%s\" வண்ண குறிப்பில் புரிந்துகொள்ள முடியவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1314
|
||||
#: ../src/ui/theme.c:1316
|
||||
#, c-format
|
||||
msgid "Did not understand color component \"%s\" in color specification"
|
||||
msgstr "நிலை \"%s\" வண்ண குறிப்பு பொருளில் புரிந்துகொள்ள முடியவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1343
|
||||
#: ../src/ui/theme.c:1345
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||
@@ -1013,18 +1038,18 @@ msgstr ""
|
||||
"வளைந்த அமைப்பு \"blend/bg_color/fg_color/alpha\", \"%s\" இந்த வடிவமைப்பிற்கு "
|
||||
"பொருந்தாது"
|
||||
|
||||
#: ../src/ui/theme.c:1354
|
||||
#: ../src/ui/theme.c:1356
|
||||
#, c-format
|
||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||
msgstr "ஆம்ஃபா மதிப்பை \"%s\" வளைந்த நிறத்தில் பகுக்க முடியவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1364
|
||||
#: ../src/ui/theme.c:1366
|
||||
#, c-format
|
||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||
msgstr ""
|
||||
"ஆல்ஃபா மதுப்பு \"%s\"வளைவு நிறத்தில் 0.0 க்கும் 1.0 க்கும் இடையில் இல்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1411
|
||||
#: ../src/ui/theme.c:1413
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
@@ -1032,39 +1057,39 @@ msgstr ""
|
||||
"நிழல் வடிவமைப்பு \"shade/base_color/factor\", \"%s\" இந்த அமைப்பிற்கு "
|
||||
"பொருந்தாது"
|
||||
|
||||
#: ../src/ui/theme.c:1422
|
||||
#: ../src/ui/theme.c:1424
|
||||
#, c-format
|
||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||
msgstr "நிழல்விகிதத்தை \"%s\" நிறத்தோடு பகுக்க முடியாது"
|
||||
|
||||
#: ../src/ui/theme.c:1432
|
||||
#: ../src/ui/theme.c:1434
|
||||
#, c-format
|
||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||
msgstr "நிழல் விகிதம் \"%s\" முழுக்களாக உள்ளது "
|
||||
|
||||
#: ../src/ui/theme.c:1461
|
||||
#: ../src/ui/theme.c:1463
|
||||
#, c-format
|
||||
msgid "Could not parse color \"%s\""
|
||||
msgstr "\"%s\" நிறத்தை பகுக்க முடியவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1778
|
||||
#: ../src/ui/theme.c:1780
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr "அச்சுக்கள் எழுத்தால் குறிக்கப்பட்டுள்ளது '%s' க்கு அனுமதி இல்லை"
|
||||
|
||||
#: ../src/ui/theme.c:1805
|
||||
#: ../src/ui/theme.c:1807
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contains floating point number '%s' which could not be "
|
||||
"parsed"
|
||||
msgstr "அச்சுக்கள் பின்ன எண்ணால் குறிக்கப்பட்டுள்ளது '%s' ஐ பகுக்க முடியாது"
|
||||
|
||||
#: ../src/ui/theme.c:1819
|
||||
#: ../src/ui/theme.c:1821
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr "அச்சுக்கள் இயல் எண்ணால் குறிக்கப்பட்டுள்ளது '%s' ஐ பகுக்க முடியாது"
|
||||
|
||||
#: ../src/ui/theme.c:1940
|
||||
#: ../src/ui/theme.c:1942
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contained unknown operator at the start of this text: "
|
||||
@@ -1072,41 +1097,41 @@ msgid ""
|
||||
msgstr ""
|
||||
"உரையின் துவக்கத்தில் அச்சின் கூற்றில் தெரியாத செயல் இடம்பெற்றுள்ளது \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:1997
|
||||
#: ../src/ui/theme.c:1999
|
||||
#, c-format
|
||||
msgid "Coordinate expression was empty or not understood"
|
||||
msgstr "அச்சு கூற்று காலியாக உள்ளது அல்லது புரியவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||
#: ../src/ui/theme.c:2112 ../src/ui/theme.c:2122 ../src/ui/theme.c:2156
|
||||
#, c-format
|
||||
msgid "Coordinate expression results in division by zero"
|
||||
msgstr "அச்சு கூற்று பூஜ்ஜியத்தால் வகுத்தல் பிழையை தந்தது"
|
||||
|
||||
#: ../src/ui/theme.c:2162
|
||||
#: ../src/ui/theme.c:2164
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||
msgstr "அச்சு கூற்று mod ஆப்பரேட்டரை பின்ன எண்ணில் பயன்படுத்த முயல்கிறது"
|
||||
|
||||
#: ../src/ui/theme.c:2218
|
||||
#: ../src/ui/theme.c:2220
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgstr ""
|
||||
"அச்சு கூற்றில் ஆப்பரேட்டர் உள்ளது \"%s\" ஆப்பரன் எதிர்பார்க்கப்படுகிறது"
|
||||
|
||||
#: ../src/ui/theme.c:2227
|
||||
#: ../src/ui/theme.c:2229
|
||||
#, c-format
|
||||
msgid "Coordinate expression had an operand where an operator was expected"
|
||||
msgstr ""
|
||||
"அச்சு கூற்றில் ஆப்பரன்ட் உள்ளது ஆனால் ஆப்பரேட்டர் எதிர்பார்க்கப்படுகிறது"
|
||||
|
||||
#: ../src/ui/theme.c:2235
|
||||
#: ../src/ui/theme.c:2237
|
||||
#, c-format
|
||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||
msgstr "அச்சு கூற்றில் ஆப்பரன்ட்டுக்கு பதில் ஆப்பரேட்டரால் முடிந்தது"
|
||||
|
||||
#: ../src/ui/theme.c:2245
|
||||
#: ../src/ui/theme.c:2247
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||
@@ -1115,39 +1140,39 @@ msgstr ""
|
||||
"அச்சு கூற்றில் \"%c\" ஆப்பரேட்டர் உள்ளது \"%c\" ஆப்பரேட்டருக்கு ஆப்பரன்ட் "
|
||||
"இல்லை"
|
||||
|
||||
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||
#: ../src/ui/theme.c:2398 ../src/ui/theme.c:2443
|
||||
#, c-format
|
||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||
msgstr "அச்சு கூற்றில் செல்லாத மாற்றி மற்றும் கான்ஸ்ட்டன் உள்ளது \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:2495
|
||||
#: ../src/ui/theme.c:2497
|
||||
#, c-format
|
||||
msgid "Coordinate expression parser overflowed its buffer."
|
||||
msgstr "ஆயத்தொலைவு தெரிவிப்பு பகுப்பி அதன் இடையகத்தை நிரப்பியது"
|
||||
|
||||
#: ../src/ui/theme.c:2524
|
||||
#: ../src/ui/theme.c:2526
|
||||
#, c-format
|
||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||
msgstr ""
|
||||
"அச்சு கூற்றில் மூடிய அடைப்புக்குறி உள்ளது ஆனால் திறந்த அடைப்புகுறி இல்லை"
|
||||
|
||||
#: ../src/ui/theme.c:2588
|
||||
#: ../src/ui/theme.c:2590
|
||||
#, c-format
|
||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||
msgstr ""
|
||||
"அச்சு கூற்றில் திறந்த அடைப்புக்குறி உள்ளது ஆனால் மூடிய அடைப்புகுறி இல்லை"
|
||||
|
||||
#: ../src/ui/theme.c:2599
|
||||
#: ../src/ui/theme.c:2601
|
||||
#, c-format
|
||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||
msgstr "அச்சுக்கூற்றில் ஆப்பரன்ட் மற்றும் ஆப்பரேட்டர் காணப்படவில்லை"
|
||||
|
||||
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||
#: ../src/ui/theme.c:2814 ../src/ui/theme.c:2834 ../src/ui/theme.c:2854
|
||||
#, c-format
|
||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||
msgstr "கருப்பொருளில் ஒரு கூற்று இருந்தது. அது பிழையை ஏற்படுத்தியது : %s\n"
|
||||
|
||||
#: ../src/ui/theme.c:4498
|
||||
#: ../src/ui/theme.c:4500
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -1157,25 +1182,25 @@ msgstr ""
|
||||
"பாணிக்கு "
|
||||
"குறிப்பிடப்பட வேண்டும்"
|
||||
|
||||
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||
#: ../src/ui/theme.c:5011 ../src/ui/theme.c:5036
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgstr ""
|
||||
"காணவில்லை <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
|
||||
#: ../src/ui/theme.c:5082
|
||||
#: ../src/ui/theme.c:5084
|
||||
#, c-format
|
||||
msgid "Failed to load theme \"%s\": %s\n"
|
||||
msgstr "கருப்பொருளை ஏற்றுவதில் தோல்வி \"%s\": %s\n"
|
||||
|
||||
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||
#: ../src/ui/theme.c:5220 ../src/ui/theme.c:5227 ../src/ui/theme.c:5234
|
||||
#: ../src/ui/theme.c:5241 ../src/ui/theme.c:5248
|
||||
#, c-format
|
||||
msgid "No <%s> set for theme \"%s\""
|
||||
msgstr "இல்லை<%s> கருப்பொருளுக்காக அமைக்கப்பட்டது \"%s\""
|
||||
|
||||
#: ../src/ui/theme.c:5254
|
||||
#: ../src/ui/theme.c:5256
|
||||
#, c-format
|
||||
msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
@@ -1184,7 +1209,7 @@ msgstr ""
|
||||
"சட்ட பாணி சாளர வகை இல்லை\"%s\" கருப்பொருளில் \"%s\", <window type=\"%s\" "
|
||||
"style_set=\"whatever\"/> உறுப்பை சேர்க்கவும்"
|
||||
|
||||
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||
#: ../src/ui/theme.c:5663 ../src/ui/theme.c:5725 ../src/ui/theme.c:5788
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
@@ -1192,7 +1217,7 @@ msgstr ""
|
||||
"பயனீட்டாளர்-குறிப்பிட்ட கான்ஸ்டன் பெரிய எழுத்தில் துவங்க வேண்டும்; \"%s\" "
|
||||
"இல்லை"
|
||||
|
||||
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||
#: ../src/ui/theme.c:5671 ../src/ui/theme.c:5733 ../src/ui/theme.c:5796
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "கான்ஸ்டன் \"%s\" ஏற்கெனவே குறிப்பிடப்பட்டது"
|
||||
@@ -1575,7 +1600,7 @@ msgstr "உறுப்பிற்குள் உரை அனுமதி இ
|
||||
msgid "<%s> specified twice for this theme"
|
||||
msgstr "<%s> இந்த கருப்பொருளுக்கு இரண்டுமுறை குறிப்பிட்டுள்ளது"
|
||||
|
||||
#: ../src/ui/theme-parser.c:4334
|
||||
#: ../src/ui/theme-parser.c:4336
|
||||
#, c-format
|
||||
msgid "Failed to find a valid file for theme %s\n"
|
||||
msgstr "%s கருத்துக்கு செல்லுபடியாகும் கோப்பு கண்டுபிடித்தல் தோல்வியுற்றது \n"
|
||||
@@ -1681,56 +1706,56 @@ msgstr "ஓரம்"
|
||||
msgid "Attached Modal Dialog"
|
||||
msgstr "இணைத்த மாதிரி உரையாடல்"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:739
|
||||
#: ../src/ui/theme-viewer.c:737
|
||||
#, c-format
|
||||
msgid "Button layout test %d"
|
||||
msgstr "பட்டன் உருவரை சோதனை %d"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:768
|
||||
#: ../src/ui/theme-viewer.c:766
|
||||
#, c-format
|
||||
msgid "%g milliseconds to draw one window frame"
|
||||
msgstr "%g சாளரத்தை வரைய மில்லிசெக்கண்டு"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:813
|
||||
#: ../src/ui/theme-viewer.c:811
|
||||
#, c-format
|
||||
msgid "Usage: metacity-theme-viewer [THEMENAME]\n"
|
||||
msgstr "பயன்பாடு: metacity-theme-viewer [THEMENAME]\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:820
|
||||
#: ../src/ui/theme-viewer.c:818
|
||||
#, c-format
|
||||
msgid "Error loading theme: %s\n"
|
||||
msgstr "கருப்பொருளை ஏற்றுவதில் பிழை: %s\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:826
|
||||
#: ../src/ui/theme-viewer.c:824
|
||||
#, c-format
|
||||
msgid "Loaded theme \"%s\" in %g seconds\n"
|
||||
msgstr "கருப்பொருள் \"%s\" %g செகண்டில்\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:870
|
||||
#: ../src/ui/theme-viewer.c:869
|
||||
msgid "Normal Title Font"
|
||||
msgstr "இயல்பான தலைப்பு எழுத்துரு"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:876
|
||||
#: ../src/ui/theme-viewer.c:875
|
||||
msgid "Small Title Font"
|
||||
msgstr "சிறிய தலைப்பு எழுத்துரு"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:882
|
||||
#: ../src/ui/theme-viewer.c:881
|
||||
msgid "Large Title Font"
|
||||
msgstr "பெரிய தலைப்பு எழுத்துரு"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:887
|
||||
#: ../src/ui/theme-viewer.c:886
|
||||
msgid "Button Layouts"
|
||||
msgstr "பட்டன் உருவரை"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:892
|
||||
#: ../src/ui/theme-viewer.c:891
|
||||
msgid "Benchmark"
|
||||
msgstr "நிர்ணயம்"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:944
|
||||
#: ../src/ui/theme-viewer.c:947
|
||||
msgid "Window Title Goes Here"
|
||||
msgstr "சாளர தலைப்பு இங்கே"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1047
|
||||
#: ../src/ui/theme-viewer.c:1053
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Drew %d frames in %g client-side seconds (%g milliseconds per frame) and %g "
|
||||
@@ -1741,43 +1766,46 @@ msgstr ""
|
||||
"சேவகனின் "
|
||||
"மூலத்தில் (%g மில்லி செகண்ட் சட்டத்திற்கு)\n"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1266
|
||||
#: ../src/ui/theme-viewer.c:1273
|
||||
msgid "position expression test returned TRUE but set error"
|
||||
msgstr "நிலை கூற்று சோதனை உண்மையை தந்தது ஆனால் பிழை"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1268
|
||||
#: ../src/ui/theme-viewer.c:1275
|
||||
msgid "position expression test returned FALSE but didn't set error"
|
||||
msgstr "நிலை கூற்று சோதனை பொய்யை தந்தது ஆனால் பிழை"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1272
|
||||
#: ../src/ui/theme-viewer.c:1279
|
||||
msgid "Error was expected but none given"
|
||||
msgstr "பிழை எதிர்பார்க்கப்பட்டடு ஆனால் தரப்படவில்லை"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1274
|
||||
#: ../src/ui/theme-viewer.c:1281
|
||||
#, c-format
|
||||
msgid "Error %d was expected but %d given"
|
||||
msgstr "பிழை %d எதிர்பார்க்கப்பட்டது %d தரப்படவில்லை"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1280
|
||||
#: ../src/ui/theme-viewer.c:1287
|
||||
#, c-format
|
||||
msgid "Error not expected but one was returned: %s"
|
||||
msgstr "பிழை எதிர்பார்க்கப்பட்டடு ஆனால் தரப்படவில்லை: %s"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1284
|
||||
#: ../src/ui/theme-viewer.c:1291
|
||||
#, c-format
|
||||
msgid "x value was %d, %d was expected"
|
||||
msgstr "x மதிப்பு %d, %d எதிர்பார்க்கப்பட்டது"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1287
|
||||
#: ../src/ui/theme-viewer.c:1294
|
||||
#, c-format
|
||||
msgid "y value was %d, %d was expected"
|
||||
msgstr "y மதிப்பு %d, %d எதிர்பார்க்கப்பட்டது"
|
||||
|
||||
#: ../src/ui/theme-viewer.c:1352
|
||||
#: ../src/ui/theme-viewer.c:1359
|
||||
#, c-format
|
||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||
msgstr "%d அச்சு கூற்று பகுக்கப்பட்டது %g செகண்டில் (%g சராசரி செகண்ட்)\n"
|
||||
|
||||
#~ msgid "Minimize window"
|
||||
#~ msgstr "சாளரத்தை சிறிதாக்கு"
|
||||
|
||||
#~ msgid "Comma-separated list of compositor plugins"
|
||||
#~ msgstr "பல்வினையாக்கியின் சொருகிகளின் கமாவால் பிரித்த பட்டியல்."
|
||||
|
||||
|
10
po/vi.po
10
po/vi.po
@@ -9,7 +9,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-03-01 15:50+0000\n"
|
||||
"PO-Revision-Date: 2013-03-02 18:04+0700\n"
|
||||
"PO-Revision-Date: 2013-03-17 19:37+0700\n"
|
||||
"Last-Translator: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
|
||||
"Language: vi\n"
|
||||
@@ -797,11 +797,11 @@ msgstr "Vùng làm việc 1_0"
|
||||
#: ../src/ui/menu.c:216
|
||||
#, c-format
|
||||
msgid "Workspace %s%d"
|
||||
msgstr "Vùng làm việc «%s%d»"
|
||||
msgstr "Vùng làm việc %s%d"
|
||||
|
||||
#: ../src/ui/menu.c:397
|
||||
msgid "Move to Another _Workspace"
|
||||
msgstr "Chuyển sang Vùng làm việc _khác"
|
||||
msgstr "Chuyển sang vùng làm việc _khác"
|
||||
|
||||
# Name: don't translate / Tên: đừng dịch
|
||||
#. This is the text that should appear next to menu accelerators
|
||||
@@ -850,7 +850,7 @@ msgstr "Meta"
|
||||
#.
|
||||
#: ../src/ui/metaaccellabel.c:101
|
||||
msgid "Super"
|
||||
msgstr "Cao cấp"
|
||||
msgstr "Super"
|
||||
|
||||
#. This is the text that should appear next to menu accelerators
|
||||
#. * that use the hyper key. If the text on this key isn't typically
|
||||
@@ -859,7 +859,7 @@ msgstr "Cao cấp"
|
||||
#.
|
||||
#: ../src/ui/metaaccellabel.c:107
|
||||
msgid "Hyper"
|
||||
msgstr "Cao"
|
||||
msgstr "Hyper"
|
||||
|
||||
# Name: don't translate / Tên: đừng dịch
|
||||
#. This is the text that should appear next to menu accelerators
|
||||
|
39
po/zh_HK.po
39
po/zh_HK.po
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity 3.3.4\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-01 22:42+0800\n"
|
||||
"PO-Revision-Date: 2013-03-01 22:42+0800\n"
|
||||
"POT-Creation-Date: 2013-03-06 19:12+0800\n"
|
||||
"PO-Revision-Date: 2013-03-06 19:12+0800\n"
|
||||
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
|
||||
"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
|
||||
"Language: \n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Generator: Poedit 1.5.3\n"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||
msgid "Navigation"
|
||||
@@ -211,14 +211,14 @@ msgstr "檢視分割於右側"
|
||||
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:507
|
||||
#: ../src/compositor/compositor.c:502
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
"\"."
|
||||
msgstr "在畫面「%2$s」中的第 %1$i 個螢幕中已啟動另一個組合視窗管理員。"
|
||||
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
#: ../src/compositor/meta-background.c:1180
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "背景材質無法從檔案建立"
|
||||
|
||||
@@ -254,23 +254,28 @@ msgstr "等待(_W)"
|
||||
msgid "_Force Quit"
|
||||
msgstr "強制結束(_F)"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:402
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "遺失複合視窗管理所需的 %s 延伸功能"
|
||||
|
||||
#: ../src/core/display.c:484
|
||||
#: ../src/core/display.c:494
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "無法開啟 X Window 畫面‘%s’\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
"binding\n"
|
||||
msgstr "其它程式已經使用了按鍵 %s 加上特殊按鍵 %x 作為按鍵組合\n"
|
||||
|
||||
#: ../src/core/keybindings.c:1129
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "「%s」不是有效的捷徑鍵\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "停用到作業階段管理程式的連線"
|
||||
@@ -295,12 +300,12 @@ msgstr "以 savefile 初始化作業階段"
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "使用同步方式調用 X 函數"
|
||||
|
||||
#: ../src/core/main.c:494
|
||||
#: ../src/core/main.c:533
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "找不到佈景主題目錄:%s\n"
|
||||
|
||||
#: ../src/core/main.c:510
|
||||
#: ../src/core/main.c:549
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -359,12 +364,12 @@ msgstr "組態資料庫中的“%s”不是按鍵組合“%s”的有效設定
|
||||
msgid "Workspace %d"
|
||||
msgstr "工作區 %d"
|
||||
|
||||
#: ../src/core/screen.c:673
|
||||
#: ../src/core/screen.c:674
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "畫面‘%2$s’中的第 %1$d 個螢幕無效\n"
|
||||
|
||||
#: ../src/core/screen.c:689
|
||||
#: ../src/core/screen.c:690
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -372,18 +377,18 @@ msgid ""
|
||||
msgstr "畫面‘%2$s’中的第 %1$d 個螢幕已經有了視窗管理員;請嘗試使用 --replace 選項來替換目前的視窗管理員。\n"
|
||||
|
||||
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
|
||||
#: ../src/core/screen.c:716
|
||||
#: ../src/core/screen.c:717
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr "無法在畫面“%2$s”中的第 %1$d 個螢幕進行視窗管理員選擇程序\n"
|
||||
|
||||
#: ../src/core/screen.c:794
|
||||
#: ../src/core/screen.c:795
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "畫面“%2$s”中的第 %1$d 個螢幕已經有了視窗總管\n"
|
||||
|
||||
#: ../src/core/screen.c:979
|
||||
#: ../src/core/screen.c:980
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "無法釋放畫面“%2$s”中的第 %1$d 個螢幕\n"
|
||||
@@ -478,7 +483,7 @@ msgid "Window manager error: "
|
||||
msgstr "視窗總管錯誤:"
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7539
|
||||
#: ../src/core/window.c:7538
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -492,7 +497,7 @@ msgstr "視窗 %s 將 SM_CLIENT_ID 設定為該視窗本身,而不是 ICCCM
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8263
|
||||
#: ../src/core/window.c:8262
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
|
39
po/zh_TW.po
39
po/zh_TW.po
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity 3.3.4\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-01 22:42+0800\n"
|
||||
"PO-Revision-Date: 2013-02-28 09:49+0800\n"
|
||||
"POT-Creation-Date: 2013-03-06 19:12+0800\n"
|
||||
"PO-Revision-Date: 2013-03-05 19:37+0800\n"
|
||||
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
|
||||
"Language-Team: Chinese (Taiwan) <zh-l10n@lists.linux.org.tw>\n"
|
||||
"Language: \n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Generator: Poedit 1.5.3\n"
|
||||
|
||||
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||
msgid "Navigation"
|
||||
@@ -211,14 +211,14 @@ msgstr "檢視分割於右側"
|
||||
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:507
|
||||
#: ../src/compositor/compositor.c:502
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
"\"."
|
||||
msgstr "在畫面「%2$s」中的第 %1$i 個螢幕中已啟動另一個組合視窗管理員。"
|
||||
|
||||
#: ../src/compositor/meta-background.c:1111
|
||||
#: ../src/compositor/meta-background.c:1180
|
||||
msgid "background texture could not be created from file"
|
||||
msgstr "背景材質無法從檔案建立"
|
||||
|
||||
@@ -254,23 +254,28 @@ msgstr "等待(_W)"
|
||||
msgid "_Force Quit"
|
||||
msgstr "強制結束(_F)"
|
||||
|
||||
#: ../src/core/display.c:392
|
||||
#: ../src/core/display.c:402
|
||||
#, c-format
|
||||
msgid "Missing %s extension required for compositing"
|
||||
msgstr "遺失複合視窗管理所需的 %s 延伸功能"
|
||||
|
||||
#: ../src/core/display.c:484
|
||||
#: ../src/core/display.c:494
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "無法開啟 X Window 畫面‘%s’\n"
|
||||
|
||||
#: ../src/core/keybindings.c:876
|
||||
#: ../src/core/keybindings.c:929
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Some other program is already using the key %s with modifiers %x as a "
|
||||
"binding\n"
|
||||
msgstr "其它程式已經使用了按鍵 %s 加上特殊按鍵 %x 作為按鍵組合\n"
|
||||
|
||||
#: ../src/core/keybindings.c:1129
|
||||
#, c-format
|
||||
msgid "\"%s\" is not a valid accelerator\n"
|
||||
msgstr "「%s」不是有效的捷徑鍵\n"
|
||||
|
||||
#: ../src/core/main.c:196
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "停用到作業階段管理程式的連線"
|
||||
@@ -295,12 +300,12 @@ msgstr "以 savefile 初始化作業階段"
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "使用同步方式調用 X 函式"
|
||||
|
||||
#: ../src/core/main.c:494
|
||||
#: ../src/core/main.c:533
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "找不到佈景主題目錄:%s\n"
|
||||
|
||||
#: ../src/core/main.c:510
|
||||
#: ../src/core/main.c:549
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -359,12 +364,12 @@ msgstr "組態資料庫中的“%s”不是按鍵組合“%s”的有效設定
|
||||
msgid "Workspace %d"
|
||||
msgstr "工作區 %d"
|
||||
|
||||
#: ../src/core/screen.c:673
|
||||
#: ../src/core/screen.c:674
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\n"
|
||||
msgstr "畫面‘%2$s’中的第 %1$d 個螢幕無效\n"
|
||||
|
||||
#: ../src/core/screen.c:689
|
||||
#: ../src/core/screen.c:690
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||
@@ -374,18 +379,18 @@ msgstr ""
|
||||
"換目前的視窗管理員。\n"
|
||||
|
||||
# FIXME: I'm still unclear about the meaning of XGetSelectionOwner -- Abel
|
||||
#: ../src/core/screen.c:716
|
||||
#: ../src/core/screen.c:717
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr "無法在畫面“%2$s”中的第 %1$d 個螢幕進行視窗管理員選擇程序\n"
|
||||
|
||||
#: ../src/core/screen.c:794
|
||||
#: ../src/core/screen.c:795
|
||||
#, c-format
|
||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||
msgstr "畫面“%2$s”中的第 %1$d 個螢幕已經有了視窗總管\n"
|
||||
|
||||
#: ../src/core/screen.c:979
|
||||
#: ../src/core/screen.c:980
|
||||
#, c-format
|
||||
msgid "Could not release screen %d on display \"%s\"\n"
|
||||
msgstr "無法釋放畫面“%2$s”中的第 %1$d 個螢幕\n"
|
||||
@@ -480,7 +485,7 @@ msgid "Window manager error: "
|
||||
msgstr "視窗總管錯誤:"
|
||||
|
||||
#. first time through
|
||||
#: ../src/core/window.c:7539
|
||||
#: ../src/core/window.c:7538
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -496,7 +501,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/core/window.c:8263
|
||||
#: ../src/core/window.c:8262
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||
|
@@ -96,8 +96,6 @@ libmutter_la_SOURCES = \
|
||||
core/edge-resistance.h \
|
||||
core/errors.c \
|
||||
meta/errors.h \
|
||||
core/eventqueue.c \
|
||||
core/eventqueue.h \
|
||||
core/frame.c \
|
||||
core/frame.h \
|
||||
ui/gradient.c \
|
||||
|
@@ -26,10 +26,10 @@
|
||||
|
||||
/**
|
||||
* meta_create_color_texture_4ub:
|
||||
* @red:
|
||||
* @green:
|
||||
* @blue:
|
||||
* @alpha:
|
||||
* @red: red component
|
||||
* @green: green component
|
||||
* @blue: blue component
|
||||
* @alpha: alpha component
|
||||
* @flags: Optional flags for the texture, or %COGL_TEXTURE_NONE;
|
||||
* %COGL_TEXTURE_NO_SLICING is useful if the texture will be
|
||||
* repeated to create a constant color fill, since hardware
|
||||
|
@@ -1,5 +1,71 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/**
|
||||
* SECTION:compositor
|
||||
* @Title: MetaCompositor
|
||||
* @Short_Description: Compositor API
|
||||
*
|
||||
* At a high-level, a window is not-visible or visible. When a
|
||||
* window is added (with meta_compositor_add_window()) it is not visible.
|
||||
* meta_compositor_show_window() indicates a transition from not-visible to
|
||||
* visible. Some of the reasons for this:
|
||||
*
|
||||
* - Window newly created
|
||||
* - Window is unminimized
|
||||
* - Window is moved to the current desktop
|
||||
* - Window was made sticky
|
||||
*
|
||||
* meta_compositor_hide_window() indicates that the window has transitioned from
|
||||
* visible to not-visible. Some reasons include:
|
||||
*
|
||||
* - Window was destroyed
|
||||
* - Window is minimized
|
||||
* - Window is moved to a different desktop
|
||||
* - Window no longer sticky.
|
||||
*
|
||||
* Note that combinations are possible - a window might have first
|
||||
* been minimized and then moved to a different desktop. The 'effect' parameter
|
||||
* to meta_compositor_show_window() and meta_compositor_hide_window() is a hint
|
||||
* as to the appropriate effect to show the user and should not
|
||||
* be considered to be indicative of a state change.
|
||||
*
|
||||
* When the active workspace is changed, meta_compositor_switch_workspace() is
|
||||
* called first, then meta_compositor_show_window() and
|
||||
* meta_compositor_hide_window() are called individually for each window
|
||||
* affected, with an effect of META_COMP_EFFECT_NONE.
|
||||
* If hiding windows will affect the switch workspace animation, the
|
||||
* compositor needs to delay hiding the windows until the switch
|
||||
* workspace animation completes.
|
||||
*
|
||||
* meta_compositor_maximize_window() and meta_compositor_unmaximize_window()
|
||||
* are transitions within the visible state. The window is resized __before__
|
||||
* the call, so it may be necessary to readjust the display based on the
|
||||
* old_rect to start the animation.
|
||||
*
|
||||
* meta_compositor_window_mapped() and meta_compositor_window_unmapped() are
|
||||
* notifications when the toplevel window (frame or client window) is mapped or
|
||||
* unmapped. That is, when the result of meta_window_toplevel_is_mapped()
|
||||
* changes. The main use of this is to drop resources when a window is unmapped.
|
||||
* A window will always be mapped before meta_compositor_show_window()
|
||||
* is called and will not be unmapped until after meta_compositor_hide_window()
|
||||
* is called. If the live_hidden_windows preference is set, windows will never
|
||||
* be unmapped.
|
||||
*
|
||||
* # Containers #
|
||||
*
|
||||
* There's three containers in the stage that can be used to place actors, here
|
||||
* are listed in the order in which they are painted:
|
||||
*
|
||||
* - window group, accessible with meta_get_window_group_for_screen()
|
||||
* - top window group, accessible with meta_get_top_window_group_for_screen()
|
||||
* - overlay group, accessible with meta_get_overlay_group_for_screen()
|
||||
*
|
||||
* Mutter will place actors representing windows in the window group, except for
|
||||
* override-redirect windows (ie. popups and menus) which will be placed in the
|
||||
* top window group. Mutter won't put any actors in the overlay group, but it's
|
||||
* intended for compositors to place there panel, dashes, status bars, etc.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <clutter/x11/clutter-x11.h>
|
||||
@@ -784,6 +850,9 @@ meta_compositor_window_shape_changed (MetaCompositor *compositor,
|
||||
{
|
||||
MetaWindowActor *window_actor;
|
||||
window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
||||
if (!window_actor)
|
||||
return;
|
||||
|
||||
meta_window_actor_update_shape (window_actor);
|
||||
}
|
||||
|
||||
@@ -835,6 +904,9 @@ maybe_spoof_guard_window_event_as_stage_event (MetaCompScreen *info,
|
||||
|
||||
/**
|
||||
* meta_compositor_process_event: (skip)
|
||||
* @compositor:
|
||||
* @event:
|
||||
* @window:
|
||||
*
|
||||
*/
|
||||
gboolean
|
||||
@@ -1095,13 +1167,17 @@ sync_actor_stacking (MetaCompScreen *info)
|
||||
}
|
||||
|
||||
/* reorder the actors by lowering them in turn to the bottom of the stack.
|
||||
* windows first, then background */
|
||||
* windows first, then background.
|
||||
*
|
||||
* We reorder the actors even if they're not parented to the window group,
|
||||
* to allow stacking to work with intermediate actors (eg during effects)
|
||||
*/
|
||||
for (tmp = g_list_last (info->windows); tmp != NULL; tmp = tmp->prev)
|
||||
{
|
||||
ClutterActor *actor = tmp->data;
|
||||
ClutterActor *actor = tmp->data, *parent;
|
||||
|
||||
if (clutter_actor_get_parent (actor) == info->window_group)
|
||||
clutter_actor_set_child_below_sibling (info->window_group, actor, NULL);
|
||||
parent = clutter_actor_get_parent (actor);
|
||||
clutter_actor_set_child_below_sibling (parent, actor, NULL);
|
||||
}
|
||||
|
||||
/* we prepended the backgrounds above so the last actor in the list
|
||||
@@ -1109,10 +1185,10 @@ sync_actor_stacking (MetaCompScreen *info)
|
||||
*/
|
||||
for (tmp = backgrounds; tmp != NULL; tmp = tmp->next)
|
||||
{
|
||||
ClutterActor *actor = tmp->data;
|
||||
ClutterActor *actor = tmp->data, *parent;
|
||||
|
||||
if (clutter_actor_get_parent (actor) == info->window_group)
|
||||
clutter_actor_set_child_below_sibling (info->window_group, actor, NULL);
|
||||
parent = clutter_actor_get_parent (actor);
|
||||
clutter_actor_set_child_below_sibling (parent, actor, NULL);
|
||||
}
|
||||
g_list_free (backgrounds);
|
||||
}
|
||||
@@ -1407,6 +1483,7 @@ on_shadow_factory_changed (MetaShadowFactory *factory,
|
||||
|
||||
/**
|
||||
* meta_compositor_new: (skip)
|
||||
* @display:
|
||||
*
|
||||
*/
|
||||
MetaCompositor *
|
||||
@@ -1451,6 +1528,7 @@ meta_compositor_new (MetaDisplay *display)
|
||||
|
||||
/**
|
||||
* meta_get_overlay_window: (skip)
|
||||
* @screen: a #MetaScreen
|
||||
*
|
||||
*/
|
||||
Window
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
/*
|
||||
* meta-background-actor.c: Actor for painting the root window background
|
||||
*
|
||||
* Copyright 2009 Sander Dijkhuis
|
||||
* Copyright 2010 Red Hat, Inc.
|
||||
*
|
||||
@@ -23,6 +21,13 @@
|
||||
* Portions adapted from gnome-shell/src/shell-global.c
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:meta-background-actor
|
||||
* @title: MetaBackgroundActor
|
||||
* @short_description: Actor for painting the root window background
|
||||
*
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <cogl/cogl-texture-pixmap-x11.h>
|
||||
|
@@ -1,5 +1,19 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/**
|
||||
* SECTION:meta-background-group
|
||||
* @title: MetaBackgroundGroup
|
||||
* @short_description: Container for background actors
|
||||
*
|
||||
* This class is a subclass of ClutterActor with special handling for
|
||||
* MetaBackgroundActor/MetaBackgroundGroup when painting children.
|
||||
* It makes sure to only draw the parts of the backgrounds not
|
||||
* occluded by opaque windows.
|
||||
*
|
||||
* See #MetaWindowGroup for more information behind the motivation,
|
||||
* and details on implementation.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "compositor-private.h"
|
||||
@@ -7,11 +21,11 @@
|
||||
#include "meta-background-actor-private.h"
|
||||
#include "meta-background-group-private.h"
|
||||
|
||||
G_DEFINE_TYPE (MetaBackgroundGroup, meta_background_group, CLUTTER_TYPE_GROUP);
|
||||
G_DEFINE_TYPE (MetaBackgroundGroup, meta_background_group, CLUTTER_TYPE_ACTOR);
|
||||
|
||||
struct _MetaBackgroundGroupPrivate
|
||||
{
|
||||
ClutterLayoutManager *layout_manager;
|
||||
gpointer dummy;
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -45,11 +59,6 @@ meta_background_group_init (MetaBackgroundGroup *self)
|
||||
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
|
||||
META_TYPE_BACKGROUND_GROUP,
|
||||
MetaBackgroundGroupPrivate);
|
||||
|
||||
self->priv->layout_manager = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_FIXED,
|
||||
CLUTTER_BIN_ALIGNMENT_FIXED);
|
||||
|
||||
clutter_actor_set_layout_manager (CLUTTER_ACTOR (self), self->priv->layout_manager);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1,7 +1,6 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/*
|
||||
* meta-background.c: CoglTexture for painting the system background
|
||||
*
|
||||
* Copyright 2013 Red Hat, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -20,6 +19,13 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:meta-background
|
||||
* @title: MetaBackground
|
||||
* @short_description: ClutterContent for painting the system background
|
||||
*
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <cogl/cogl-texture-pixmap-x11.h>
|
||||
@@ -33,36 +39,6 @@
|
||||
#include <meta/meta-background.h>
|
||||
#include "meta-background-actor-private.h"
|
||||
|
||||
#define TEXTURE_LOOKUP_SHADER_DECLARATIONS \
|
||||
"uniform vec2 pixel_step;\n" \
|
||||
"vec4 apply_blur(in sampler2D texture, in vec2 coordinates) {\n" \
|
||||
" vec4 texel;\n" \
|
||||
" texel = texture2D(texture, coordinates.st);\n" \
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2(-1.0, -1.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2( 0.0, -1.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2(+1.0, -1.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2(-1.0, 0.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2(+1.0, 0.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2(-1.0, +1.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2( 0.0, +1.0));\n"\
|
||||
" texel += texture2D(texture, coordinates.st + pixel_step * vec2(+1.0, +1.0));\n"\
|
||||
" texel /= 9.0;\n" \
|
||||
" return texel;\n" \
|
||||
"}\n" \
|
||||
"uniform float saturation;\n" \
|
||||
"vec3 desaturate(const vec3 color)\n" \
|
||||
"{\n" \
|
||||
" const vec3 gray_conv = vec3(0.299, 0.587, 0.114);\n" \
|
||||
" vec3 gray = vec3(dot(gray_conv, color));\n" \
|
||||
" return vec3(mix(color.rgb, gray, 1.0 - saturation));\n" \
|
||||
"}\n" \
|
||||
|
||||
#define DESATURATE_CODE \
|
||||
"cogl_texel.rgb = desaturate(cogl_texel.rgb);\n"
|
||||
|
||||
#define BLUR_CODE \
|
||||
"cogl_texel = apply_blur(cogl_sampler, cogl_tex_coord.st);\n"
|
||||
|
||||
#define FRAGMENT_SHADER_DECLARATIONS \
|
||||
"uniform vec2 texture_scale;\n" \
|
||||
"uniform vec2 actor_size;\n" \
|
||||
@@ -85,7 +61,6 @@
|
||||
*
|
||||
* This object provides a ClutterContent object to assist in sharing between actors.
|
||||
*/
|
||||
typedef struct _MetaBackgroundPrivate MetaBackgroundPrivate;
|
||||
|
||||
struct _MetaBackgroundPrivate
|
||||
{
|
||||
@@ -105,7 +80,6 @@ struct _MetaBackgroundPrivate
|
||||
|
||||
float brightness;
|
||||
float vignette_sharpness;
|
||||
float saturation;
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -115,7 +89,6 @@ enum
|
||||
PROP_EFFECTS,
|
||||
PROP_BRIGHTNESS,
|
||||
PROP_VIGNETTE_SHARPNESS,
|
||||
PROP_SATURATION
|
||||
};
|
||||
|
||||
static void clutter_content_iface_init (ClutterContentIface *iface);
|
||||
@@ -125,7 +98,6 @@ G_DEFINE_TYPE_WITH_CODE (MetaBackground, meta_background, G_TYPE_OBJECT,
|
||||
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTENT,
|
||||
clutter_content_iface_init))
|
||||
|
||||
|
||||
static gboolean
|
||||
meta_background_get_preferred_size (ClutterContent *content,
|
||||
gfloat *width,
|
||||
@@ -356,25 +328,6 @@ clip_region_to_actor_box (cairo_region_t *region,
|
||||
cairo_region_intersect_rectangle (region, &clip_rect);
|
||||
}
|
||||
|
||||
static void
|
||||
set_blur_parameters (MetaBackground *self,
|
||||
ClutterActorBox *actor_box)
|
||||
{
|
||||
MetaBackgroundPrivate *priv = self->priv;
|
||||
float pixel_step[2];
|
||||
|
||||
if (!(priv->effects & META_BACKGROUND_EFFECTS_BLUR))
|
||||
return;
|
||||
|
||||
pixel_step[0] = 1.0 / (actor_box->x2 - actor_box->x1);
|
||||
pixel_step[1] = 1.0 / (actor_box->y2 - actor_box->y1);
|
||||
|
||||
cogl_pipeline_set_uniform_float (priv->pipeline,
|
||||
cogl_pipeline_get_uniform_location (priv->pipeline,
|
||||
"pixel_step"),
|
||||
2, 1, pixel_step);
|
||||
}
|
||||
|
||||
static void
|
||||
set_vignette_parameters (MetaBackground *self,
|
||||
ClutterActorBox *actor_box,
|
||||
@@ -436,8 +389,6 @@ meta_background_paint_content (ClutterContent *content,
|
||||
|
||||
clutter_actor_get_content_box (actor, &actor_box);
|
||||
|
||||
set_blur_parameters (self, &actor_box);
|
||||
|
||||
/* First figure out where on the monitor the texture is supposed to be painted.
|
||||
* If the actor is not the size of the monitor, this function makes sure to scale
|
||||
* everything down to fit in the actor.
|
||||
@@ -578,74 +529,22 @@ set_vignette_sharpness (MetaBackground *self,
|
||||
g_object_notify (G_OBJECT (self), "vignette-sharpness");
|
||||
}
|
||||
|
||||
static void
|
||||
set_saturation (MetaBackground *self,
|
||||
gfloat saturation)
|
||||
{
|
||||
MetaBackgroundPrivate *priv = self->priv;
|
||||
|
||||
if (priv->saturation == saturation)
|
||||
return;
|
||||
|
||||
priv->saturation = saturation;
|
||||
|
||||
ensure_pipeline (self);
|
||||
|
||||
cogl_pipeline_set_uniform_1f (priv->pipeline,
|
||||
cogl_pipeline_get_uniform_location (priv->pipeline,
|
||||
"saturation"),
|
||||
priv->saturation);
|
||||
|
||||
|
||||
clutter_content_invalidate (CLUTTER_CONTENT (self));
|
||||
|
||||
g_object_notify (G_OBJECT (self), "saturation");
|
||||
}
|
||||
|
||||
static void
|
||||
add_texture_lookup_shader (MetaBackground *self)
|
||||
{
|
||||
MetaBackgroundPrivate *priv = self->priv;
|
||||
CoglSnippet *snippet;
|
||||
const char *code = NULL;
|
||||
|
||||
if ((priv->effects & META_BACKGROUND_EFFECTS_BLUR) &&
|
||||
(priv->effects & META_BACKGROUND_EFFECTS_DESATURATE))
|
||||
code = BLUR_CODE "\n" DESATURATE_CODE;
|
||||
else if (priv->effects & META_BACKGROUND_EFFECTS_BLUR)
|
||||
code = BLUR_CODE;
|
||||
else if (priv->effects & META_BACKGROUND_EFFECTS_DESATURATE)
|
||||
code = DESATURATE_CODE;
|
||||
else
|
||||
return;
|
||||
|
||||
ensure_pipeline (self);
|
||||
|
||||
snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_TEXTURE_LOOKUP,
|
||||
TEXTURE_LOOKUP_SHADER_DECLARATIONS,
|
||||
NULL);
|
||||
cogl_snippet_set_replace (snippet, code);
|
||||
cogl_pipeline_add_layer_snippet (priv->pipeline, 0, snippet);
|
||||
cogl_object_unref (snippet);
|
||||
|
||||
if (priv->effects & META_BACKGROUND_EFFECTS_DESATURATE)
|
||||
cogl_pipeline_set_uniform_1f (priv->pipeline,
|
||||
cogl_pipeline_get_uniform_location (priv->pipeline,
|
||||
"saturation"),
|
||||
priv->saturation);
|
||||
}
|
||||
|
||||
static void
|
||||
add_vignette (MetaBackground *self)
|
||||
{
|
||||
MetaBackgroundPrivate *priv = self->priv;
|
||||
CoglSnippet *snippet;
|
||||
static CoglSnippet *snippet = NULL;
|
||||
|
||||
ensure_pipeline (self);
|
||||
|
||||
snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_FRAGMENT, FRAGMENT_SHADER_DECLARATIONS, VIGNETTE_CODE);
|
||||
/* Cogl automatically caches pipelines with no eviction policy,
|
||||
* so we need to prevent identical pipelines from getting cached
|
||||
* separately, by reusing the same fragement shader snippet.
|
||||
*/
|
||||
if (snippet == NULL)
|
||||
snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_FRAGMENT, FRAGMENT_SHADER_DECLARATIONS, VIGNETTE_CODE);
|
||||
|
||||
cogl_pipeline_add_snippet (priv->pipeline, snippet);
|
||||
cogl_object_unref (snippet);
|
||||
|
||||
cogl_pipeline_set_uniform_1f (priv->pipeline,
|
||||
cogl_pipeline_get_uniform_location (priv->pipeline,
|
||||
@@ -666,10 +565,6 @@ set_effects (MetaBackground *self,
|
||||
|
||||
priv->effects = effects;
|
||||
|
||||
if ((priv->effects & META_BACKGROUND_EFFECTS_BLUR) ||
|
||||
(priv->effects & META_BACKGROUND_EFFECTS_DESATURATE))
|
||||
add_texture_lookup_shader (self);
|
||||
|
||||
if ((priv->effects & META_BACKGROUND_EFFECTS_VIGNETTE))
|
||||
add_vignette (self);
|
||||
|
||||
@@ -702,9 +597,6 @@ meta_background_set_property (GObject *object,
|
||||
case PROP_VIGNETTE_SHARPNESS:
|
||||
set_vignette_sharpness (self, g_value_get_float (value));
|
||||
break;
|
||||
case PROP_SATURATION:
|
||||
set_saturation (self, g_value_get_float (value));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -736,9 +628,6 @@ meta_background_get_property (GObject *object,
|
||||
case PROP_VIGNETTE_SHARPNESS:
|
||||
g_value_set_float (value, priv->vignette_sharpness);
|
||||
break;
|
||||
case PROP_SATURATION:
|
||||
g_value_set_float (value, priv->saturation);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -793,17 +682,9 @@ meta_background_class_init (MetaBackgroundClass *klass)
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
|
||||
g_object_class_install_property (object_class, PROP_VIGNETTE_SHARPNESS, param_spec);
|
||||
|
||||
param_spec = g_param_spec_float ("saturation",
|
||||
"saturation",
|
||||
"Values less than 1.0 grays background",
|
||||
0.0, 1.0,
|
||||
1.0,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
|
||||
g_object_class_install_property (object_class, PROP_SATURATION, param_spec);
|
||||
|
||||
param_spec = g_param_spec_flags ("effects",
|
||||
"Effects",
|
||||
"Set to alter saturation, to blur, etc",
|
||||
"Set to enable vignette",
|
||||
meta_background_effects_get_type (),
|
||||
META_BACKGROUND_EFFECTS_NONE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
|
||||
@@ -822,7 +703,8 @@ static void
|
||||
unset_texture (MetaBackground *self)
|
||||
{
|
||||
MetaBackgroundPrivate *priv = self->priv;
|
||||
cogl_pipeline_set_layer_texture (priv->pipeline, 0, NULL);
|
||||
if (priv->pipeline != NULL)
|
||||
cogl_pipeline_set_layer_texture (priv->pipeline, 0, NULL);
|
||||
|
||||
g_clear_pointer (&priv->texture,
|
||||
(GDestroyNotify)
|
||||
@@ -1118,6 +1000,7 @@ meta_background_load_file_async (MetaBackground *self,
|
||||
g_task_set_task_data (task, task_data, (GDestroyNotify) load_file_task_data_free);
|
||||
|
||||
g_task_run_in_thread (task, (GTaskThreadFunc) load_file);
|
||||
g_object_unref (task);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1144,6 +1027,7 @@ meta_background_load_file_finish (MetaBackground *self,
|
||||
int width, height, row_stride;
|
||||
guchar *pixels;
|
||||
gboolean has_alpha;
|
||||
gboolean loaded = FALSE;
|
||||
|
||||
g_return_val_if_fail (g_task_is_valid (result, self), FALSE);
|
||||
|
||||
@@ -1152,7 +1036,7 @@ meta_background_load_file_finish (MetaBackground *self,
|
||||
pixbuf = g_task_propagate_pointer (task, error);
|
||||
|
||||
if (pixbuf == NULL)
|
||||
return FALSE;
|
||||
goto out;
|
||||
|
||||
task_data = g_task_get_task_data (task);
|
||||
|
||||
@@ -1178,7 +1062,7 @@ meta_background_load_file_finish (MetaBackground *self,
|
||||
COGL_BITMAP_ERROR,
|
||||
COGL_BITMAP_ERROR_FAILED,
|
||||
_("background texture could not be created from file"));
|
||||
return FALSE;
|
||||
goto out;
|
||||
}
|
||||
|
||||
cogl_object_set_user_data (COGL_OBJECT (texture),
|
||||
@@ -1194,8 +1078,12 @@ meta_background_load_file_finish (MetaBackground *self,
|
||||
set_texture (self, texture);
|
||||
|
||||
clutter_content_invalidate (CLUTTER_CONTENT (self));
|
||||
loaded = TRUE;
|
||||
|
||||
return TRUE;
|
||||
out:
|
||||
if (pixbuf != NULL)
|
||||
g_object_unref (pixbuf);
|
||||
return loaded;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1239,15 +1127,11 @@ meta_background_copy (MetaBackground *self,
|
||||
background->priv->pipeline = cogl_pipeline_copy (self->priv->pipeline);
|
||||
background->priv->texture = cogl_object_ref (self->priv->texture);
|
||||
background->priv->style = self->priv->style;
|
||||
background->priv->saturation = self->priv->saturation;
|
||||
|
||||
if (effects != self->priv->effects)
|
||||
{
|
||||
set_effects (background, effects);
|
||||
|
||||
if (effects & META_BACKGROUND_EFFECTS_DESATURATE)
|
||||
set_saturation (background, self->priv->saturation);
|
||||
|
||||
if (effects & META_BACKGROUND_EFFECTS_VIGNETTE)
|
||||
{
|
||||
set_brightness (background, self->priv->brightness);
|
||||
@@ -1268,9 +1152,6 @@ meta_background_copy (MetaBackground *self,
|
||||
set_style (background, self->priv->style);
|
||||
set_effects (background, effects);
|
||||
|
||||
if (effects & META_BACKGROUND_EFFECTS_DESATURATE)
|
||||
set_saturation (background, self->priv->saturation);
|
||||
|
||||
if (effects & META_BACKGROUND_EFFECTS_VIGNETTE)
|
||||
{
|
||||
set_brightness (background, self->priv->brightness);
|
||||
@@ -1292,8 +1173,7 @@ meta_background_copy (MetaBackground *self,
|
||||
* The returned object should be set on a #MetaBackgroundActor with
|
||||
* clutter_actor_set_content().
|
||||
*
|
||||
* The background may be desaturated, blurred, or given a vignette depending
|
||||
* on @effects.
|
||||
* The background may be given a vignette by setting @effects
|
||||
*
|
||||
* Return value: the newly created background content
|
||||
*/
|
||||
|
@@ -21,6 +21,13 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:meta-plugin
|
||||
* @title: MetaPlugin
|
||||
* @short_description: Entry point for plugins
|
||||
*
|
||||
*/
|
||||
|
||||
#include <meta/meta-plugin.h>
|
||||
#include "meta-plugin-manager.h"
|
||||
#include <meta/screen.h>
|
||||
|
@@ -1,9 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
/*
|
||||
* MetaShadowFactory:
|
||||
*
|
||||
* Create and cache shadow textures for abritrary window shapes
|
||||
*
|
||||
* Copyright 2010 Red Hat, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -21,6 +17,13 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:meta-shadow-factory
|
||||
* @title: MetaShadowFactory
|
||||
* @short_description: Create and cache shadow textures for abritrary window shapes
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
@@ -1,8 +1,4 @@
|
||||
/*
|
||||
* shaped texture
|
||||
*
|
||||
* An actor to draw a masked texture.
|
||||
*
|
||||
* Authored By Neil Roberts <neil@linux.intel.com>
|
||||
* and Jasper St. Pierre <jstpierre@mecheye.net>
|
||||
*
|
||||
@@ -25,6 +21,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:meta-shaped-texture
|
||||
* @title: MetaShapedTexture
|
||||
* @short_description: An actor to draw a masked texture.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <meta/meta-shaped-texture.h>
|
||||
|
@@ -1,5 +1,11 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/**
|
||||
* SECTION:meta-window-actor
|
||||
* @title: MetaWindowActor
|
||||
* @short_description: An actor representing a top-level window in the scene graph
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <math.h>
|
||||
@@ -786,6 +792,7 @@ meta_window_actor_has_shadow (MetaWindowActor *self)
|
||||
|
||||
/**
|
||||
* meta_window_actor_get_x_window: (skip)
|
||||
* @self: a #MetaWindowActor
|
||||
*
|
||||
*/
|
||||
Window
|
||||
@@ -799,6 +806,7 @@ meta_window_actor_get_x_window (MetaWindowActor *self)
|
||||
|
||||
/**
|
||||
* meta_window_actor_get_meta_window:
|
||||
* @self: a #MetaWindowActor
|
||||
*
|
||||
* Gets the #MetaWindow object that the the #MetaWindowActor is displaying
|
||||
*
|
||||
@@ -812,6 +820,7 @@ meta_window_actor_get_meta_window (MetaWindowActor *self)
|
||||
|
||||
/**
|
||||
* meta_window_actor_get_texture:
|
||||
* @self: a #MetaWindowActor
|
||||
*
|
||||
* Gets the ClutterActor that is used to display the contents of the window
|
||||
*
|
||||
@@ -825,6 +834,7 @@ meta_window_actor_get_texture (MetaWindowActor *self)
|
||||
|
||||
/**
|
||||
* meta_window_actor_is_destroyed:
|
||||
* @self: a #MetaWindowActor
|
||||
*
|
||||
* Gets whether the X window that the actor was displaying has been destroyed
|
||||
*
|
||||
|
@@ -10,13 +10,15 @@
|
||||
/**
|
||||
* MetaWindowGroup:
|
||||
*
|
||||
* This class is a subclass of ClutterGroup with special handling for
|
||||
* MetaWindowActor when painting the group. When we are painting a stack
|
||||
* of 5-10 maximized windows, the standard bottom-to-top method of
|
||||
* drawing every actor results in a tremendous amount of overdraw
|
||||
* and can easily max out the available memory bandwidth on a low-end
|
||||
* graphics chipset. It's even worse if window textures are being accessed
|
||||
* over the AGP bus.
|
||||
* This class is a subclass of ClutterActor with special handling for
|
||||
* MetaWindowActor/MetaBackgroundActor/MetaBackgroundGroup when painting
|
||||
* children.
|
||||
*
|
||||
* When we are painting a stack of 5-10 maximized windows, the
|
||||
* standard bottom-to-top method of drawing every actor results in a
|
||||
* tremendous amount of overdraw and can easily max out the available
|
||||
* memory bandwidth on a low-end graphics chipset. It's even worse if
|
||||
* window textures are being accessed over the AGP bus.
|
||||
*
|
||||
* The basic technique applied here is to do a pre-pass before painting
|
||||
* where we walk window from top to bottom and compute the visible area
|
||||
|
@@ -1,5 +1,11 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
|
||||
|
||||
/**
|
||||
* SECTION:barrier
|
||||
* @Title: MetaBarrier
|
||||
* @Short_Description: Pointer barriers
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <glib-object.h>
|
||||
|
@@ -22,8 +22,8 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:Bell
|
||||
/*
|
||||
* SECTION:bell
|
||||
* @short_description: Ring the bell or flash the screen
|
||||
*
|
||||
* Sometimes, X programs "ring the bell", whatever that means. Mutter lets
|
||||
@@ -52,7 +52,9 @@
|
||||
#include <config.h>
|
||||
#include "bell.h"
|
||||
#include "screen-private.h"
|
||||
#include "window-private.h"
|
||||
#include <meta/prefs.h>
|
||||
#include <meta/compositor.h>
|
||||
#ifdef HAVE_LIBCANBERRA
|
||||
#include <canberra-gtk.h>
|
||||
#endif
|
||||
|
@@ -28,30 +28,35 @@
|
||||
|
||||
#ifdef HAVE_XKB
|
||||
/**
|
||||
* meta_bell_notify:
|
||||
* @display: The display the bell event came in on
|
||||
* @xkb_ev: The bell event we just received
|
||||
*
|
||||
* Gives the user some kind of visual bell; in fact, this is our response
|
||||
* to any kind of bell request, but we set it up so that we only get
|
||||
* notified about visual bells, and X deals with audible ones.
|
||||
*
|
||||
* If the configure script found we had no XKB, this does not exist.
|
||||
*
|
||||
* \param display The display the bell event came in on
|
||||
* \param xkb_ev The bell event we just received
|
||||
*/
|
||||
void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* meta_bell_set_audible:
|
||||
* @display: The display we're configuring
|
||||
* @audible: True for an audible bell, false for a visual bell
|
||||
*
|
||||
* Turns the bell to audible or visual. This tells X what to do, but
|
||||
* not Mutter; you will need to set the "visual bell" pref for that.
|
||||
*
|
||||
* If the configure script found we had no XKB, this is a no-op.
|
||||
*
|
||||
* \param display The display we're configuring
|
||||
* \param audible True for an audible bell, false for a visual bell
|
||||
*/
|
||||
void meta_bell_set_audible (MetaDisplay *display, gboolean audible);
|
||||
|
||||
/**
|
||||
* meta_bell_init:
|
||||
* @display: The display which is opening
|
||||
*
|
||||
* Initialises the bell subsystem. This involves intialising
|
||||
* XKB (which, despite being a keyboard extension, is the
|
||||
* place to look for bell notifications), then asking it
|
||||
@@ -64,8 +69,6 @@ void meta_bell_set_audible (MetaDisplay *display, gboolean audible);
|
||||
* we will have HAVE_XKB undefined, which will cause this
|
||||
* function to be a no-op.
|
||||
*
|
||||
* \param display The display which is opening
|
||||
*
|
||||
* \bug There is a line of code that's never run that tells
|
||||
* XKB to reset the bell status after we quit. Bill H said
|
||||
* (<http://bugzilla.gnome.org/show_bug.cgi?id=99886#c12>)
|
||||
@@ -75,9 +78,10 @@ void meta_bell_set_audible (MetaDisplay *display, gboolean audible);
|
||||
gboolean meta_bell_init (MetaDisplay *display);
|
||||
|
||||
/**
|
||||
* Shuts down the bell subsystem.
|
||||
* meta_bell_shutdown:
|
||||
* @display: The display which is closing
|
||||
*
|
||||
* \param display The display which is closing
|
||||
* Shuts down the bell subsystem.
|
||||
*
|
||||
* \bug This is never called! If we had XkbSetAutoResetControls
|
||||
* enabled in meta_bell_init(), this wouldn't be a problem, but
|
||||
@@ -86,11 +90,12 @@ gboolean meta_bell_init (MetaDisplay *display);
|
||||
void meta_bell_shutdown (MetaDisplay *display);
|
||||
|
||||
/**
|
||||
* meta_bell_notify_frame_destroy:
|
||||
* @frame: The frame which is being destroyed
|
||||
*
|
||||
* Deals with a frame being destroyed. This is important because if we're
|
||||
* using a visual bell, we might be flashing the edges of the frame, and
|
||||
* so we'd have a timeout function waiting ready to un-flash them. If the
|
||||
* frame's going away, we can tell the timeout not to bother.
|
||||
*
|
||||
* \param frame The frame which is being destroyed
|
||||
*/
|
||||
void meta_bell_notify_frame_destroy (MetaFrame *frame);
|
||||
|
@@ -1,6 +1,10 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Simple box operations */
|
||||
/**
|
||||
* SECTION:boxes
|
||||
* @Title: MetaRectangle
|
||||
* @Short_Description: Simple box operations
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2005, 2006 Elijah Newren
|
||||
|
@@ -33,7 +33,6 @@
|
||||
|
||||
#include <glib.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include "eventqueue.h"
|
||||
#include <meta/common.h>
|
||||
#include <meta/boxes.h>
|
||||
#include <meta/display.h>
|
||||
@@ -142,7 +141,6 @@ struct _MetaDisplay
|
||||
|
||||
/*< private-ish >*/
|
||||
guint error_trap_synced_at_last_pop : 1;
|
||||
MetaEventQueue *events;
|
||||
GSList *screens;
|
||||
MetaScreen *active_screen;
|
||||
GHashTable *xids;
|
||||
@@ -221,9 +219,6 @@ struct _MetaDisplay
|
||||
#ifdef HAVE_XKB
|
||||
int xkb_base_event_type;
|
||||
guint32 last_bell_time;
|
||||
#endif
|
||||
#ifdef HAVE_XSYNC
|
||||
gint64 grab_sync_counter_wait_serial;
|
||||
#endif
|
||||
int grab_resize_timeout_id;
|
||||
|
||||
@@ -463,6 +458,7 @@ void meta_display_overlay_key_activate (MetaDisplay *display);
|
||||
void meta_display_accelerator_activate (MetaDisplay *display,
|
||||
guint action,
|
||||
guint deviceid);
|
||||
void meta_display_modifiers_accelerator_activate (MetaDisplay *display);
|
||||
|
||||
/* In above-tab-keycode.c */
|
||||
guint meta_display_get_above_tab_keycode (MetaDisplay *display);
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter X display handler */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington
|
||||
* Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
|
||||
@@ -25,8 +23,9 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:MetaDisplay
|
||||
* @short_description: Handles operations on an X display.
|
||||
* SECTION:display
|
||||
* @title: MetaDisplay
|
||||
* @short_description: Mutter X display handler
|
||||
*
|
||||
* The display is represented as a #MetaDisplay struct.
|
||||
*/
|
||||
@@ -83,7 +82,7 @@
|
||||
g == META_GRAB_OP_KEYBOARD_ESCAPING_DOCK || \
|
||||
g == META_GRAB_OP_KEYBOARD_ESCAPING_GROUP)
|
||||
|
||||
/**
|
||||
/*
|
||||
* SECTION:pings
|
||||
*
|
||||
* Sometimes we want to see whether a window is responding,
|
||||
@@ -140,6 +139,7 @@ enum
|
||||
{
|
||||
OVERLAY_KEY,
|
||||
ACCELERATOR_ACTIVATED,
|
||||
MODIFIERS_ACCELERATOR_ACTIVATED,
|
||||
FOCUS_WINDOW,
|
||||
WINDOW_CREATED,
|
||||
WINDOW_DEMANDS_ATTENTION,
|
||||
@@ -256,6 +256,14 @@ meta_display_class_init (MetaDisplayClass *klass)
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
|
||||
|
||||
display_signals[MODIFIERS_ACCELERATOR_ACTIVATED] =
|
||||
g_signal_new ("modifiers-accelerator-activated",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
display_signals[WINDOW_CREATED] =
|
||||
g_signal_new ("window-created",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
@@ -574,8 +582,6 @@ meta_display_open (void)
|
||||
sn_error_trap_push,
|
||||
sn_error_trap_pop);
|
||||
#endif
|
||||
|
||||
the_display->events = NULL;
|
||||
|
||||
/* Get events */
|
||||
meta_ui_add_event_func (the_display->xdisplay,
|
||||
@@ -1134,6 +1140,7 @@ meta_display_close (MetaDisplay *display,
|
||||
/**
|
||||
* meta_display_screen_for_root:
|
||||
* @display: a #MetaDisplay
|
||||
* @xroot: a X window
|
||||
*
|
||||
* Return the #MetaScreen corresponding to a specified X root window ID.
|
||||
*
|
||||
@@ -3640,7 +3647,7 @@ meta_display_notify_window_created (MetaDisplay *display,
|
||||
* @display: A #MetaDisplay
|
||||
* @xwindow: An X11 window
|
||||
*
|
||||
* Returns %TRUE iff window is one of mutter's internal "no focus" windows
|
||||
* Returns: %TRUE iff window is one of mutter's internal "no focus" windows
|
||||
* (there is one per screen) which will have the focus when there is no
|
||||
* actual client window focused.
|
||||
*/
|
||||
@@ -3964,8 +3971,6 @@ meta_display_begin_grab_op (MetaDisplay *display,
|
||||
display->grab_window->sync_request_counter != None)
|
||||
{
|
||||
meta_window_create_sync_request_alarm (display->grab_window);
|
||||
window->sync_request_time.tv_sec = 0;
|
||||
window->sync_request_time.tv_usec = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -4102,6 +4107,8 @@ meta_display_end_grab_op (MetaDisplay *display,
|
||||
|
||||
/**
|
||||
* meta_display_get_grab_op:
|
||||
* @display: The #MetaDisplay that the window is on
|
||||
|
||||
* Gets the current grab operation, if any.
|
||||
*
|
||||
* Return value: the current grab operation, or %META_GRAB_OP_NONE if
|
||||
@@ -4473,6 +4480,7 @@ meta_is_syncing (void)
|
||||
|
||||
/**
|
||||
* meta_set_syncing:
|
||||
* @setting: whether to turn syncing on or off
|
||||
*
|
||||
* A handy way to turn on synchronisation on or off for every display.
|
||||
*/
|
||||
@@ -5682,6 +5690,12 @@ meta_display_accelerator_activate (MetaDisplay *display,
|
||||
0, action, deviceid);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_modifiers_accelerator_activate (MetaDisplay *display)
|
||||
{
|
||||
g_signal_emit (display, display_signals[MODIFIERS_ACCELERATOR_ACTIVATED], 0);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_get_compositor_version (MetaDisplay *display,
|
||||
int *major,
|
||||
@@ -5693,6 +5707,7 @@ meta_display_get_compositor_version (MetaDisplay *display,
|
||||
|
||||
/**
|
||||
* meta_display_get_xinput_opcode: (skip)
|
||||
* @display: a #MetaDisplay
|
||||
*
|
||||
*/
|
||||
int
|
||||
@@ -5705,7 +5720,7 @@ meta_display_get_xinput_opcode (MetaDisplay *display)
|
||||
* meta_display_supports_extended_barriers:
|
||||
* @display: a #MetaDisplay
|
||||
*
|
||||
* Returns whether the X server supports extended barrier
|
||||
* Returns: whether the X server supports extended barrier
|
||||
* features as defined in version 2.3 of the XInput 2
|
||||
* specification.
|
||||
*
|
||||
@@ -5720,6 +5735,7 @@ meta_display_supports_extended_barriers (MetaDisplay *display)
|
||||
|
||||
/**
|
||||
* meta_display_get_xdisplay: (skip)
|
||||
* @display: a #MetaDisplay
|
||||
*
|
||||
*/
|
||||
Display *
|
||||
@@ -5730,6 +5746,7 @@ meta_display_get_xdisplay (MetaDisplay *display)
|
||||
|
||||
/**
|
||||
* meta_display_get_compositor: (skip)
|
||||
* @display: a #MetaDisplay
|
||||
*
|
||||
*/
|
||||
MetaCompositor *
|
||||
@@ -5788,20 +5805,6 @@ meta_display_get_shape_event_base (MetaDisplay *display)
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* meta_display_get_atom: (skip)
|
||||
*
|
||||
* Gets up an X atom that Mutter prefetched at startup.
|
||||
*
|
||||
* Return value: the X atom corresponding to the given atom enumeration
|
||||
*/
|
||||
Atom meta_display_get_atom (MetaDisplay *display, MetaAtom meta_atom)
|
||||
{
|
||||
Atom *atoms = & display->atom_WM_PROTOCOLS;
|
||||
|
||||
return atoms[meta_atom - 1];
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_display_get_leader_window:
|
||||
* @display: a #MetaDisplay
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter X error handling */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington, error trapping inspired by GDK
|
||||
* code copyrighted by the GTK team.
|
||||
@@ -22,6 +20,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:errors
|
||||
* @title: Errors
|
||||
* @short_description: Mutter X error handling
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <meta/errors.h>
|
||||
#include "display-private.h"
|
||||
|
@@ -1,184 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter X event source for main loop */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington (based on GDK code (C) Owen
|
||||
* Taylor, 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. */
|
||||
|
||||
#include "eventqueue.h"
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
static gboolean eq_prepare (GSource *source,
|
||||
gint *timeout);
|
||||
static gboolean eq_check (GSource *source);
|
||||
static gboolean eq_dispatch (GSource *source,
|
||||
GSourceFunc callback,
|
||||
gpointer user_data);
|
||||
static void eq_destroy (GSource *source);
|
||||
|
||||
static GSourceFuncs eq_funcs = {
|
||||
eq_prepare,
|
||||
eq_check,
|
||||
eq_dispatch,
|
||||
eq_destroy
|
||||
};
|
||||
|
||||
struct _MetaEventQueue
|
||||
{
|
||||
GSource source;
|
||||
|
||||
Display *display;
|
||||
GPollFD poll_fd;
|
||||
int connection_fd;
|
||||
GQueue *events;
|
||||
};
|
||||
|
||||
MetaEventQueue*
|
||||
meta_event_queue_new (Display *display, MetaEventQueueFunc func, gpointer data)
|
||||
{
|
||||
GSource *source;
|
||||
MetaEventQueue *eq;
|
||||
|
||||
source = g_source_new (&eq_funcs, sizeof (MetaEventQueue));
|
||||
eq = (MetaEventQueue*) source;
|
||||
|
||||
eq->connection_fd = ConnectionNumber (display);
|
||||
eq->poll_fd.fd = eq->connection_fd;
|
||||
eq->poll_fd.events = G_IO_IN;
|
||||
|
||||
eq->events = g_queue_new ();
|
||||
|
||||
eq->display = display;
|
||||
|
||||
g_source_set_priority (source, G_PRIORITY_DEFAULT);
|
||||
g_source_add_poll (source, &eq->poll_fd);
|
||||
g_source_set_can_recurse (source, TRUE);
|
||||
|
||||
g_source_set_callback (source, (GSourceFunc) func, data, NULL);
|
||||
|
||||
g_source_attach (source, NULL);
|
||||
g_source_unref (source);
|
||||
|
||||
return eq;
|
||||
}
|
||||
|
||||
void
|
||||
meta_event_queue_free (MetaEventQueue *eq)
|
||||
{
|
||||
GSource *source;
|
||||
|
||||
source = (GSource*) eq;
|
||||
|
||||
g_source_destroy (source);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
eq_events_pending (MetaEventQueue *eq)
|
||||
{
|
||||
return eq->events->length > 0 || XPending (eq->display);
|
||||
}
|
||||
|
||||
static void
|
||||
eq_queue_events (MetaEventQueue *eq)
|
||||
{
|
||||
XEvent xevent;
|
||||
|
||||
while (XPending (eq->display))
|
||||
{
|
||||
XEvent *copy;
|
||||
|
||||
XNextEvent (eq->display, &xevent);
|
||||
|
||||
copy = g_new (XEvent, 1);
|
||||
*copy = xevent;
|
||||
|
||||
g_queue_push_tail (eq->events, copy);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
eq_prepare (GSource *source, gint *timeout)
|
||||
{
|
||||
MetaEventQueue *eq;
|
||||
|
||||
eq = (MetaEventQueue*) source;
|
||||
|
||||
*timeout = -1;
|
||||
|
||||
return eq_events_pending (eq);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
eq_check (GSource *source)
|
||||
{
|
||||
MetaEventQueue *eq;
|
||||
|
||||
eq = (MetaEventQueue*) source;
|
||||
|
||||
if (eq->poll_fd.revents & G_IO_IN)
|
||||
return eq_events_pending (eq);
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
eq_dispatch (GSource *source, GSourceFunc callback, gpointer user_data)
|
||||
{
|
||||
MetaEventQueue *eq;
|
||||
|
||||
eq = (MetaEventQueue*) source;
|
||||
|
||||
eq_queue_events (eq);
|
||||
|
||||
if (eq->events->length > 0)
|
||||
{
|
||||
XEvent *event;
|
||||
MetaEventQueueFunc func;
|
||||
|
||||
event = g_queue_pop_head (eq->events);
|
||||
func = (MetaEventQueueFunc) callback;
|
||||
|
||||
(* func) (event, user_data);
|
||||
|
||||
g_free (event);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
eq_destroy (GSource *source)
|
||||
{
|
||||
MetaEventQueue *eq;
|
||||
|
||||
eq = (MetaEventQueue*) source;
|
||||
|
||||
while (eq->events->length > 0)
|
||||
{
|
||||
XEvent *event;
|
||||
|
||||
event = g_queue_pop_head (eq->events);
|
||||
|
||||
g_free (event);
|
||||
}
|
||||
|
||||
g_queue_free (eq->events);
|
||||
|
||||
/* source itself is freed by glib */
|
||||
}
|
@@ -1,40 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter X event source for main loop */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef META_EVENT_QUEUE_H
|
||||
#define META_EVENT_QUEUE_H
|
||||
|
||||
#include <glib.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
typedef struct _MetaEventQueue MetaEventQueue;
|
||||
|
||||
typedef void (* MetaEventQueueFunc) (XEvent *event,
|
||||
gpointer data);
|
||||
|
||||
MetaEventQueue* meta_event_queue_new (Display *display,
|
||||
MetaEventQueueFunc func,
|
||||
gpointer data);
|
||||
void meta_event_queue_free (MetaEventQueue *eq);
|
||||
|
||||
#endif
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter window groups */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2002 Red Hat Inc.
|
||||
* Copyright (C) 2003 Rob Adams
|
||||
@@ -22,6 +20,13 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:group
|
||||
* @title: MetaGroup
|
||||
* @short_description: Mutter window groups
|
||||
*
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <meta/util.h>
|
||||
#include "group-private.h"
|
||||
@@ -106,6 +111,7 @@ meta_group_unref (MetaGroup *group)
|
||||
|
||||
/**
|
||||
* meta_window_get_group: (skip)
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
*/
|
||||
MetaGroup*
|
||||
@@ -204,6 +210,8 @@ meta_window_shutdown_group (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_display_lookup_group: (skip)
|
||||
* @display: a #MetaDisplay
|
||||
* @group_leader: a X window
|
||||
*
|
||||
*/
|
||||
MetaGroup*
|
||||
@@ -279,6 +287,8 @@ meta_group_get_startup_id (MetaGroup *group)
|
||||
|
||||
/**
|
||||
* meta_group_property_notify: (skip)
|
||||
* @group: a #MetaGroup
|
||||
* @event: a X event
|
||||
*
|
||||
*/
|
||||
gboolean
|
||||
|
@@ -23,6 +23,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:keybindings
|
||||
* @Title: MetaKeybinding
|
||||
* @Short_Description: Key bindings
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#define _SVID_SOURCE /* for putenv() */
|
||||
|
||||
@@ -141,12 +147,17 @@ static gboolean process_workspace_switch_grab (MetaDisplay *display,
|
||||
XIDeviceEvent *event,
|
||||
KeySym keysym);
|
||||
|
||||
static void regrab_key_bindings (MetaDisplay *display);
|
||||
static void grab_key_bindings (MetaDisplay *display);
|
||||
static void ungrab_key_bindings (MetaDisplay *display);
|
||||
|
||||
|
||||
static GHashTable *key_handlers;
|
||||
static GHashTable *external_grabs;
|
||||
|
||||
static char *iso_next_group_option;
|
||||
static MetaKeyCombo *iso_next_group_combos;
|
||||
static int n_iso_next_group_combos;
|
||||
|
||||
#define HANDLER(name) g_hash_table_lookup (key_handlers, (name))
|
||||
|
||||
static void
|
||||
@@ -295,6 +306,168 @@ reload_modmap (MetaDisplay *display)
|
||||
display->meta_mask);
|
||||
}
|
||||
|
||||
static int
|
||||
get_keycodes_for_keysym (MetaDisplay *display,
|
||||
int keysym,
|
||||
int **keycodes)
|
||||
{
|
||||
GArray *retval;
|
||||
int n_keycodes;
|
||||
int keycode;
|
||||
|
||||
retval = g_array_new (FALSE, FALSE, sizeof (int));
|
||||
|
||||
keycode = display->min_keycode;
|
||||
while (keycode <= display->max_keycode)
|
||||
{
|
||||
const KeySym *syms = display->keymap + (keycode - display->min_keycode) * display->keysyms_per_keycode;
|
||||
int i = 0;
|
||||
|
||||
while (i < display->keysyms_per_keycode)
|
||||
{
|
||||
if (syms[i] == (unsigned int)keysym)
|
||||
g_array_append_val (retval, keycode);
|
||||
|
||||
++i;
|
||||
}
|
||||
|
||||
++keycode;
|
||||
}
|
||||
|
||||
n_keycodes = retval->len;
|
||||
*keycodes = (int*) g_array_free (retval, n_keycodes == 0 ? TRUE : FALSE);
|
||||
|
||||
return n_keycodes;
|
||||
}
|
||||
|
||||
static void
|
||||
reload_iso_next_group_combos (MetaDisplay *display)
|
||||
{
|
||||
MetaKeyCombo *combos;
|
||||
int *keycodes;
|
||||
int n_keycodes;
|
||||
int n_combos;
|
||||
int i;
|
||||
|
||||
g_clear_pointer (&iso_next_group_combos, g_free);
|
||||
n_iso_next_group_combos = 0;
|
||||
|
||||
if (iso_next_group_option == NULL)
|
||||
return;
|
||||
|
||||
n_keycodes = get_keycodes_for_keysym (display, XK_ISO_Next_Group, &keycodes);
|
||||
|
||||
if (g_str_equal (iso_next_group_option, "toggle") ||
|
||||
g_str_equal (iso_next_group_option, "lalt_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "lwin_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "rwin_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "lshift_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "rshift_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "lctrl_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "rctrl_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "sclk_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "menu_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "caps_toggle"))
|
||||
{
|
||||
n_combos = n_keycodes;
|
||||
combos = g_new (MetaKeyCombo, n_combos);
|
||||
|
||||
for (i = 0; i < n_keycodes; ++i)
|
||||
{
|
||||
combos[i].keysym = XK_ISO_Next_Group;
|
||||
combos[i].keycode = keycodes[i];
|
||||
combos[i].modifiers = 0;
|
||||
}
|
||||
}
|
||||
else if (g_str_equal (iso_next_group_option, "shift_caps_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "shifts_toggle"))
|
||||
{
|
||||
n_combos = n_keycodes;
|
||||
combos = g_new (MetaKeyCombo, n_combos);
|
||||
|
||||
for (i = 0; i < n_keycodes; ++i)
|
||||
{
|
||||
combos[i].keysym = XK_ISO_Next_Group;
|
||||
combos[i].keycode = keycodes[i];
|
||||
combos[i].modifiers = ShiftMask;
|
||||
}
|
||||
}
|
||||
else if (g_str_equal (iso_next_group_option, "alt_caps_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "alt_space_toggle"))
|
||||
{
|
||||
n_combos = n_keycodes;
|
||||
combos = g_new (MetaKeyCombo, n_combos);
|
||||
|
||||
for (i = 0; i < n_keycodes; ++i)
|
||||
{
|
||||
combos[i].keysym = XK_ISO_Next_Group;
|
||||
combos[i].keycode = keycodes[i];
|
||||
combos[i].modifiers = Mod1Mask;
|
||||
}
|
||||
}
|
||||
else if (g_str_equal (iso_next_group_option, "ctrl_shift_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "lctrl_lshift_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "rctrl_rshift_toggle"))
|
||||
{
|
||||
n_combos = n_keycodes * 2;
|
||||
combos = g_new (MetaKeyCombo, n_combos);
|
||||
|
||||
for (i = 0; i < n_keycodes; ++i)
|
||||
{
|
||||
combos[i].keysym = XK_ISO_Next_Group;
|
||||
combos[i].keycode = keycodes[i];
|
||||
combos[i].modifiers = ShiftMask;
|
||||
|
||||
combos[i + n_keycodes].keysym = XK_ISO_Next_Group;
|
||||
combos[i + n_keycodes].keycode = keycodes[i];
|
||||
combos[i + n_keycodes].modifiers = ControlMask;
|
||||
}
|
||||
}
|
||||
else if (g_str_equal (iso_next_group_option, "ctrl_alt_toggle"))
|
||||
{
|
||||
n_combos = n_keycodes * 2;
|
||||
combos = g_new (MetaKeyCombo, n_combos);
|
||||
|
||||
for (i = 0; i < n_keycodes; ++i)
|
||||
{
|
||||
combos[i].keysym = XK_ISO_Next_Group;
|
||||
combos[i].keycode = keycodes[i];
|
||||
combos[i].modifiers = Mod1Mask;
|
||||
|
||||
combos[i + n_keycodes].keysym = XK_ISO_Next_Group;
|
||||
combos[i + n_keycodes].keycode = keycodes[i];
|
||||
combos[i + n_keycodes].modifiers = ControlMask;
|
||||
}
|
||||
}
|
||||
else if (g_str_equal (iso_next_group_option, "alt_shift_toggle") ||
|
||||
g_str_equal (iso_next_group_option, "lalt_lshift_toggle"))
|
||||
{
|
||||
n_combos = n_keycodes * 2;
|
||||
combos = g_new (MetaKeyCombo, n_combos);
|
||||
|
||||
for (i = 0; i < n_keycodes; ++i)
|
||||
{
|
||||
combos[i].keysym = XK_ISO_Next_Group;
|
||||
combos[i].keycode = keycodes[i];
|
||||
combos[i].modifiers = Mod1Mask;
|
||||
|
||||
combos[i + n_keycodes].keysym = XK_ISO_Next_Group;
|
||||
combos[i + n_keycodes].keycode = keycodes[i];
|
||||
combos[i + n_keycodes].modifiers = ShiftMask;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
n_combos = 0;
|
||||
combos = NULL;
|
||||
}
|
||||
|
||||
g_free (keycodes);
|
||||
|
||||
n_iso_next_group_combos = n_combos;
|
||||
iso_next_group_combos = combos;
|
||||
}
|
||||
|
||||
static guint
|
||||
keysym_to_keycode (MetaDisplay *display,
|
||||
guint keysym)
|
||||
@@ -321,6 +494,8 @@ reload_keycodes (MetaDisplay *display)
|
||||
display->overlay_key_combo.keycode = 0;
|
||||
}
|
||||
|
||||
reload_iso_next_group_combos (display);
|
||||
|
||||
if (display->key_bindings)
|
||||
{
|
||||
int i;
|
||||
@@ -522,10 +697,13 @@ rebuild_special_bindings (MetaDisplay *display)
|
||||
|
||||
meta_prefs_get_overlay_binding (&combo);
|
||||
display->overlay_key_combo = combo;
|
||||
|
||||
g_free (iso_next_group_option);
|
||||
iso_next_group_option = meta_prefs_get_iso_next_group_option ();
|
||||
}
|
||||
|
||||
static void
|
||||
regrab_key_bindings (MetaDisplay *display)
|
||||
ungrab_key_bindings (MetaDisplay *display)
|
||||
{
|
||||
GSList *tmp;
|
||||
GSList *windows;
|
||||
@@ -538,7 +716,6 @@ regrab_key_bindings (MetaDisplay *display)
|
||||
MetaScreen *screen = tmp->data;
|
||||
|
||||
meta_screen_ungrab_keys (screen);
|
||||
meta_screen_grab_keys (screen);
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
@@ -550,6 +727,38 @@ regrab_key_bindings (MetaDisplay *display)
|
||||
MetaWindow *w = tmp->data;
|
||||
|
||||
meta_window_ungrab_keys (w);
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
meta_error_trap_pop (display);
|
||||
|
||||
g_slist_free (windows);
|
||||
}
|
||||
|
||||
static void
|
||||
grab_key_bindings (MetaDisplay *display)
|
||||
{
|
||||
GSList *tmp;
|
||||
GSList *windows;
|
||||
|
||||
meta_error_trap_push (display); /* for efficiency push outer trap */
|
||||
|
||||
tmp = display->screens;
|
||||
while (tmp != NULL)
|
||||
{
|
||||
MetaScreen *screen = tmp->data;
|
||||
|
||||
meta_screen_grab_keys (screen);
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
|
||||
windows = meta_display_list_windows (display, META_LIST_DEFAULT);
|
||||
tmp = windows;
|
||||
while (tmp != NULL)
|
||||
{
|
||||
MetaWindow *w = tmp->data;
|
||||
|
||||
meta_window_grab_keys (w);
|
||||
|
||||
tmp = tmp->next;
|
||||
@@ -645,13 +854,13 @@ add_builtin_keybinding (MetaDisplay *display,
|
||||
*
|
||||
* Add a keybinding at runtime. The key @name in @schema needs to be of
|
||||
* type %G_VARIANT_TYPE_STRING_ARRAY, with each string describing a
|
||||
* keybinding in the form of "<Control>a" or "<Shift><Alt>F1". The parser
|
||||
* keybinding in the form of "<Control>a" or "<Shift><Alt>F1". The parser
|
||||
* is fairly liberal and allows lower or upper case, and also abbreviations
|
||||
* such as "<Ctl>" and "<Ctrl>". If the key is set to the empty list or a
|
||||
* such as "<Ctl>" and "<Ctrl>". If the key is set to the empty list or a
|
||||
* list with a single element of either "" or "disabled", the keybinding is
|
||||
* disabled.
|
||||
* If %META_KEY_BINDING_REVERSES is specified in @flags, the binding
|
||||
* may be reversed by holding down the "shift" key; therefore, "<Shift>"
|
||||
* may be reversed by holding down the "shift" key; therefore, "<Shift>"
|
||||
* cannot be one of the keys used. @handler is expected to check for the
|
||||
* "shift" modifier in this case and reverse its action.
|
||||
*
|
||||
@@ -790,6 +999,8 @@ meta_display_process_mapping_event (MetaDisplay *display,
|
||||
|
||||
if (keymap_changed || modmap_changed)
|
||||
{
|
||||
ungrab_key_bindings (display);
|
||||
|
||||
if (keymap_changed)
|
||||
reload_keymap (display);
|
||||
|
||||
@@ -803,7 +1014,7 @@ meta_display_process_mapping_event (MetaDisplay *display,
|
||||
|
||||
reload_modifiers (display);
|
||||
|
||||
regrab_key_bindings (display);
|
||||
grab_key_bindings (display);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -818,11 +1029,12 @@ bindings_changed_callback (MetaPreference pref,
|
||||
switch (pref)
|
||||
{
|
||||
case META_PREF_KEYBINDINGS:
|
||||
ungrab_key_bindings (display);
|
||||
rebuild_key_binding_table (display);
|
||||
rebuild_special_bindings (display);
|
||||
reload_keycodes (display);
|
||||
reload_modifiers (display);
|
||||
regrab_key_bindings (display);
|
||||
grab_key_bindings (display);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -941,21 +1153,12 @@ meta_change_keygrab (MetaDisplay *display,
|
||||
}
|
||||
|
||||
static void
|
||||
meta_grab_key (MetaDisplay *display,
|
||||
Window xwindow,
|
||||
int keysym,
|
||||
unsigned int keycode,
|
||||
int modmask)
|
||||
{
|
||||
meta_change_keygrab (display, xwindow, TRUE, keysym, keycode, modmask);
|
||||
}
|
||||
|
||||
static void
|
||||
grab_keys (MetaKeyBinding *bindings,
|
||||
int n_bindings,
|
||||
MetaDisplay *display,
|
||||
Window xwindow,
|
||||
gboolean binding_per_window)
|
||||
change_binding_keygrabs (MetaKeyBinding *bindings,
|
||||
int n_bindings,
|
||||
MetaDisplay *display,
|
||||
Window xwindow,
|
||||
gboolean binding_per_window,
|
||||
gboolean grab)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -970,10 +1173,10 @@ grab_keys (MetaKeyBinding *bindings,
|
||||
!!(bindings[i].handler->flags & META_KEY_BINDING_PER_WINDOW) &&
|
||||
bindings[i].keycode != 0)
|
||||
{
|
||||
meta_grab_key (display, xwindow,
|
||||
bindings[i].keysym,
|
||||
bindings[i].keycode,
|
||||
bindings[i].mask);
|
||||
meta_change_keygrab (display, xwindow, grab,
|
||||
bindings[i].keysym,
|
||||
bindings[i].keycode,
|
||||
bindings[i].mask);
|
||||
}
|
||||
|
||||
++i;
|
||||
@@ -983,51 +1186,49 @@ grab_keys (MetaKeyBinding *bindings,
|
||||
}
|
||||
|
||||
static void
|
||||
ungrab_all_keys (MetaDisplay *display,
|
||||
Window xwindow)
|
||||
meta_screen_change_keygrabs (MetaScreen *screen,
|
||||
gboolean grab)
|
||||
{
|
||||
if (meta_is_debugging ())
|
||||
meta_error_trap_push_with_return (display);
|
||||
else
|
||||
meta_error_trap_push (display);
|
||||
MetaDisplay *display = screen->display;
|
||||
|
||||
XUngrabKey (display->xdisplay, AnyKey, AnyModifier,
|
||||
xwindow);
|
||||
if (display->overlay_key_combo.keycode != 0)
|
||||
meta_change_keygrab (display, screen->xroot, grab,
|
||||
display->overlay_key_combo.keysym,
|
||||
display->overlay_key_combo.keycode,
|
||||
display->overlay_key_combo.modifiers);
|
||||
|
||||
if (meta_is_debugging ())
|
||||
if (iso_next_group_combos)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = meta_error_trap_pop_with_return (display);
|
||||
|
||||
if (result != Success)
|
||||
meta_topic (META_DEBUG_KEYBINDINGS,
|
||||
"Ungrabbing all keys on 0x%lx failed\n", xwindow);
|
||||
int i = 0;
|
||||
while (i < n_iso_next_group_combos)
|
||||
{
|
||||
if (iso_next_group_combos[i].keycode != 0)
|
||||
{
|
||||
meta_change_keygrab (display, screen->xroot, grab,
|
||||
iso_next_group_combos[i].keysym,
|
||||
iso_next_group_combos[i].keycode,
|
||||
iso_next_group_combos[i].modifiers);
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
else
|
||||
meta_error_trap_pop (display);
|
||||
|
||||
change_binding_keygrabs (screen->display->key_bindings,
|
||||
screen->display->n_key_bindings,
|
||||
screen->display, screen->xroot,
|
||||
FALSE, grab);
|
||||
}
|
||||
|
||||
void
|
||||
meta_screen_grab_keys (MetaScreen *screen)
|
||||
{
|
||||
MetaDisplay *display = screen->display;
|
||||
if (screen->all_keys_grabbed)
|
||||
return;
|
||||
|
||||
if (screen->keys_grabbed)
|
||||
return;
|
||||
|
||||
if (display->overlay_key_combo.keycode != 0)
|
||||
meta_grab_key (display, screen->xroot,
|
||||
display->overlay_key_combo.keysym,
|
||||
display->overlay_key_combo.keycode,
|
||||
display->overlay_key_combo.modifiers);
|
||||
|
||||
grab_keys (screen->display->key_bindings,
|
||||
screen->display->n_key_bindings,
|
||||
screen->display, screen->xroot,
|
||||
FALSE);
|
||||
meta_screen_change_keygrabs (screen, TRUE);
|
||||
|
||||
screen->keys_grabbed = TRUE;
|
||||
}
|
||||
@@ -1035,11 +1236,23 @@ meta_screen_grab_keys (MetaScreen *screen)
|
||||
void
|
||||
meta_screen_ungrab_keys (MetaScreen *screen)
|
||||
{
|
||||
if (screen->keys_grabbed)
|
||||
{
|
||||
ungrab_all_keys (screen->display, screen->xroot);
|
||||
screen->keys_grabbed = FALSE;
|
||||
}
|
||||
if (!screen->keys_grabbed)
|
||||
return;
|
||||
|
||||
meta_screen_change_keygrabs (screen, FALSE);
|
||||
|
||||
screen->keys_grabbed = FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_window_change_keygrabs (MetaWindow *window,
|
||||
Window xwindow,
|
||||
gboolean grab)
|
||||
{
|
||||
change_binding_keygrabs (window->display->key_bindings,
|
||||
window->display->n_key_bindings,
|
||||
window->display, xwindow,
|
||||
TRUE, grab);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1052,7 +1265,7 @@ meta_window_grab_keys (MetaWindow *window)
|
||||
|| window->override_redirect)
|
||||
{
|
||||
if (window->keys_grabbed)
|
||||
ungrab_all_keys (window->display, window->xwindow);
|
||||
meta_window_change_keygrabs (window, window->xwindow, FALSE);
|
||||
window->keys_grabbed = FALSE;
|
||||
return;
|
||||
}
|
||||
@@ -1060,7 +1273,7 @@ meta_window_grab_keys (MetaWindow *window)
|
||||
if (window->keys_grabbed)
|
||||
{
|
||||
if (window->frame && !window->grab_on_frame)
|
||||
ungrab_all_keys (window->display, window->xwindow);
|
||||
meta_window_change_keygrabs (window, window->xwindow, FALSE);
|
||||
else if (window->frame == NULL &&
|
||||
window->grab_on_frame)
|
||||
; /* continue to regrab on client window */
|
||||
@@ -1068,11 +1281,9 @@ meta_window_grab_keys (MetaWindow *window)
|
||||
return; /* already all good */
|
||||
}
|
||||
|
||||
grab_keys (window->display->key_bindings,
|
||||
window->display->n_key_bindings,
|
||||
window->display,
|
||||
window->frame ? window->frame->xwindow : window->xwindow,
|
||||
TRUE);
|
||||
meta_window_change_keygrabs (window,
|
||||
window->frame ? window->frame->xwindow : window->xwindow,
|
||||
TRUE);
|
||||
|
||||
window->keys_grabbed = TRUE;
|
||||
window->grab_on_frame = window->frame != NULL;
|
||||
@@ -1085,11 +1296,9 @@ meta_window_ungrab_keys (MetaWindow *window)
|
||||
{
|
||||
if (window->grab_on_frame &&
|
||||
window->frame != NULL)
|
||||
ungrab_all_keys (window->display,
|
||||
window->frame->xwindow);
|
||||
meta_window_change_keygrabs (window, window->frame->xwindow, FALSE);
|
||||
else if (!window->grab_on_frame)
|
||||
ungrab_all_keys (window->display,
|
||||
window->xwindow);
|
||||
meta_window_change_keygrabs (window, window->xwindow, FALSE);
|
||||
|
||||
window->keys_grabbed = FALSE;
|
||||
}
|
||||
@@ -1145,7 +1354,7 @@ meta_display_grab_accelerator (MetaDisplay *display,
|
||||
for (l = display->screens; l; l = l->next)
|
||||
{
|
||||
MetaScreen *screen = l->data;
|
||||
meta_grab_key (display, screen->xroot, keysym, keycode, mask);
|
||||
meta_change_keygrab (display, screen->xroot, TRUE, keysym, keycode, mask);
|
||||
}
|
||||
|
||||
grab = g_new0 (MetaKeyGrab, 1);
|
||||
@@ -1242,7 +1451,8 @@ grab_status_to_string (int status)
|
||||
static gboolean
|
||||
grab_keyboard (MetaDisplay *display,
|
||||
Window xwindow,
|
||||
guint32 timestamp)
|
||||
guint32 timestamp,
|
||||
int grab_mode)
|
||||
{
|
||||
int result;
|
||||
int grab_status;
|
||||
@@ -1263,7 +1473,7 @@ grab_keyboard (MetaDisplay *display,
|
||||
xwindow,
|
||||
timestamp,
|
||||
None,
|
||||
XIGrabModeAsync, XIGrabModeAsync,
|
||||
grab_mode, grab_mode,
|
||||
True, /* owner_events */
|
||||
&mask);
|
||||
|
||||
@@ -1317,7 +1527,7 @@ meta_screen_grab_all_keys (MetaScreen *screen, guint32 timestamp)
|
||||
|
||||
meta_topic (META_DEBUG_KEYBINDINGS,
|
||||
"Grabbing all keys on RootWindow\n");
|
||||
retval = grab_keyboard (screen->display, screen->xroot, timestamp);
|
||||
retval = grab_keyboard (screen->display, screen->xroot, timestamp, XIGrabModeAsync);
|
||||
if (retval)
|
||||
{
|
||||
screen->all_keys_grabbed = TRUE;
|
||||
@@ -1370,7 +1580,7 @@ meta_window_grab_all_keys (MetaWindow *window,
|
||||
|
||||
meta_topic (META_DEBUG_KEYBINDINGS,
|
||||
"Grabbing all keys on window %s\n", window->desc);
|
||||
retval = grab_keyboard (window->display, grabwindow, timestamp);
|
||||
retval = grab_keyboard (window->display, grabwindow, timestamp, XIGrabModeAsync);
|
||||
if (retval)
|
||||
{
|
||||
window->keys_grabbed = FALSE;
|
||||
@@ -1397,6 +1607,44 @@ meta_window_ungrab_all_keys (MetaWindow *window, guint32 timestamp)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_grab_keyboard (MetaDisplay *display, guint32 timestamp)
|
||||
{
|
||||
grab_keyboard (display, DefaultRootWindow (display->xdisplay), timestamp, XIGrabModeSync);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_ungrab_keyboard (MetaDisplay *display, guint32 timestamp)
|
||||
{
|
||||
ungrab_keyboard (display, timestamp);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_freeze_keyboard (MetaDisplay *display, guint32 timestamp)
|
||||
{
|
||||
meta_error_trap_push (display);
|
||||
|
||||
meta_topic (META_DEBUG_KEYBINDINGS,
|
||||
"Freezing keyboard with timestamp %u\n",
|
||||
timestamp);
|
||||
XIAllowEvents (display->xdisplay, META_VIRTUAL_CORE_KEYBOARD_ID,
|
||||
XISyncDevice, timestamp);
|
||||
meta_error_trap_pop (display);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_unfreeze_keyboard (MetaDisplay *display, guint32 timestamp)
|
||||
{
|
||||
meta_error_trap_push (display);
|
||||
|
||||
meta_topic (META_DEBUG_KEYBINDINGS,
|
||||
"Unfreezing keyboard with timestamp %u\n",
|
||||
timestamp);
|
||||
XIAllowEvents (display->xdisplay, META_VIRTUAL_CORE_KEYBOARD_ID,
|
||||
XIAsyncDevice, timestamp);
|
||||
meta_error_trap_pop (display);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
is_modifier (MetaDisplay *display,
|
||||
unsigned int keycode)
|
||||
@@ -1743,6 +1991,38 @@ process_overlay_key (MetaDisplay *display,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
process_iso_next_group (MetaDisplay *display,
|
||||
MetaScreen *screen,
|
||||
XIDeviceEvent *event,
|
||||
KeySym keysym)
|
||||
{
|
||||
gboolean activate;
|
||||
unsigned int mods;
|
||||
int i;
|
||||
|
||||
if (event->evtype != XI_KeyPress)
|
||||
return FALSE;
|
||||
|
||||
activate = FALSE;
|
||||
mods = (event->mods.effective & 0xff & ~(display->ignored_modifier_mask));
|
||||
|
||||
for (i = 0; i < n_iso_next_group_combos; ++i)
|
||||
{
|
||||
if (event->detail == (int)iso_next_group_combos[i].keycode &&
|
||||
mods == iso_next_group_combos[i].modifiers)
|
||||
{
|
||||
activate = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (activate)
|
||||
meta_display_modifiers_accelerator_activate (display);
|
||||
|
||||
return activate;
|
||||
}
|
||||
|
||||
/* Handle a key event. May be called recursively: some key events cause
|
||||
* grabs to be ended and then need to be processed again in their own
|
||||
* right. This cannot cause infinite recursion because we never call
|
||||
@@ -1817,6 +2097,10 @@ meta_display_process_key_event (MetaDisplay *display,
|
||||
handled = process_overlay_key (display, screen, event, keysym);
|
||||
if (handled)
|
||||
return TRUE;
|
||||
|
||||
handled = process_iso_next_group (display, screen, event, keysym);
|
||||
if (handled)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
XIAllowEvents (display->xdisplay, event->deviceid,
|
||||
@@ -3861,6 +4145,11 @@ meta_keybindings_set_custom_handler (const gchar *name,
|
||||
|
||||
/**
|
||||
* meta_keybindings_switch_window: (skip)
|
||||
* @display: a #MetaDisplay
|
||||
* @screen: a #MetaScreen
|
||||
* @event_window: a #MetaWindow
|
||||
* @event: a #XIDeviceEvent
|
||||
* @binding: a #MetaKeyBinding
|
||||
*
|
||||
*/
|
||||
void
|
||||
@@ -4505,6 +4794,12 @@ meta_display_init_keys (MetaDisplay *display)
|
||||
|
||||
g_hash_table_insert (key_handlers, g_strdup ("overlay-key"), handler);
|
||||
|
||||
handler = g_new0 (MetaKeyHandler, 1);
|
||||
handler->name = g_strdup ("iso-next-group");
|
||||
handler->flags = META_KEY_BINDING_BUILTIN;
|
||||
|
||||
g_hash_table_insert (key_handlers, g_strdup ("iso-next-group"), handler);
|
||||
|
||||
handler = g_new0 (MetaKeyHandler, 1);
|
||||
handler->name = g_strdup ("external-grab");
|
||||
handler->func = handle_external_grab;
|
||||
|
@@ -24,6 +24,7 @@
|
||||
|
||||
/**
|
||||
* SECTION:main
|
||||
* @title: Main
|
||||
* @short_description: Program startup.
|
||||
*
|
||||
* Functions which parse the command-line arguments, create the display,
|
||||
@@ -581,8 +582,8 @@ meta_quit (MetaExitCode code)
|
||||
|
||||
/**
|
||||
* prefs_changed_callback:
|
||||
* @pref Which preference has changed
|
||||
* @data Arbitrary data (which we ignore)
|
||||
* @pref: Which preference has changed
|
||||
* @data: Arbitrary data (which we ignore)
|
||||
*
|
||||
* Called on pref changes. (One of several functions of its kind and purpose.)
|
||||
*
|
||||
|
117
src/core/prefs.c
117
src/core/prefs.c
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter preferences */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington, Copyright (C) 2002 Red Hat Inc.
|
||||
* Copyright (C) 2006 Elijah Newren
|
||||
@@ -24,6 +22,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:prefs
|
||||
* @title: Preferences
|
||||
* @short_description: Mutter preferences
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <meta/prefs.h>
|
||||
#include "ui.h"
|
||||
@@ -51,6 +55,7 @@
|
||||
#define KEY_GNOME_ANIMATIONS "enable-animations"
|
||||
#define KEY_GNOME_CURSOR_THEME "cursor-theme"
|
||||
#define KEY_GNOME_CURSOR_SIZE "cursor-size"
|
||||
#define KEY_XKB_OPTIONS "xkb-options"
|
||||
|
||||
#define KEY_OVERLAY_KEY "overlay-key"
|
||||
#define KEY_WORKSPACES_ONLY_ON_PRIMARY "workspaces-only-on-primary"
|
||||
@@ -61,6 +66,7 @@
|
||||
#define SCHEMA_GENERAL "org.gnome.desktop.wm.preferences"
|
||||
#define SCHEMA_MUTTER "org.gnome.mutter"
|
||||
#define SCHEMA_INTERFACE "org.gnome.desktop.interface"
|
||||
#define SCHEMA_INPUT_SOURCES "org.gnome.desktop.input-sources"
|
||||
|
||||
#define SETTINGS(s) g_hash_table_lookup (settings_schemas, (s))
|
||||
|
||||
@@ -111,6 +117,7 @@ static gboolean workspaces_only_on_primary = FALSE;
|
||||
|
||||
static gboolean no_tab_popup = FALSE;
|
||||
|
||||
static char *iso_next_group_option = NULL;
|
||||
|
||||
static void handle_preference_update_enum (GSettings *settings,
|
||||
gchar *key);
|
||||
@@ -136,6 +143,7 @@ static gboolean theme_name_handler (GVariant*, gpointer*, gpointer);
|
||||
static gboolean mouse_button_mods_handler (GVariant*, gpointer*, gpointer);
|
||||
static gboolean button_layout_handler (GVariant*, gpointer*, gpointer);
|
||||
static gboolean overlay_key_handler (GVariant*, gpointer*, gpointer);
|
||||
static gboolean iso_next_group_handler (GVariant*, gpointer*, gpointer);
|
||||
|
||||
static void do_override (char *key, char *schema);
|
||||
|
||||
@@ -429,6 +437,14 @@ static MetaStringPreference preferences_string[] =
|
||||
overlay_key_handler,
|
||||
NULL,
|
||||
},
|
||||
{
|
||||
{ "xkb-options",
|
||||
SCHEMA_INPUT_SOURCES,
|
||||
META_PREF_KEYBINDINGS,
|
||||
},
|
||||
iso_next_group_handler,
|
||||
NULL,
|
||||
},
|
||||
{ { NULL, 0, 0 }, NULL },
|
||||
};
|
||||
|
||||
@@ -700,6 +716,8 @@ handle_preference_update_int (GSettings *settings,
|
||||
|
||||
/**
|
||||
* meta_prefs_add_listener: (skip)
|
||||
* @func: a #MetaPrefsChangedFunc
|
||||
* @user_data: data passed to the function
|
||||
*
|
||||
*/
|
||||
void
|
||||
@@ -717,6 +735,8 @@ meta_prefs_add_listener (MetaPrefsChangedFunc func,
|
||||
|
||||
/**
|
||||
* meta_prefs_remove_listener: (skip)
|
||||
* @func: a #MetaPrefsChangedFunc
|
||||
* @user_data: data passed to the function
|
||||
*
|
||||
*/
|
||||
void
|
||||
@@ -849,6 +869,11 @@ meta_prefs_init (void)
|
||||
G_CALLBACK (settings_changed), NULL);
|
||||
g_hash_table_insert (settings_schemas, g_strdup (SCHEMA_INTERFACE), settings);
|
||||
|
||||
settings = g_settings_new (SCHEMA_INPUT_SOURCES);
|
||||
g_signal_connect (settings, "changed::" KEY_XKB_OPTIONS,
|
||||
G_CALLBACK (settings_changed), NULL);
|
||||
g_hash_table_insert (settings_schemas, g_strdup (SCHEMA_INPUT_SOURCES), settings);
|
||||
|
||||
|
||||
for (tmp = overridden_keys; tmp; tmp = tmp->next)
|
||||
{
|
||||
@@ -1027,7 +1052,8 @@ settings_changed (GSettings *settings,
|
||||
handle_preference_update_bool (settings, key);
|
||||
else if (g_variant_type_equal (type, G_VARIANT_TYPE_INT32))
|
||||
handle_preference_update_int (settings, key);
|
||||
else if (g_variant_type_equal (type, G_VARIANT_TYPE_STRING))
|
||||
else if (g_variant_type_equal (type, G_VARIANT_TYPE_STRING) ||
|
||||
g_variant_type_equal (type, G_VARIANT_TYPE_STRING_ARRAY))
|
||||
{
|
||||
cursor = preferences_enum;
|
||||
found_enum = FALSE;
|
||||
@@ -1546,6 +1572,44 @@ overlay_key_handler (GVariant *value,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
set_iso_next_group_option (const char *option)
|
||||
{
|
||||
if (g_strcmp0 (option, iso_next_group_option) == 0)
|
||||
return;
|
||||
|
||||
g_free (iso_next_group_option);
|
||||
iso_next_group_option = g_strdup (option);
|
||||
|
||||
queue_changed (META_PREF_KEYBINDINGS);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
iso_next_group_handler (GVariant *value,
|
||||
gpointer *result,
|
||||
gpointer data)
|
||||
{
|
||||
const char **xkb_options, **p;
|
||||
|
||||
*result = NULL; /* ignored */
|
||||
xkb_options = g_variant_get_strv (value, NULL);
|
||||
|
||||
for (p = xkb_options; p && *p; ++p)
|
||||
if (g_str_has_prefix (*p, "grp:"))
|
||||
{
|
||||
set_iso_next_group_option (*p + 4);
|
||||
break;
|
||||
}
|
||||
|
||||
/* If we didn't find it, it still needs to be disabled. */
|
||||
if (p && *p == NULL)
|
||||
set_iso_next_group_option (NULL);
|
||||
|
||||
g_free (xkb_options);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
const PangoFontDescription*
|
||||
meta_prefs_get_titlebar_font (void)
|
||||
{
|
||||
@@ -1749,10 +1813,11 @@ static gboolean
|
||||
update_binding (MetaKeyPref *binding,
|
||||
gchar **strokes)
|
||||
{
|
||||
GSList *old_bindings, *a, *b;
|
||||
gboolean changed;
|
||||
unsigned int keysym;
|
||||
unsigned int keycode;
|
||||
MetaVirtualModifier mods;
|
||||
gboolean changed = FALSE;
|
||||
MetaKeyCombo *combo;
|
||||
int i;
|
||||
|
||||
@@ -1760,13 +1825,9 @@ update_binding (MetaKeyPref *binding,
|
||||
"Binding \"%s\" has new GSettings value\n",
|
||||
binding->name);
|
||||
|
||||
/* Okay, so, we're about to provide a new list of key combos for this
|
||||
* action. Delete any pre-existing list.
|
||||
*/
|
||||
g_slist_foreach (binding->bindings, (GFunc) g_free, NULL);
|
||||
g_slist_free (binding->bindings);
|
||||
old_bindings = binding->bindings;
|
||||
binding->bindings = NULL;
|
||||
|
||||
|
||||
for (i = 0; strokes && strokes[i]; i++)
|
||||
{
|
||||
keysym = 0;
|
||||
@@ -1801,8 +1862,6 @@ update_binding (MetaKeyPref *binding,
|
||||
* Changing the key in response to a modification could lead to cyclic calls. */
|
||||
continue;
|
||||
}
|
||||
|
||||
changed = TRUE;
|
||||
|
||||
combo = g_malloc0 (sizeof (MetaKeyCombo));
|
||||
combo->keysym = keysym;
|
||||
@@ -1817,6 +1876,34 @@ update_binding (MetaKeyPref *binding,
|
||||
|
||||
binding->bindings = g_slist_reverse (binding->bindings);
|
||||
|
||||
a = old_bindings;
|
||||
b = binding->bindings;
|
||||
while (TRUE)
|
||||
{
|
||||
if ((!a && b) || (a && !b))
|
||||
{
|
||||
changed = TRUE;
|
||||
break;
|
||||
}
|
||||
else if (!a && !b)
|
||||
{
|
||||
changed = FALSE;
|
||||
break;
|
||||
}
|
||||
else if (memcmp (a->data, b->data, sizeof (MetaKeyCombo)) != 0)
|
||||
{
|
||||
changed = TRUE;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
a = a->next;
|
||||
b = b->next;
|
||||
}
|
||||
}
|
||||
|
||||
g_slist_free_full (old_bindings, g_free);
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
@@ -2066,6 +2153,12 @@ meta_prefs_get_overlay_binding (MetaKeyCombo *combo)
|
||||
*combo = overlay_key_combo;
|
||||
}
|
||||
|
||||
char *
|
||||
meta_prefs_get_iso_next_group_option (void)
|
||||
{
|
||||
return g_strdup (iso_next_group_option);
|
||||
}
|
||||
|
||||
GDesktopTitlebarAction
|
||||
meta_prefs_get_action_double_click_titlebar (void)
|
||||
{
|
||||
|
@@ -46,6 +46,7 @@ struct _MetaMonitorInfo
|
||||
int number;
|
||||
MetaRectangle rect;
|
||||
gboolean is_primary;
|
||||
gboolean in_fullscreen;
|
||||
XID output; /* The primary or first output for this crtc, None if no xrandr */
|
||||
};
|
||||
|
||||
@@ -117,6 +118,7 @@ struct _MetaScreen
|
||||
guint32 wm_cm_timestamp;
|
||||
|
||||
guint work_area_later;
|
||||
guint check_fullscreen_later;
|
||||
|
||||
int rows_of_workspaces;
|
||||
int columns_of_workspaces;
|
||||
@@ -201,6 +203,8 @@ void meta_screen_get_natural_monitor_list (MetaScreen *screen,
|
||||
void meta_screen_update_workspace_layout (MetaScreen *screen);
|
||||
void meta_screen_update_workspace_names (MetaScreen *screen);
|
||||
void meta_screen_queue_workarea_recalc (MetaScreen *screen);
|
||||
void meta_screen_queue_check_fullscreen (MetaScreen *screen);
|
||||
|
||||
|
||||
Window meta_create_offscreen_window (Display *xdisplay,
|
||||
Window parent,
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter X screen handler */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001, 2002 Havoc Pennington
|
||||
* Copyright (C) 2002, 2003 Red Hat Inc.
|
||||
@@ -26,6 +24,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:screen
|
||||
* @title: MetaScreen
|
||||
* @short_description: Mutter X screen handler
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "screen-private.h"
|
||||
#include <meta/main.h>
|
||||
@@ -89,6 +93,7 @@ enum
|
||||
STARTUP_SEQUENCE_CHANGED,
|
||||
WORKAREAS_CHANGED,
|
||||
MONITORS_CHANGED,
|
||||
IN_FULLSCREEN_CHANGED,
|
||||
|
||||
LAST_SIGNAL
|
||||
};
|
||||
@@ -243,6 +248,14 @@ meta_screen_class_init (MetaScreenClass *klass)
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
screen_signals[IN_FULLSCREEN_CHANGED] =
|
||||
g_signal_new ("in-fullscreen-changed",
|
||||
G_TYPE_FROM_CLASS (object_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_N_WORKSPACES,
|
||||
pspec);
|
||||
@@ -476,11 +489,13 @@ reload_monitor_infos (MetaScreen *screen)
|
||||
screen->monitor_infos[0].number = 0;
|
||||
screen->monitor_infos[0].rect = screen->rect;
|
||||
screen->monitor_infos[0].rect.width = screen->rect.width / 2;
|
||||
screen->monitor_infos[0].in_fullscreen = -1;
|
||||
|
||||
screen->monitor_infos[1].number = 1;
|
||||
screen->monitor_infos[1].rect = screen->rect;
|
||||
screen->monitor_infos[1].rect.x = screen->rect.width / 2;
|
||||
screen->monitor_infos[1].rect.width = screen->rect.width / 2;
|
||||
screen->monitor_infos[0].in_fullscreen = -1;
|
||||
}
|
||||
|
||||
if (screen->n_monitor_infos == 0 &&
|
||||
@@ -510,6 +525,7 @@ reload_monitor_infos (MetaScreen *screen)
|
||||
screen->monitor_infos[i].rect.y = infos[i].y_org;
|
||||
screen->monitor_infos[i].rect.width = infos[i].width;
|
||||
screen->monitor_infos[i].rect.height = infos[i].height;
|
||||
screen->monitor_infos[i].in_fullscreen = -1;
|
||||
|
||||
meta_topic (META_DEBUG_XINERAMA,
|
||||
"Monitor %d is %d,%d %d x %d\n",
|
||||
@@ -569,6 +585,7 @@ reload_monitor_infos (MetaScreen *screen)
|
||||
|
||||
screen->monitor_infos[0].number = 0;
|
||||
screen->monitor_infos[0].rect = screen->rect;
|
||||
screen->monitor_infos[0].in_fullscreen = -1;
|
||||
}
|
||||
|
||||
filter_mirrored_monitors (screen);
|
||||
@@ -824,6 +841,7 @@ meta_screen_new (MetaDisplay *display,
|
||||
xroot,
|
||||
NoEventMask);
|
||||
screen->work_area_later = 0;
|
||||
screen->check_fullscreen_later = 0;
|
||||
|
||||
screen->active_workspace = NULL;
|
||||
screen->workspaces = NULL;
|
||||
@@ -987,6 +1005,8 @@ meta_screen_free (MetaScreen *screen,
|
||||
|
||||
if (screen->work_area_later != 0)
|
||||
g_source_remove (screen->work_area_later);
|
||||
if (screen->check_fullscreen_later != 0)
|
||||
g_source_remove (screen->check_fullscreen_later);
|
||||
|
||||
if (screen->monitor_infos)
|
||||
g_free (screen->monitor_infos);
|
||||
@@ -2993,6 +3013,8 @@ meta_screen_resize (MetaScreen *screen,
|
||||
g_free (old_monitor_infos);
|
||||
g_slist_free (windows);
|
||||
|
||||
meta_screen_queue_check_fullscreen (screen);
|
||||
|
||||
g_signal_emit (screen, screen_signals[MONITORS_CHANGED], 0);
|
||||
}
|
||||
|
||||
@@ -3484,6 +3506,7 @@ meta_screen_get_display (MetaScreen *screen)
|
||||
|
||||
/**
|
||||
* meta_screen_get_xroot: (skip)
|
||||
* @screen: A #MetaScreen
|
||||
*
|
||||
*/
|
||||
Window
|
||||
@@ -3514,6 +3537,7 @@ meta_screen_get_size (MetaScreen *screen,
|
||||
|
||||
/**
|
||||
* meta_screen_get_compositor_data: (skip)
|
||||
* @screen: A #MetaScreen
|
||||
*
|
||||
*/
|
||||
gpointer
|
||||
@@ -3582,6 +3606,7 @@ meta_screen_get_active_workspace_index (MetaScreen *screen)
|
||||
|
||||
/**
|
||||
* meta_screen_get_active_workspace:
|
||||
* @screen: A #MetaScreen
|
||||
*
|
||||
* Returns: (transfer none): The current workspace
|
||||
*/
|
||||
@@ -3642,3 +3667,142 @@ meta_screen_set_active_workspace_hint (MetaScreen *screen)
|
||||
meta_error_trap_pop (screen->display);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_fullscreen_func (gpointer data)
|
||||
{
|
||||
MetaScreen *screen = data;
|
||||
GSList *windows;
|
||||
GSList *tmp;
|
||||
GSList *fullscreen_monitors = NULL;
|
||||
gboolean in_fullscreen_changed = FALSE;
|
||||
int i;
|
||||
|
||||
screen->check_fullscreen_later = 0;
|
||||
|
||||
windows = meta_display_list_windows (screen->display,
|
||||
META_LIST_INCLUDE_OVERRIDE_REDIRECT);
|
||||
|
||||
for (tmp = windows; tmp != NULL; tmp = tmp->next)
|
||||
{
|
||||
MetaWindow *window = tmp->data;
|
||||
gboolean covers_monitors = FALSE;
|
||||
|
||||
if (window->screen != screen || window->hidden)
|
||||
continue;
|
||||
|
||||
if (window->fullscreen)
|
||||
/* The checks for determining a fullscreen window's layer are quite
|
||||
* elaborate, and we do a poor job at keeping it dynamically up-to-date.
|
||||
* (It depends, for example, on whether the focus window is on the
|
||||
* same monitor as the fullscreen window.) But because we minimize
|
||||
* fullscreen windows not in LAYER_FULLSCREEN (see below), if the
|
||||
* layer is stale here, it's really bad, so just force recomputation for
|
||||
* here. This is expensive, but hopefully this function won't be
|
||||
* called too often.
|
||||
*/
|
||||
meta_window_update_layer (window);
|
||||
|
||||
if (window->override_redirect)
|
||||
{
|
||||
/* We want to handle the case where an application is creating an
|
||||
* override-redirect window the size of the screen (monitor) and treat
|
||||
* it similarly to a fullscreen window, though it doesn't have fullscreen
|
||||
* window management behavior. (Being O-R, it's not managed at all.)
|
||||
*/
|
||||
if (meta_window_is_monitor_sized (window))
|
||||
covers_monitors = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (window->layer == META_LAYER_FULLSCREEN)
|
||||
covers_monitors = TRUE;
|
||||
}
|
||||
|
||||
if (covers_monitors)
|
||||
{
|
||||
int *monitors;
|
||||
gsize n_monitors;
|
||||
gsize j;
|
||||
|
||||
monitors = meta_window_get_all_monitors (window, &n_monitors);
|
||||
for (j = 0; j < n_monitors; j++)
|
||||
{
|
||||
/* + 1 to avoid NULL */
|
||||
gpointer monitor_p = GINT_TO_POINTER(monitors[j] + 1);
|
||||
if (!g_slist_find (fullscreen_monitors, monitor_p))
|
||||
fullscreen_monitors = g_slist_prepend (fullscreen_monitors, monitor_p);
|
||||
}
|
||||
|
||||
g_free (monitors);
|
||||
}
|
||||
|
||||
/* If we find a window that is fullscreen but not in the FULLSCREEN
|
||||
* layer, it means that we've kicked it out of the layer because
|
||||
* we've focused another window on the same monitor. In this case
|
||||
* it would be confusing to keep the window fullscreen and visible,
|
||||
* so minimize it. We can't do the same thing for override-redirect
|
||||
* windows, so we just hope the application does the right thing.
|
||||
*/
|
||||
if (!covers_monitors && window->fullscreen)
|
||||
{
|
||||
meta_window_minimize (window);
|
||||
meta_topic (META_DEBUG_WINDOW_OPS,
|
||||
"Minimizing %s: was fullscreen but in a lower layer\n",
|
||||
window->desc);
|
||||
}
|
||||
}
|
||||
|
||||
g_slist_free (windows);
|
||||
|
||||
for (i = 0; i < screen->n_monitor_infos; i++)
|
||||
{
|
||||
MetaMonitorInfo *info = &screen->monitor_infos[i];
|
||||
gboolean in_fullscreen = g_slist_find (fullscreen_monitors, GINT_TO_POINTER (i + 1)) != NULL;
|
||||
if (in_fullscreen != info->in_fullscreen)
|
||||
{
|
||||
info->in_fullscreen = in_fullscreen;
|
||||
in_fullscreen_changed = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
g_slist_free (fullscreen_monitors);
|
||||
|
||||
if (in_fullscreen_changed)
|
||||
g_signal_emit (screen, screen_signals[IN_FULLSCREEN_CHANGED], 0, NULL);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
meta_screen_queue_check_fullscreen (MetaScreen *screen)
|
||||
{
|
||||
if (!screen->check_fullscreen_later)
|
||||
screen->check_fullscreen_later = meta_later_add (META_LATER_CHECK_FULLSCREEN,
|
||||
check_fullscreen_func,
|
||||
screen, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_screen_get_monitor_in_fullscreen:
|
||||
* @screen: a #MetaScreen
|
||||
* @monitor: the monitor number
|
||||
*
|
||||
* Determines whether there is a fullscreen window obscuring the specified
|
||||
* monitor. If there is a fullscreen window, the desktop environment will
|
||||
* typically hide any controls that might obscure the fullscreen window.
|
||||
*
|
||||
* You can get notification when this changes by connecting to
|
||||
* MetaScreen::in-fullscreen-changed.
|
||||
*
|
||||
* Returns: %TRUE if there is a fullscreen window covering the specified monitor.
|
||||
*/
|
||||
gboolean
|
||||
meta_screen_get_monitor_in_fullscreen (MetaScreen *screen,
|
||||
int monitor)
|
||||
{
|
||||
g_return_val_if_fail (META_IS_SCREEN (screen), FALSE);
|
||||
g_return_val_if_fail (monitor >= 0 && monitor < screen->n_monitor_infos, FALSE);
|
||||
|
||||
/* We use -1 as a flag to mean "not known yet" for notification purposes */
|
||||
return screen->monitor_infos[monitor].in_fullscreen == TRUE;
|
||||
}
|
||||
|
@@ -1,5 +1,20 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/*
|
||||
* SECTION:stack-tracker
|
||||
* @short_description: Track stacking order for compositor
|
||||
*
|
||||
* #MetaStackTracker maintains the most accurate view we have at a
|
||||
* given point of time of the ordering of the children of the root
|
||||
* window (including override-redirect windows.) This is used to order
|
||||
* the windows when the compositor draws them.
|
||||
*
|
||||
* By contrast, #MetaStack is responsible for keeping track of how we
|
||||
* think that windows *should* be ordered. For windows we manage
|
||||
* (non-override-redirect windows), the two stacking orders will be
|
||||
* the same.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2009 Red Hat, Inc.
|
||||
*
|
||||
@@ -616,7 +631,7 @@ meta_stack_tracker_configure_event (MetaStackTracker *tracker,
|
||||
* @windows: location to store list of windows, or %NULL
|
||||
* @n_windows: location to store count of windows, or %NULL
|
||||
*
|
||||
* Returns the most current view we have of the stacking order
|
||||
* @windows will contain the most current view we have of the stacking order
|
||||
* of the children of the root window. The returned array contains
|
||||
* everything: InputOnly windows, override-redirect windows,
|
||||
* hidden windows, etc. Some of these will correspond to MetaWindow
|
||||
@@ -739,7 +754,7 @@ meta_stack_tracker_queue_sync_stack (MetaStackTracker *tracker)
|
||||
{
|
||||
if (tracker->sync_stack_later == 0)
|
||||
{
|
||||
tracker->sync_stack_later = meta_later_add (META_LATER_BEFORE_REDRAW,
|
||||
tracker->sync_stack_later = meta_later_add (META_LATER_SYNC_STACK,
|
||||
stack_tracker_sync_stack_later,
|
||||
tracker, NULL);
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/**
|
||||
/*
|
||||
* SECTION:stack
|
||||
* @short_description: Which windows cover which other windows
|
||||
*/
|
||||
@@ -395,6 +395,8 @@ get_maximum_layer_in_group (MetaWindow *window)
|
||||
static void
|
||||
compute_layer (MetaWindow *window)
|
||||
{
|
||||
MetaStackLayer old_layer = window->layer;
|
||||
|
||||
window->layer = get_standalone_layer (window);
|
||||
|
||||
/* We can only do promotion-due-to-group for dialogs and other
|
||||
@@ -430,6 +432,10 @@ compute_layer (MetaWindow *window)
|
||||
meta_topic (META_DEBUG_STACK, "Window %s on layer %u type = %u has_focus = %d\n",
|
||||
window->desc, window->layer,
|
||||
window->type, window->has_focus);
|
||||
|
||||
if (window->layer != old_layer &&
|
||||
(old_layer == META_LAYER_FULLSCREEN || window->layer == META_LAYER_FULLSCREEN))
|
||||
meta_screen_queue_check_fullscreen (window->screen);
|
||||
}
|
||||
|
||||
/* Front of the layer list is the topmost window,
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter utilities */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington
|
||||
* Copyright (C) 2005 Elijah Newren
|
||||
@@ -22,6 +20,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:util
|
||||
* @title: Utility functions
|
||||
* @short_description: Miscellaneous utility functions
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#define _POSIX_C_SOURCE 200112L /* for fdopen() */
|
||||
|
||||
@@ -225,6 +229,7 @@ utf8_fputs (const char *str,
|
||||
|
||||
/**
|
||||
* meta_free_gslist_and_elements: (skip)
|
||||
* @list_to_deep_free: list to deep free
|
||||
*
|
||||
*/
|
||||
void
|
||||
@@ -599,6 +604,16 @@ append_argument (GPtrArray *args,
|
||||
|
||||
/**
|
||||
* meta_show_dialog: (skip)
|
||||
* @type: type of dialog
|
||||
* @message: message
|
||||
* @timeout: timeout
|
||||
* @display: display
|
||||
* @ok_text: text for Ok button
|
||||
* @cancel_text: text for Cancel button
|
||||
* @icon_name: icon name
|
||||
* @transient_for: window XID of parent
|
||||
* @columns: columns
|
||||
* @entries: entries
|
||||
*
|
||||
*/
|
||||
GPid
|
||||
@@ -894,6 +909,9 @@ meta_later_add (MetaLaterType when,
|
||||
later->source = g_idle_add_full (META_PRIORITY_RESIZE, call_idle_later, later, NULL);
|
||||
ensure_later_repaint_func ();
|
||||
break;
|
||||
case META_LATER_CALC_SHOWING:
|
||||
case META_LATER_CHECK_FULLSCREEN:
|
||||
case META_LATER_SYNC_STACK:
|
||||
case META_LATER_BEFORE_REDRAW:
|
||||
ensure_later_repaint_func ();
|
||||
break;
|
||||
|
@@ -343,9 +343,6 @@ struct _MetaWindow
|
||||
/* if TRUE, window is attached to its parent */
|
||||
guint attached : 1;
|
||||
|
||||
/* if TRUE, we are freezing updates during a resize */
|
||||
guint updates_frozen_for_resize : 1;
|
||||
|
||||
/* whether or not the window is from a program running on another machine */
|
||||
guint is_remote : 1;
|
||||
|
||||
@@ -366,7 +363,8 @@ struct _MetaWindow
|
||||
/* XSync update counter */
|
||||
XSyncCounter sync_request_counter;
|
||||
gint64 sync_request_serial;
|
||||
GTimeVal sync_request_time;
|
||||
gint64 sync_request_wait_serial;
|
||||
guint sync_request_timeout_id;
|
||||
/* alarm monitoring client's _NET_WM_SYNC_REQUEST_COUNTER */
|
||||
XSyncAlarm sync_request_alarm;
|
||||
#endif
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/**
|
||||
/*
|
||||
* SECTION:window-props
|
||||
* @short_description: #MetaWindow property handling
|
||||
*
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter X managed windows */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington, Anders Carlsson
|
||||
* Copyright (C) 2002, 2003 Red Hat, Inc.
|
||||
@@ -24,6 +22,12 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:window
|
||||
* @title: MetaWindow
|
||||
* @short_description: Mutter X managed windows
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "window-private.h"
|
||||
#include "boxes-private.h"
|
||||
@@ -1020,8 +1024,7 @@ meta_window_new_with_attrs (MetaDisplay *display,
|
||||
#ifdef HAVE_XSYNC
|
||||
window->sync_request_counter = None;
|
||||
window->sync_request_serial = 0;
|
||||
window->sync_request_time.tv_sec = 0;
|
||||
window->sync_request_time.tv_usec = 0;
|
||||
window->sync_request_timeout_id = 0;
|
||||
window->sync_request_alarm = None;
|
||||
#endif
|
||||
|
||||
@@ -1412,6 +1415,9 @@ meta_window_new_with_attrs (MetaDisplay *display,
|
||||
if (!window->override_redirect)
|
||||
meta_stack_add (window->screen->stack,
|
||||
window);
|
||||
else if (window->screen->tile_preview != NULL &&
|
||||
meta_tile_preview_get_xwindow (window->screen->tile_preview, NULL) == xwindow)
|
||||
window->layer = META_LAYER_NORMAL;
|
||||
else
|
||||
window->layer = META_LAYER_OVERRIDE_REDIRECT; /* otherwise set by MetaStack */
|
||||
|
||||
@@ -1774,6 +1780,12 @@ meta_window_unmanage (MetaWindow *window,
|
||||
invalidate_work_areas (window);
|
||||
}
|
||||
|
||||
if (window->sync_request_timeout_id)
|
||||
{
|
||||
g_source_remove (window->sync_request_timeout_id);
|
||||
window->sync_request_timeout_id = 0;
|
||||
}
|
||||
|
||||
if (window->display->grab_window == window)
|
||||
meta_display_end_grab_op (window->display, timestamp);
|
||||
|
||||
@@ -1931,6 +1943,8 @@ meta_window_unmanage (MetaWindow *window,
|
||||
|
||||
meta_prefs_remove_listener (prefs_changed_callback, window);
|
||||
|
||||
meta_screen_queue_check_fullscreen (window->screen);
|
||||
|
||||
g_signal_emit (window, window_signals[UNMANAGED], 0);
|
||||
|
||||
g_object_unref (window);
|
||||
@@ -2125,7 +2139,7 @@ set_net_wm_state (MetaWindow *window)
|
||||
* @window: a #MetaWindow
|
||||
* @workspace: a #MetaWorkspace
|
||||
*
|
||||
* Returns whether @window is displayed on @workspace, or whether it
|
||||
* Returns: whether @window is displayed on @workspace, or whether it
|
||||
* will be displayed on all workspaces.
|
||||
*/
|
||||
gboolean
|
||||
@@ -2515,7 +2529,7 @@ meta_window_queue (MetaWindow *window, guint queuebits)
|
||||
|
||||
const MetaLaterType window_queue_later_when[NUMBER_OF_QUEUES] =
|
||||
{
|
||||
META_LATER_BEFORE_REDRAW, /* CALC_SHOWING */
|
||||
META_LATER_CALC_SHOWING, /* CALC_SHOWING */
|
||||
META_LATER_RESIZE, /* MOVE_RESIZE */
|
||||
META_LATER_BEFORE_REDRAW /* UPDATE_ICON */
|
||||
};
|
||||
@@ -3213,6 +3227,9 @@ meta_window_show (MetaWindow *window)
|
||||
invalidate_work_areas (window);
|
||||
}
|
||||
|
||||
if (did_show)
|
||||
meta_screen_queue_check_fullscreen (window->screen);
|
||||
|
||||
/*
|
||||
* Now that we have shown the window, we no longer want to consider the
|
||||
* initial timestamp in any subsequent deliberations whether to focus this
|
||||
@@ -3344,6 +3361,9 @@ meta_window_hide (MetaWindow *window)
|
||||
not_this_one,
|
||||
timestamp);
|
||||
}
|
||||
|
||||
if (did_hide)
|
||||
meta_screen_queue_check_fullscreen (window->screen);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -3592,6 +3612,7 @@ meta_window_maximize (MetaWindow *window,
|
||||
saved_rect = &window->saved_rect;
|
||||
|
||||
window->maximized_vertically = FALSE;
|
||||
window->tile_mode = META_TILE_NONE;
|
||||
}
|
||||
|
||||
meta_window_maximize_internal (window,
|
||||
@@ -3624,6 +3645,7 @@ meta_window_maximize (MetaWindow *window,
|
||||
|
||||
/**
|
||||
* meta_window_get_maximized:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Gets the current maximization state of the window, as combination
|
||||
* of the %META_MAXIMIZE_HORIZONTAL and %META_MAXIMIZE_VERTICAL flags;
|
||||
@@ -3639,6 +3661,7 @@ meta_window_get_maximized (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_is_fullscreen:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Return value: %TRUE if the window is currently fullscreen
|
||||
*/
|
||||
@@ -3685,6 +3708,7 @@ meta_window_get_all_monitors (MetaWindow *window, gsize *length)
|
||||
|
||||
/**
|
||||
* meta_window_is_screen_sized:
|
||||
* @window: A #MetaWindow
|
||||
*
|
||||
* Return value: %TRUE if the window is occupies the
|
||||
* the whole screen (all monitors).
|
||||
@@ -3707,6 +3731,7 @@ meta_window_is_screen_sized (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_is_monitor_sized:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Return value: %TRUE if the window is occupies an entire monitor or
|
||||
* the whole screen.
|
||||
@@ -3736,6 +3761,7 @@ meta_window_is_monitor_sized (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_is_on_primary_monitor:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Return value: %TRUE if the window is on the primary monitor
|
||||
*/
|
||||
@@ -3747,6 +3773,7 @@ meta_window_is_on_primary_monitor (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_requested_bypass_compositor:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Return value: %TRUE if the window requested to bypass the compositor
|
||||
*/
|
||||
@@ -3758,6 +3785,7 @@ meta_window_requested_bypass_compositor (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_requested_dont_bypass_compositor:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Return value: %TRUE if the window requested to opt out of unredirecting
|
||||
*/
|
||||
@@ -3918,13 +3946,6 @@ meta_window_unmaximize_internal (MetaWindow *window,
|
||||
window->maximized_vertically =
|
||||
window->maximized_vertically && !unmaximize_vertically;
|
||||
|
||||
/* Reset the tile mode for maximized tiled windows for consistency
|
||||
* with "normal" maximized windows, but keep other tile modes,
|
||||
* as side-by-side tiled windows may snap back.
|
||||
*/
|
||||
if (window->tile_mode == META_TILE_MAXIMIZED)
|
||||
window->tile_mode = META_TILE_NONE;
|
||||
|
||||
/* Unmaximize to the saved_rect position in the direction(s)
|
||||
* being unmaximized.
|
||||
*/
|
||||
@@ -4121,6 +4142,9 @@ meta_window_make_fullscreen_internal (MetaWindow *window)
|
||||
recalc_window_features (window);
|
||||
set_net_wm_state (window);
|
||||
|
||||
/* For the auto-minimize feature, if we fail to get focus */
|
||||
meta_screen_queue_check_fullscreen (window->screen);
|
||||
|
||||
g_object_notify (G_OBJECT (window), "fullscreen");
|
||||
}
|
||||
}
|
||||
@@ -4616,6 +4640,38 @@ meta_window_destroy_sync_request_alarm (MetaWindow *window)
|
||||
}
|
||||
|
||||
#ifdef HAVE_XSYNC
|
||||
static gboolean
|
||||
sync_request_timeout (gpointer data)
|
||||
{
|
||||
MetaWindow *window = data;
|
||||
|
||||
window->sync_request_timeout_id = 0;
|
||||
|
||||
/* We have now waited for more than a second for the
|
||||
* application to respond to the sync request
|
||||
*/
|
||||
window->disable_sync = TRUE;
|
||||
|
||||
/* Reset the wait serial, so we don't continue freezing
|
||||
* window updates
|
||||
*/
|
||||
window->sync_request_wait_serial = 0;
|
||||
meta_compositor_set_updates_frozen (window->display->compositor, window,
|
||||
meta_window_updates_are_frozen (window));
|
||||
|
||||
if (window == window->display->grab_window &&
|
||||
meta_grab_op_is_resizing (window->display->grab_op))
|
||||
{
|
||||
update_resize (window,
|
||||
window->display->grab_last_user_action_was_snap,
|
||||
window->display->grab_latest_motion_x,
|
||||
window->display->grab_latest_motion_y,
|
||||
TRUE);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
send_sync_request (MetaWindow *window)
|
||||
{
|
||||
@@ -4631,7 +4687,7 @@ send_sync_request (MetaWindow *window)
|
||||
*/
|
||||
wait_serial = window->sync_request_serial + 240;
|
||||
|
||||
window->display->grab_sync_counter_wait_serial = wait_serial;
|
||||
window->sync_request_wait_serial = wait_serial;
|
||||
|
||||
ev.type = ClientMessage;
|
||||
ev.window = window->xwindow;
|
||||
@@ -4654,7 +4710,16 @@ send_sync_request (MetaWindow *window)
|
||||
XSendEvent (window->display->xdisplay,
|
||||
window->xwindow, False, 0, (XEvent*) &ev);
|
||||
|
||||
g_get_current_time (&window->sync_request_time);
|
||||
/* We give the window 1 sec to respond to _NET_WM_SYNC_REQUEST;
|
||||
* if this time expires, we consider the window unresponsive
|
||||
* and resize it unsynchonized.
|
||||
*/
|
||||
window->sync_request_timeout_id = g_timeout_add (1000,
|
||||
sync_request_timeout,
|
||||
window);
|
||||
|
||||
meta_compositor_set_updates_frozen (window->display->compositor, window,
|
||||
meta_window_updates_are_frozen (window));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -4677,22 +4742,12 @@ meta_window_updates_are_frozen (MetaWindow *window)
|
||||
if (window->extended_sync_request_counter &&
|
||||
window->sync_request_serial % 2 == 1)
|
||||
return TRUE;
|
||||
|
||||
if (window->sync_request_serial < window->sync_request_wait_serial)
|
||||
return TRUE;
|
||||
#endif
|
||||
|
||||
return window->updates_frozen_for_resize;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_window_set_updates_frozen_for_resize (MetaWindow *window,
|
||||
gboolean updates_frozen)
|
||||
{
|
||||
if (updates_frozen != window->updates_frozen_for_resize)
|
||||
{
|
||||
window->updates_frozen_for_resize = updates_frozen;
|
||||
if (window->display->compositor)
|
||||
meta_compositor_set_updates_frozen (window->display->compositor, window,
|
||||
meta_window_updates_are_frozen (window));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -5210,14 +5265,11 @@ meta_window_move_resize_internal (MetaWindow *window,
|
||||
#ifdef HAVE_XSYNC
|
||||
if (window == window->display->grab_window &&
|
||||
meta_grab_op_is_resizing (window->display->grab_op) &&
|
||||
!window->disable_sync &&
|
||||
window->sync_request_counter != None &&
|
||||
window->sync_request_alarm != None &&
|
||||
window->sync_request_time.tv_usec == 0 &&
|
||||
window->sync_request_time.tv_sec == 0)
|
||||
window->sync_request_timeout_id == 0)
|
||||
{
|
||||
/* turn off updating */
|
||||
meta_window_set_updates_frozen_for_resize (window, TRUE);
|
||||
|
||||
send_sync_request (window);
|
||||
}
|
||||
#endif
|
||||
@@ -5591,6 +5643,12 @@ meta_window_configure_notify (MetaWindow *window,
|
||||
window->rect.height = event->height;
|
||||
meta_window_update_monitor (window);
|
||||
|
||||
/* Whether an override-redirect window is considered fullscreen depends
|
||||
* on its geometry.
|
||||
*/
|
||||
if (window->override_redirect)
|
||||
meta_screen_queue_check_fullscreen (window->screen);
|
||||
|
||||
if (!event->override_redirect && !event->send_event)
|
||||
meta_warning ("Unhandled change of windows override redirect status\n");
|
||||
|
||||
@@ -8830,73 +8888,39 @@ check_moveresize_frequency (MetaWindow *window,
|
||||
gdouble *remaining)
|
||||
{
|
||||
GTimeVal current_time;
|
||||
const double max_resizes_per_second = 25.0;
|
||||
const double ms_between_resizes = 1000.0 / max_resizes_per_second;
|
||||
double elapsed;
|
||||
|
||||
g_get_current_time (¤t_time);
|
||||
|
||||
#ifdef HAVE_XSYNC
|
||||
/* If we are throttling via _NET_WM_SYNC_REQUEST, we don't need
|
||||
* an artificial timeout-based throttled */
|
||||
if (!window->disable_sync &&
|
||||
window->sync_request_alarm != None)
|
||||
{
|
||||
if (window->sync_request_time.tv_sec != 0 ||
|
||||
window->sync_request_time.tv_usec != 0)
|
||||
{
|
||||
double elapsed =
|
||||
time_diff (¤t_time, &window->sync_request_time);
|
||||
|
||||
if (elapsed < 1000.0)
|
||||
{
|
||||
/* We want to be sure that the timeout happens at
|
||||
* a time where elapsed will definitely be
|
||||
* greater than 1000, so we can disable sync
|
||||
*/
|
||||
if (remaining)
|
||||
*remaining = 1000.0 - elapsed + 100;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We have now waited for more than a second for the
|
||||
* application to respond to the sync request
|
||||
*/
|
||||
window->disable_sync = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* No outstanding sync requests. Go ahead and resize
|
||||
*/
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return TRUE;
|
||||
#endif /* HAVE_XSYNC */
|
||||
|
||||
elapsed = time_diff (¤t_time, &window->display->grab_last_moveresize_time);
|
||||
|
||||
if (elapsed >= 0.0 && elapsed < ms_between_resizes)
|
||||
{
|
||||
const double max_resizes_per_second = 25.0;
|
||||
const double ms_between_resizes = 1000.0 / max_resizes_per_second;
|
||||
double elapsed;
|
||||
|
||||
elapsed = time_diff (¤t_time, &window->display->grab_last_moveresize_time);
|
||||
|
||||
if (elapsed >= 0.0 && elapsed < ms_between_resizes)
|
||||
{
|
||||
meta_topic (META_DEBUG_RESIZING,
|
||||
"Delaying move/resize as only %g of %g ms elapsed\n",
|
||||
elapsed, ms_between_resizes);
|
||||
|
||||
if (remaining)
|
||||
*remaining = (ms_between_resizes - elapsed);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
meta_topic (META_DEBUG_RESIZING,
|
||||
" Checked moveresize freq, allowing move/resize now (%g of %g seconds elapsed)\n",
|
||||
elapsed / 1000.0, 1.0 / max_resizes_per_second);
|
||||
"Delaying move/resize as only %g of %g ms elapsed\n",
|
||||
elapsed, ms_between_resizes);
|
||||
|
||||
return TRUE;
|
||||
if (remaining)
|
||||
*remaining = (ms_between_resizes - elapsed);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
meta_topic (META_DEBUG_RESIZING,
|
||||
" Checked moveresize freq, allowing move/resize now (%g of %g seconds elapsed)\n",
|
||||
elapsed / 1000.0, 1.0 / max_resizes_per_second);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -9389,6 +9413,15 @@ update_resize (MetaWindow *window,
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef HAVE_XSYNC
|
||||
/* If we're waiting for a request for _NET_WM_SYNC_REQUEST, we'll
|
||||
* resize the window when the window responds, or when we time
|
||||
* the response out.
|
||||
*/
|
||||
if (window->sync_request_timeout_id != 0)
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (!check_moveresize_frequency (window, &remaining) && !force)
|
||||
{
|
||||
/* we are ignoring an event here, so we schedule a
|
||||
@@ -9405,9 +9438,6 @@ update_resize (MetaWindow *window,
|
||||
return;
|
||||
}
|
||||
|
||||
/* If we get here, it means the client should have redrawn itself */
|
||||
meta_window_set_updates_frozen_for_resize (window, FALSE);
|
||||
|
||||
/* Remove any scheduled compensation events */
|
||||
if (window->display->grab_resize_timeout_id)
|
||||
{
|
||||
@@ -9616,21 +9646,17 @@ meta_window_update_sync_request_counter (MetaWindow *window,
|
||||
|
||||
if (window == window->display->grab_window &&
|
||||
meta_grab_op_is_resizing (window->display->grab_op) &&
|
||||
new_counter_value >= window->display->grab_sync_counter_wait_serial &&
|
||||
(!window->extended_sync_request_counter || new_counter_value % 2 == 0))
|
||||
new_counter_value >= window->sync_request_wait_serial &&
|
||||
(!window->extended_sync_request_counter || new_counter_value % 2 == 0) &&
|
||||
window->sync_request_timeout_id)
|
||||
{
|
||||
meta_topic (META_DEBUG_RESIZING,
|
||||
"Alarm event received last motion x = %d y = %d\n",
|
||||
window->display->grab_latest_motion_x,
|
||||
window->display->grab_latest_motion_y);
|
||||
|
||||
/* If sync was previously disabled, turn it back on and hope
|
||||
* the application has come to its senses (maybe it was just
|
||||
* busy with a pagefault or a long computation).
|
||||
*/
|
||||
window->disable_sync = FALSE;
|
||||
window->sync_request_time.tv_sec = 0;
|
||||
window->sync_request_time.tv_usec = 0;
|
||||
g_source_remove (window->sync_request_timeout_id);
|
||||
window->sync_request_timeout_id = 0;
|
||||
|
||||
/* This means we are ready for another configure;
|
||||
* no pointer round trip here, to keep in sync */
|
||||
@@ -9641,6 +9667,12 @@ meta_window_update_sync_request_counter (MetaWindow *window,
|
||||
TRUE);
|
||||
}
|
||||
|
||||
/* If sync was previously disabled, turn it back on and hope
|
||||
* the application has come to its senses (maybe it was just
|
||||
* busy with a pagefault or a long computation).
|
||||
*/
|
||||
window->disable_sync = FALSE;
|
||||
|
||||
if (needs_frame_drawn)
|
||||
meta_compositor_queue_frame_drawn (window->display->compositor, window,
|
||||
no_delay_frame);
|
||||
@@ -9682,7 +9714,6 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
|
||||
xev->root_x,
|
||||
xev->root_y,
|
||||
TRUE);
|
||||
meta_window_set_updates_frozen_for_resize (window, FALSE);
|
||||
|
||||
/* If a tiled window has been dragged free with a
|
||||
* mouse resize without snapping back to the tiled
|
||||
@@ -10337,6 +10368,7 @@ meta_window_stack_just_below (MetaWindow *window,
|
||||
|
||||
/**
|
||||
* meta_window_get_user_time:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* The user time represents a timestamp for the last time the user
|
||||
* interacted with this window. Note this property is only available
|
||||
@@ -10505,6 +10537,7 @@ meta_window_unset_demands_attention (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_get_frame: (skip)
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
*/
|
||||
MetaFrame *
|
||||
@@ -10545,7 +10578,7 @@ meta_window_is_shaded (MetaWindow *window)
|
||||
* meta_window_is_override_redirect:
|
||||
* @window: A #MetaWindow
|
||||
*
|
||||
* Returns if this window isn't managed by mutter; it will
|
||||
* Returns: %TRUE if this window isn't managed by mutter; it will
|
||||
* control its own positioning and mutter won't draw decorations
|
||||
* among other things. In X terminology this is "override redirect".
|
||||
*/
|
||||
@@ -10613,6 +10646,7 @@ meta_window_get_display (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_get_xwindow: (skip)
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
*/
|
||||
Window
|
||||
@@ -10823,7 +10857,7 @@ meta_window_get_role (MetaWindow *window)
|
||||
* meta_window_get_title:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Returns the current title of the window.
|
||||
* Returns: the current title of the window.
|
||||
*/
|
||||
const char *
|
||||
meta_window_get_title (MetaWindow *window)
|
||||
@@ -11050,6 +11084,7 @@ meta_window_get_frame_type (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_get_frame_bounds:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Gets a region representing the outer bounds of the window's frame.
|
||||
*
|
||||
@@ -11087,6 +11122,7 @@ meta_window_is_attached_dialog (MetaWindow *window)
|
||||
|
||||
/**
|
||||
* meta_window_get_tile_match:
|
||||
* @window: a #MetaWindow
|
||||
*
|
||||
* Returns the matching tiled window on the same monitor as @window. This is
|
||||
* the topmost tiled window in a complementary tile mode that is:
|
||||
|
@@ -1,7 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter Workspaces */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 Havoc Pennington
|
||||
* Copyright (C) 2003 Rob Adams
|
||||
@@ -23,6 +21,18 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:workspace
|
||||
* @title:MetaWorkspace
|
||||
* @short_description:Workspaces
|
||||
*
|
||||
* A workspace is a set of windows which all live on the same
|
||||
* screen. (You may also see the name "desktop" around the place,
|
||||
* which is the EWMH's name for the same thing.) Only one workspace
|
||||
* of a screen may be active at once; all windows on all other workspaces
|
||||
* are unmapped.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "screen-private.h"
|
||||
#include <meta/workspace.h>
|
||||
|
@@ -23,7 +23,7 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \file atomnames.h A list of atom names.
|
||||
*
|
||||
* This is a list of the names of all the X atoms that Mutter uses.
|
||||
|
@@ -22,6 +22,13 @@ typedef struct _MetaBarrierPrivate MetaBarrierPrivate;
|
||||
|
||||
typedef struct _MetaBarrierEvent MetaBarrierEvent;
|
||||
|
||||
/**
|
||||
* MetaBarrier:
|
||||
*
|
||||
* The <structname>MetaBarrier</structname> structure contains
|
||||
* only private data and should be accessed using the provided API
|
||||
*
|
||||
**/
|
||||
struct _MetaBarrier
|
||||
{
|
||||
GObject parent;
|
||||
@@ -29,8 +36,15 @@ struct _MetaBarrier
|
||||
MetaBarrierPrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaBarrierClass:
|
||||
*
|
||||
* The <structname>MetaBarrierClass</structname> structure contains only
|
||||
* private data.
|
||||
*/
|
||||
struct _MetaBarrierClass
|
||||
{
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
@@ -41,6 +55,14 @@ void meta_barrier_destroy (MetaBarrier *barrier);
|
||||
void meta_barrier_release (MetaBarrier *barrier,
|
||||
MetaBarrierEvent *event);
|
||||
|
||||
/**
|
||||
* MetaBarrierDirection:
|
||||
* @META_BARRIER_DIRECTION_POSITIVE_X: Positive direction in the X axis
|
||||
* @META_BARRIER_DIRECTION_POSITIVE_Y: Positive direction in the Y axis
|
||||
* @META_BARRIER_DIRECTION_NEGATIVE_X: Negative direction in the X axis
|
||||
* @META_BARRIER_DIRECTION_NEGATIVE_Y: Negative direction in the Y axis
|
||||
*/
|
||||
|
||||
/* Keep in sync with XFixes */
|
||||
typedef enum {
|
||||
META_BARRIER_DIRECTION_POSITIVE_X = 1 << 0,
|
||||
|
@@ -29,6 +29,13 @@
|
||||
|
||||
#define META_TYPE_RECTANGLE (meta_rectangle_get_type ())
|
||||
|
||||
/**
|
||||
* MetaRectangle:
|
||||
* @x: X coordinate of the top-left corner
|
||||
* @y: Y coordinate of the top-left corner
|
||||
* @width: Width of the rectangle
|
||||
* @height: Height of the rectangle
|
||||
*/
|
||||
typedef struct _MetaRectangle MetaRectangle;
|
||||
struct _MetaRectangle
|
||||
{
|
||||
@@ -38,6 +45,11 @@ struct _MetaRectangle
|
||||
int height;
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaStrut:
|
||||
* @rect: #MetaRectangle the #MetaStrut is on
|
||||
* @side: #MetaSide the #MetaStrut is on
|
||||
*/
|
||||
typedef struct _MetaStrut MetaStrut;
|
||||
struct _MetaStrut
|
||||
{
|
||||
@@ -45,6 +57,12 @@ struct _MetaStrut
|
||||
MetaSide side;
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaEdgeType:
|
||||
* @META_EDGE_WINDOW: Whether the edge belongs to a window
|
||||
* @META_EDGE_MONITOR: Whether the edge belongs to a monitor
|
||||
* @META_EDGE_SCREEN: Whether the edge belongs to a screen
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_EDGE_WINDOW,
|
||||
@@ -52,6 +70,12 @@ typedef enum
|
||||
META_EDGE_SCREEN
|
||||
} MetaEdgeType;
|
||||
|
||||
/**
|
||||
* MetaEdge:
|
||||
* @rect: #MetaRectangle with the bounds of the edge
|
||||
* @side_type: Side
|
||||
* @edge_type: To what belongs the edge
|
||||
*/
|
||||
typedef struct _MetaEdge MetaEdge;
|
||||
struct _MetaEdge
|
||||
{
|
||||
|
@@ -1,7 +1,6 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Mutter common types shared by core.h and ui.h
|
||||
*
|
||||
/*
|
||||
* PLEASE KEEP IN SYNC WITH GSETTINGS SCHEMAS!
|
||||
*/
|
||||
|
||||
@@ -35,12 +34,38 @@
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/**
|
||||
* SECTION:common
|
||||
* @Title: Common
|
||||
* @Short_Description: Mutter common types
|
||||
*/
|
||||
|
||||
/* This is set in stone and also hard-coded in GDK. */
|
||||
#define META_VIRTUAL_CORE_POINTER_ID 2
|
||||
#define META_VIRTUAL_CORE_KEYBOARD_ID 3
|
||||
|
||||
typedef struct _MetaResizePopup MetaResizePopup;
|
||||
|
||||
/**
|
||||
* MetaFrameFlags:
|
||||
* @META_FRAME_ALLOWS_DELETE: frame allows delete
|
||||
* @META_FRAME_ALLOWS_MENU: frame allows menu
|
||||
* @META_FRAME_ALLOWS_MINIMIZE: frame allows minimize
|
||||
* @META_FRAME_ALLOWS_MAXIMIZE: frame allows maximize
|
||||
* @META_FRAME_ALLOWS_VERTICAL_RESIZE: frame allows vertical resize
|
||||
* @META_FRAME_ALLOWS_HORIZONTAL_RESIZE: frame allows horizontal resize
|
||||
* @META_FRAME_HAS_FOCUS: frame has focus
|
||||
* @META_FRAME_SHADED: frame is shaded
|
||||
* @META_FRAME_STUCK: frame is stuck
|
||||
* @META_FRAME_MAXIMIZED: frame is maximized
|
||||
* @META_FRAME_ALLOWS_SHADE: frame allows shade
|
||||
* @META_FRAME_ALLOWS_MOVE: frame allows move
|
||||
* @META_FRAME_FULLSCREEN: frame allows fullscreen
|
||||
* @META_FRAME_IS_FLASHING: frame is flashing
|
||||
* @META_FRAME_ABOVE: frame is above
|
||||
* @META_FRAME_TILED_LEFT: frame is tiled to the left
|
||||
* @META_FRAME_TILED_RIGHT: frame is tiled to the right
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_FRAME_ALLOWS_DELETE = 1 << 0,
|
||||
@@ -62,6 +87,28 @@ typedef enum
|
||||
META_FRAME_TILED_RIGHT = 1 << 16
|
||||
} MetaFrameFlags;
|
||||
|
||||
/**
|
||||
* MetaMenuOp:
|
||||
* @META_MENU_OP_NONE: No menu operation
|
||||
* @META_MENU_OP_DELETE: Menu operation delete
|
||||
* @META_MENU_OP_MINIMIZE: Menu operation minimize
|
||||
* @META_MENU_OP_UNMAXIMIZE: Menu operation unmaximize
|
||||
* @META_MENU_OP_MAXIMIZE: Menu operation maximize
|
||||
* @META_MENU_OP_UNSHADE: Menu operation unshade
|
||||
* @META_MENU_OP_SHADE: Menu operation shade
|
||||
* @META_MENU_OP_UNSTICK: Menu operation unstick
|
||||
* @META_MENU_OP_STICK: Menu operation stick
|
||||
* @META_MENU_OP_WORKSPACES: Menu operation workspaces
|
||||
* @META_MENU_OP_MOVE: Menu operation move
|
||||
* @META_MENU_OP_RESIZE: Menu operation resize
|
||||
* @META_MENU_OP_ABOVE: Menu operation above
|
||||
* @META_MENU_OP_UNABOVE: Menu operation unabove
|
||||
* @META_MENU_OP_MOVE_LEFT: Menu operation left
|
||||
* @META_MENU_OP_MOVE_RIGHT: Menu operation right
|
||||
* @META_MENU_OP_MOVE_UP: Menu operation up
|
||||
* @META_MENU_OP_MOVE_DOWN: Menu operation down
|
||||
* @META_MENU_OP_RECOVER: Menu operation recover
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_MENU_OP_NONE = 0,
|
||||
@@ -95,6 +142,49 @@ typedef void (* MetaWindowMenuFunc) (MetaWindowMenu *menu,
|
||||
int workspace,
|
||||
gpointer user_data);
|
||||
|
||||
/**
|
||||
* MetaGrabOp:
|
||||
* @META_GRAB_OP_NONE: None
|
||||
* @META_GRAB_OP_MOVING: Moving with pointer
|
||||
* @META_GRAB_OP_RESIZING_SE: Resizing SE with pointer
|
||||
* @META_GRAB_OP_RESIZING_S: Resizing S with pointer
|
||||
* @META_GRAB_OP_RESIZING_SW: Resizing SW with pointer
|
||||
* @META_GRAB_OP_RESIZING_N: Resizing N with pointer
|
||||
* @META_GRAB_OP_RESIZING_NE: Resizing NE with pointer
|
||||
* @META_GRAB_OP_RESIZING_NW: Resizing NW with pointer
|
||||
* @META_GRAB_OP_RESIZING_W: Resizing W with pointer
|
||||
* @META_GRAB_OP_RESIZING_E: Resizing E with pointer
|
||||
* @META_GRAB_OP_KEYBOARD_MOVING: Moving with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN: Resizing with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_S: Resizing S with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_N: Resizing N with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_W: Resizing W with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_E: Resizing E with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_SE: Resizing SE with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_NE: Resizing NE with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_SW: Resizing SW with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_RESIZING_NW: Resizing NS with keyboard
|
||||
* @META_GRAB_OP_KEYBOARD_TABBING_NORMAL: Tabbing
|
||||
* @META_GRAB_OP_KEYBOARD_TABBING_DOCK: Tabbing through docks
|
||||
* @META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL: Escaping
|
||||
* @META_GRAB_OP_KEYBOARD_ESCAPING_DOCK: Escaping through docks
|
||||
* @META_GRAB_OP_KEYBOARD_ESCAPING_GROUP: Escaping through groups
|
||||
* @META_GRAB_OP_KEYBOARD_TABBING_GROUP: Tabbing through groups
|
||||
* @META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING: Switch to another workspace
|
||||
* @META_GRAB_OP_CLICKING_MINIMIZE: Clicked minimize button
|
||||
* @META_GRAB_OP_CLICKING_MAXIMIZE: Clicked maximize button
|
||||
* @META_GRAB_OP_CLICKING_UNMAXIMIZE: Clicked unmaximize button
|
||||
* @META_GRAB_OP_CLICKING_DELETE: Clicked delete button
|
||||
* @META_GRAB_OP_CLICKING_MENU: Clicked on menu
|
||||
* @META_GRAB_OP_CLICKING_SHADE: Clicked shade button
|
||||
* @META_GRAB_OP_CLICKING_UNSHADE: Clicked unshade button
|
||||
* @META_GRAB_OP_CLICKING_ABOVE: Clicked above button
|
||||
* @META_GRAB_OP_CLICKING_UNABOVE: Clicked unabove button
|
||||
* @META_GRAB_OP_CLICKING_STICK: Clicked stick button
|
||||
* @META_GRAB_OP_CLICKING_UNSTICK: Clicked unstick button
|
||||
* @META_GRAB_OP_COMPOSITOR: Compositor asked for grab
|
||||
*/
|
||||
|
||||
/* when changing this enum, there are various switch statements
|
||||
* you have to update
|
||||
*/
|
||||
@@ -157,6 +247,20 @@ typedef enum
|
||||
META_GRAB_OP_COMPOSITOR
|
||||
} MetaGrabOp;
|
||||
|
||||
/**
|
||||
* MetaCursor:
|
||||
* @META_CURSOR_DEFAULT: Default cursor
|
||||
* @META_CURSOR_NORTH_RESIZE: Resize northern edge cursor
|
||||
* @META_CURSOR_SOUTH_RESIZE: Resize southern edge cursor
|
||||
* @META_CURSOR_WEST_RESIZE: Resize western edge cursor
|
||||
* @META_CURSOR_EAST_RESIZE: Resize eastern edge cursor
|
||||
* @META_CURSOR_SE_RESIZE: Resize south-eastern corner cursor
|
||||
* @META_CURSOR_SW_RESIZE: Resize south-western corner cursor
|
||||
* @META_CURSOR_NE_RESIZE: Resize north-eastern corner cursor
|
||||
* @META_CURSOR_NW_RESIZE: Resize north-western corner cursor
|
||||
* @META_CURSOR_MOVE_OR_RESIZE_WINDOW: Move or resize cursor
|
||||
* @META_CURSOR_BUSY: Busy cursor
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_CURSOR_DEFAULT,
|
||||
@@ -173,6 +277,17 @@ typedef enum
|
||||
|
||||
} MetaCursor;
|
||||
|
||||
/**
|
||||
* MetaFrameType:
|
||||
* @META_FRAME_TYPE_NORMAL: Normal frame
|
||||
* @META_FRAME_TYPE_DIALOG: Dialog frame
|
||||
* @META_FRAME_TYPE_MODAL_DIALOG: Modal dialog frame
|
||||
* @META_FRAME_TYPE_UTILITY: Utility frame
|
||||
* @META_FRAME_TYPE_MENU: Menu frame
|
||||
* @META_FRAME_TYPE_BORDER: Border frame
|
||||
* @META_FRAME_TYPE_ATTACHED: Attached frame
|
||||
* @META_FRAME_TYPE_LAST: Marks the end of the #MetaFrameType enumeration
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_FRAME_TYPE_NORMAL,
|
||||
@@ -185,6 +300,19 @@ typedef enum
|
||||
META_FRAME_TYPE_LAST
|
||||
} MetaFrameType;
|
||||
|
||||
/**
|
||||
* MetaVirtualModifier:
|
||||
* @META_VIRTUAL_SHIFT_MASK: Shift mask
|
||||
* @META_VIRTUAL_CONTROL_MASK: Control mask
|
||||
* @META_VIRTUAL_ALT_MASK: Alt mask
|
||||
* @META_VIRTUAL_META_MASK: Meta mask
|
||||
* @META_VIRTUAL_SUPER_MASK: Super mask
|
||||
* @META_VIRTUAL_HYPER_MASK: Hyper mask
|
||||
* @META_VIRTUAL_MOD2_MASK: Mod2 mask
|
||||
* @META_VIRTUAL_MOD3_MASK: Mod3 mask
|
||||
* @META_VIRTUAL_MOD4_MASK: Mod4 mask
|
||||
* @META_VIRTUAL_MOD5_MASK: Mod5 mask
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
/* Create gratuitous divergence from regular
|
||||
@@ -202,6 +330,18 @@ typedef enum
|
||||
META_VIRTUAL_MOD5_MASK = 1 << 14
|
||||
} MetaVirtualModifier;
|
||||
|
||||
/**
|
||||
* MetaDirection:
|
||||
* @META_DIRECTION_LEFT: Left
|
||||
* @META_DIRECTION_RIGHT: Right
|
||||
* @META_DIRECTION_TOP: Top
|
||||
* @META_DIRECTION_BOTTOM: Bottom
|
||||
* @META_DIRECTION_UP: Up
|
||||
* @META_DIRECTION_DOWN: Down
|
||||
* @META_DIRECTION_HORIZONTAL: Horizontal
|
||||
* @META_DIRECTION_VERTICAL: Vertical
|
||||
*/
|
||||
|
||||
/* Relative directions or sides seem to come up all over the place... */
|
||||
/* FIXME: Replace
|
||||
* screen.[ch]:MetaScreenDirection,
|
||||
@@ -224,6 +364,18 @@ typedef enum
|
||||
META_DIRECTION_VERTICAL = META_DIRECTION_UP | META_DIRECTION_DOWN,
|
||||
} MetaDirection;
|
||||
|
||||
/**
|
||||
* MetaMotionDirection:
|
||||
* @META_MOTION_UP: Upwards motion
|
||||
* @META_MOTION_DOWN: Downwards motion
|
||||
* @META_MOTION_LEFT: Motion to the left
|
||||
* @META_MOTION_RIGHT: Motion to the right
|
||||
* @META_MOTION_UP_LEFT: Motion up and to the left
|
||||
* @META_MOTION_UP_RIGHT: Motion up and to the right
|
||||
* @META_MOTION_DOWN_LEFT: Motion down and to the left
|
||||
* @META_MOTION_DOWN_RIGHT: Motion down and to the right
|
||||
*/
|
||||
|
||||
/* Negative to avoid conflicting with real workspace
|
||||
* numbers
|
||||
*/
|
||||
@@ -240,6 +392,14 @@ typedef enum
|
||||
META_MOTION_DOWN_RIGHT = -8
|
||||
} MetaMotionDirection;
|
||||
|
||||
/**
|
||||
* MetaSide:
|
||||
* @META_SIDE_LEFT: Left side
|
||||
* @META_SIDE_RIGHT: Right side
|
||||
* @META_SIDE_TOP: Top side
|
||||
* @META_SIDE_BOTTOM: Bottom side
|
||||
*/
|
||||
|
||||
/* Sometimes we want to talk about sides instead of directions; note
|
||||
* that the values must be as follows or meta_window_update_struts()
|
||||
* won't work. Using these values also is a safety blanket since
|
||||
@@ -253,7 +413,21 @@ typedef enum
|
||||
META_SIDE_BOTTOM = META_DIRECTION_BOTTOM
|
||||
} MetaSide;
|
||||
|
||||
/* Function a window button can have. Note, you can't add stuff here
|
||||
/**
|
||||
* MetaButtonFunction:
|
||||
* @META_BUTTON_FUNCTION_MENU: Menu
|
||||
* @META_BUTTON_FUNCTION_MINIMIZE: Minimize
|
||||
* @META_BUTTON_FUNCTION_MAXIMIZE: Maximize
|
||||
* @META_BUTTON_FUNCTION_CLOSE: Close
|
||||
* @META_BUTTON_FUNCTION_SHADE: Shade
|
||||
* @META_BUTTON_FUNCTION_ABOVE: Above
|
||||
* @META_BUTTON_FUNCTION_STICK: Stick
|
||||
* @META_BUTTON_FUNCTION_UNSHADE: Unshade
|
||||
* @META_BUTTON_FUNCTION_UNABOVE: Unabove
|
||||
* @META_BUTTON_FUNCTION_UNSTICK: Unstick
|
||||
* @META_BUTTON_FUNCTION_LAST: Marks the end of the #MetaButtonFunction enumeration
|
||||
*
|
||||
* Function a window button can have. Note, you can't add stuff here
|
||||
* without extending the theme format to draw a new function and
|
||||
* breaking all existing themes.
|
||||
*/
|
||||
@@ -294,6 +468,12 @@ struct _MetaButtonLayout
|
||||
gboolean right_buttons_has_spacer[MAX_BUTTONS_PER_CORNER];
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaFrameBorders:
|
||||
* @visible: inner visible portion of frame border
|
||||
* @invisible: outer invisible portion of frame border
|
||||
* @total: sum of the two borders above
|
||||
*/
|
||||
typedef struct _MetaFrameBorders MetaFrameBorders;
|
||||
struct _MetaFrameBorders
|
||||
{
|
||||
@@ -379,6 +559,16 @@ void meta_frame_borders_clear (MetaFrameBorders *self);
|
||||
|
||||
/**
|
||||
* MetaStackLayer:
|
||||
* @META_LAYER_DESKTOP: Desktop layer
|
||||
* @META_LAYER_BOTTOM: Bottom layer
|
||||
* @META_LAYER_NORMAL: Normal layer
|
||||
* @META_LAYER_TOP: Top layer
|
||||
* @META_LAYER_DOCK: Dock layer
|
||||
* @META_LAYER_FULLSCREEN: Fullscreen layer
|
||||
* @META_LAYER_FOCUSED_WINDOW: Focused window layer
|
||||
* @META_LAYER_OVERRIDE_REDIRECT: Override-redirect layer
|
||||
* @META_LAYER_LAST: Marks the end of the #MetaStackLayer enumeration
|
||||
*
|
||||
* Layers a window can be in.
|
||||
* These MUST be in the order of stacking.
|
||||
*/
|
||||
|
@@ -75,52 +75,6 @@ gboolean meta_compositor_filter_keybinding (MetaCompositor *compositor,
|
||||
MetaScreen *screen,
|
||||
MetaKeyBinding *binding);
|
||||
|
||||
/* At a high-level, a window is not-visible or visible. When a
|
||||
* window is added (with add_window()) it is not visible.
|
||||
* show_window() indicates a transition from not-visible to
|
||||
* visible. Some of the reasons for this:
|
||||
*
|
||||
* - Window newly created
|
||||
* - Window is unminimized
|
||||
* - Window is moved to the current desktop
|
||||
* - Window was made sticky
|
||||
*
|
||||
* hide_window() indicates that the window has transitioned from
|
||||
* visible to not-visible. Some reasons include:
|
||||
*
|
||||
* - Window was destroyed
|
||||
* - Window is minimized
|
||||
* - Window is moved to a different desktop
|
||||
* - Window no longer sticky.
|
||||
*
|
||||
* Note that combinations are possible - a window might have first
|
||||
* been minimized and then moved to a different desktop. The
|
||||
* 'effect' parameter to show_window() and hide_window() is a hint
|
||||
* as to the appropriate effect to show the user and should not
|
||||
* be considered to be indicative of a state change.
|
||||
*
|
||||
* When the active workspace is changed, switch_workspace() is called
|
||||
* first, then show_window() and hide_window() are called individually
|
||||
* for each window affected, with an effect of META_COMP_EFFECT_NONE.
|
||||
* If hiding windows will affect the switch workspace animation, the
|
||||
* compositor needs to delay hiding the windows until the switch
|
||||
* workspace animation completes.
|
||||
*
|
||||
* maximize_window() and unmaximize_window() are transitions within
|
||||
* the visible state. The window is resized *before* the call, so
|
||||
* it may be necessary to readjust the display based on the old_rect
|
||||
* to start the animation.
|
||||
*
|
||||
* window_mapped() and window_unmapped() are notifications when the
|
||||
* toplevel window (frame or client window) is mapped or unmapped.
|
||||
* That is, when the result of meta_window_toplevel_is_mapped()
|
||||
* changes. The main use of this is to drop resources when a window
|
||||
* is unmapped. A window will always be mapped before show_window()
|
||||
* is called and will not be unmapped until after hide_window() is
|
||||
* called. If the live_hidden_windows preference is set, windows will
|
||||
* never be unmapped.
|
||||
*/
|
||||
|
||||
void meta_compositor_add_window (MetaCompositor *compositor,
|
||||
MetaWindow *window);
|
||||
void meta_compositor_remove_window (MetaCompositor *compositor,
|
||||
|
@@ -29,6 +29,13 @@
|
||||
#include <meta/prefs.h>
|
||||
#include <meta/common.h>
|
||||
|
||||
/**
|
||||
* MetaTabList:
|
||||
* @META_TAB_LIST_NORMAL: Normal windows
|
||||
* @META_TAB_LIST_DOCKS: Dock windows
|
||||
* @META_TAB_LIST_GROUP: Groups
|
||||
* @META_TAB_LIST_NORMAL_ALL: All windows
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_TAB_LIST_NORMAL,
|
||||
@@ -37,6 +44,11 @@ typedef enum
|
||||
META_TAB_LIST_NORMAL_ALL
|
||||
} MetaTabList;
|
||||
|
||||
/**
|
||||
* MetaTabShowType:
|
||||
* @META_TAB_SHOW_ICON: Show icon (Alt-Tab mode)
|
||||
* @META_TAB_SHOW_INSTANTLY: Show instantly (Alt-Esc mode)
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_TAB_SHOW_ICON, /* Alt-Tab mode */
|
||||
@@ -56,14 +68,6 @@ GType meta_display_get_type (void) G_GNUC_CONST;
|
||||
|
||||
#define meta_XFree(p) do { if ((p)) XFree ((p)); } while (0)
|
||||
|
||||
typedef enum
|
||||
{
|
||||
META_ATOM_FIRST = 0,
|
||||
#define item(x) META_ATOM_##x,
|
||||
#include "atomnames.h"
|
||||
#undef item
|
||||
}MetaAtom;
|
||||
|
||||
void meta_display_get_compositor_version (MetaDisplay *display,
|
||||
int *major,
|
||||
int *minor);
|
||||
@@ -84,7 +88,6 @@ gboolean meta_display_xwindow_is_a_no_focus_window (MetaDisplay *display,
|
||||
|
||||
int meta_display_get_damage_event_base (MetaDisplay *display);
|
||||
int meta_display_get_shape_event_base (MetaDisplay *display);
|
||||
Atom meta_display_get_atom (MetaDisplay *display, MetaAtom meta_atom);
|
||||
|
||||
gboolean meta_display_xserver_time_is_before (MetaDisplay *display,
|
||||
guint32 time1,
|
||||
@@ -184,4 +187,12 @@ void meta_display_unmanage_screen (MetaDisplay *display,
|
||||
|
||||
void meta_display_clear_mouse_mode (MetaDisplay *display);
|
||||
|
||||
void meta_display_grab_keyboard (MetaDisplay *display,
|
||||
guint32 timestamp);
|
||||
void meta_display_ungrab_keyboard (MetaDisplay *display,
|
||||
guint32 timestamp);
|
||||
void meta_display_freeze_keyboard (MetaDisplay *display,
|
||||
guint32 timestamp);
|
||||
void meta_display_unfreeze_keyboard (MetaDisplay *display,
|
||||
guint32 timestamp);
|
||||
#endif
|
||||
|
@@ -27,6 +27,14 @@
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
#include <gdk/gdk.h>
|
||||
|
||||
/**
|
||||
* MetaGradientType:
|
||||
* @META_GRADIENT_VERTICAL: Vertical gradient
|
||||
* @META_GRADIENT_HORIZONTAL: Horizontal gradient
|
||||
* @META_GRADIENT_DIAGONAL: Diagonal gradient
|
||||
* @META_GRADIENT_LAST: Marks the end of the #MetaGradientType enumeration
|
||||
*
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_GRADIENT_VERTICAL,
|
||||
|
@@ -35,6 +35,11 @@ gboolean meta_get_replace_current_wm (void); /* Actually defined in util
|
||||
void meta_set_wm_name (const char *wm_name);
|
||||
void meta_set_gnome_wm_keybindings (const char *wm_keybindings);
|
||||
|
||||
/**
|
||||
* MetaExitCode:
|
||||
* @META_EXIT_SUCCESS: Success
|
||||
* @META_EXIT_ERROR: Error
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_EXIT_SUCCESS,
|
||||
|
@@ -52,6 +52,7 @@ typedef struct _MetaBackgroundActorPrivate MetaBackgroundActorPrivate;
|
||||
|
||||
struct _MetaBackgroundActorClass
|
||||
{
|
||||
/*< private >*/
|
||||
ClutterActorClass parent_class;
|
||||
};
|
||||
|
||||
|
@@ -5,17 +5,6 @@
|
||||
|
||||
#include <clutter/clutter.h>
|
||||
|
||||
/**
|
||||
* MetaBackgroundGroup:
|
||||
*
|
||||
* This class is a subclass of ClutterGroup with special handling for
|
||||
* MetaBackgroundActor when painting the group. It makes sure to only
|
||||
* draw the parts of the backgrounds not occluded by opaque windows.
|
||||
*
|
||||
* See #MetaWindowGroup for more information behind the motivation,
|
||||
* and details on implementation.
|
||||
*/
|
||||
|
||||
#define META_TYPE_BACKGROUND_GROUP (meta_background_group_get_type ())
|
||||
#define META_BACKGROUND_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_BACKGROUND_GROUP, MetaBackgroundGroup))
|
||||
#define META_BACKGROUND_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_BACKGROUND_GROUP, MetaBackgroundGroupClass))
|
||||
@@ -29,12 +18,14 @@ typedef struct _MetaBackgroundGroupPrivate MetaBackgroundGroupPrivate;
|
||||
|
||||
struct _MetaBackgroundGroupClass
|
||||
{
|
||||
ClutterGroupClass parent_class;
|
||||
/*< private >*/
|
||||
ClutterActorClass parent_class;
|
||||
};
|
||||
|
||||
struct _MetaBackgroundGroup
|
||||
{
|
||||
ClutterGroup parent;
|
||||
/*< private >*/
|
||||
ClutterActor parent;
|
||||
|
||||
MetaBackgroundGroupPrivate *priv;
|
||||
};
|
||||
|
@@ -52,24 +52,27 @@ typedef struct _MetaBackgroundPrivate MetaBackgroundPrivate;
|
||||
|
||||
/**
|
||||
* MetaBackgroundEffects:
|
||||
* @META_BACKGROUND_EFFECTS_NONE: No effect
|
||||
* @META_BACKGROUND_EFFECTS_VIGNETTE: Vignette
|
||||
*
|
||||
* Which effects to enable on the background
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
META_BACKGROUND_EFFECTS_NONE = 0,
|
||||
META_BACKGROUND_EFFECTS_DESATURATE = 1 << 0,
|
||||
META_BACKGROUND_EFFECTS_BLUR = 1 << 1,
|
||||
META_BACKGROUND_EFFECTS_VIGNETTE = 1 << 2,
|
||||
META_BACKGROUND_EFFECTS_VIGNETTE = 1 << 1,
|
||||
} MetaBackgroundEffects;
|
||||
|
||||
struct _MetaBackgroundClass
|
||||
{
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
struct _MetaBackground
|
||||
{
|
||||
/*< private >*/
|
||||
GObject parent;
|
||||
|
||||
MetaBackgroundPrivate *priv;
|
||||
|
@@ -52,15 +52,59 @@ struct _MetaPlugin
|
||||
MetaPluginPrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaPluginClass:
|
||||
* @start: virtual function called when the compositor starts managing a screen
|
||||
* @minimize: virtual function called when a window is minimized
|
||||
* @maximize: virtual function called when a window is maximized
|
||||
* @unmaximize: virtual function called when a window is unmaximized
|
||||
* @map: virtual function called when a window is mapped
|
||||
* @destroy: virtual function called when a window is destroyed
|
||||
* @switch_workspace: virtual function called when the user switches to another
|
||||
* workspace
|
||||
* @kill_window_effects: virtual function called when the effects on a window
|
||||
* need to be killed prematurely; the plugin must call the completed() callback
|
||||
* as if the effect terminated naturally
|
||||
* @kill_switch_workspace: virtual function called when the workspace-switching
|
||||
* effect needs to be killed prematurely
|
||||
* @xevent_filter: virtual function called when handling each event
|
||||
* @keybinding_filter: virtual function called when handling each keybinding
|
||||
* @plugin_info: virtual function that returns information about the
|
||||
* #MetaPlugin
|
||||
*/
|
||||
struct _MetaPluginClass
|
||||
{
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
|
||||
/*< public >*/
|
||||
|
||||
/**
|
||||
* MetaPluginClass::start:
|
||||
*
|
||||
* Virtual function called when the compositor starts managing a screen
|
||||
*/
|
||||
void (*start) (MetaPlugin *plugin);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::minimize:
|
||||
* @actor: a #MetaWindowActor
|
||||
*
|
||||
* Virtual function called when the window represented by @actor is minimized.
|
||||
*/
|
||||
void (*minimize) (MetaPlugin *plugin,
|
||||
MetaWindowActor *actor);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::maximize:
|
||||
* @actor: a #MetaWindowActor
|
||||
* @x: target X coordinate
|
||||
* @y: target Y coordinate
|
||||
* @width: target width
|
||||
* @height: target height
|
||||
*
|
||||
* Virtual function called when the window represented by @actor is maximized.
|
||||
*/
|
||||
void (*maximize) (MetaPlugin *plugin,
|
||||
MetaWindowActor *actor,
|
||||
gint x,
|
||||
@@ -68,6 +112,16 @@ struct _MetaPluginClass
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::unmaximize:
|
||||
* @actor: a #MetaWindowActor
|
||||
* @x: target X coordinate
|
||||
* @y: target Y coordinate
|
||||
* @width: target width
|
||||
* @height: target height
|
||||
*
|
||||
* Virtual function called when the window represented by @actor is unmaximized.
|
||||
*/
|
||||
void (*unmaximize) (MetaPlugin *plugin,
|
||||
MetaWindowActor *actor,
|
||||
gint x,
|
||||
@@ -75,42 +129,101 @@ struct _MetaPluginClass
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::map:
|
||||
* @actor: a #MetaWindowActor
|
||||
*
|
||||
* Virtual function called when the window represented by @actor is mapped.
|
||||
*/
|
||||
void (*map) (MetaPlugin *plugin,
|
||||
MetaWindowActor *actor);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::destroy:
|
||||
* @actor: a #MetaWindowActor
|
||||
*
|
||||
* Virtual function called when the window represented by @actor is destroyed.
|
||||
*/
|
||||
void (*destroy) (MetaPlugin *plugin,
|
||||
MetaWindowActor *actor);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::switch_workspace:
|
||||
* @from: origin workspace
|
||||
* @to: destination workspace
|
||||
* @direction: a #MetaMotionDirection
|
||||
*
|
||||
* Virtual function called when the window represented by @actor is destroyed.
|
||||
*/
|
||||
void (*switch_workspace) (MetaPlugin *plugin,
|
||||
gint from,
|
||||
gint to,
|
||||
MetaMotionDirection direction);
|
||||
|
||||
/*
|
||||
* Called if an effects should be killed prematurely; the plugin must
|
||||
* call the completed() callback as if the effect terminated naturally.
|
||||
|
||||
/**
|
||||
* MetaPluginClass::kill_window_effects:
|
||||
* @actor: a #MetaWindowActor
|
||||
*
|
||||
* Virtual function called when the effects on @actor need to be killed
|
||||
* prematurely; the plugin must call the completed() callback as if the effect
|
||||
* terminated naturally.
|
||||
*/
|
||||
void (*kill_window_effects) (MetaPlugin *plugin,
|
||||
MetaWindowActor *actor);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::kill_switch_workspace:
|
||||
*
|
||||
* Virtual function called when the workspace-switching effect needs to be
|
||||
* killed prematurely.
|
||||
*/
|
||||
void (*kill_switch_workspace) (MetaPlugin *plugin);
|
||||
|
||||
/* General XEvent filter. This is fired *before* meta itself handles
|
||||
* an event. Return TRUE to block any further processing.
|
||||
*/
|
||||
/**
|
||||
* MetaPluginClass::xevent_filter:
|
||||
* @event: (type xlib.XEvent):
|
||||
*
|
||||
* Virtual function called when handling each event.
|
||||
*
|
||||
* Returns: %TRUE if the plugin handled the event type (i.e., if the return
|
||||
* value is %FALSE, there will be no subsequent call to the manager
|
||||
* completed() callback, and the compositor must ensure that any appropriate
|
||||
* post-effect cleanup is carried out.
|
||||
*/
|
||||
gboolean (*xevent_filter) (MetaPlugin *plugin,
|
||||
XEvent *event);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::keybinding_filter:
|
||||
* @binding: a #MetaKeyBinding
|
||||
*
|
||||
* Virtual function called when handling each keybinding.
|
||||
*
|
||||
* Returns: %TRUE if the plugin handled the keybinding.
|
||||
*/
|
||||
gboolean (*keybinding_filter) (MetaPlugin *plugin,
|
||||
MetaKeyBinding *binding);
|
||||
|
||||
/**
|
||||
* MetaPluginClass::plugin_info:
|
||||
* @plugin: a #MetaPlugin
|
||||
*
|
||||
* Virtual function that returns information about the #MetaPlugin.
|
||||
*
|
||||
* Returns: a #MetaPluginInfo.
|
||||
*/
|
||||
const MetaPluginInfo * (*plugin_info) (MetaPlugin *plugin);
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaPluginInfo:
|
||||
* @name: name of the plugin
|
||||
* @version: version of the plugin
|
||||
* @author: author of the plugin
|
||||
* @license: license of the plugin
|
||||
* @description: description of the plugin
|
||||
*/
|
||||
struct _MetaPluginInfo
|
||||
{
|
||||
const gchar *name;
|
||||
@@ -127,6 +240,13 @@ gboolean meta_plugin_debug_mode (MetaPlugin *plugin);
|
||||
|
||||
const MetaPluginInfo * meta_plugin_get_info (MetaPlugin *plugin);
|
||||
|
||||
/**
|
||||
* MetaPluginVersion:
|
||||
* @version_major: major component of the version number of Meta with which the plugin was compiled
|
||||
* @version_minor: minor component of the version number of Meta with which the plugin was compiled
|
||||
* @version_micro: micro component of the version number of Meta with which the plugin was compiled
|
||||
* @version_api: version of the plugin API
|
||||
*/
|
||||
struct _MetaPluginVersion
|
||||
{
|
||||
/*
|
||||
|
@@ -29,8 +29,6 @@
|
||||
|
||||
/**
|
||||
* MetaShadowParams:
|
||||
* The #MetaShadowParams structure holds information about how to draw
|
||||
* a particular style of shadow.
|
||||
* @radius: the radius (gaussian standard deviation) of the shadow
|
||||
* @top_fade: if >= 0, the shadow doesn't extend above the top
|
||||
* of the shape, and fades out over the given number of pixels
|
||||
@@ -39,6 +37,9 @@
|
||||
* @y_offset: vertical offset of the shadow with respect to the
|
||||
* shape being shadowed, in pixels
|
||||
* @opacity: opacity of the shadow, from 0 to 255
|
||||
*
|
||||
* The #MetaShadowParams structure holds information about how to draw
|
||||
* a particular style of shadow.
|
||||
*/
|
||||
|
||||
typedef struct _MetaShadowParams MetaShadowParams;
|
||||
@@ -61,6 +62,7 @@ struct _MetaShadowParams
|
||||
|
||||
/**
|
||||
* MetaShadowFactory:
|
||||
*
|
||||
* #MetaShadowFactory is used to create window shadows. It caches shadows internally
|
||||
* so that multiple shadows created for the same shape with the same radius will
|
||||
* share the same MetaShadow.
|
||||
|
@@ -44,11 +44,19 @@ typedef struct _MetaShapedTexturePrivate MetaShapedTexturePrivate;
|
||||
|
||||
struct _MetaShapedTextureClass
|
||||
{
|
||||
/*< private >*/
|
||||
ClutterActorClass parent_class;
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaShapedTexture:
|
||||
*
|
||||
* The <structname>MetaShapedTexture</structname> structure contains
|
||||
* only private data and should be accessed using the provided API
|
||||
*/
|
||||
struct _MetaShapedTexture
|
||||
{
|
||||
/*< private >*/
|
||||
ClutterActor parent;
|
||||
|
||||
MetaShapedTexturePrivate *priv;
|
||||
|
@@ -46,6 +46,7 @@ typedef struct _MetaWindowActorPrivate MetaWindowActorPrivate;
|
||||
|
||||
struct _MetaWindowActorClass
|
||||
{
|
||||
/*< private >*/
|
||||
ClutterActorClass parent_class;
|
||||
};
|
||||
|
||||
|
153
src/meta/prefs.h
153
src/meta/prefs.h
@@ -32,6 +32,44 @@
|
||||
#include <gdesktop-enums.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
/**
|
||||
* MetaPreference:
|
||||
* @META_PREF_MOUSE_BUTTON_MODS: mouse button modifiers
|
||||
* @META_PREF_FOCUS_MODE: focus mode
|
||||
* @META_PREF_FOCUS_NEW_WINDOWS: focus new windows
|
||||
* @META_PREF_ATTACH_MODAL_DIALOGS: attach modal dialogs
|
||||
* @META_PREF_RAISE_ON_CLICK: raise on click
|
||||
* @META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR: action double click titlebar
|
||||
* @META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR: action middle click titlebar
|
||||
* @META_PREF_ACTION_RIGHT_CLICK_TITLEBAR: action right click titlebar
|
||||
* @META_PREF_AUTO_RAISE: auto-raise
|
||||
* @META_PREF_AUTO_RAISE_DELAY: auto-raise delay
|
||||
* @META_PREF_FOCUS_CHANGE_ON_POINTER_REST: focus change on pointer rest
|
||||
* @META_PREF_THEME: theme
|
||||
* @META_PREF_TITLEBAR_FONT: title-bar font
|
||||
* @META_PREF_NUM_WORKSPACES: number of workspaces
|
||||
* @META_PREF_DYNAMIC_WORKSPACES: dynamic workspaces
|
||||
* @META_PREF_APPLICATION_BASED: application-based
|
||||
* @META_PREF_KEYBINDINGS: keybindings
|
||||
* @META_PREF_DISABLE_WORKAROUNDS: disable workarounds
|
||||
* @META_PREF_BUTTON_LAYOUT: button layout
|
||||
* @META_PREF_WORKSPACE_NAMES: workspace names
|
||||
* @META_PREF_VISUAL_BELL: visual bell
|
||||
* @META_PREF_AUDIBLE_BELL: audible bell
|
||||
* @META_PREF_VISUAL_BELL_TYPE: visual bell type
|
||||
* @META_PREF_GNOME_ACCESSIBILITY: GNOME accessibility
|
||||
* @META_PREF_GNOME_ANIMATIONS: GNOME animations
|
||||
* @META_PREF_CURSOR_THEME: cursor theme
|
||||
* @META_PREF_CURSOR_SIZE: cursor size
|
||||
* @META_PREF_RESIZE_WITH_RIGHT_BUTTON: resize with right button
|
||||
* @META_PREF_EDGE_TILING: edge tiling
|
||||
* @META_PREF_FORCE_FULLSCREEN: force fullscreen
|
||||
* @META_PREF_WORKSPACES_ONLY_ON_PRIMARY: workspaces only on primary
|
||||
* @META_PREF_NO_TAB_POPUP: no tab popup
|
||||
* @META_PREF_DRAGGABLE_BORDER_WIDTH: draggable border width
|
||||
* @META_PREF_AUTO_MAXIMIZE: auto-maximize
|
||||
*/
|
||||
|
||||
/* Keep in sync with GSettings schemas! */
|
||||
typedef enum
|
||||
{
|
||||
@@ -138,6 +176,93 @@ int meta_prefs_get_draggable_border_width (void);
|
||||
gboolean meta_prefs_get_ignore_request_hide_titlebar (void);
|
||||
void meta_prefs_set_ignore_request_hide_titlebar (gboolean whether);
|
||||
|
||||
/**
|
||||
* MetaKeyBindingAction:
|
||||
* @META_KEYBINDING_ACTION_NONE: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_1: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_2: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_3: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_4: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_5: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_6: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_7: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_8: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_9: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_10: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_11: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_12: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_LEFT: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_RIGHT: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_UP: FILLME
|
||||
* @META_KEYBINDING_ACTION_WORKSPACE_DOWN: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_APPLICATIONS: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_GROUP: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_WINDOWS: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_PANELS: FILLME
|
||||
* @META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_CYCLE_GROUP: FILLME
|
||||
* @META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_CYCLE_WINDOWS: FILLME
|
||||
* @META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_CYCLE_PANELS: FILLME
|
||||
* @META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD: FILLME
|
||||
* @META_KEYBINDING_ACTION_TAB_POPUP_SELECT: FILLME
|
||||
* @META_KEYBINDING_ACTION_TAB_POPUP_CANCEL: FILLME
|
||||
* @META_KEYBINDING_ACTION_SHOW_DESKTOP: FILLME
|
||||
* @META_KEYBINDING_ACTION_PANEL_MAIN_MENU: FILLME
|
||||
* @META_KEYBINDING_ACTION_PANEL_RUN_DIALOG: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_RECORDING: FILLME
|
||||
* @META_KEYBINDING_ACTION_SET_SPEW_MARK: FILLME
|
||||
* @META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_ABOVE: FILLME
|
||||
* @META_KEYBINDING_ACTION_MAXIMIZE: FILLME
|
||||
* @META_KEYBINDING_ACTION_UNMAXIMIZE: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_SHADED: FILLME
|
||||
* @META_KEYBINDING_ACTION_MINIMIZE: FILLME
|
||||
* @META_KEYBINDING_ACTION_CLOSE: FILLME
|
||||
* @META_KEYBINDING_ACTION_BEGIN_MOVE: FILLME
|
||||
* @META_KEYBINDING_ACTION_BEGIN_RESIZE: FILLME
|
||||
* @META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN: FILLME
|
||||
* @META_KEYBINDING_ACTION_RAISE_OR_LOWER: FILLME
|
||||
* @META_KEYBINDING_ACTION_RAISE: FILLME
|
||||
* @META_KEYBINDING_ACTION_LOWER: FILLME
|
||||
* @META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY: FILLME
|
||||
* @META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_N: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_S: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_E: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_W: FILLME
|
||||
* @META_KEYBINDING_ACTION_MOVE_TO_CENTER: FILLME
|
||||
* @META_KEYBINDING_ACTION_OVERLAY_KEY: FILLME
|
||||
* @META_KEYBINDING_ACTION_LAST: FILLME
|
||||
*/
|
||||
/* XXX FIXME This should be x-macroed, but isn't yet because it would be
|
||||
* difficult (or perhaps impossible) to add the suffixes using the current
|
||||
* system. It needs some more thought, perhaps after the current system
|
||||
@@ -228,10 +353,19 @@ typedef enum _MetaKeyBindingAction
|
||||
META_KEYBINDING_ACTION_MOVE_TO_SIDE_W,
|
||||
META_KEYBINDING_ACTION_MOVE_TO_CENTER,
|
||||
META_KEYBINDING_ACTION_OVERLAY_KEY,
|
||||
META_KEYBINDING_ACTION_ISO_NEXT_GROUP,
|
||||
|
||||
META_KEYBINDING_ACTION_LAST
|
||||
} MetaKeyBindingAction;
|
||||
|
||||
/**
|
||||
* MetaKeyBindingFlags:
|
||||
* @META_KEY_BINDING_NONE: none
|
||||
* @META_KEY_BINDING_PER_WINDOW: per-window
|
||||
* @META_KEY_BINDING_BUILTIN: built-in
|
||||
* @META_KEY_BINDING_REVERSES: reverses
|
||||
* @META_KEY_BINDING_IS_REVERSED: is reversed
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_KEY_BINDING_NONE,
|
||||
@@ -241,16 +375,28 @@ typedef enum
|
||||
META_KEY_BINDING_IS_REVERSED = 1 << 3
|
||||
} MetaKeyBindingFlags;
|
||||
|
||||
typedef struct
|
||||
/**
|
||||
* MetaKeyCombo:
|
||||
* @keysym: keysym
|
||||
* @keycode: keycode
|
||||
* @modifiers: modifiers
|
||||
*/
|
||||
typedef struct _MetaKeyCombo MetaKeyCombo;
|
||||
struct _MetaKeyCombo
|
||||
{
|
||||
unsigned int keysym;
|
||||
unsigned int keycode;
|
||||
MetaVirtualModifier modifiers;
|
||||
} MetaKeyCombo;
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaKeyHandlerFunc:
|
||||
* @event: (type gpointer):
|
||||
* @display: a #MetaDisplay
|
||||
* @screen: a #MetaScreen
|
||||
* @window: a #MetaWindow
|
||||
* @event: (type gpointer): a #XIDeviceEvent
|
||||
* @binding: a #MetaKeyBinding
|
||||
* @user_data: data passed to the function
|
||||
*
|
||||
*/
|
||||
typedef void (* MetaKeyHandlerFunc) (MetaDisplay *display,
|
||||
@@ -297,6 +443,7 @@ void meta_prefs_get_window_binding (const char *name,
|
||||
MetaVirtualModifier *modifiers);
|
||||
|
||||
void meta_prefs_get_overlay_binding (MetaKeyCombo *combo);
|
||||
char *meta_prefs_get_iso_next_group_option (void);
|
||||
|
||||
gboolean meta_prefs_get_visual_bell (void);
|
||||
gboolean meta_prefs_bell_is_audible (void);
|
||||
|
@@ -62,6 +62,7 @@ struct _MetaPreview
|
||||
|
||||
struct _MetaPreviewClass
|
||||
{
|
||||
/*< private >*/
|
||||
GtkBinClass parent_class;
|
||||
};
|
||||
|
||||
|
@@ -82,12 +82,22 @@ void meta_screen_get_monitor_geometry (MetaScreen *screen,
|
||||
int monitor,
|
||||
MetaRectangle *geometry);
|
||||
|
||||
gboolean meta_screen_get_monitor_in_fullscreen (MetaScreen *screen,
|
||||
int monitor);
|
||||
|
||||
int meta_screen_get_monitor_index_for_rect (MetaScreen *screen,
|
||||
MetaRectangle *rect);
|
||||
|
||||
void meta_screen_focus_default_window (MetaScreen *screen,
|
||||
guint32 timestamp);
|
||||
|
||||
/**
|
||||
* MetaScreenCorner:
|
||||
* @META_SCREEN_TOPLEFT: top-left corner
|
||||
* @META_SCREEN_TOPRIGHT: top-right corner
|
||||
* @META_SCREEN_BOTTOMLEFT: bottom-left corner
|
||||
* @META_SCREEN_BOTTOMRIGHT: bottom-right corner
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
META_SCREEN_TOPLEFT,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user