Compare commits
184 Commits
METACITY_2
...
METACITY_2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
806fa75a70 | ||
![]() |
1177b13338 | ||
![]() |
ea2d79fbfb | ||
![]() |
f60624ac5b | ||
![]() |
836a1f7b08 | ||
![]() |
a660fd3805 | ||
![]() |
d5cea091bf | ||
![]() |
0bd1727eab | ||
![]() |
8bd2822e69 | ||
![]() |
7a340792c9 | ||
![]() |
8e77d5b28d | ||
![]() |
8e79100b92 | ||
![]() |
18b63e9b5f | ||
![]() |
48b6e8dd67 | ||
![]() |
fb872b8f1e | ||
![]() |
94be13a003 | ||
![]() |
ea1c807d69 | ||
![]() |
1df98bd6a4 | ||
![]() |
6c192b67a9 | ||
![]() |
4a792d207c | ||
![]() |
1daf7543eb | ||
![]() |
b4890a3d22 | ||
![]() |
7b031a1c28 | ||
![]() |
ca098b2416 | ||
![]() |
cb5134de8d | ||
![]() |
e5009396f8 | ||
![]() |
53a116333c | ||
![]() |
13918cea25 | ||
![]() |
03f14bd5dd | ||
![]() |
8828532d14 | ||
![]() |
146ad60c7f | ||
![]() |
6da40d919b | ||
![]() |
a4d657a324 | ||
![]() |
4419430a57 | ||
![]() |
11ba3be6b9 | ||
![]() |
286af99def | ||
![]() |
a409a0a098 | ||
![]() |
ee7cfc8824 | ||
![]() |
af8d3c16bf | ||
![]() |
9d1549e1ff | ||
![]() |
845ecdc3af | ||
![]() |
1c5ef4a50f | ||
![]() |
212a9f26ab | ||
![]() |
e61015cb42 | ||
![]() |
c96ae75437 | ||
![]() |
a8e2f45b1c | ||
![]() |
33383e1f4f | ||
![]() |
b9e1a9159e | ||
![]() |
5dc41f8c94 | ||
![]() |
4aaf053760 | ||
![]() |
b718f79c47 | ||
![]() |
72b08c82b1 | ||
![]() |
3880951458 | ||
![]() |
3229882183 | ||
![]() |
f4cc847f83 | ||
![]() |
a63d5801ae | ||
![]() |
4b774eb18e | ||
![]() |
d052782caf | ||
![]() |
c2a6eeaf5e | ||
![]() |
931d70d87f | ||
![]() |
f28cd718f8 | ||
![]() |
623e4dc05c | ||
![]() |
89e47e2431 | ||
![]() |
83e18f8da4 | ||
![]() |
42951ec68f | ||
![]() |
a99ece5a5e | ||
![]() |
6bb78dcb0b | ||
![]() |
855de7253d | ||
![]() |
e7dc04d28e | ||
![]() |
4564236abf | ||
![]() |
e7758d64d8 | ||
![]() |
71c83da805 | ||
![]() |
2891388813 | ||
![]() |
194c514b45 | ||
![]() |
69255114d9 | ||
![]() |
43f0c34cf8 | ||
![]() |
aa2af695d7 | ||
![]() |
539285ca78 | ||
![]() |
dda8866f30 | ||
![]() |
618115931e | ||
![]() |
20d599819b | ||
![]() |
a8583668eb | ||
![]() |
4b0fd1b7d8 | ||
![]() |
3789229a70 | ||
![]() |
14c046d18d | ||
![]() |
386ffb4752 | ||
![]() |
fa51a94a69 | ||
![]() |
ef3f8c18a1 | ||
![]() |
f4e327f69c | ||
![]() |
b61359506c | ||
![]() |
2a9dc7272b | ||
![]() |
bcc3f56193 | ||
![]() |
6bec74017f | ||
![]() |
618a9f03b3 | ||
![]() |
98886f3d94 | ||
![]() |
7b690d6bc1 | ||
![]() |
67ce5927e1 | ||
![]() |
f29afe115d | ||
![]() |
6fa4345514 | ||
![]() |
d0523744b7 | ||
![]() |
848ccb3249 | ||
![]() |
988e5f49dd | ||
![]() |
118d962b2d | ||
![]() |
1bf37776c3 | ||
![]() |
908715bd84 | ||
![]() |
c241036c06 | ||
![]() |
280a01c5de | ||
![]() |
4ef11cfbd3 | ||
![]() |
8a023b00f2 | ||
![]() |
ab9ff657c7 | ||
![]() |
34cfd6fafd | ||
![]() |
c691288b14 | ||
![]() |
46c9134992 | ||
![]() |
eb3449f5c7 | ||
![]() |
211de6cfac | ||
![]() |
4e2434c082 | ||
![]() |
2d60c6b878 | ||
![]() |
f71386bdb5 | ||
![]() |
4e3a658b8e | ||
![]() |
bf683f6e50 | ||
![]() |
cb8b2fd433 | ||
![]() |
8780fd5e44 | ||
![]() |
0fd533eee1 | ||
![]() |
dc7e1007b0 | ||
![]() |
976968e07e | ||
![]() |
d986898234 | ||
![]() |
1d8db8825f | ||
![]() |
7c377a0193 | ||
![]() |
fe9e1cdb05 | ||
![]() |
d6e8c6c3ed | ||
![]() |
029e3fc0ae | ||
![]() |
c27cdff29c | ||
![]() |
cf2da99859 | ||
![]() |
3fe42e647a | ||
![]() |
1d06b1f5e8 | ||
![]() |
20479df535 | ||
![]() |
c585fa5036 | ||
![]() |
1aed84c9d7 | ||
![]() |
8cacb2afef | ||
![]() |
2cfd418b03 | ||
![]() |
e4c4d8b4d8 | ||
![]() |
fc74911256 | ||
![]() |
3d0535569d | ||
![]() |
4dc7e6a4ed | ||
![]() |
e84b5bfed0 | ||
![]() |
c9366989a0 | ||
![]() |
eb3c38e3ad | ||
![]() |
5196fb1ec5 | ||
![]() |
353408e30b | ||
![]() |
cc6b0e03fb | ||
![]() |
38cd0f28ef | ||
![]() |
3d118513c5 | ||
![]() |
d35c086240 | ||
![]() |
27e7d0c529 | ||
![]() |
a9294e2906 | ||
![]() |
446cc65f5d | ||
![]() |
0a94728234 | ||
![]() |
aa87fe4140 | ||
![]() |
5944e94710 | ||
![]() |
2b468a45b3 | ||
![]() |
d7cff41d1b | ||
![]() |
b4d0db909b | ||
![]() |
b595f1e99c | ||
![]() |
ed467aad59 | ||
![]() |
73224faec0 | ||
![]() |
bd5436097e | ||
![]() |
a462ba5798 | ||
![]() |
b1ff50f45f | ||
![]() |
5a6bbef8ac | ||
![]() |
309e254b1d | ||
![]() |
10dd09687b | ||
![]() |
69bbbbc6ca | ||
![]() |
1a6c98c79b | ||
![]() |
952e883456 | ||
![]() |
c652788542 | ||
![]() |
696ef85e64 | ||
![]() |
007e8c013c | ||
![]() |
cd07c25706 | ||
![]() |
3802f157b6 | ||
![]() |
a871830927 | ||
![]() |
5545e49581 | ||
![]() |
e98e38d32e | ||
![]() |
2d74cdc026 | ||
![]() |
7c343fc22d |
430
ChangeLog
430
ChangeLog
@@ -1,3 +1,433 @@
|
||||
2008-02-03 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* NEWS: 2.21.8 release.
|
||||
|
||||
2008-02-03 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* tools/release-wrangler.py: Fix quoting error and added some
|
||||
more error checking.
|
||||
|
||||
2008-02-03 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* tools/release-wrangler.py: basic release script; needs work,
|
||||
but probably good enough for the current unstable release
|
||||
|
||||
2008-02-02 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/Makefile.am: core.h is in include, not core. (Last one, I
|
||||
promise.)
|
||||
|
||||
2008-02-02 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/Makefile.am: main.h is in include, not core.
|
||||
|
||||
2008-02-02 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/Makefile.am: draw-workspace.h is in ui, not core.
|
||||
|
||||
2008-02-01 Alex R.M. Turner <armtuk@gmail.com>
|
||||
|
||||
* src/core/display.c (meta_get_tab_entry_list): Have the list also pull
|
||||
windows that are in other workspaces that have the
|
||||
wm_state_needs_attention flag set
|
||||
* src/core/window.c (meta_window_set_demands_attention): Make windows that
|
||||
are on other workspaces that demand attention that aren't obscured
|
||||
count as being obscured
|
||||
Bug #333548.
|
||||
|
||||
2008-01-28 Christian Persch <chpe@gnome.org>
|
||||
|
||||
* src/core/display.c (convert_property):
|
||||
* src/core/screen.c (meta_screen_calc_workspace_layout):
|
||||
* src/core/xprops.c (meta_prop_get_values):
|
||||
Use G_STRFUNC instead of the deprecated G_GNUC_FUNCTION.
|
||||
Bug #512561.
|
||||
|
||||
2008-01-21 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/ui/theme.[ch]: more commenting.
|
||||
|
||||
2008-01-18 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/ui/theme.[ch]: some more commenting.
|
||||
|
||||
2008-01-16 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/bell.c: Correct comment.
|
||||
* src/core/main.c: Correct comment.
|
||||
* src/ui/theme.c: Much commenting; #ifdeffed-out
|
||||
debug code removed.
|
||||
* src/ui/theme.h: Much commenting.
|
||||
|
||||
2008-01-13 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/bell.c: Commenting.
|
||||
* src/core/main.c: Commenting, and fixing existing comments.
|
||||
|
||||
2008-01-12 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/main.c: Refactor repeated lines in main() to
|
||||
iterate instead.
|
||||
|
||||
2008-01-12 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/main.[ch] (meta_get_main_loop): removed as it
|
||||
was never used.
|
||||
* src/core/main.c: lots of comments.
|
||||
* src/core/main.c (version): copyright year is 2008.
|
||||
* src/core/c-screen.[ch], src/core/c-window.[ch]: removed
|
||||
files from Søren's compositor which were removed by the
|
||||
merge with Iain's compositor but reintroduced by the split
|
||||
to separate subdirectories.
|
||||
* src/core/display.c: fix comments.
|
||||
|
||||
2008-01-12 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/display.c: reinstated missing first character!
|
||||
* Doxyfile: correct reordering of blank fields.
|
||||
|
||||
2008-01-12 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/display.c: change comments from /*! to /** because the
|
||||
other way makes doxygen think they are Qt comments, which messes
|
||||
up brief descriptions.
|
||||
* Doxyfile: check in so other people can generate documentation
|
||||
too.
|
||||
|
||||
2008-01-07 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/display.c: further commenting (trying to keep comment
|
||||
addings down to once a day at most so you don't all get spammed
|
||||
too much).
|
||||
|
||||
2008-01-07 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/main.c (main): g_free is a no-op on nulls; there is no
|
||||
need to test.
|
||||
|
||||
2008-01-06 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/display.c: Function commenting marathon; more to come.
|
||||
|
||||
2008-01-02 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/core/xprops.c (meta_prop_get_cardinal), src/core/compositor.c
|
||||
(timeout_debug): Two really minor coding standards layout tweaks.
|
||||
|
||||
2007-12-27 Iain Holmes <iain@gnome.org>
|
||||
|
||||
* src/core/compositor.c: Don't do anything in
|
||||
meta_compositor_free_window, it doesn't seem to be needed and breaks
|
||||
things very badly. http://bugzilla.gnome.org/show_bug.cgi?id=504876
|
||||
|
||||
2007-12-27 Iain Holmes <iain@gnome.org>
|
||||
|
||||
* src/core/compositor.c: When a window is mapped, don't set damaged to
|
||||
TRUE. Fixes a bug when redrawing shadows.
|
||||
|
||||
2007-12-25 Iain Holmes <iain@gnome.org>
|
||||
|
||||
* src/core/compositor.c: USe the compositor overlay window instead of
|
||||
the root window.
|
||||
|
||||
2007-12-21 Paolo Borelli <pborelli@katamail.com>
|
||||
|
||||
* src/core/core.c (meta_invalidate_default_icons): do not leak list.
|
||||
|
||||
* src/core/edge-resistance.c
|
||||
(meta_display_compute_resistance_and_snapping_edges): ditto.
|
||||
|
||||
* src/core/workspace.c (meta_workspace_index): small cleanup in list
|
||||
handling.
|
||||
|
||||
2007-12-19 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* src/core/display.c (meta_display_open): fix a third warning
|
||||
about %d and long int
|
||||
|
||||
* src/core/delete.c (io_from_ping_dialog): fix another warning
|
||||
about long int to %d
|
||||
|
||||
* src/core/compositor.c (meta_compositor_new): fix a warning about
|
||||
long int to %d
|
||||
|
||||
* src/core/iconcache.c (meta_read_icons): use
|
||||
meta_ui_get_fallback_icons() instead of incorrectly including theme.h
|
||||
|
||||
* src/ui/ui.c (meta_ui_get_fallback_icons): new function
|
||||
|
||||
2007-12-19 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* src/ui, src/core, src/include: sort source files into these
|
||||
directories according to which part of the WM they are supposed to
|
||||
be in. In an eventual plan, we should also create
|
||||
src/compositor/render, src/compositor/fallback and move some of
|
||||
the compositor stuff into that.
|
||||
|
||||
* autogen.sh: require a newer automake, so we don't have to use
|
||||
a recursive build
|
||||
|
||||
* src/ui/tabpopup.c: put in a hack to make the build temporarily
|
||||
work, want to commit the large rearrangement before fixing this
|
||||
not to include workspace.h or frame.h
|
||||
|
||||
* src/core/iconcache.c (meta_read_icons): temporarily break this
|
||||
to get the build to work, want to commit the large rearrangement
|
||||
before fixing this file not to include theme.h
|
||||
|
||||
2007-12-19 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: Post-release bump to 2.21.8.
|
||||
|
||||
2007-12-19 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* NEWS: 2.21.5 release.
|
||||
|
||||
2007-12-19 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* configure.in: print "Subversion" and not "CVS".
|
||||
|
||||
2007-12-18 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* configure.in: compositor enabled by default.
|
||||
|
||||
2007-12-18 Iain Holmes <iain@gnome.org>
|
||||
|
||||
* configure.in, src/theme.c, src/display.c,
|
||||
src/theme.h, src/display.h, src/theme-parser.c,
|
||||
src/compositor.c, src/c-screen.c, src/compositor.h,
|
||||
src/c-screen.h, src/ui.c, src/screen.c, src/ui.h,
|
||||
src/screen.h, src/c-window.c, src/c-window.h,
|
||||
src/theme-viewer.c, src/Makefile.am: Merge compositor branch.
|
||||
|
||||
2007-12-14 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: Post-release bump to 2.21.5.
|
||||
|
||||
2007-12-14 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* NEWS: 2.21.3 release.
|
||||
|
||||
2007-12-11 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/theme-parser.c: remove dead code; closes #501365.
|
||||
|
||||
2007-12-08 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/metacity.schemas.in: rewrite long description of
|
||||
/schemas/apps/metacity/general/focus_new_windows because we
|
||||
love the translators really. Closes #474889.
|
||||
|
||||
2007-12-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* src/menu.c (meta_window_menu_new): check for null before adding
|
||||
menu; closes #496054.
|
||||
|
||||
2007-12-08 Thomas Thurman <tthurman@gnome.org>
|
||||
|
||||
* src/keybindings.c (meta_display_process_key_event): Recur if the
|
||||
keypress ended a grab, so it can be processed in its own right.
|
||||
Closes #112560.
|
||||
|
||||
2007-12-08 Martin Meyer <elreydetodo@gmail.com>
|
||||
|
||||
* src/theme-parser.c (parse_draw_op_element): Fix
|
||||
typo where wrong variable was checked (reported by
|
||||
Kjartan Maraas). Closes #501362.
|
||||
|
||||
2007-11-19 Lucas Rocha <lucasr@gnome.org>
|
||||
|
||||
* src/main.c (main): try to get the session client ID from
|
||||
DESKTOP_AUTOSTART_ID environment variable in case the --sm-client-id
|
||||
is not used. Closes #498033.
|
||||
|
||||
2007-11-17 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: Post-release bump to 2.21.3.
|
||||
|
||||
2007-11-17 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* NEWS: 2.21.2 release.
|
||||
|
||||
2007-11-17 Benjamin Gramlich <benjamin.gramlich@gmail.com>
|
||||
|
||||
* src/theme-parser.c (meta_theme_load): make our theme
|
||||
search compliant to the XDG Base Directory Specification.
|
||||
Closes #480026.
|
||||
|
||||
2007-11-15 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* src/api.[ch]: remove almost-unused files.
|
||||
* src/colors.[ch]: move the used parts of api.[ch] in here.
|
||||
Closes #496947.
|
||||
|
||||
2007-11-13 Peter Bloomfield <pbloomfield@bellsouth.net>
|
||||
|
||||
* src/window.c: (meta_window_save_user_rect): new helper, saves
|
||||
only unmaximized dimensions, and not when fullscreen.
|
||||
(meta_window_move_resize_internal,
|
||||
meta_window_move_resize_request): use it. (#461927)
|
||||
|
||||
2007-11-11 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: Post-release bump to 2.21.2.
|
||||
|
||||
2007-11-11 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* NEWS: 2.21.1 release.
|
||||
|
||||
2007-11-11 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* src/window.c (meta_window_show): adjust expression which decides
|
||||
whether new windows should not go on top, so that restacking happens
|
||||
only the first time a window is mapped. Thanks to Olav Vitters for
|
||||
pointing out the problem. Re-fixes #486445.
|
||||
|
||||
2007-11-11 Alex R.M. Turner <armtuk@gmail.com>
|
||||
|
||||
* src/tabpopup.c (tab_entry_new, meta_ui_tab_popup_new): Instruct the
|
||||
GtkLabel in the tabpopup to ellipsize text that is too big. Set the
|
||||
maximum window width of the tabpopup to screen_width/4, which seems a
|
||||
sensible size for the popup.
|
||||
|
||||
2007-11-09 Elijah Newren <newren gmail com>
|
||||
|
||||
* src/window.c (meta_window_new_with_attrs): If a window is
|
||||
launched without any kind of launch timestamp, grab the current
|
||||
time and stash it away. When transients of that window are also
|
||||
launched without a timestamp, we can use the stashed timestamp
|
||||
from the parent. Fixes #488468.
|
||||
|
||||
2007-11-07 Federico Mena Quintero <federico@novell.com>
|
||||
|
||||
* src/window-props.c (reload_net_wm_user_time_window): Fix typo;
|
||||
the arguments to meta_window_reload_property_from_xwindow() were
|
||||
reversed. This is why the wm_user_time wasn't getting initialized
|
||||
properly from the _NET_WM_USER_TIME_WINDOW. Fixes part of
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=488468
|
||||
|
||||
2007-11-06 Peter Bloomfield <pbloomfield@bellsouth.net>
|
||||
|
||||
* src/window.c (meta_window_move_resize_internal): save
|
||||
unmaximized part of client root coords. (#461927)
|
||||
|
||||
2007-11-06 Peter Bloomfield <pbloomfield@bellsouth.net>
|
||||
|
||||
* src/window.c (meta_window_move_resize_internal): do not save
|
||||
client root coords while window is maximized. (#461927)
|
||||
|
||||
2007-10-30 iain Holmes <iain@gnome.org>
|
||||
|
||||
* src/main.c (meta_parse_options): Add --sync option
|
||||
(main): Check if the --sync option was passed on command line.
|
||||
|
||||
2007-10-28 Jans Granseuer <jensgr@gmx.net>
|
||||
|
||||
* src/preview-widget.c (meta_preview_finalize): Free title of
|
||||
preview when the preview is destroyed. Closes #469682.
|
||||
|
||||
2007-10-27 Alex R.M. Turner <armtuk@gmail.com>
|
||||
|
||||
* src/tabpopup.c (tab_entry_new): Truncate the string to
|
||||
max_char_per_title before adding bold tags and fix general flow of
|
||||
function.
|
||||
|
||||
2007-10-16 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* src/window.c (window_would_be_covered): new function.
|
||||
* src/window.c (meta_window_show): rewrite assertion not
|
||||
to put window on top in terms of window_would_be_covered();
|
||||
remove assertion because it's no longer valid; explicitly
|
||||
don't focus windows that shouldn't be focussed; closes #486445.
|
||||
|
||||
2007-10-14 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: Post-branch bump to 2.21.1.
|
||||
|
||||
2007-10-03 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
* configure.in: Remove circular dep metacity<->gnomecc.
|
||||
|
||||
2007-09-15 Elijah Newren <newren gmail com>
|
||||
|
||||
* configure.in: post-release version bump to 2.20.1
|
||||
|
||||
2007-09-15 Elijah Newren <newren gmail com>
|
||||
|
||||
* configure.in:
|
||||
* NEWS:
|
||||
2.20.0 release
|
||||
|
||||
2007-09-15 Elijah Newren <newren gmail com>
|
||||
|
||||
* src/session.c (warn_about_lame_clients_and_finish_interact):
|
||||
Patch from Alexey Rusakov to prevent a crash on logout with
|
||||
metacity subsequently not being restored in future sessions.
|
||||
Fixes #433253.
|
||||
|
||||
2007-09-01 Elijah Newren <newren gmail com>
|
||||
|
||||
* HACKING: update; cvs->svn & mention GConf needed
|
||||
* MAINTAINERS: Make it match idiotic format requirements (I love
|
||||
you Olav!)
|
||||
|
||||
2007-08-07 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: post-release bump to 2.19.89.
|
||||
|
||||
2007-08-07 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* NEWS: 2.19.55 release.
|
||||
|
||||
2007-08-06 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
If KEY_AUTO_RAISE_DELAY is undefined or non-integer, it is not treated
|
||||
as zero.
|
||||
|
||||
* src/prefs.c (meta_prefs_init): check type of key, and behave sensibly
|
||||
if it's unexpected.
|
||||
* src/prefs.c (find_and_update_list_binding): remove old comment.
|
||||
|
||||
2007-08-03 Frederic Crozat <fcrozat@mandriva.com>
|
||||
|
||||
* src/delete.c: Fix mangled window title in "Force Quit"
|
||||
dialog when using non-UTF8 locale. Close #462734.
|
||||
|
||||
2007-08-02 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
Move "close" to bottom of window menu; allow workspace list to appear
|
||||
at any position in the menu. Closes #104026.
|
||||
|
||||
* src/menu.c (MetaMenuItemType): added new MENU_ITEM_WORKSPACE_LIST
|
||||
item.
|
||||
* src/menu.c (menuitems): reordered "close", added a workspace list.
|
||||
* src/menu.c (menu_item_new): return null for workspace lists.
|
||||
* src/menu.c (meta_window_menu_new): handle workspace lists.
|
||||
|
||||
2007-07-31 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* src/window.c (meta_window_show_menu): windows which are
|
||||
always on top have the "stick" menu option insensitive. (#460997).
|
||||
|
||||
2007-07-23 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* src/window.h (MetaWindow): Put all bitfields together to
|
||||
help with optimisation. Closes #450271 (for real this time).
|
||||
|
||||
2007-07-23 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* configure.in:
|
||||
* src/Makefile.am: Use the correct directory when
|
||||
installing keybindings. (#454055)
|
||||
|
||||
2007-07-22 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* configure.in: post-release bump to 2.19.55.
|
||||
|
||||
2007-07-22 Thomas Thurman <thomas@thurman.org.uk>
|
||||
|
||||
* NEWS: 2.19.34 release.
|
||||
|
||||
2007-07-22 Rob Bradford <rob@robster.org.uk>
|
||||
|
||||
Fix a bug where the window can be focused without being raised
|
||||
|
21
HACKING
21
HACKING
@@ -42,18 +42,17 @@ Minimal Building/Testing Environment
|
||||
build a development version of Metacity -- odds are, you may be able
|
||||
to build metacity from CVS without building any other modules.
|
||||
|
||||
As long as you have gtk+ >= 2.10 with your distro (gtk+ >= 2.6 if
|
||||
you manually revert the change from bug 348633), you should be able
|
||||
to install your distro's development packages (e.g. gtk2-devel,
|
||||
GConf2-devel, startup-notification-devel on Fedora; also, remember
|
||||
to install the gnome-common package which is needed for building cvs
|
||||
versions of Gnome modules like Metacity) as well as the standard
|
||||
development tools (gcc, autoconf, automake, pkg-config, intltool,
|
||||
and libtool) and be ready to build and test Metacity. Steps to do
|
||||
so:
|
||||
As long as you have gtk+ >= 2.10 and GConf with your distro (gtk+ >=
|
||||
2.6 if you manually revert the change from bug 348633), you should
|
||||
be able to install your distro's development packages
|
||||
(e.g. gtk2-devel, GConf2-devel, startup-notification-devel on
|
||||
Fedora; also, remember to install the gnome-common package which is
|
||||
needed for building cvs versions of Gnome modules like Metacity) as
|
||||
well as the standard development tools (gcc, autoconf, automake,
|
||||
pkg-config, intltool, and libtool) and be ready to build and test
|
||||
Metacity. Steps to do so:
|
||||
|
||||
$ cvs -q -z3 -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome \
|
||||
checkout metacity
|
||||
$ svn checkout http://svn.gnome.org/svn/metacity/trunk metacity
|
||||
$ cd metacity
|
||||
$ ./autogen.sh --prefix /usr
|
||||
$ make
|
||||
|
15
MAINTAINERS
15
MAINTAINERS
@@ -1,13 +1,20 @@
|
||||
Currently active maintainers
|
||||
--------------------------------
|
||||
Elijah Newren (newren gmail com)
|
||||
|
||||
Elijah Newren
|
||||
Email: newren gmail com
|
||||
Userid: newren
|
||||
|
||||
- Usually won't touch the theme bugs (isn't interested) or the
|
||||
compositor (until open source nvidia drivers are up to snuff).
|
||||
Tends to be most interested in libwnck/gtk interactions, focus
|
||||
issues, constraints problems, and raising/stacking, but works on
|
||||
just about anything other than themes and the compositor.
|
||||
|
||||
Thomas Thurman (thomas thurman org uk)
|
||||
Thomas Thurman
|
||||
Email: thomas thurman org uk
|
||||
Userid: tthurman
|
||||
|
||||
- Responsible for all theme bugs and the compositor (thank goodness
|
||||
Thomas got involved, eh?). I'm sure he'll replace this sentence
|
||||
with his interests when he reads it. ;-)
|
||||
@@ -15,7 +22,9 @@ Thomas Thurman (thomas thurman org uk)
|
||||
|
||||
Semi-active maintainers
|
||||
--------------------------------
|
||||
Havoc Pennington (hp redhat com)
|
||||
Havoc Pennington
|
||||
Email: hp redhat com
|
||||
Userid: hp
|
||||
- Original author. Doesn't patch metacity anymore, but is active in
|
||||
answering questions, responding to bugs, providing very helpful
|
||||
suggestions and insight, and even assisting with debugging.
|
||||
|
139
NEWS
139
NEWS
@@ -1,3 +1,142 @@
|
||||
2.21.8
|
||||
======
|
||||
|
||||
Thanks to Paolo Borelli, Iain Holmes, Havoc Pennington, Christian Persch, Thomas
|
||||
Thurman, and Alex R.M. Turner for improvements in this version.
|
||||
|
||||
- Windows on other workspaces which need attention appear in the alt-tab
|
||||
list too (Alex) (#333548)
|
||||
- Remove deprecated function call (Christian) (#512561)
|
||||
- New release script (Thomas)
|
||||
- Made a start at improving the general number of comments (Thomas)
|
||||
- Updated copyright year to 2008, and some other tiny fixes (Thomas)
|
||||
- Don't do anything unusual when the compositor frees a window (Iain)
|
||||
- Mapping windows doesn't mark them as damaged (Iain)
|
||||
- Compositor uses the overlay window and not the root window (Iain)
|
||||
- Fixed several list leaks (Paolo)
|
||||
- Fixed warnings about printf formats (Havoc)
|
||||
- Move source files into subdirectories of the src directory (Havoc)
|
||||
|
||||
Translations
|
||||
Khaled Hosny (ar), Ihar Hrachyshka (be@latin), Petr Kovar (cs), Andre
|
||||
Klapper (de), Jorge González (es), Iñaki Larrañaga Murgoitio (eu), Seán de
|
||||
Búrca (ga), Yuval Tanny (he), Luca Ferretti (it), Takeshi AIHANA (ja), Arangel
|
||||
Angov (mk), sandeep shedmake (mr), Kjartan Maraas (nb), Yannig
|
||||
Marchegay (Kokoyaya) (oc), Daniel Nylander (sv), Theppitak Karoonboonyanan (th),
|
||||
Baris Cicek (tr), Clytie Siddall (vi)
|
||||
2.21.5
|
||||
======
|
||||
|
||||
Thanks to Iain Holmes and Thomas Thurman for improvements in this version.
|
||||
This contains the new compositor; downstream maintainers should note that
|
||||
its GConf key is initially turned off in src/metacity.schemas.in and consider
|
||||
whether to turn it on by default in their packages.
|
||||
|
||||
- merge compositor branch! (Iain) (499081)
|
||||
- print "Subversion" and not "CVS" when building (Thomas)
|
||||
|
||||
Translations
|
||||
Jorge González (es), Kjartan Maraas (nb), Daniel Nylander (sv)
|
||||
|
||||
2.21.3
|
||||
======
|
||||
|
||||
Thanks to Matthias Clasen, Martin Meyer, Kjartan Maraas, Thomas Thurman,
|
||||
and Lucas Rocha for improvements in this version.
|
||||
|
||||
- remove dead code (pointed out by Kjartan) (501365)
|
||||
- rewrote long key binding description for the sake of
|
||||
the translators (Thomas) (474889)
|
||||
- check for null before adding menu (Matthias) (496054)
|
||||
- let keys which end a grab also begin a grab (Thomas) (112560)
|
||||
- check the right variable in theme sanity check (Martin) (501362)
|
||||
- get session ID from environment if it's not passed in on the command
|
||||
line (Lucas) (498033)
|
||||
|
||||
Translations
|
||||
Ihar Hrachyshka (be@latin), Petr Kovar (cs), Jorge González (es),
|
||||
Ignacio Casal Quinteiro (gl), Rodrigo Flores (pt_BR), Pavol Šimo (sk),
|
||||
Matej Urbančič (sl)
|
||||
|
||||
2.21.2
|
||||
======
|
||||
|
||||
Thanks to Benjamin Gramlich, Thomas Thurman, and Peter Bloomfield
|
||||
for improvements in this release.
|
||||
|
||||
- Theme parser is compliant to XDG Base Directory Specification
|
||||
in searching for theme files. (Benjamin) (#480026)
|
||||
- Some source files which didn't get used were removed (Thomas)
|
||||
(#496947)
|
||||
- Fullscreen and maximise windows don't try to save their position
|
||||
(Peter) (#461927)
|
||||
|
||||
Translations
|
||||
Matej Urbančič (sl)
|
||||
|
||||
2.21.1
|
||||
======
|
||||
|
||||
Thanks to Elijah Newren, Alex R.M. Turner, Peter Bloomfield, Iain Holmes,
|
||||
Jans Granseuer, Federico Mena Quintero and Thomas Thurman for improvements
|
||||
in this release.
|
||||
|
||||
- Add --sync option, like all other GTK apps (Iain)
|
||||
- Don't save window's position if it's maximised (Peter) (#461927)
|
||||
- Memory leak fix in preview (Jans) (#469682)
|
||||
- Truncate tab popup string correctly, and refactor function (Alex)
|
||||
- Windows which pop up under always-on-top windows don't get the
|
||||
focus, but do get the "needs attention" hint (Thomas) (#486445)
|
||||
- Fix error in function call which caused focus problems (Federico)
|
||||
(partial fix of #488468)
|
||||
|
||||
Translations
|
||||
Djihed Afifi (ar), Metin Amiroff (az), Alexander Shopov (bg),
|
||||
Jordi Mallach (ca), David Lodge (en_GB), Jorge González (es),
|
||||
Iñaki Larrañaga Murgoitio (eu), Vincent Untz (fr), Alastair McKinstry (ga),
|
||||
Ankit Patel (gu), Rajesh Ranjan (hi), auto (hr), Changwoo Ryu (ko),
|
||||
Raivis Dejus (lv), Wouter Bolsterlee (nl), Gora Mohanty (or),
|
||||
ASB (pa), wadim dziedzic (pl), Duarte Loreto (pt),
|
||||
Og Maciel (pt_BR), Peter Tuhársky (sk), Matej Urbančič (sl),
|
||||
Daniel Nylander (sv), Maxim Dziumanenko (uk), Funda Wang (zh_CN)
|
||||
|
||||
2.20.0
|
||||
======
|
||||
|
||||
Thanks to Alexey Rusakov for the fix in this release.
|
||||
|
||||
- prevent a crash on logout with metacity subsequently not being
|
||||
restored in future sessions (Alexey) [#433253]
|
||||
|
||||
Translations
|
||||
Khaled Hosny (ar), Ihar Hrachyshka (be@latin), Ask Hjorth Larsen (da),
|
||||
Adam Weinberger (en_CA), Iñaki Larrañaga Murgoitio (eu), Ilkka
|
||||
Tuohela (fi), Vincent Untz (fr), Ankit Patel (gu), Gabor Kelemen (hu),
|
||||
Luca Ferretti (it), Takeshi AIHANA (ja), Žygimantas Beručka (lt), Jovan
|
||||
Naumovski (mk), Ani Peter (ml), Og Maciel (pt_BR), Duarte Loreto (pt),
|
||||
Mugurel Tudor (ro), Nickolay V. Shmyrev (ru), Peter Tuhársky (sk), Горан
|
||||
Ракић (sr), Daniel Nylander (sv), Dr.T.Vasudevan (ta), Maxim
|
||||
Dziumanenko (uk), Clytie Siddall (vi)
|
||||
|
||||
2.19.55
|
||||
=======
|
||||
|
||||
Thanks to Frederic Crozat, Matthias Clasen, and Thomas Thurman for improvements
|
||||
in this release.
|
||||
|
||||
- Noninteger auto-raise delay is not assumed to be zero (Thomas) (#377491)
|
||||
- Fix mangled window title in "Force Quit" (Frederic) (#462734)
|
||||
- "Close" can appear at any point in the window menu, and now appears
|
||||
at the bottom (Thomas) (#104026)
|
||||
- Windows which are always on top have "stick" insensitive (Thomas) (#460997)
|
||||
- All bitfields in window structure are together for optimisation (Thomas)
|
||||
(#450271)
|
||||
- Use the correct directory when installing keybindings (Matthias) (#454055)
|
||||
|
||||
Translations
|
||||
Alexander Shopov (bg), Jorge González (es), Iñaki Larrañaga Murgoitio (eu),
|
||||
Ilkka Tuohela (fi), Theppitak Karoonboonyanan (th)
|
||||
|
||||
2.19.34
|
||||
=======
|
||||
|
||||
|
@@ -5,7 +5,7 @@ srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
PKG_NAME="metacity"
|
||||
REQUIRED_AUTOMAKE_VERSION=1.7
|
||||
REQUIRED_AUTOMAKE_VERSION=1.10
|
||||
|
||||
(test -f $srcdir/configure.in \
|
||||
&& test -d $srcdir/src) || {
|
||||
|
24
configure.in
24
configure.in
@@ -1,17 +1,17 @@
|
||||
AC_PREREQ(2.50)
|
||||
|
||||
m4_define([metacity_major_version], [2])
|
||||
m4_define([metacity_minor_version], [19])
|
||||
m4_define([metacity_minor_version], [21])
|
||||
# Fibonacci sequence for micro version numbering:
|
||||
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
|
||||
m4_define([metacity_micro_version], [34])
|
||||
m4_define([metacity_micro_version], [8])
|
||||
|
||||
m4_define([metacity_version],
|
||||
[metacity_major_version.metacity_minor_version.metacity_micro_version])
|
||||
AC_INIT([metacity], [metacity_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=metacity])
|
||||
|
||||
AC_CONFIG_SRCDIR(src/display.c)
|
||||
AC_CONFIG_SRCDIR(src/core/display.c)
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AM_INIT_AUTOMAKE
|
||||
@@ -176,6 +176,10 @@ else
|
||||
AC_MSG_ERROR("Pango 1.2.0 or greater based on Xft2 is required")
|
||||
fi
|
||||
|
||||
# Unconditionally use this dir to avoid a circular dep with gnomecc
|
||||
GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings"
|
||||
AC_SUBST(GNOME_KEYBINDINGS_KEYSDIR)
|
||||
|
||||
STARTUP_NOTIFICATION_VERSION=0.7
|
||||
AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION])
|
||||
if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then
|
||||
@@ -219,15 +223,15 @@ if test x$enable_compositor = xyes; then
|
||||
have_xcomposite=yes
|
||||
echo "CompositeExt support forced on"
|
||||
elif test x$enable_compositor = xauto; then
|
||||
echo "Not building compositing manager by default now, must enable explicitly to get it."
|
||||
have_xcomposite=no
|
||||
echo "Building compositing manager by default now."
|
||||
have_xcomposite=yes
|
||||
else
|
||||
have_xcomposite=no
|
||||
fi
|
||||
|
||||
if test x$have_xcomposite = xyes; then
|
||||
echo "Building with CompositeExt"
|
||||
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage cm"
|
||||
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
|
||||
AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, , [Building with compositing manager support])
|
||||
|
||||
## force on render also
|
||||
@@ -473,6 +477,12 @@ else
|
||||
GCONF_SCHEMAS_INSTALL_FALSE=
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug enable debugging],,
|
||||
enable_debug=no)
|
||||
if test "x$enable_debug" = "xyes"; then
|
||||
CFLAGS="$CFLAGS -g -O -Wall"
|
||||
fi
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
doc/Makefile
|
||||
@@ -528,7 +538,7 @@ if test $(( $(echo $METACITY_MINOR_VERSION) %2)) == "1"; then
|
||||
stable_version=$(( ($METACITY_MINOR_VERSION / 2) * 2))
|
||||
echo "This is the UNSTABLE branch of metacity"
|
||||
echo -n "Use 2.$stable_version.x for stable "
|
||||
echo "(gnome-2-$stable_version branch in CVS)"
|
||||
echo "(gnome-2-$stable_version branch in Subversion)"
|
||||
else
|
||||
echo "This is the stable branch of metacity"
|
||||
fi
|
||||
|
451
po/ChangeLog
451
po/ChangeLog
@@ -1,3 +1,354 @@
|
||||
2008-02-03 Arangel Angov <arangel@linux.net.mk>
|
||||
|
||||
* mk.po: Updated Macedonian translation.
|
||||
|
||||
2008-02-03 Takeshi AIHANA <takeshi.aihana@gmail.com>
|
||||
|
||||
* ja.po: Updated Japanese translation.
|
||||
|
||||
2008-02-02 Luca Ferretti <elle.uca@libero.it>
|
||||
|
||||
* it.po: Updated Italian translation.
|
||||
|
||||
2008-02-01 Theppitak Karoonboonyanan <thep@linux.thai.net>
|
||||
|
||||
* th.po: Updated Thai translation.
|
||||
|
||||
2008-01-31 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Khaled Hosny.
|
||||
|
||||
2008-01-30 Rahul Bhalerao <b.rahul.pm@gmail.com>
|
||||
|
||||
* mr.po: Updated Marathi translations by Sandeep Shedmake.
|
||||
|
||||
2008-01-27 Baris Cicek <baris@teamforce.name.tr>
|
||||
|
||||
* tr.po: Fixed typo in Turkish translation.
|
||||
|
||||
2008-01-25 Petr Kovar <pknbe@volny.cz>
|
||||
|
||||
* cs.po: Updated Czech translation.
|
||||
|
||||
2008-01-22 Andre Klapper <a9016009@gmx.de>
|
||||
|
||||
* de.po: Sync "beep" translation.
|
||||
|
||||
2008-01-15 Daniel Nylander <po@danielnylander.se>
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2008-01-14 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org>
|
||||
|
||||
* eu.po: Updated Basque translation.
|
||||
|
||||
2008-01-14 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
* nb.po: Updated Norwegian bokmål translation.
|
||||
|
||||
2008-01-13 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2008-01-09 Yair Hershkovitz <yairhr@gmail.com>
|
||||
|
||||
* he.po: Updated Hebrew translation.
|
||||
|
||||
2008-01-06 Ihar Hrachyshka <booxter@lacinka.org>
|
||||
|
||||
* be@latin.po: Updated Belarusian Latin translation.
|
||||
|
||||
2008-01-05 Clytie Siddall <clytie@riverland.net.au>
|
||||
|
||||
* vi.po: Updated Vietnamese translation.
|
||||
|
||||
2007-12-31 Yannig Marchegay <yannig@marchegay.org>
|
||||
|
||||
* oc.po: Updated Occitan translation.
|
||||
|
||||
2007-12-31 Daniel Nylander <po@danielnylander.se>
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2007-12-22 Seán de Búrca <sdeburca@svn.gnome.org>
|
||||
|
||||
* ga.po: Updated Irish translation.
|
||||
|
||||
2007-12-22 Seán de Búrca <sdeburca@svn.gnome.org>
|
||||
|
||||
* POTFILES.in: Remove dead files.
|
||||
|
||||
2007-12-20 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
* POTFILES.in: Rearrange after stuff moved around.
|
||||
* nb.po: Update
|
||||
|
||||
2007-12-19 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
* nb.po: Updated Norwegian bokmål translation.
|
||||
|
||||
2007-12-19 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation.
|
||||
|
||||
2007-12-17 Daniel Nylander <po@danielnylander.se>
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2007-12-15 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
* nb.po: Updated Norwegian bokmål translation.
|
||||
|
||||
2007-12-10 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation, fixes bug #500562 and bug #500831
|
||||
|
||||
2007-12-10 Matej Urbančič <mateju@svn.gnome.org>
|
||||
|
||||
* sl.po: Updated Slovenian Translation.
|
||||
|
||||
2007-12-10 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation, fixes bug #500831
|
||||
|
||||
2007-12-09 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation, fixes bug #500562
|
||||
|
||||
2007-12-08 Jakub Friedl <jfriedl@suse.cz>
|
||||
|
||||
* cs.po: Czech Translation updated by Petr Kovar.
|
||||
|
||||
2007-12-08 Ihar Hrachyshka <booxter@lacinka.org>
|
||||
|
||||
* be@latin.po: Updated Belarusian Latin translation.
|
||||
|
||||
2007-12-08 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org>
|
||||
|
||||
* pt_BR.po: Fixes in Brazilian Portuguese translation by Luiz Armesto.
|
||||
|
||||
2007-12-07 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org>
|
||||
|
||||
* pt_BR.po: Fixed attributes in Brazilian Portuguese translation by
|
||||
Rodrigo Flores.
|
||||
|
||||
2007-12-02 Marcel Telka <marcel@telka.sk>
|
||||
|
||||
* sk.po: Updated Slovak translation by Pavol Šimo.
|
||||
|
||||
2007-11-28 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
|
||||
|
||||
* gl.po: Updated Galician Translation.
|
||||
|
||||
2007-11-12 Matej Urbančič <mateju@svn.gnome.org>
|
||||
|
||||
* sl.po: Updated Slovenian translation.
|
||||
|
||||
2007-11-08 Daniel Nylander <po@danielnylander.se>
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2007-11-01 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2007-10-25 Matej Urbančič <mateju@svn.gnome.org>
|
||||
|
||||
* sl.po: Updated Slovenian translation.
|
||||
|
||||
2007-10-23 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Djihed Afifi.
|
||||
|
||||
2007-10-21 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Djihed Afifi.
|
||||
|
||||
2007-09-30 Stéphane Raimbault <stephane.raimbault@gmail.com>
|
||||
|
||||
* fr.po: Fixed French translation.
|
||||
|
||||
2007-09-27 Changwoo Ryu <cwryu@debian.org>
|
||||
|
||||
* ko.po: Updated Korean translation.
|
||||
|
||||
2007-09-25 Gil Forcada <gforcada@svn.gnome.org>
|
||||
|
||||
* ca.po: Fixed a string in Catalan translation thanks to Sílvia Miranda.
|
||||
|
||||
2007-09-21 Gil Forcada <gforcada@svn.gnome.org>
|
||||
|
||||
* ca.po: Updated Catalan translation by Joan Duran.
|
||||
|
||||
2007-09-17 Artur Flinta <aflinta@svn.gnome.org>
|
||||
|
||||
* pl.po: Updated Polish translation by GNOME PL Team.
|
||||
|
||||
2007-09-17 Alexander Shopov <ash@contact.bg>
|
||||
|
||||
* bg.po: Updated Bulgarian translation by
|
||||
Alexander Shopov <ash@contact.bg>
|
||||
|
||||
2007-09-17 Wouter Bolsterlee <wbolster@svn.gnome.org>
|
||||
|
||||
* nl.po: Translation updated by Wouter Bolsterlee.
|
||||
|
||||
2007-09-17 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Djihed Afifi.
|
||||
|
||||
2007-09-16 Gil Forcada <gforcada@svn.gnome.org>
|
||||
|
||||
* ca.po: Updated Catalan translation.
|
||||
|
||||
2007-09-16 Takeshi AIHANA <takeshi.aihana@gmail.com>
|
||||
|
||||
* ja.po: Translation improved.
|
||||
|
||||
2007-09-16 Mugurel Tudor <mugurelu@gnome.ro>
|
||||
|
||||
* ro.po: Updated Romanian translation
|
||||
|
||||
2007-09-15 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
|
||||
|
||||
* ru.po: Updated Russian translation.
|
||||
|
||||
2007-09-15 Stéphane Raimbault <stephane.raimbault@gmail.com>
|
||||
|
||||
* fr.po: Fixed French translation by Vincent Untz and Stéphane
|
||||
Raimbault.
|
||||
|
||||
2007-09-15 Andre Klapper <a9016009@gmx.de>
|
||||
|
||||
* sk.po: Updated Slovak translation on behalf of Peter Tuharsky
|
||||
<tuharsky@misbb.sk>.
|
||||
|
||||
2007-09-14 Clytie Siddall <clytie@riverland.net.au>
|
||||
|
||||
* vi.po: Updated Vietnamese translation.
|
||||
|
||||
2007-09-14 Luca Ferretti <elle.uca@libero.it>
|
||||
|
||||
* it.po: Updated Italian translation.
|
||||
|
||||
2007-09-13 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Khaled Hosny.
|
||||
|
||||
2007-09-14 Gabor Kelemen <kelemeng@gnome.hu>
|
||||
|
||||
* hu.po: Translation updated.
|
||||
|
||||
2007-09-13 Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
|
||||
|
||||
* be@latin.po: Updated Belarusian Latin translation.
|
||||
|
||||
2007-09-12 Maxim Dziumanenko <dziumanenko@gmail.com>
|
||||
|
||||
* uk.po: Update Ukrainian translation.
|
||||
|
||||
2007-09-12 Goran Rakić <grakic@devbase.net>
|
||||
|
||||
* sr.po, sr@Latn.po: Updated Serbian translation.
|
||||
|
||||
2007-09-09 Kenneth Nielsen <k.nielsen81@gmail.com>
|
||||
|
||||
* da.po: Updated Danish translation
|
||||
|
||||
2007-09-08 Inaki Larranaga Murgoitio <dooteo@zundan.com>
|
||||
|
||||
* eu.po: Fixed some typos in Basque translation.
|
||||
|
||||
2007-09-05 Jovan Naumovski <jovan@lugola.net>
|
||||
|
||||
* mk.po: Updated Macedonian translation.
|
||||
|
||||
2007-09-03 Clytie Siddall <clytie@riverland.net.au>
|
||||
|
||||
* vi.po: Updated Vietnamese translation.
|
||||
|
||||
2007-09-03 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2007-09-03 Jovan Naumovski <jovan@lugola.net>
|
||||
|
||||
* mk.po: Updated Macedonian translation.
|
||||
|
||||
2007-09-01 Jovan Naumovski <jovan@lugola.net>
|
||||
|
||||
* mk.po: Updated Macedonian translation.
|
||||
|
||||
2007-09-01 Stéphane Raimbault <stephane.raimbault@gmail.com>
|
||||
|
||||
* fr.po: Updated French translation.
|
||||
|
||||
2007-08-30 Ani Peter <peter.ani@gmail.com>
|
||||
|
||||
* ml.po: Updated Malayalam Translation
|
||||
|
||||
2007-08-29 I. Felix <ifelix@svn.gnome.org>
|
||||
|
||||
* ta.po: Tamil Translation updated by Tirumurthi Vasudevan
|
||||
|
||||
2007-08-26 Raphael Higino <raphaelh@svn.gnome.org>
|
||||
|
||||
* pt_BR.po: Updated Brazilian Portuguese translation
|
||||
by Og Maciel <ogmaciel@ubuntu.com>.
|
||||
|
||||
2007-08-15 Adam Weinberger <adamw@gnome.org>
|
||||
|
||||
* en_CA.po: Updated Canadian English translation.
|
||||
|
||||
2007-08-13 Takeshi AIHANA <takeshi.aihana@gmail.com>
|
||||
|
||||
* ja.po: Updated Japanese translation.
|
||||
|
||||
2007-08-13 Žygimantas Beručka <zygis@gnome.org>
|
||||
|
||||
* lt.po: Updated Lithuanian translation.
|
||||
|
||||
2007-08-11 Daniel Nylander <po@danielnylander.se>
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2007-08-10 I. Felix <ifelix@svn.gnome.org>
|
||||
|
||||
* ta.po: Tamil Translation updated by Tirumurthi Vasudevan
|
||||
|
||||
2007-08-10 Ankit Patel <ankit644@yahoo.com>
|
||||
|
||||
* gu.po: Updated Gujarati Translation.
|
||||
|
||||
2007-08-09 Ilkka Tuohela <hile@iki.fi>
|
||||
|
||||
* fi.po: Updated Finnish translation.
|
||||
|
||||
2007-08-08 Ankit Patel <ankit644@yahoo.com>
|
||||
|
||||
* gu.po: Updated Gujarati Translation.
|
||||
|
||||
2007-08-07 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2007-08-07 Theppitak Karoonboonyanan <thep@linux.thai.net>
|
||||
|
||||
* th.po: Updated Thai translation.
|
||||
|
||||
2007-08-06 Ilkka Tuohela <hile@iki.fi>
|
||||
|
||||
* fi.po: Updated Finnish translation.
|
||||
|
||||
2007-08-05 Inaki Laranaga Murgoitio <dooteo@zundan.com>
|
||||
|
||||
* eu.po: Updated Basque translation.
|
||||
|
||||
2007-07-25 Alexander Shopov <ash@contact.bg>
|
||||
|
||||
* bg.po: Updated Bulgarian translation by
|
||||
Alexander Shopov <ash@contact.bg>
|
||||
|
||||
2007-07-21 Gabor Kelemen <kelemeng@gnome.hu>
|
||||
|
||||
* hu.po: Translation updated.
|
||||
@@ -32,7 +383,7 @@
|
||||
|
||||
2007-06-25 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2007-06-24 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
@@ -41,7 +392,7 @@
|
||||
|
||||
2007-06-19 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2007-06-16 Funda Wang <fundawang@gmail.com>
|
||||
|
||||
@@ -49,7 +400,7 @@
|
||||
|
||||
2007-06-15 Jorge Gonzalez <jorgegonz@svn.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2007-06-13 Pema Geyleg <pema.geyleg@gmail.com>
|
||||
|
||||
@@ -60,10 +411,10 @@
|
||||
* th.po: Updated Thai translation.
|
||||
|
||||
2007-05-09 Jovan Naumovski <jovan@lugola.net>
|
||||
|
||||
|
||||
* mk.po: Updated Macedonian translation.
|
||||
|
||||
2007-05-2 Djihed Afifi <djihed@gmail.com>
|
||||
2007-05-2 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Khaled Hosny.
|
||||
|
||||
@@ -87,7 +438,7 @@
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2007-04-14 Djihed Afifi <djihed@gmail.com>
|
||||
2007-04-14 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Khaled Hosny.
|
||||
|
||||
@@ -101,7 +452,7 @@
|
||||
|
||||
2007-04-05 Raivis Dejus <orvils@gmail.com>
|
||||
|
||||
* lv.po: Updated Latvian Translation.
|
||||
* lv.po: Updated Latvian Translation.
|
||||
|
||||
2007-04-02 Alessio Frusciante <algol@firenze.linux.it>
|
||||
|
||||
@@ -255,7 +606,7 @@
|
||||
|
||||
* et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>.
|
||||
|
||||
2007-01-22 Jakub Friedl <jfriedl@suse.cz>
|
||||
2007-01-22 Jakub Friedl <jfriedl@suse.cz>
|
||||
|
||||
* cs.po: Updated Czech translation.
|
||||
|
||||
@@ -263,7 +614,7 @@
|
||||
|
||||
* de.po: Updated German translation.
|
||||
|
||||
2007-01-15 Djihed Afifi <djihed@gmail.com>
|
||||
2007-01-15 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Khaled Hosny.
|
||||
|
||||
@@ -271,11 +622,11 @@
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2007-01-05 Jakub Friedl <jfriedl@suse.cz>
|
||||
2007-01-05 Jakub Friedl <jfriedl@suse.cz>
|
||||
|
||||
* cs.po: Updated Czech translation.
|
||||
|
||||
2007-01-3 Djihed Afifi <djihed@gmail.com>
|
||||
2007-01-3 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation by Djihed Afifi.
|
||||
|
||||
@@ -291,11 +642,11 @@
|
||||
|
||||
* th.po: Updated Thai translation.
|
||||
|
||||
2006-12-27 Djihed Afifi <djihed@gmail.com>
|
||||
2006-12-27 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation.
|
||||
|
||||
2006-12-24 Djihed Afifi <djihed@gmail.com>
|
||||
2006-12-24 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation.
|
||||
|
||||
@@ -307,7 +658,7 @@
|
||||
|
||||
* nb.po: Updated Norwegian bokmål translation.
|
||||
|
||||
2006-12-18 Djihed Afifi <djihed@gmail.com>
|
||||
2006-12-18 Djihed Afifi <djihed@gmail.com>
|
||||
|
||||
* ar.po: Updated Arabic Translation.
|
||||
|
||||
@@ -428,7 +779,7 @@
|
||||
2006-09-13 Ilkka Tuohela <hile@iki.fi>
|
||||
|
||||
* fi.po: Updated Finnish translation.
|
||||
- concistency fixes with libwnck
|
||||
- concistency fixes with libwnck
|
||||
|
||||
2006-09-13 Rajesh Ranjan <rajeshkajha@yahoo.com>
|
||||
|
||||
@@ -676,7 +1027,7 @@
|
||||
|
||||
2006-04-26 Gora Mohanty <gmohanty@cvs.gnome.org>
|
||||
|
||||
* lv.po: Updated Latvian translation by Raivis Dejus <orvils@gmail.com>
|
||||
* lv.po: Updated Latvian translation by Raivis Dejus <orvils@gmail.com>
|
||||
|
||||
2006-04-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
|
||||
|
||||
@@ -684,11 +1035,11 @@
|
||||
|
||||
2006-04-20 Ankit Patel <ankit644@yahoo.com>
|
||||
|
||||
* gu.po: Updated Gujarati Translation.
|
||||
* gu.po: Updated Gujarati Translation.
|
||||
|
||||
2006-04-19 Ankit Patel <ankit644@yahoo.com>
|
||||
|
||||
* gu.po: Updated Gujarati Translation.
|
||||
* gu.po: Updated Gujarati Translation.
|
||||
|
||||
2006-04-17 Clytie Siddall <clytie@riverland.net.au>
|
||||
|
||||
@@ -877,7 +1228,7 @@
|
||||
|
||||
2006-03-03 Maxim Dziumanenko <mvd@mylinux.ua>
|
||||
|
||||
* uk.po: Updated Ukrainian translation.
|
||||
* uk.po: Updated Ukrainian translation.
|
||||
|
||||
2006-03-02 Hendrik Richter <hendrikr@gnome.org>
|
||||
|
||||
@@ -1456,7 +1807,7 @@
|
||||
|
||||
* xh.po: Updated Xhosa translation.
|
||||
|
||||
2005-04-28 Kostas Papadimas <pkst@gnome.org>
|
||||
2005-04-28 Kostas Papadimas <pkst@gnome.org>
|
||||
|
||||
* el.po: Updated Greek translation
|
||||
|
||||
@@ -1636,7 +1987,7 @@
|
||||
|
||||
2005-02-07 David Lodge <dave@cirt.net>
|
||||
|
||||
* en_GB.po: Updated British translation.
|
||||
* en_GB.po: Updated British translation.
|
||||
|
||||
2005-02-06 Adam Weinberger <adamw@gnome.org>
|
||||
|
||||
@@ -1846,7 +2197,7 @@
|
||||
|
||||
2004-09-14 Gora Mohanty <gmohanty@cvs.gnome.org>
|
||||
|
||||
* or.po: Updated Oriya translation.
|
||||
* or.po: Updated Oriya translation.
|
||||
|
||||
2004-09-12 Paisa Seeluangsawat <paisa@users.sf.net>
|
||||
|
||||
@@ -2042,7 +2393,7 @@
|
||||
|
||||
2004-07-21 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||
|
||||
* hi.po: Updated Hindi translation.
|
||||
* hi.po: Updated Hindi translation.
|
||||
|
||||
2004-07-14 Christian Rose <menthos@menthos.com>
|
||||
|
||||
@@ -2115,8 +2466,8 @@
|
||||
|
||||
2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||
|
||||
* gu.po: Added Gujurati translation by
|
||||
Gujarati Team <magnet@magnet-i.com>.
|
||||
* gu.po: Added Gujurati translation by
|
||||
Gujarati Team <magnet@magnet-i.com>.
|
||||
|
||||
2004-04-06 Mohammad DAMT <mdamt@bisnisweb.com>
|
||||
|
||||
@@ -2136,8 +2487,8 @@
|
||||
|
||||
2004-03-24 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||
|
||||
* pa.po: Added Punjabi translation by
|
||||
Jaswinder Singh Phulewala <jaswinderlinux@netscape.net>.
|
||||
* pa.po: Added Punjabi translation by
|
||||
Jaswinder Singh Phulewala <jaswinderlinux@netscape.net>.
|
||||
|
||||
2004-03-20 Mugurel Tudor <mugurelu@go.ro>
|
||||
|
||||
@@ -2268,7 +2619,7 @@
|
||||
|
||||
2004-02-07 Robert Sedak <robert.sedak@sk.htnet.hr>
|
||||
|
||||
* hr.po: Updated Croatian translation.
|
||||
* hr.po: Updated Croatian translation.
|
||||
|
||||
2004-02-08 Changwoo Ryu <cwryu@debian.org>
|
||||
|
||||
@@ -2426,14 +2777,14 @@
|
||||
|
||||
* da.po: Updated Danish translation.
|
||||
|
||||
2003-11-26 Vincent van Adrighem <adrighem@gnome.org>
|
||||
2003-11-26 Vincent van Adrighem <adrighem@gnome.org>
|
||||
|
||||
* nl.po: Dutch translation updated by Vincent van Adrighem.
|
||||
|
||||
2003-11-10 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
|
||||
|
||||
* es.po: Updated Spanish translation by
|
||||
Francisco Javier F. Serrador <serrador@arrakis.es>.
|
||||
* es.po: Updated Spanish translation by
|
||||
Francisco Javier F. Serrador <serrador@arrakis.es>.
|
||||
|
||||
2003-11-08 Danilo Šegan <dsegan@gmx.net>
|
||||
|
||||
@@ -2565,8 +2916,8 @@
|
||||
|
||||
2003-08-27 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
|
||||
|
||||
* es.po: Revision of Spanish translation by
|
||||
Francisco Javier F. Serrador <serrador@arrakis.es>.
|
||||
* es.po: Revision of Spanish translation by
|
||||
Francisco Javier F. Serrador <serrador@arrakis.es>.
|
||||
|
||||
2003-08-26 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||
|
||||
@@ -2587,7 +2938,7 @@
|
||||
|
||||
2003-08-22 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
|
||||
|
||||
* sk.po: Update Slovak translation.
|
||||
* sk.po: Update Slovak translation.
|
||||
|
||||
2003-08-20 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
@@ -2637,7 +2988,7 @@
|
||||
|
||||
2003-08-06 Metin Amiroff <metin@karegen.com>
|
||||
|
||||
* az.po: Updated Azerbaijani translation.
|
||||
* az.po: Updated Azerbaijani translation.
|
||||
|
||||
2003-08-05 Ole Laursen <olau@hardworking.dk>
|
||||
|
||||
@@ -2645,7 +2996,7 @@
|
||||
|
||||
2003-08-05 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
|
||||
|
||||
* es.po: Updated Spanish translation.
|
||||
* es.po: Updated Spanish translation.
|
||||
|
||||
2003-07-29 Andras Timar <timar@gnome.hu>
|
||||
|
||||
@@ -2670,7 +3021,7 @@
|
||||
|
||||
2003-07-18 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2002-07-17 Kostas Papadimas <pkst@gmx.net>
|
||||
|
||||
@@ -2781,7 +3132,7 @@
|
||||
|
||||
2003-05-30 Paul Duffy <dubhthach@frink.nuigalway.ie>
|
||||
|
||||
* ga.po: Updated Irish Translation.
|
||||
* ga.po: Updated Irish Translation.
|
||||
|
||||
2003-05-30 Abel Cheung <maddog@linux.org.hk>
|
||||
|
||||
@@ -2789,7 +3140,7 @@
|
||||
|
||||
2003-05-26 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2003-05-21 Miloslav Trmac <mitr@volny.cz>
|
||||
|
||||
@@ -2819,7 +3170,7 @@
|
||||
|
||||
2003-05-12 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2003-05-10 KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>
|
||||
|
||||
@@ -2831,7 +3182,7 @@
|
||||
|
||||
2003-05-09 Evandro Fernandes Giovanini <evandrofg@ig.com.br>
|
||||
|
||||
* pt_BR.po: Updated Brazilian Portuguese translation.
|
||||
* pt_BR.po: Updated Brazilian Portuguese translation.
|
||||
|
||||
2003-05-08 Christian Rose <menthos@menthos.com>
|
||||
|
||||
@@ -2870,7 +3221,7 @@
|
||||
|
||||
2003-03-11 Paul Duffy <dubhthach@zion.nuigalway.ie>
|
||||
|
||||
* ga.po: Added Irish translation
|
||||
* ga.po: Added Irish translation
|
||||
|
||||
2003-03-10 Roozbeh Pournader <roozbeh@sharif.edu>
|
||||
|
||||
@@ -2935,8 +3286,8 @@
|
||||
|
||||
2003-01-23 He Qiangqiang <carton@linux.net.cn>
|
||||
|
||||
* zh_CN.po: Updated Simplified Chinese translation by
|
||||
Xiong Jiang <jxiong@offtopic.org>.
|
||||
* zh_CN.po: Updated Simplified Chinese translation by
|
||||
Xiong Jiang <jxiong@offtopic.org>.
|
||||
|
||||
2003-01-23 Dmitry G. Mastrukov <dmitry@taurussoft.org>
|
||||
|
||||
@@ -3792,7 +4143,7 @@
|
||||
|
||||
2002-05-06 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation and converted to UTF-8.
|
||||
* pt.po: Updated Portuguese translation and converted to UTF-8.
|
||||
|
||||
2002-04-26 Zbigniew Chyla <cyba@gnome.pl>
|
||||
|
||||
@@ -3862,7 +4213,7 @@
|
||||
|
||||
2002-02-11 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2002-02-10 Hasbullah Bin Pit <sebol@ikhlas.com>
|
||||
|
||||
@@ -3923,7 +4274,7 @@
|
||||
|
||||
2002-01-08 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2002-01-06 Fatih Demir <kabalak@gtranslator.org>
|
||||
|
||||
@@ -3936,7 +4287,7 @@
|
||||
|
||||
2001-12-27 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Added portuguese translation
|
||||
* pt.po: Added portuguese translation
|
||||
|
||||
2001-12-27 Jesus Bravo Alvarez <jba@pobox.com>
|
||||
|
||||
@@ -3970,11 +4321,11 @@
|
||||
|
||||
2001-10-29 Yuriy Syrota <rasta@renome.rovno.ua>
|
||||
|
||||
* uk.po: Added Ukrainian translation file.
|
||||
* uk.po: Added Ukrainian translation file.
|
||||
|
||||
2001-10-28 Hï¿Åtor Garcᅧï¿Åvarez <hector@scouts-es.org>
|
||||
|
||||
* es.po: Updated Spanish translation.
|
||||
* es.po: Updated Spanish translation.
|
||||
|
||||
2001-10-14 Hï¿Åtor Garcᅧï¿Åvarez <hector@scouts-es.org>
|
||||
|
||||
|
@@ -60,6 +60,7 @@ pt_BR
|
||||
ro
|
||||
ru
|
||||
rw
|
||||
si
|
||||
sk
|
||||
sl
|
||||
sq
|
||||
|
@@ -2,28 +2,28 @@
|
||||
# Please keep this file sorted alphabetically.
|
||||
src/50-metacity-desktop-key.xml.in
|
||||
src/50-metacity-key.xml.in
|
||||
src/tools/metacity-message.c
|
||||
src/core.c
|
||||
src/delete.c
|
||||
src/display.c
|
||||
src/errors.c
|
||||
src/frames.c
|
||||
src/keybindings.c
|
||||
src/main.c
|
||||
src/menu.c
|
||||
src/metaaccellabel.c
|
||||
src/metacity-dialog.c
|
||||
src/core/core.c
|
||||
src/core/delete.c
|
||||
src/core/display.c
|
||||
src/core/errors.c
|
||||
src/core/keybindings.c
|
||||
src/core/main.c
|
||||
src/core/prefs.c
|
||||
src/core/screen.c
|
||||
src/core/session.c
|
||||
src/core/util.c
|
||||
src/core/window-props.c
|
||||
src/core/window.c
|
||||
src/core/xprops.c
|
||||
src/metacity.desktop.in
|
||||
src/metacity.schemas.in
|
||||
src/prefs.c
|
||||
src/resizepopup.c
|
||||
src/screen.c
|
||||
src/session.c
|
||||
src/theme-parser.c
|
||||
src/theme-viewer.c
|
||||
src/theme.c
|
||||
src/util.c
|
||||
src/window-props.c
|
||||
src/window.c
|
||||
src/workspace.c
|
||||
src/xprops.c
|
||||
src/ui/frames.c
|
||||
src/ui/menu.c
|
||||
src/ui/metaaccellabel.c
|
||||
src/ui/metacity-dialog.c
|
||||
src/ui/resizepopup.c
|
||||
src/ui/theme-parser.c
|
||||
src/ui/theme-viewer.c
|
||||
src/ui/theme.c
|
||||
src/tools/metacity-message.c
|
||||
|
||||
|
3529
po/be@latin.po
3529
po/be@latin.po
File diff suppressed because it is too large
Load Diff
2814
po/en_CA.po
2814
po/en_CA.po
File diff suppressed because it is too large
Load Diff
216
po/fi.po
216
po/fi.po
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-07-15 20:21+0100\n"
|
||||
"POT-Creation-Date: 2007-08-09 07:12+0300\n"
|
||||
"PO-Revision-Date: 2007-02-16 20:03+0300\n"
|
||||
"Last-Translator: Ilkka Tuohela <hile@iki.fi>\n"
|
||||
"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
|
||||
@@ -61,7 +61,7 @@ msgstr "Valintaikkunaprosessilta tullut viesti \"%s\" ei jäsenny\n"
|
||||
msgid "Error reading from dialog display process: %s\n"
|
||||
msgstr "Virhe valintaikkunan näyttämisprosessilta lukemisessa: %s\n"
|
||||
|
||||
#: ../src/delete.c:348
|
||||
#: ../src/delete.c:350
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Error launching metacity-dialog to ask about killing an application: %s\n"
|
||||
@@ -69,7 +69,7 @@ msgstr ""
|
||||
"Virhe metacity-dialogin käynnistämisessä sovelluksen tappamisesta kysymistä "
|
||||
"varten: %s\n"
|
||||
|
||||
#: ../src/delete.c:456
|
||||
#: ../src/delete.c:459
|
||||
#, c-format
|
||||
msgid "Failed to get hostname: %s\n"
|
||||
msgstr "Verkkonimen haku epäonnistui: %s\n"
|
||||
@@ -202,12 +202,12 @@ msgstr "Alusta sessio tiedostosta"
|
||||
msgid "Print version"
|
||||
msgstr "Näytä versio"
|
||||
|
||||
#: ../src/main.c:352
|
||||
#: ../src/main.c:353
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "Teemakansion lukeminen epäonnistui: %s\n"
|
||||
|
||||
#: ../src/main.c:368
|
||||
#: ../src/main.c:369
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
@@ -215,108 +215,108 @@ msgstr ""
|
||||
"Teemaa ei löydy! Varmista, että %s on olemassa, ja sisältää tavalliset "
|
||||
"teemat.\n"
|
||||
|
||||
#: ../src/main.c:428
|
||||
#: ../src/main.c:429
|
||||
#, c-format
|
||||
msgid "Failed to restart: %s\n"
|
||||
msgstr "Uudelleenkäynnistys epäonnistui: %s\n"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:69
|
||||
#: ../src/menu.c:70
|
||||
msgid "Mi_nimize"
|
||||
msgstr "_Pienennä"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:71
|
||||
#: ../src/menu.c:72
|
||||
msgid "Ma_ximize"
|
||||
msgstr "S_uurenna"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:73
|
||||
#: ../src/menu.c:74
|
||||
msgid "Unma_ximize"
|
||||
msgstr "_Palauta koko"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:75
|
||||
#: ../src/menu.c:76
|
||||
msgid "Roll _Up"
|
||||
msgstr "_Rullaa ylös"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:77
|
||||
#: ../src/menu.c:78
|
||||
msgid "_Unroll"
|
||||
msgstr "_Rullaa alas"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:79
|
||||
#: ../src/menu.c:80
|
||||
msgid "_Move"
|
||||
msgstr "S_iirrä"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:81
|
||||
#: ../src/menu.c:82
|
||||
msgid "_Resize"
|
||||
msgstr "_Muuta kokoa"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:83
|
||||
#: ../src/menu.c:84
|
||||
msgid "Move Titlebar On_screen"
|
||||
msgstr "Siirrä otsikkopalkkia _näytöllä"
|
||||
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:86
|
||||
msgid "_Close"
|
||||
msgstr "_Sulje"
|
||||
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:89 ../src/menu.c:91
|
||||
#: ../src/menu.c:87 ../src/menu.c:89
|
||||
msgid "Always on _Top"
|
||||
msgstr "Aina _päällimmäisenä"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:93
|
||||
#: ../src/menu.c:91
|
||||
msgid "_Always on Visible Workspace"
|
||||
msgstr "Näytä _aina tässä työtilassa"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:95
|
||||
#: ../src/menu.c:93
|
||||
msgid "_Only on This Workspace"
|
||||
msgstr "Näytä vain _tässä työtilassa"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:97
|
||||
#: ../src/menu.c:95
|
||||
msgid "Move to Workspace _Left"
|
||||
msgstr "Siirrä _vasempaan työtilaan"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:99
|
||||
#: ../src/menu.c:97
|
||||
msgid "Move to Workspace R_ight"
|
||||
msgstr "Siirrä _oikeaan työtilaan"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:101
|
||||
#: ../src/menu.c:99
|
||||
msgid "Move to Workspace _Up"
|
||||
msgstr "Siirry _ylläolevaan työtilaan"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:103
|
||||
#: ../src/menu.c:101
|
||||
msgid "Move to Workspace _Down"
|
||||
msgstr "Siirrä _allaolevaan työtilaan"
|
||||
|
||||
#: ../src/menu.c:197 ../src/prefs.c:2238 ../src/prefs.c:2773
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:105
|
||||
msgid "_Close"
|
||||
msgstr "_Sulje"
|
||||
|
||||
#: ../src/menu.c:199 ../src/prefs.c:2246 ../src/prefs.c:2780
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Työtila %d"
|
||||
|
||||
#: ../src/menu.c:206
|
||||
#: ../src/menu.c:208
|
||||
msgid "Workspace 1_0"
|
||||
msgstr "Työtila 1_0"
|
||||
|
||||
#: ../src/menu.c:208
|
||||
#: ../src/menu.c:210
|
||||
#, c-format
|
||||
msgid "Workspace %s%d"
|
||||
msgstr "Työtila %s%d"
|
||||
|
||||
#: ../src/menu.c:411
|
||||
#: ../src/menu.c:390
|
||||
msgid "Move to Another _Workspace"
|
||||
msgstr "Siirrä toiseen t_yötilaan"
|
||||
|
||||
@@ -864,6 +864,23 @@ msgid ""
|
||||
"and that they need to change this option back to true or live with the bug "
|
||||
"they requested. See also http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6."
|
||||
msgstr ""
|
||||
"Tämän valitsimen asettaminen epätodeksi voi johtaa epävakaaseen toimintaan, "
|
||||
"joten on erittäin suositeltavaa olla muuttamatta oletusarvo tosi. Monet "
|
||||
"toiminnotu, kuten napsautus ikkunan asiakasosaan sekä ikkunan siirto ja koon "
|
||||
"muuttaminen, nostavat samalla ikkunan näkyviin. Asettamalla tämän epätodeksi "
|
||||
"voit estää tämän nostamisen. Arvosta riippumatta ikkuna voidaan nostaa "
|
||||
"edelleen aina päällimmäiseksi napsauttamalla ikkunaa Alt-vasen "
|
||||
"nappiyhdistelmällä, napsauttamalla ikkunan reunoja tavallisesti tai "
|
||||
"erityisillä sivuttajien viesteillä, kuten tehtävälistasovelman "
|
||||
"aktivointipyynnöllä. Tämä valitsin ei ole lainkaan käytössä click-to-focus -"
|
||||
"tilassa. Huomaa, että tavat nostaa ikkuna valitsimen raise_on_click ollessa "
|
||||
"epätosi eivät sisllä ohjelmallisia pyyntöjä sovelluksilta ikkunan nostoon: "
|
||||
"tällaiset pyynnöt jätetään huomioimatta riippumatta pyynnön syystä. Jos olet "
|
||||
"kehittäjä, joiden käyttäjät valittavat ettei sovellus toimi tämän asetuksen "
|
||||
"ollessa epätosi, voit kertoa että tämä on käyttäjien oma vika ja heidän "
|
||||
"tulee joko asettaa tämä uudestaan todeksi tai sietää vikaa, jota itse ovat "
|
||||
"pyytäneet asettamalla arvon epätodeksi. Lue lisää osoitteesta http://"
|
||||
"bugzilla.gnome.org/show_bug.cgi?id=445447#c6."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:79
|
||||
msgid "Show the panel menu"
|
||||
@@ -2211,10 +2228,10 @@ msgid ""
|
||||
"anything."
|
||||
msgstr ""
|
||||
"Tämä valinta määrittelee otsikkopalkin keskinapilla napsautuksen toiminnon. "
|
||||
"Tällä hetkellä mahdolliset toiminnot ovat \"toggle_shade\", joka rullaa ikkunan "
|
||||
"ylös tai avaa rullauksen, \"toggle_maximize\", joka suurentaa tai palauttaa "
|
||||
"ikkunan, \"minimize\", joka pienentää ikkunan tai \"none\" joka ei tee "
|
||||
"mitään."
|
||||
"Tällä hetkellä mahdolliset toiminnot ovat \"toggle_shade\", joka rullaa "
|
||||
"ikkunan ylös tai avaa rullauksen, \"toggle_maximize\", joka suurentaa tai "
|
||||
"palauttaa ikkunan, \"minimize\", joka pienentää ikkunan tai \"none\" joka ei "
|
||||
"tee mitään."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:189
|
||||
msgid ""
|
||||
@@ -2224,11 +2241,11 @@ msgid ""
|
||||
"'minimize' which will minimize the window, and 'none' which will not do "
|
||||
"anything."
|
||||
msgstr ""
|
||||
"Tämä valinta määrittelee otsikkopalkin oikealla napilla napsautuksen toiminnon. "
|
||||
"Tällä hetkellä mahdolliset toiminnot ovat \"toggle_shade\", joka rullaa ikkunan "
|
||||
"ylös tai avaa rullauksen, \"toggle_maximize\", joka suurentaa tai palauttaa "
|
||||
"ikkunan, \"minimize\", joka pienentää ikkunan tai \"none\" joka ei tee "
|
||||
"mitään."
|
||||
"Tämä valinta määrittelee otsikkopalkin oikealla napilla napsautuksen "
|
||||
"toiminnon. Tällä hetkellä mahdolliset toiminnot ovat \"toggle_shade\", joka "
|
||||
"rullaa ikkunan ylös tai avaa rullauksen, \"toggle_maximize\", joka suurentaa "
|
||||
"tai palauttaa ikkunan, \"minimize\", joka pienentää ikkunan tai \"none\" "
|
||||
"joka ei tee mitään."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:190
|
||||
msgid ""
|
||||
@@ -2295,19 +2312,24 @@ msgstr "Windows-tyylinen kohdistus"
|
||||
msgid "Window title font"
|
||||
msgstr "Ikkunan otsikon kirjasin"
|
||||
|
||||
#: ../src/prefs.c:579 ../src/prefs.c:607 ../src/prefs.c:623 ../src/prefs.c:639
|
||||
#: ../src/prefs.c:655 ../src/prefs.c:671 ../src/prefs.c:687 ../src/prefs.c:703
|
||||
#: ../src/prefs.c:723 ../src/prefs.c:739 ../src/prefs.c:755 ../src/prefs.c:773
|
||||
#: ../src/prefs.c:789 ../src/prefs.c:808 ../src/prefs.c:824 ../src/prefs.c:859
|
||||
#: ../src/prefs.c:875 ../src/prefs.c:892 ../src/prefs.c:908 ../src/prefs.c:924
|
||||
#: ../src/prefs.c:940 ../src/prefs.c:956 ../src/prefs.c:971 ../src/prefs.c:986
|
||||
#: ../src/prefs.c:1001 ../src/prefs.c:1017 ../src/prefs.c:1033
|
||||
#: ../src/prefs.c:1049 ../src/prefs.c:1065
|
||||
#: ../src/prefs.c:434
|
||||
#, c-format
|
||||
msgid "Type of %s was not integer"
|
||||
msgstr "Muuttujan %s tyyppi ei ollut kokonaisluku"
|
||||
|
||||
#: ../src/prefs.c:572 ../src/prefs.c:600 ../src/prefs.c:616 ../src/prefs.c:632
|
||||
#: ../src/prefs.c:648 ../src/prefs.c:664 ../src/prefs.c:680 ../src/prefs.c:696
|
||||
#: ../src/prefs.c:716 ../src/prefs.c:732 ../src/prefs.c:748 ../src/prefs.c:766
|
||||
#: ../src/prefs.c:782 ../src/prefs.c:801 ../src/prefs.c:817 ../src/prefs.c:852
|
||||
#: ../src/prefs.c:868 ../src/prefs.c:885 ../src/prefs.c:901 ../src/prefs.c:917
|
||||
#: ../src/prefs.c:933 ../src/prefs.c:949 ../src/prefs.c:964 ../src/prefs.c:979
|
||||
#: ../src/prefs.c:994 ../src/prefs.c:1010 ../src/prefs.c:1026
|
||||
#: ../src/prefs.c:1042 ../src/prefs.c:1058
|
||||
#, c-format
|
||||
msgid "GConf key \"%s\" is set to an invalid type\n"
|
||||
msgstr "GConf-avain \"%s\" on asetettu väärän tyyppiseksi\n"
|
||||
|
||||
#: ../src/prefs.c:1110
|
||||
#: ../src/prefs.c:1103
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||
@@ -2315,12 +2337,12 @@ msgid ""
|
||||
msgstr ""
|
||||
"Asetustietokannassa oleva \"%s\" ei ole kelvollinen hiiren muunnosnäppäin\n"
|
||||
|
||||
#: ../src/prefs.c:1134 ../src/prefs.c:1155 ../src/prefs.c:1697
|
||||
#: ../src/prefs.c:1127 ../src/prefs.c:1148 ../src/prefs.c:1705
|
||||
#, c-format
|
||||
msgid "GConf key '%s' is set to an invalid value\n"
|
||||
msgstr "GConf-avain \"%s\" on asetettu arvoltaan vääräksi\n"
|
||||
|
||||
#: ../src/prefs.c:1284
|
||||
#: ../src/prefs.c:1277
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable cursor_size; must be in the "
|
||||
@@ -2329,12 +2351,12 @@ msgstr ""
|
||||
"GConf-avaimeen %2$s tallennettu arvo %1$d ei ole järkevä kohdistimen koko. "
|
||||
"Sallitut arvot ovat välilä 1-128\n"
|
||||
|
||||
#: ../src/prefs.c:1364
|
||||
#: ../src/prefs.c:1357
|
||||
#, c-format
|
||||
msgid "Could not parse font description \"%s\" from GConf key %s\n"
|
||||
msgstr "GConf-avaimesta %2$s saatu kirjasinkuvaus \"%1$s\" ei jäsenny\n"
|
||||
|
||||
#: ../src/prefs.c:1591
|
||||
#: ../src/prefs.c:1599
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable number of workspaces, current "
|
||||
@@ -2343,7 +2365,7 @@ msgstr ""
|
||||
"GConf-avaimeen %2$s tallennettu %1$d ei ole järkevä työtilojen määrä. "
|
||||
"Nykyinen raja on %3$d\n"
|
||||
|
||||
#: ../src/prefs.c:1651
|
||||
#: ../src/prefs.c:1659
|
||||
msgid ""
|
||||
"Workarounds for broken applications disabled. Some applications may not "
|
||||
"behave properly.\n"
|
||||
@@ -2351,17 +2373,17 @@ msgstr ""
|
||||
"Rikkinäisten sovellusten kiertotiet eivät ole käytössä. Jotkin sovellukset "
|
||||
"eivät välttämättä käyttäydy kunnolla.\n"
|
||||
|
||||
#: ../src/prefs.c:1724
|
||||
#: ../src/prefs.c:1732
|
||||
#, c-format
|
||||
msgid "%d stored in GConf key %s is out of range 0 to %d\n"
|
||||
msgstr "%d, joka on GConf-avaimessa %s, ei ole välillä 0 - %d\n"
|
||||
|
||||
#: ../src/prefs.c:1873
|
||||
#: ../src/prefs.c:1881
|
||||
#, c-format
|
||||
msgid "Error setting number of workspaces to %d: %s\n"
|
||||
msgstr "Virhe työtilojen määrän asettamisessa arvoon %d: %s\n"
|
||||
|
||||
#: ../src/prefs.c:2268 ../src/prefs.c:2438
|
||||
#: ../src/prefs.c:2276 ../src/prefs.c:2446
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||
@@ -2370,7 +2392,7 @@ msgstr ""
|
||||
"\"%s\", joka on asetustietokannassa, ei ole kelvollinen näppäinsidonnan \"%s"
|
||||
"\" arvo\n"
|
||||
|
||||
#: ../src/prefs.c:2854
|
||||
#: ../src/prefs.c:2861
|
||||
#, c-format
|
||||
msgid "Error setting name for workspace %d to \"%s\": %s\n"
|
||||
msgstr "Virhe työtilan %d nimen asettamisessa nimeksi \"%s\": %s\n"
|
||||
@@ -3267,11 +3289,11 @@ msgstr "Painikkeen sivusuhde %g ei ole järkevä"
|
||||
msgid "Frame geometry does not specify size of buttons"
|
||||
msgstr "Kehyksen mitat eivät määrittele painikkeiden kokoa"
|
||||
|
||||
#: ../src/theme.c:928
|
||||
#: ../src/theme.c:925
|
||||
msgid "Gradients should have at least two colors"
|
||||
msgstr "Väriliu'uissa täytyy olla vähintään kaksi väriä"
|
||||
|
||||
#: ../src/theme.c:1054
|
||||
#: ../src/theme.c:1051
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
@@ -3280,7 +3302,7 @@ msgstr ""
|
||||
"GTK-värimääritteessä täytyy olla tila hakasuluissa. Esimerkiksi gtk:fg"
|
||||
"[NORMAL], jossa NORMAL on tila. \"%s\" ei jäsentynyt."
|
||||
|
||||
#: ../src/theme.c:1068
|
||||
#: ../src/theme.c:1065
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||
@@ -3289,17 +3311,17 @@ msgstr ""
|
||||
"GTK-värimääritteessä täytyy olla loppuhakasulku tilan jälkeen. Esimerkiksi "
|
||||
"gtk:fg[NORMAL], jossa NORMAL on tila. \"%s\" ei jäsenny."
|
||||
|
||||
#: ../src/theme.c:1079
|
||||
#: ../src/theme.c:1076
|
||||
#, c-format
|
||||
msgid "Did not understand state \"%s\" in color specification"
|
||||
msgstr "Tila \"%s\" ei ole värimääritteessä järkevä"
|
||||
|
||||
#: ../src/theme.c:1092
|
||||
#: ../src/theme.c:1089
|
||||
#, c-format
|
||||
msgid "Did not understand color component \"%s\" in color specification"
|
||||
msgstr "Värikomponentti \"%s\" ei ole värimääritteessä järkevä"
|
||||
|
||||
#: ../src/theme.c:1122
|
||||
#: ../src/theme.c:1119
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||
@@ -3308,56 +3330,56 @@ msgstr ""
|
||||
"Sekoitusmuoto on \"blend/taustaväri/edustaväri/alfa\". \"%s\" ei ole tätä "
|
||||
"muotoa."
|
||||
|
||||
#: ../src/theme.c:1133
|
||||
#: ../src/theme.c:1130
|
||||
#, c-format
|
||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||
msgstr "Alfa-arvo \"%s\" sekoitusvärissä ei jäsenny"
|
||||
|
||||
#: ../src/theme.c:1143
|
||||
#: ../src/theme.c:1140
|
||||
#, c-format
|
||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||
msgstr "Alfa-arvo \"%s\" sekoitusvärissä ei ole välillä 0.0 - 1.0"
|
||||
|
||||
#: ../src/theme.c:1190
|
||||
#: ../src/theme.c:1187
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgstr ""
|
||||
"Varjostusmuoto on \"shade/perusväri/kerroin\". \"%s\" ei ole tämän muotoinen."
|
||||
|
||||
#: ../src/theme.c:1201
|
||||
#: ../src/theme.c:1198
|
||||
#, c-format
|
||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||
msgstr "Varjostuskerroin \"%s\" varjostetussa värissä ei jäsenny"
|
||||
|
||||
#: ../src/theme.c:1211
|
||||
#: ../src/theme.c:1208
|
||||
#, c-format
|
||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||
msgstr "Varjostuskerroin \"%s\" varjostetussa värissä on negatiivinen"
|
||||
|
||||
#: ../src/theme.c:1240
|
||||
#: ../src/theme.c:1237
|
||||
#, c-format
|
||||
msgid "Could not parse color \"%s\""
|
||||
msgstr "Värin \"%s\" jäsentäminen ei onnistunut"
|
||||
|
||||
#: ../src/theme.c:1499
|
||||
#: ../src/theme.c:1496
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr "Koordinaattilauseke sisältää merkin \"%s\", joka ei ole sallittu"
|
||||
|
||||
#: ../src/theme.c:1526
|
||||
#: ../src/theme.c:1523
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contains floating point number '%s' which could not be "
|
||||
"parsed"
|
||||
msgstr "Koordinaattilauseke sisältää liukuluvun \"%s\", joka ei jäsentynyt"
|
||||
|
||||
#: ../src/theme.c:1540
|
||||
#: ../src/theme.c:1537
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr "Koordinaattilauseke sisältää kokonaisluvun \"%s\", joka ei jäsentynyt"
|
||||
|
||||
#: ../src/theme.c:1607
|
||||
#: ../src/theme.c:1604
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contained unknown operator at the start of this text: "
|
||||
@@ -3366,20 +3388,20 @@ msgstr ""
|
||||
"Koordinaattilauseke sisälsi tuntemattoman operaattorin seuraavan tekstin "
|
||||
"alussa: \"%s\""
|
||||
|
||||
#: ../src/theme.c:1664
|
||||
#: ../src/theme.c:1661
|
||||
msgid "Coordinate expression was empty or not understood"
|
||||
msgstr "Koordinaattilauseke oli tyhjä tai ei järkevä"
|
||||
|
||||
#: ../src/theme.c:1801 ../src/theme.c:1811 ../src/theme.c:1845
|
||||
#: ../src/theme.c:1798 ../src/theme.c:1808 ../src/theme.c:1842
|
||||
msgid "Coordinate expression results in division by zero"
|
||||
msgstr "Koordinaattilauseke johtaa nollalla jakamiseen"
|
||||
|
||||
#: ../src/theme.c:1853
|
||||
#: ../src/theme.c:1850
|
||||
msgid ""
|
||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||
msgstr "Koordinaattilauseke yrittää soveltaa mod-operaattoria liukulukuun"
|
||||
|
||||
#: ../src/theme.c:1909
|
||||
#: ../src/theme.c:1906
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
@@ -3387,16 +3409,16 @@ msgstr ""
|
||||
"Koordinaattilausekkeessa on operaattori \"%s\", jonka paikalla pitäisi olla "
|
||||
"operandi"
|
||||
|
||||
#: ../src/theme.c:1918
|
||||
#: ../src/theme.c:1915
|
||||
msgid "Coordinate expression had an operand where an operator was expected"
|
||||
msgstr ""
|
||||
"Koordinaattilauseke sisälsi operandin kohdassa, johon kuuluisi operaattori"
|
||||
|
||||
#: ../src/theme.c:1926
|
||||
#: ../src/theme.c:1923
|
||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||
msgstr "Koordinaattilauseke päättyi operaattoriin, ei operandiin"
|
||||
|
||||
#: ../src/theme.c:1936
|
||||
#: ../src/theme.c:1933
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||
@@ -3405,35 +3427,35 @@ msgstr ""
|
||||
"Koordinaattilausekkeessa on operaattori \"%c\" operaattorin \"%c\" perässä "
|
||||
"ilman operandia välissä"
|
||||
|
||||
#: ../src/theme.c:2054
|
||||
#: ../src/theme.c:2051
|
||||
msgid "Coordinate expression parser overflowed its buffer."
|
||||
msgstr "Koordinaattilausekkeen tulkitsijan puskuri ylitettiin."
|
||||
|
||||
#: ../src/theme.c:2083
|
||||
#: ../src/theme.c:2080
|
||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||
msgstr ""
|
||||
"Koordinaattilausekkeessa oli lopetussulje ilman vastaavaa aloitussuljetta"
|
||||
|
||||
#: ../src/theme.c:2145
|
||||
#: ../src/theme.c:2142
|
||||
#, c-format
|
||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||
msgstr "Koordinaattilausekkessa oli tuntematon muuttuja tai vakio \"%s\""
|
||||
|
||||
#: ../src/theme.c:2200
|
||||
#: ../src/theme.c:2197
|
||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||
msgstr "Koordinaattilauseke oli aloitussulje ilman vastaavaa lopetussuljetta"
|
||||
|
||||
#: ../src/theme.c:2211
|
||||
#: ../src/theme.c:2208
|
||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||
msgstr ""
|
||||
"Koordinaattilausekkeessa ei vaikuta olevan operaattoreita eikä operandeja"
|
||||
|
||||
#: ../src/theme.c:2452 ../src/theme.c:2474 ../src/theme.c:2495
|
||||
#: ../src/theme.c:2449 ../src/theme.c:2471 ../src/theme.c:2492
|
||||
#, c-format
|
||||
msgid "Theme contained an expression \"%s\" that resulted in an error: %s\n"
|
||||
msgstr "Teema sisälsi lausekkeen \"%s\" josta seurasi virhe: %s\n"
|
||||
|
||||
#: ../src/theme.c:3949
|
||||
#: ../src/theme.c:3946
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -3442,7 +3464,7 @@ msgstr ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"mikä lienee\"/> täytyy olla "
|
||||
"määritelty tätä kehystyyliä varten"
|
||||
|
||||
#: ../src/theme.c:4425 ../src/theme.c:4450
|
||||
#: ../src/theme.c:4422 ../src/theme.c:4447
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
@@ -3450,18 +3472,18 @@ msgstr ""
|
||||
"<frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"mikä lienee\"/> "
|
||||
"puuttuu"
|
||||
|
||||
#: ../src/theme.c:4496
|
||||
#: ../src/theme.c:4493
|
||||
#, c-format
|
||||
msgid "Failed to load theme \"%s\": %s\n"
|
||||
msgstr "Teeman \"%s\" lataaminen epäonnistui: %s\n"
|
||||
|
||||
#: ../src/theme.c:4606 ../src/theme.c:4613 ../src/theme.c:4620
|
||||
#: ../src/theme.c:4627 ../src/theme.c:4634
|
||||
#: ../src/theme.c:4603 ../src/theme.c:4610 ../src/theme.c:4617
|
||||
#: ../src/theme.c:4624 ../src/theme.c:4631
|
||||
#, c-format
|
||||
msgid "No <%s> set for theme \"%s\""
|
||||
msgstr "<%s> ei ole asetettu teemaa \"%s\" varten"
|
||||
|
||||
#: ../src/theme.c:4642
|
||||
#: ../src/theme.c:4639
|
||||
#, c-format
|
||||
msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
@@ -3470,7 +3492,7 @@ msgstr ""
|
||||
"Ikkunatyypille \"%s\" ei ole asetettu kehystyyliä teemassa \"%s\". Lisää "
|
||||
"<window type=\"%s\" style_set=\"mikä lienee\"/>-elementti."
|
||||
|
||||
#: ../src/theme.c:5009 ../src/theme.c:5071 ../src/theme.c:5134
|
||||
#: ../src/theme.c:5006 ../src/theme.c:5068 ../src/theme.c:5131
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
@@ -3478,7 +3500,7 @@ msgstr ""
|
||||
"Käyttäjän määrittelemien vakioiden täytyy alkaa isolla kirjaimella; \"%s\" "
|
||||
"ei ala"
|
||||
|
||||
#: ../src/theme.c:5017 ../src/theme.c:5079 ../src/theme.c:5142
|
||||
#: ../src/theme.c:5014 ../src/theme.c:5076 ../src/theme.c:5139
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "Vakio \"%s\" on jo määritelty"
|
||||
@@ -3530,7 +3552,7 @@ msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "Virheellinen WM_TRANSIENT_FOR ikkuna 0x%lx kohteelle %s.\n"
|
||||
|
||||
#. first time through
|
||||
#: ../src/window.c:5540
|
||||
#: ../src/window.c:5551
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -3546,7 +3568,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/window.c:6102
|
||||
#: ../src/window.c:6116
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
||||
|
241
po/hu.po
241
po/hu.po
@@ -10,8 +10,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity.HEAD\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-06-25 03:37+0100\n"
|
||||
"PO-Revision-Date: 2007-07-21 09:05+0100\n"
|
||||
"POT-Creation-Date: 2007-08-07 03:38+0100\n"
|
||||
"PO-Revision-Date: 2007-09-13 23:09+0200\n"
|
||||
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
|
||||
"Language-Team: Hungarian <gnome@gnome.hu>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -66,14 +66,14 @@ msgstr ""
|
||||
"Hiba történt a párbeszédablak-megjelenítő folyamatból való olvasás közben : %"
|
||||
"s\n"
|
||||
|
||||
#: ../src/delete.c:348
|
||||
#: ../src/delete.c:350
|
||||
#, c-format
|
||||
msgid "Error launching metacity-dialog to ask about killing an application: %s\n"
|
||||
msgstr ""
|
||||
"Nem sikerült elindítani a program kilövéséről kérdező metacity "
|
||||
"párbeszédablakot: %s\n"
|
||||
|
||||
#: ../src/delete.c:456
|
||||
#: ../src/delete.c:459
|
||||
#, c-format
|
||||
msgid "Failed to get hostname: %s\n"
|
||||
msgstr "Hiba a gépnév lekérdezése közben: %s\n"
|
||||
@@ -181,7 +181,8 @@ msgstr ""
|
||||
"metacity %s\n"
|
||||
"Copyright (C) 2001-2007 Havoc Pennington, Red Hat, Inc., és mások\n"
|
||||
"Ez egy szabad szoftver; lásd a forrást a másolás feltételeiről.\n"
|
||||
"NINCS garancia; még az ELADHATÓSÁGRA vagy EGY ADOTT CÉLRA VALÓ ALKALMASSÁGRA vonatkozólag sem.\n"
|
||||
"NINCS garancia; még az ELADHATÓSÁGRA vagy EGY ADOTT CÉLRA VALÓ ALKALMASSÁGRA "
|
||||
"vonatkozólag sem.\n"
|
||||
|
||||
#: ../src/main.c:171
|
||||
msgid "Disable connection to session manager"
|
||||
@@ -207,120 +208,120 @@ msgstr "A munkamenet inicializálása a mentési fájlból"
|
||||
msgid "Print version"
|
||||
msgstr "Verzió kinyomtatása"
|
||||
|
||||
#: ../src/main.c:352
|
||||
#: ../src/main.c:353
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "Témakönyvtár beolvasása sikertelen: %s\n"
|
||||
|
||||
#: ../src/main.c:368
|
||||
#: ../src/main.c:369
|
||||
#, c-format
|
||||
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
msgstr ""
|
||||
"Nem található téma! Bizonyosodjon meg róla hogy a(z) %s létezik és "
|
||||
"tartalmazza a szokásos témákat.\n"
|
||||
|
||||
#: ../src/main.c:428
|
||||
#: ../src/main.c:429
|
||||
#, c-format
|
||||
msgid "Failed to restart: %s\n"
|
||||
msgstr "Újraindítás sikertelen: %s\n"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:69
|
||||
#: ../src/menu.c:70
|
||||
msgid "Mi_nimize"
|
||||
msgstr "Mi_nimalizálás"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:71
|
||||
#: ../src/menu.c:72
|
||||
msgid "Ma_ximize"
|
||||
msgstr "Ma_ximalizálás"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:73
|
||||
#: ../src/menu.c:74
|
||||
msgid "Unma_ximize"
|
||||
msgstr "_Eredeti méret"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:75
|
||||
#: ../src/menu.c:76
|
||||
msgid "Roll _Up"
|
||||
msgstr "_Felgördítés"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:77
|
||||
#: ../src/menu.c:78
|
||||
msgid "_Unroll"
|
||||
msgstr "_Legördítés"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:79
|
||||
#: ../src/menu.c:80
|
||||
msgid "_Move"
|
||||
msgstr "Át_helyezés"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:81
|
||||
#: ../src/menu.c:82
|
||||
msgid "_Resize"
|
||||
msgstr "Át_méretezés"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:83
|
||||
#: ../src/menu.c:84
|
||||
msgid "Move Titlebar On_screen"
|
||||
msgstr "_Címsor mozgatása a képernyőn"
|
||||
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:86
|
||||
msgid "_Close"
|
||||
msgstr "_Bezárás"
|
||||
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:89 ../src/menu.c:91
|
||||
#: ../src/menu.c:87 ../src/menu.c:89
|
||||
msgid "Always on _Top"
|
||||
msgstr "Mindig l_egfelül"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:93
|
||||
#: ../src/menu.c:91
|
||||
msgid "_Always on Visible Workspace"
|
||||
msgstr "Mindig a látható m_unkaterületen"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:95
|
||||
#: ../src/menu.c:93
|
||||
msgid "_Only on This Workspace"
|
||||
msgstr "_Csak ezen a munkaterületen"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:97
|
||||
#: ../src/menu.c:95
|
||||
msgid "Move to Workspace _Left"
|
||||
msgstr "Áthelyezés a _bal oldali munkaterületre"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:99
|
||||
#: ../src/menu.c:97
|
||||
msgid "Move to Workspace R_ight"
|
||||
msgstr "Áthelyezés a _jobb oldali munkaterületre"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:101
|
||||
#: ../src/menu.c:99
|
||||
msgid "Move to Workspace _Up"
|
||||
msgstr "Áthelyezés a _felső munkaterületre"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:103
|
||||
#: ../src/menu.c:101
|
||||
msgid "Move to Workspace _Down"
|
||||
msgstr "Áthelyezés az _alsó munkaterületre"
|
||||
|
||||
#: ../src/menu.c:197 ../src/prefs.c:2238 ../src/prefs.c:2773
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:105
|
||||
msgid "_Close"
|
||||
msgstr "_Bezárás"
|
||||
|
||||
#: ../src/menu.c:199 ../src/prefs.c:2246 ../src/prefs.c:2780
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "%d. munkaterület"
|
||||
|
||||
#: ../src/menu.c:206
|
||||
#: ../src/menu.c:208
|
||||
msgid "Workspace 1_0"
|
||||
msgstr "1_0. munkaterület"
|
||||
|
||||
#: ../src/menu.c:208
|
||||
#: ../src/menu.c:210
|
||||
#, c-format
|
||||
msgid "Workspace %s%d"
|
||||
msgstr "%s%d. munkaterület"
|
||||
|
||||
#: ../src/menu.c:411
|
||||
#: ../src/menu.c:390
|
||||
msgid "Move to Another _Workspace"
|
||||
msgstr "Áthelyezés másik _munkaterületre"
|
||||
|
||||
@@ -877,20 +878,23 @@ msgid ""
|
||||
"and that they need to change this option back to true or live with the bug "
|
||||
"they requested. See also http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6."
|
||||
msgstr ""
|
||||
"Ezen érték hamisra állítása hibás viselkedést eredményezhet, ezért nem javasolt "
|
||||
"az alapértelmezett igaz érték módosítása. Számos művelet (például a kattintás a "
|
||||
"kliens területén, az ablak mozgatása vagy átméretezése) mellékhatásként előtérbe "
|
||||
"hozzák az ablakot. Ezen beállítás hamisra állításával az előtérbe hozást elválaszthatja "
|
||||
"más felhasználói műveletektől. Ha ez az érték hamis, az ablakok akkor is előtérbe hozhatók "
|
||||
"az alt+bal gombbal kattintással az ablakban bárhová, normál kattintással az ablak díszítésein vagy "
|
||||
"a lapozók speciális üzeneteivel, például aktiválási kérésekkel a feladatlista kisalkalmazásoktól. "
|
||||
"Ez a beállítás jelenleg le van tiltva a \"kattintás fókuszhoz\" módban. "
|
||||
"Ne feledje, hogy az ablakok előtérbe hozási módjainak listája a "
|
||||
"raise_on_click hamis értéke esetén nem tartalmazza az alkalmazások ablak-előtérbe "
|
||||
"hozási programkéréseit, az ilyen kérések a kérés okától függetlenül figyelmen kívül maradnak. "
|
||||
"Ha alkalmazásfejlesztőként a felhasználói arra panaszkodnak, hogy az alkalmazás nem működik "
|
||||
"ezen beállítás letiltásakor, akkor vissza kell állítaniuk ezen beállítás true értékét. "
|
||||
"További információkért keresse fel a http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6 oldalt."
|
||||
"Ezen érték hamisra állítása hibás viselkedést eredményezhet, ezért nem "
|
||||
"javasolt az alapértelmezett igaz érték módosítása. Számos művelet (például a "
|
||||
"kattintás a kliens területén, az ablak mozgatása vagy átméretezése) "
|
||||
"mellékhatásként előtérbe hozzák az ablakot. Ezen beállítás hamisra "
|
||||
"állításával az előtérbe hozást elválaszthatja más felhasználói műveletektől. "
|
||||
"Ha ez az érték hamis, az ablakok akkor is előtérbe hozhatók az alt+bal "
|
||||
"gombbal kattintással az ablakban bárhová, normál kattintással az ablak "
|
||||
"díszítésein vagy a lapozók speciális üzeneteivel, például aktiválási "
|
||||
"kérésekkel a feladatlista kisalkalmazásoktól. Ez a beállítás jelenleg le van "
|
||||
"tiltva a \"kattintás fókuszhoz\" módban. Ne feledje, hogy az ablakok "
|
||||
"előtérbe hozási módjainak listája a raise_on_click hamis értéke esetén nem "
|
||||
"tartalmazza az alkalmazások ablak-előtérbe hozási programkéréseit, az ilyen "
|
||||
"kérések a kérés okától függetlenül figyelmen kívül maradnak. Ha "
|
||||
"alkalmazásfejlesztőként a felhasználói arra panaszkodnak, hogy az alkalmazás "
|
||||
"nem működik ezen beállítás letiltásakor, akkor vissza kell állítaniuk ezen "
|
||||
"beállítás true értékét. További információkért keresse fel a http://bugzilla."
|
||||
"gnome.org/show_bug.cgi?id=445447#c6 oldalt."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:79
|
||||
msgid "Show the panel menu"
|
||||
@@ -2318,9 +2322,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Ez az opció határozza meg, hogy mi történjen a címsoron való dupla kattintás "
|
||||
"esetén. Jelenleg érvényes opciók a \"toggle_shade\", amely hatására az ablak "
|
||||
"felgördül/legördül, a \"toggle_maximize\", amely hatására teljes "
|
||||
"képernyős/eredeti méretű lesz, \"minimize\", amely hatására kis méretű lesz "
|
||||
"az ablak és \"none\", amely nem hajt végre semmit."
|
||||
"felgördül/legördül, a \"toggle_maximize\", amely hatására teljes képernyős/"
|
||||
"eredeti méretű lesz, \"minimize\", amely hatására kis méretű lesz az ablak "
|
||||
"és \"none\", amely nem hajt végre semmit."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:188
|
||||
msgid ""
|
||||
@@ -2330,11 +2334,11 @@ msgid ""
|
||||
"'minimize' which will minimize the window, and 'none' which will not do "
|
||||
"anything."
|
||||
msgstr ""
|
||||
"Ez az opció határozza meg, hogy mi történjen a címsoron való középsőgombos kattintás "
|
||||
"esetén. Jelenleg érvényes opciók a \"toggle_shade\", amely hatására az ablak "
|
||||
"felgördül/legördül, a \"toggle_maximize\", amely hatására teljes "
|
||||
"képernyős/eredeti méretű lesz, \"minimize\", amely hatására kis méretű lesz "
|
||||
"az ablak és \"none\", amely nem hajt végre semmit."
|
||||
"Ez az opció határozza meg, hogy mi történjen a címsoron való középsőgombos "
|
||||
"kattintás esetén. Jelenleg érvényes opciók a \"toggle_shade\", amely "
|
||||
"hatására az ablak felgördül/legördül, a \"toggle_maximize\", amely hatására "
|
||||
"teljes képernyős/eredeti méretű lesz, \"minimize\", amely hatására kis "
|
||||
"méretű lesz az ablak és \"none\", amely nem hajt végre semmit."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:189
|
||||
msgid ""
|
||||
@@ -2344,11 +2348,11 @@ msgid ""
|
||||
"'minimize' which will minimize the window, and 'none' which will not do "
|
||||
"anything."
|
||||
msgstr ""
|
||||
"Ez az opció határozza meg, hogy mi történjen a címsoron való jobb gombos kattintás "
|
||||
"esetén. Jelenleg érvényes opciók a \"toggle_shade\", amely hatására az ablak "
|
||||
"felgördül/legördül, a \"toggle_maximize\", amely hatására teljes "
|
||||
"képernyős/eredeti méretű lesz, \"minimize\", amely hatására kis méretű lesz "
|
||||
"az ablak és \"none\", amely nem hajt végre semmit."
|
||||
"Ez az opció határozza meg, hogy mi történjen a címsoron való jobb gombos "
|
||||
"kattintás esetén. Jelenleg érvényes opciók a \"toggle_shade\", amely "
|
||||
"hatására az ablak felgördül/legördül, a \"toggle_maximize\", amely hatására "
|
||||
"teljes képernyős/eredeti méretű lesz, \"minimize\", amely hatására kis "
|
||||
"méretű lesz az ablak és \"none\", amely nem hajt végre semmit."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:190
|
||||
msgid ""
|
||||
@@ -2417,19 +2421,24 @@ msgstr "Ablakfókusz módja"
|
||||
msgid "Window title font"
|
||||
msgstr "Az ablak címsorának betűtípusa"
|
||||
|
||||
#: ../src/prefs.c:579 ../src/prefs.c:607 ../src/prefs.c:623 ../src/prefs.c:639
|
||||
#: ../src/prefs.c:655 ../src/prefs.c:671 ../src/prefs.c:687 ../src/prefs.c:703
|
||||
#: ../src/prefs.c:723 ../src/prefs.c:739 ../src/prefs.c:755 ../src/prefs.c:773
|
||||
#: ../src/prefs.c:789 ../src/prefs.c:808 ../src/prefs.c:824 ../src/prefs.c:859
|
||||
#: ../src/prefs.c:875 ../src/prefs.c:892 ../src/prefs.c:908 ../src/prefs.c:924
|
||||
#: ../src/prefs.c:940 ../src/prefs.c:956 ../src/prefs.c:971 ../src/prefs.c:986
|
||||
#: ../src/prefs.c:1001 ../src/prefs.c:1017 ../src/prefs.c:1033
|
||||
#: ../src/prefs.c:1049 ../src/prefs.c:1065
|
||||
#: ../src/prefs.c:434
|
||||
#, c-format
|
||||
msgid "Type of %s was not integer"
|
||||
msgstr "A(z) %s típusa nem egész"
|
||||
|
||||
#: ../src/prefs.c:572 ../src/prefs.c:600 ../src/prefs.c:616 ../src/prefs.c:632
|
||||
#: ../src/prefs.c:648 ../src/prefs.c:664 ../src/prefs.c:680 ../src/prefs.c:696
|
||||
#: ../src/prefs.c:716 ../src/prefs.c:732 ../src/prefs.c:748 ../src/prefs.c:766
|
||||
#: ../src/prefs.c:782 ../src/prefs.c:801 ../src/prefs.c:817 ../src/prefs.c:852
|
||||
#: ../src/prefs.c:868 ../src/prefs.c:885 ../src/prefs.c:901 ../src/prefs.c:917
|
||||
#: ../src/prefs.c:933 ../src/prefs.c:949 ../src/prefs.c:964 ../src/prefs.c:979
|
||||
#: ../src/prefs.c:994 ../src/prefs.c:1010 ../src/prefs.c:1026
|
||||
#: ../src/prefs.c:1042 ../src/prefs.c:1058
|
||||
#, c-format
|
||||
msgid "GConf key \"%s\" is set to an invalid type\n"
|
||||
msgstr "\"%s\" GConf kulcs érvénytelen típusú\n"
|
||||
|
||||
#: ../src/prefs.c:1110
|
||||
#: ../src/prefs.c:1103
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||
@@ -2438,12 +2447,12 @@ msgstr ""
|
||||
"A konfigurációs adatbázisban talált \"%s\" érvénytelen érték az egérgomb "
|
||||
"módosítóhoz\n"
|
||||
|
||||
#: ../src/prefs.c:1134 ../src/prefs.c:1155 ../src/prefs.c:1697
|
||||
#: ../src/prefs.c:1127 ../src/prefs.c:1148 ../src/prefs.c:1705
|
||||
#, c-format
|
||||
msgid "GConf key '%s' is set to an invalid value\n"
|
||||
msgstr "\"%s\" GConf kulcs érvénytelen értékre van állítva\n"
|
||||
|
||||
#: ../src/prefs.c:1284
|
||||
#: ../src/prefs.c:1277
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable cursor_size; must be in the "
|
||||
@@ -2452,14 +2461,14 @@ msgstr ""
|
||||
"A(z) %d, amely a(z) \"%s\" GConf kulcsban található, nem egy elfogadható "
|
||||
"cursor_size; az 1..128 tartományba kellene esnie.\n"
|
||||
|
||||
#: ../src/prefs.c:1364
|
||||
#: ../src/prefs.c:1357
|
||||
#, c-format
|
||||
msgid "Could not parse font description \"%s\" from GConf key %s\n"
|
||||
msgstr ""
|
||||
"Nem sikerült feldolgozni a(z) \"%s\" betűkészlet leírását a(z) \"%s\" GConf "
|
||||
"kulcsból\n"
|
||||
|
||||
#: ../src/prefs.c:1591
|
||||
#: ../src/prefs.c:1599
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable number of workspaces, current "
|
||||
@@ -2468,7 +2477,7 @@ msgstr ""
|
||||
"A(z) %d, amely a(z) \"%s\" GConf kulcsban található, nem fogadható el a "
|
||||
"munkaterületek számaként, a jelenlegi maximum %d\n"
|
||||
|
||||
#: ../src/prefs.c:1651
|
||||
#: ../src/prefs.c:1659
|
||||
msgid ""
|
||||
"Workarounds for broken applications disabled. Some applications may not "
|
||||
"behave properly.\n"
|
||||
@@ -2476,17 +2485,17 @@ msgstr ""
|
||||
"A hibás alkalmazások hibáinak megkerülése nincs engedélyezve. Néhány "
|
||||
"alkalmazás lehet, hogy nem fog helyesen működni.\n"
|
||||
|
||||
#: ../src/prefs.c:1724
|
||||
#: ../src/prefs.c:1732
|
||||
#, c-format
|
||||
msgid "%d stored in GConf key %s is out of range 0 to %d\n"
|
||||
msgstr "%d, ami a(z) %s GConf kulcsban van tárolva, a 0 - %d tartományon kívül van\n"
|
||||
|
||||
#: ../src/prefs.c:1873
|
||||
#: ../src/prefs.c:1881
|
||||
#, c-format
|
||||
msgid "Error setting number of workspaces to %d: %s\n"
|
||||
msgstr "Hiba a munkaterületek számának beállításánál a következőre: %d: %s\n"
|
||||
|
||||
#: ../src/prefs.c:2268 ../src/prefs.c:2438
|
||||
#: ../src/prefs.c:2276 ../src/prefs.c:2446
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||
@@ -2495,7 +2504,7 @@ msgstr ""
|
||||
"A konfigurációs adatbázisban talált \"%s\" nem érvényes érték a következő "
|
||||
"billentyűkombinációhoz: \"%s\"\n"
|
||||
|
||||
#: ../src/prefs.c:2854
|
||||
#: ../src/prefs.c:2861
|
||||
#, c-format
|
||||
msgid "Error setting name for workspace %d to \"%s\": %s\n"
|
||||
msgstr "Hiba a(z) %d. munkaterület nevének beállításánál a következőre: \"%s\": %s\n"
|
||||
@@ -3390,11 +3399,11 @@ msgstr "%g gomb méretaránya nem fogadható el"
|
||||
msgid "Frame geometry does not specify size of buttons"
|
||||
msgstr "A keretgeometria nem határozza meg a gombok méretét"
|
||||
|
||||
#: ../src/theme.c:928
|
||||
#: ../src/theme.c:925
|
||||
msgid "Gradients should have at least two colors"
|
||||
msgstr "A színátmenetnek legalább két színűnek kell lennie"
|
||||
|
||||
#: ../src/theme.c:1054
|
||||
#: ../src/theme.c:1051
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
@@ -3404,7 +3413,7 @@ msgstr ""
|
||||
"gtk:fg[NORMAL] ahol NORMAL az állapot; nem lehetett feldolgozni a "
|
||||
"következőt: \"%s\""
|
||||
|
||||
#: ../src/theme.c:1068
|
||||
#: ../src/theme.c:1065
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||
@@ -3414,17 +3423,17 @@ msgstr ""
|
||||
"után, például gtk:fg[NORMAL], ahol NORMAL az állapot; nem sikerült "
|
||||
"értelmezni a következőt: \"%s\""
|
||||
|
||||
#: ../src/theme.c:1079
|
||||
#: ../src/theme.c:1076
|
||||
#, c-format
|
||||
msgid "Did not understand state \"%s\" in color specification"
|
||||
msgstr "Nem sikerült a(z) \"%s\" állapotot értelmezni a szín meghatározásban"
|
||||
|
||||
#: ../src/theme.c:1092
|
||||
#: ../src/theme.c:1089
|
||||
#, c-format
|
||||
msgid "Did not understand color component \"%s\" in color specification"
|
||||
msgstr "Nem sikerült értelmezni \"%s\" színösszetevőt a színmeghatározásban"
|
||||
|
||||
#: ../src/theme.c:1122
|
||||
#: ../src/theme.c:1119
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||
@@ -3433,42 +3442,42 @@ msgstr ""
|
||||
"A keverés formátuma: \"blend/bg_color/fg_color/alpha\", \"%s\" nem felel meg "
|
||||
"ennek"
|
||||
|
||||
#: ../src/theme.c:1133
|
||||
#: ../src/theme.c:1130
|
||||
#, c-format
|
||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||
msgstr "Nem sikerült értelmezni a(z) \"%s\" alfa értéket a kevert színben"
|
||||
|
||||
#: ../src/theme.c:1143
|
||||
#: ../src/theme.c:1140
|
||||
#, c-format
|
||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||
msgstr "A(z) \"%s\" alfa érték a kevert színben nem 0.0 és 1.0 között van"
|
||||
|
||||
#: ../src/theme.c:1190
|
||||
#: ../src/theme.c:1187
|
||||
#, c-format
|
||||
msgid "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgstr "Az árnyék formátuma: \"shade/base_color/factor\", \"%s\" nem felel meg ennek"
|
||||
|
||||
#: ../src/theme.c:1201
|
||||
#: ../src/theme.c:1198
|
||||
#, c-format
|
||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||
msgstr "Nem sikerült a(z) \"%s\" árnyéktényezőt feldolgozni az árnyékolt színben"
|
||||
|
||||
#: ../src/theme.c:1211
|
||||
#: ../src/theme.c:1208
|
||||
#, c-format
|
||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||
msgstr "\"%s\" árnyéktényező az árnyékolt színben negatív"
|
||||
|
||||
#: ../src/theme.c:1240
|
||||
#: ../src/theme.c:1237
|
||||
#, c-format
|
||||
msgid "Could not parse color \"%s\""
|
||||
msgstr "Nem sikerült feldolgozni a(z) \"%s\" színt"
|
||||
|
||||
#: ../src/theme.c:1499
|
||||
#: ../src/theme.c:1496
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr "A koordinátakifejezés \"%s\" karaktert tartalmaz, ami nem megengedett"
|
||||
|
||||
#: ../src/theme.c:1526
|
||||
#: ../src/theme.c:1523
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contains floating point number '%s' which could not be "
|
||||
@@ -3477,14 +3486,14 @@ msgstr ""
|
||||
"A koordinátakifejezés \"%s\" lebegőpontos számot tartalmaz, amit nem "
|
||||
"sikerült feldolgozni"
|
||||
|
||||
#: ../src/theme.c:1540
|
||||
#: ../src/theme.c:1537
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr ""
|
||||
"A koordinátakifejezés \"%s\" egész számot tartalmaz, amit nem sikerült "
|
||||
"feldolgozni"
|
||||
|
||||
#: ../src/theme.c:1607
|
||||
#: ../src/theme.c:1604
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contained unknown operator at the start of this text: "
|
||||
@@ -3493,32 +3502,32 @@ msgstr ""
|
||||
"A koordinátakifejezés ismeretlen operátort tartalmaz ennek a szövegnek az "
|
||||
"elején:\"%s\""
|
||||
|
||||
#: ../src/theme.c:1664
|
||||
#: ../src/theme.c:1661
|
||||
msgid "Coordinate expression was empty or not understood"
|
||||
msgstr "A koordinátakifejezés üres vagy értelmezhetetlen volt"
|
||||
|
||||
#: ../src/theme.c:1801 ../src/theme.c:1811 ../src/theme.c:1845
|
||||
#: ../src/theme.c:1798 ../src/theme.c:1808 ../src/theme.c:1842
|
||||
msgid "Coordinate expression results in division by zero"
|
||||
msgstr "A koordinátakifejezés nullával való osztást okozott."
|
||||
|
||||
#: ../src/theme.c:1853
|
||||
#: ../src/theme.c:1850
|
||||
msgid "Coordinate expression tries to use mod operator on a floating-point number"
|
||||
msgstr "A koordinátakifejezés mod operátort próbált használni lebegőpontos számon"
|
||||
|
||||
#: ../src/theme.c:1909
|
||||
#: ../src/theme.c:1906
|
||||
#, c-format
|
||||
msgid "Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgstr "A koordinátakifejezésben egy operandus helyén \"%s\" operátor volt"
|
||||
|
||||
#: ../src/theme.c:1918
|
||||
#: ../src/theme.c:1915
|
||||
msgid "Coordinate expression had an operand where an operator was expected"
|
||||
msgstr "A koordinátakifejezésben a várt operátor helyett operandus szerepelt"
|
||||
|
||||
#: ../src/theme.c:1926
|
||||
#: ../src/theme.c:1923
|
||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||
msgstr "A koordinátakifejezés operátorral végződött, nem operandussal"
|
||||
|
||||
#: ../src/theme.c:1936
|
||||
#: ../src/theme.c:1933
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||
@@ -3527,33 +3536,33 @@ msgstr ""
|
||||
"A koordinátakifejezésben \"%c\" operátort \"%c\" operátor követi úgy, hogy "
|
||||
"nincs köztük operandus"
|
||||
|
||||
#: ../src/theme.c:2054
|
||||
#: ../src/theme.c:2051
|
||||
msgid "Coordinate expression parser overflowed its buffer."
|
||||
msgstr "A koordinátakifejezés-elemző túlcsordította a pufferét."
|
||||
|
||||
#: ../src/theme.c:2083
|
||||
#: ../src/theme.c:2080
|
||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||
msgstr "A koordinátakifejezésben záró zárójel szerepelt kezdő nélkül"
|
||||
|
||||
#: ../src/theme.c:2145
|
||||
#: ../src/theme.c:2142
|
||||
#, c-format
|
||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||
msgstr "A koordinátakifejezésben \"%s\" változó vagy állandó ismeretlen volt"
|
||||
|
||||
#: ../src/theme.c:2200
|
||||
#: ../src/theme.c:2197
|
||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||
msgstr "A koordinátakifejezésben kezdő zárójel szerepelt záró nélkül"
|
||||
|
||||
#: ../src/theme.c:2211
|
||||
#: ../src/theme.c:2208
|
||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||
msgstr "A koordinátakifejezésben úgy tűnik nincsenek sem operátorok, sem operandusok"
|
||||
|
||||
#: ../src/theme.c:2452 ../src/theme.c:2474 ../src/theme.c:2495
|
||||
#: ../src/theme.c:2449 ../src/theme.c:2471 ../src/theme.c:2492
|
||||
#, c-format
|
||||
msgid "Theme contained an expression \"%s\" that resulted in an error: %s\n"
|
||||
msgstr "A témában \"%s\" kifejezés hibát okozott: %s\n"
|
||||
|
||||
#: ../src/theme.c:3949
|
||||
#: ../src/theme.c:3946
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -3562,23 +3571,23 @@ msgstr ""
|
||||
"Ehhez a keretstílushoz meg kell határozni a következőt: <button function=\"%s"
|
||||
"\" state=\"%s\" draw_ops=\"bármi\"/>"
|
||||
|
||||
#: ../src/theme.c:4425 ../src/theme.c:4450
|
||||
#: ../src/theme.c:4422 ../src/theme.c:4447
|
||||
#, c-format
|
||||
msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgstr "Hiányzó <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"bármi\"/>"
|
||||
|
||||
#: ../src/theme.c:4496
|
||||
#: ../src/theme.c:4493
|
||||
#, c-format
|
||||
msgid "Failed to load theme \"%s\": %s\n"
|
||||
msgstr "Hiba a(z) \"%s\" téma betöltése közben: %s\n"
|
||||
|
||||
#: ../src/theme.c:4606 ../src/theme.c:4613 ../src/theme.c:4620
|
||||
#: ../src/theme.c:4627 ../src/theme.c:4634
|
||||
#: ../src/theme.c:4603 ../src/theme.c:4610 ../src/theme.c:4617
|
||||
#: ../src/theme.c:4624 ../src/theme.c:4631
|
||||
#, c-format
|
||||
msgid "No <%s> set for theme \"%s\""
|
||||
msgstr "Nincs <%s> beállítva a(z) \"%s\" témához"
|
||||
|
||||
#: ../src/theme.c:4642
|
||||
#: ../src/theme.c:4639
|
||||
#, c-format
|
||||
msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
@@ -3587,14 +3596,14 @@ msgstr ""
|
||||
"Nincs keretstílus beállítva a(z) \"%s\" ablaktípushoz a(z) \"%s\" témában, "
|
||||
"adjon hozzá egy <window type=\"%s\" style_set=\"bármi\"/> elemet"
|
||||
|
||||
#: ../src/theme.c:5009 ../src/theme.c:5071 ../src/theme.c:5134
|
||||
#: ../src/theme.c:5006 ../src/theme.c:5068 ../src/theme.c:5131
|
||||
#, c-format
|
||||
msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
msgstr ""
|
||||
"A felhasználó által meghatározott konstansoknak nagybetűvel kell kezdődniük, "
|
||||
"a(z) \"%s\" nem ilyen"
|
||||
|
||||
#: ../src/theme.c:5017 ../src/theme.c:5079 ../src/theme.c:5142
|
||||
#: ../src/theme.c:5014 ../src/theme.c:5076 ../src/theme.c:5139
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "A(z) \"%s\" konstans már definiálva van"
|
||||
@@ -3664,7 +3673,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/window.c:6102
|
||||
#: ../src/window.c:6105
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
||||
|
1250
po/pt_BR.po
1250
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
441
po/sr@Latn.po
441
po/sr@Latn.po
File diff suppressed because it is too large
Load Diff
217
po/zh_CN.po
217
po/zh_CN.po
@@ -10,8 +10,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-06-09 03:31+0100\n"
|
||||
"PO-Revision-Date: 2007-06-16 17:21+0800\n"
|
||||
"POT-Creation-Date: 2007-08-07 03:38+0100\n"
|
||||
"PO-Revision-Date: 2007-09-07 19:34+0800\n"
|
||||
"Last-Translator: Funda Wang <fundawang@gmail.com>\n"
|
||||
"Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -35,6 +35,11 @@ msgstr "用法:%s\n"
|
||||
msgid "Metacity was compiled without support for verbose mode\n"
|
||||
msgstr "Metacity 编译的时候没有加入详细模式的支持\n"
|
||||
|
||||
#: ../src/core.c:206
|
||||
#, c-format
|
||||
msgid "Unknown window information request: %d"
|
||||
msgstr "未知的窗口信息请求:%d"
|
||||
|
||||
#: ../src/delete.c:67 ../src/delete.c:94 ../src/metacity-dialog.c:50
|
||||
#: ../src/theme-parser.c:484
|
||||
#, c-format
|
||||
@@ -57,13 +62,13 @@ msgstr "无法通过对话进程解析消息“%s”\n"
|
||||
msgid "Error reading from dialog display process: %s\n"
|
||||
msgstr "读取对话显示进程时出错:%s\n"
|
||||
|
||||
#: ../src/delete.c:348
|
||||
#: ../src/delete.c:350
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Error launching metacity-dialog to ask about killing an application: %s\n"
|
||||
msgstr "启动 metacity-dialog 查询有关杀死应用程序的情况时出错:%s\n"
|
||||
|
||||
#: ../src/delete.c:456
|
||||
#: ../src/delete.c:459
|
||||
#, c-format
|
||||
msgid "Failed to get hostname: %s\n"
|
||||
msgstr "无法获取主机名:%s\n"
|
||||
@@ -158,13 +163,13 @@ msgstr "终端命令尚未定义。\n"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"metacity %s\n"
|
||||
"Copyright (C) 2001-2002 Havoc Pennington, Red Hat, Inc., and others\n"
|
||||
"Copyright (C) 2001-2007 Havoc Pennington, Red Hat, Inc., and others\n"
|
||||
"This is free software; see the source for copying conditions.\n"
|
||||
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A "
|
||||
"PARTICULAR PURPOSE.\n"
|
||||
msgstr ""
|
||||
"metacity %s\n"
|
||||
"Copyright (C) 2001-2002 Havoc Pennington, Red Hat, Inc., 以及其他人\n"
|
||||
"Copyright (C) 2001-2007 Havoc Pennington, Red Hat, Inc., 以及其他人\n"
|
||||
"这是自由软件:版权条款请参见源码.\n"
|
||||
"不存在任何保证:即使是对商用性或者适合某种特定目的也不作保证。\n"
|
||||
|
||||
@@ -192,119 +197,119 @@ msgstr "从保存文件中初始化会话"
|
||||
msgid "Print version"
|
||||
msgstr "打印版本"
|
||||
|
||||
#: ../src/main.c:352
|
||||
#: ../src/main.c:353
|
||||
#, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "扫描主题目录失败:%s\n"
|
||||
|
||||
#: ../src/main.c:368
|
||||
#: ../src/main.c:369
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||
msgstr "无法找到主题!请确认 %s 存在并且含有正常的主题。\n"
|
||||
|
||||
#: ../src/main.c:428
|
||||
#: ../src/main.c:429
|
||||
#, c-format
|
||||
msgid "Failed to restart: %s\n"
|
||||
msgstr "无法重启动:%s\n"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:69
|
||||
#: ../src/menu.c:70
|
||||
msgid "Mi_nimize"
|
||||
msgstr "最小化(_N)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:71
|
||||
#: ../src/menu.c:72
|
||||
msgid "Ma_ximize"
|
||||
msgstr "最大化(_X)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:73
|
||||
#: ../src/menu.c:74
|
||||
msgid "Unma_ximize"
|
||||
msgstr "取消最大化(_X)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:75
|
||||
#: ../src/menu.c:76
|
||||
msgid "Roll _Up"
|
||||
msgstr "卷起(_U)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:77
|
||||
#: ../src/menu.c:78
|
||||
msgid "_Unroll"
|
||||
msgstr "展开(_U)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:79
|
||||
#: ../src/menu.c:80
|
||||
msgid "_Move"
|
||||
msgstr "移动(_M)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:81
|
||||
#: ../src/menu.c:82
|
||||
msgid "_Resize"
|
||||
msgstr "改变大小(_R)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:83
|
||||
#: ../src/menu.c:84
|
||||
msgid "Move Titlebar On_screen"
|
||||
msgstr "将标题栏上移动到屏幕上(_S)"
|
||||
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:86
|
||||
msgid "_Close"
|
||||
msgstr "关闭(_C)"
|
||||
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:89 ../src/menu.c:91
|
||||
#: ../src/menu.c:87 ../src/menu.c:89
|
||||
msgid "Always on _Top"
|
||||
msgstr "常居顶端(_T)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:93
|
||||
#: ../src/menu.c:91
|
||||
msgid "_Always on Visible Workspace"
|
||||
msgstr "总在可见工作区(_A)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:95
|
||||
#: ../src/menu.c:93
|
||||
msgid "_Only on This Workspace"
|
||||
msgstr "只在此工作区(_O)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:97
|
||||
#: ../src/menu.c:95
|
||||
msgid "Move to Workspace _Left"
|
||||
msgstr "移动到左侧工作区(_L)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:99
|
||||
#: ../src/menu.c:97
|
||||
msgid "Move to Workspace R_ight"
|
||||
msgstr "移动到右侧工作区(_I)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:101
|
||||
#: ../src/menu.c:99
|
||||
msgid "Move to Workspace _Up"
|
||||
msgstr "移动到上侧工作区(_U)"
|
||||
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:103
|
||||
#: ../src/menu.c:101
|
||||
msgid "Move to Workspace _Down"
|
||||
msgstr "移动到下侧工作区(_D)"
|
||||
|
||||
#: ../src/menu.c:197 ../src/prefs.c:2238 ../src/prefs.c:2773
|
||||
#. separator
|
||||
#. Translators: Translate this string the same way as you do in libwnck!
|
||||
#: ../src/menu.c:105
|
||||
msgid "_Close"
|
||||
msgstr "关闭(_C)"
|
||||
|
||||
#: ../src/menu.c:199 ../src/prefs.c:2246 ../src/prefs.c:2780
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "工作区 %d"
|
||||
|
||||
#: ../src/menu.c:206
|
||||
#: ../src/menu.c:208
|
||||
msgid "Workspace 1_0"
|
||||
msgstr "工作区 1_0"
|
||||
|
||||
#: ../src/menu.c:208
|
||||
#: ../src/menu.c:210
|
||||
#, c-format
|
||||
msgid "Workspace %s%d"
|
||||
msgstr "工作区 %s%d"
|
||||
|
||||
#: ../src/menu.c:411
|
||||
#: ../src/menu.c:390
|
||||
msgid "Move to Another _Workspace"
|
||||
msgstr "移动到另外的工作区(_W)"
|
||||
|
||||
@@ -833,6 +838,22 @@ msgid ""
|
||||
"and that they need to change this option back to true or live with the bug "
|
||||
"they requested. See also http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6."
|
||||
msgstr ""
|
||||
"Setting this option to false can lead to buggy behavior, so users are "
|
||||
"strongly discouraged from changing it from the default of true. Many actions "
|
||||
"(e.g. clicking in the client area, moving or resizing the window) normally "
|
||||
"raise the window as a side-effect. Set this option to false to decouple "
|
||||
"raising from other user actions. Even when this option is false, windows can "
|
||||
"still be raised by an alt-left-click anywhere on the window, a normal click "
|
||||
"on the window decorations, or by special messages from pagers, such as "
|
||||
"activation requests from tasklist applets. This option is currently disabled "
|
||||
"in click-to-focus mode. Note that the list of ways to raise windows when "
|
||||
"raise_on_click is false does not include programmatic requests from "
|
||||
"applications to raise windows; such requests will be ignored regardless of "
|
||||
"the reason for the request. If you are an application developer and have a "
|
||||
"user complaining that your application does not work with this setting "
|
||||
"disabled, tell them it is _their_ fault for breaking their window manager "
|
||||
"and that they need to change this option back to true or live with the bug "
|
||||
"they requested. See also http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:79
|
||||
msgid "Show the panel menu"
|
||||
@@ -2063,7 +2084,6 @@ msgstr ""
|
||||
"而“none”将不执行任何操作。"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:188
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"This option determines the effects of middle-clicking on the title bar. "
|
||||
"Current valid options are 'toggle_shade', which will shade/unshade the "
|
||||
@@ -2071,12 +2091,11 @@ msgid ""
|
||||
"'minimize' which will minimize the window, and 'none' which will not do "
|
||||
"anything."
|
||||
msgstr ""
|
||||
"这个选项决定在标题栏上双击的效果。当前有效的选项包括,“toggle_shade”将卷起/展"
|
||||
"这个选项决定在标题栏上单击中键击的效果。当前有效的选项包括,“toggle_shade”将卷起/展"
|
||||
"开窗口,“toggle_maximize”将最大化/还原窗口,“minimize”将最小化窗口,"
|
||||
"而“none”将不执行任何操作。"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:189
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"This option determines the effects of right-clicking on the title bar. "
|
||||
"Current valid options are 'toggle_shade', which will shade/unshade the "
|
||||
@@ -2084,7 +2103,7 @@ msgid ""
|
||||
"'minimize' which will minimize the window, and 'none' which will not do "
|
||||
"anything."
|
||||
msgstr ""
|
||||
"这个选项决定在标题栏上双击的效果。当前有效的选项包括,“toggle_shade”将卷起/展"
|
||||
"这个选项决定在标题栏上单击右键的效果。当前有效的选项包括,“toggle_shade”将卷起/展"
|
||||
"开窗口,“toggle_maximize”将最大化/还原窗口,“minimize”将最小化窗口,"
|
||||
"而“none”将不执行任何操作。"
|
||||
|
||||
@@ -2152,31 +2171,36 @@ msgstr "窗口焦点模式"
|
||||
msgid "Window title font"
|
||||
msgstr "窗口标题字体"
|
||||
|
||||
#: ../src/prefs.c:579 ../src/prefs.c:607 ../src/prefs.c:623 ../src/prefs.c:639
|
||||
#: ../src/prefs.c:655 ../src/prefs.c:671 ../src/prefs.c:687 ../src/prefs.c:703
|
||||
#: ../src/prefs.c:723 ../src/prefs.c:739 ../src/prefs.c:755 ../src/prefs.c:773
|
||||
#: ../src/prefs.c:789 ../src/prefs.c:808 ../src/prefs.c:824 ../src/prefs.c:859
|
||||
#: ../src/prefs.c:875 ../src/prefs.c:892 ../src/prefs.c:908 ../src/prefs.c:924
|
||||
#: ../src/prefs.c:940 ../src/prefs.c:956 ../src/prefs.c:971 ../src/prefs.c:986
|
||||
#: ../src/prefs.c:1001 ../src/prefs.c:1017 ../src/prefs.c:1033
|
||||
#: ../src/prefs.c:1049 ../src/prefs.c:1065
|
||||
#: ../src/prefs.c:434
|
||||
#, c-format
|
||||
msgid "Type of %s was not integer"
|
||||
msgstr "%s 的类型不是整型"
|
||||
|
||||
#: ../src/prefs.c:572 ../src/prefs.c:600 ../src/prefs.c:616 ../src/prefs.c:632
|
||||
#: ../src/prefs.c:648 ../src/prefs.c:664 ../src/prefs.c:680 ../src/prefs.c:696
|
||||
#: ../src/prefs.c:716 ../src/prefs.c:732 ../src/prefs.c:748 ../src/prefs.c:766
|
||||
#: ../src/prefs.c:782 ../src/prefs.c:801 ../src/prefs.c:817 ../src/prefs.c:852
|
||||
#: ../src/prefs.c:868 ../src/prefs.c:885 ../src/prefs.c:901 ../src/prefs.c:917
|
||||
#: ../src/prefs.c:933 ../src/prefs.c:949 ../src/prefs.c:964 ../src/prefs.c:979
|
||||
#: ../src/prefs.c:994 ../src/prefs.c:1010 ../src/prefs.c:1026
|
||||
#: ../src/prefs.c:1042 ../src/prefs.c:1058
|
||||
#, c-format
|
||||
msgid "GConf key \"%s\" is set to an invalid type\n"
|
||||
msgstr "GConf 关键字“%s”被设置为无效的类型\n"
|
||||
|
||||
#: ../src/prefs.c:1110
|
||||
#: ../src/prefs.c:1103
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||
"modifier\n"
|
||||
msgstr "在配置数据库中找到的“%s”不是鼠标按钮修饰键的有效值\n"
|
||||
|
||||
#: ../src/prefs.c:1134 ../src/prefs.c:1155 ../src/prefs.c:1697
|
||||
#: ../src/prefs.c:1127 ../src/prefs.c:1148 ../src/prefs.c:1705
|
||||
#, c-format
|
||||
msgid "GConf key '%s' is set to an invalid value\n"
|
||||
msgstr "GConf 关键字“%s”被设置为无效值\n"
|
||||
|
||||
#: ../src/prefs.c:1284
|
||||
#: ../src/prefs.c:1277
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable cursor_size; must be in the "
|
||||
@@ -2185,12 +2209,12 @@ msgstr ""
|
||||
"存储在 GConf 关键字 %2$s 中的值 %1$d 不是一个合理的光标大小;必须介于 1 到 "
|
||||
"128 之间\n"
|
||||
|
||||
#: ../src/prefs.c:1364
|
||||
#: ../src/prefs.c:1357
|
||||
#, c-format
|
||||
msgid "Could not parse font description \"%s\" from GConf key %s\n"
|
||||
msgstr "无法解析字体说明“%s”(来自 GConf 关键字 %s)\n"
|
||||
|
||||
#: ../src/prefs.c:1591
|
||||
#: ../src/prefs.c:1599
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable number of workspaces, current "
|
||||
@@ -2199,30 +2223,30 @@ msgstr ""
|
||||
"存储在 GConf 关键字 %2$s 中的值 %1$d 不是一个合理的工作区数量,当前最大值为 %"
|
||||
"3$d\n"
|
||||
|
||||
#: ../src/prefs.c:1651
|
||||
#: ../src/prefs.c:1659
|
||||
msgid ""
|
||||
"Workarounds for broken applications disabled. Some applications may not "
|
||||
"behave properly.\n"
|
||||
msgstr "有缺陷的应用程序的工作区已禁用。某些应用程序可能无法正常运行。\n"
|
||||
|
||||
#: ../src/prefs.c:1724
|
||||
#: ../src/prefs.c:1732
|
||||
#, c-format
|
||||
msgid "%d stored in GConf key %s is out of range 0 to %d\n"
|
||||
msgstr "存储在 GConf 关键字 %2$s 中的值 %1$d 超出了 0 到 %3$d 的范围\n"
|
||||
|
||||
#: ../src/prefs.c:1873
|
||||
#: ../src/prefs.c:1881
|
||||
#, c-format
|
||||
msgid "Error setting number of workspaces to %d: %s\n"
|
||||
msgstr "将工作区数量设置为 %d 时出错:%s\n"
|
||||
|
||||
#: ../src/prefs.c:2268 ../src/prefs.c:2438
|
||||
#: ../src/prefs.c:2276 ../src/prefs.c:2446
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||
"\"%s\"\n"
|
||||
msgstr "在配置数据库中找到的“%s”不是按键组合“%s”的有效值\n"
|
||||
|
||||
#: ../src/prefs.c:2854
|
||||
#: ../src/prefs.c:2861
|
||||
#, c-format
|
||||
msgid "Error setting name for workspace %d to \"%s\": %s\n"
|
||||
msgstr "将工作区 %d 的名称设置为“%s”时出错:%s\n"
|
||||
@@ -3101,11 +3125,11 @@ msgstr "按钮长宽比 %g 不合理"
|
||||
msgid "Frame geometry does not specify size of buttons"
|
||||
msgstr "框架几何布局没有指定按钮大小"
|
||||
|
||||
#: ../src/theme.c:928
|
||||
#: ../src/theme.c:925
|
||||
msgid "Gradients should have at least two colors"
|
||||
msgstr "渐变应至少有两种颜色"
|
||||
|
||||
#: ../src/theme.c:1054
|
||||
#: ../src/theme.c:1051
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
@@ -3114,7 +3138,7 @@ msgstr ""
|
||||
"GTK 颜色规范必须将状态包含在方括号中,例如 gtk:fg[NORMAL]其中 NORMAL 是状态;"
|
||||
"无法解析“%s”"
|
||||
|
||||
#: ../src/theme.c:1068
|
||||
#: ../src/theme.c:1065
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||
@@ -3123,139 +3147,139 @@ msgstr ""
|
||||
"GTK 颜色规范必须在状态后有一个闭方括号,例如 gtk:fg[NORMAL],其中 NORMAL 是状"
|
||||
"态;无法解析“%s”"
|
||||
|
||||
#: ../src/theme.c:1079
|
||||
#: ../src/theme.c:1076
|
||||
#, c-format
|
||||
msgid "Did not understand state \"%s\" in color specification"
|
||||
msgstr "不理解颜色规范中的状态“%s”"
|
||||
|
||||
#: ../src/theme.c:1092
|
||||
#: ../src/theme.c:1089
|
||||
#, c-format
|
||||
msgid "Did not understand color component \"%s\" in color specification"
|
||||
msgstr "不理解颜色规范中的颜色组成部分“%s”"
|
||||
|
||||
#: ../src/theme.c:1122
|
||||
#: ../src/theme.c:1119
|
||||
#, 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/theme.c:1133
|
||||
#: ../src/theme.c:1130
|
||||
#, c-format
|
||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||
msgstr "无法解析混合色中的 Alpha 值“%s”"
|
||||
|
||||
#: ../src/theme.c:1143
|
||||
#: ../src/theme.c:1140
|
||||
#, c-format
|
||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||
msgstr "混合色中的 Alpha 值“%s”不在 0.0 到 1.0 之间"
|
||||
|
||||
#: ../src/theme.c:1190
|
||||
#: ../src/theme.c:1187
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgstr "阴影格式为“shade/base_color/factor”,“%s”不符合该格式"
|
||||
|
||||
#: ../src/theme.c:1201
|
||||
#: ../src/theme.c:1198
|
||||
#, c-format
|
||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||
msgstr "无法解析阴影色中的阴影因子“%s”"
|
||||
|
||||
#: ../src/theme.c:1211
|
||||
#: ../src/theme.c:1208
|
||||
#, c-format
|
||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||
msgstr "阴影色中的阴影因子“%s”为负数"
|
||||
|
||||
#: ../src/theme.c:1240
|
||||
#: ../src/theme.c:1237
|
||||
#, c-format
|
||||
msgid "Could not parse color \"%s\""
|
||||
msgstr "无法解析颜色“%s”"
|
||||
|
||||
#: ../src/theme.c:1499
|
||||
#: ../src/theme.c:1496
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr "坐标表达式包含不允许的字符“%s”"
|
||||
|
||||
#: ../src/theme.c:1526
|
||||
#: ../src/theme.c:1523
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contains floating point number '%s' which could not be "
|
||||
"parsed"
|
||||
msgstr "坐标表达式包含无法解析的浮点数“%s”"
|
||||
|
||||
#: ../src/theme.c:1540
|
||||
#: ../src/theme.c:1537
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr "坐标表达式包含无法解析的整数“%s”"
|
||||
|
||||
#: ../src/theme.c:1607
|
||||
#: ../src/theme.c:1604
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contained unknown operator at the start of this text: "
|
||||
"\"%s\""
|
||||
msgstr "坐标表达式在该文本开始处包含未知的运算符:“%s”"
|
||||
|
||||
#: ../src/theme.c:1664
|
||||
#: ../src/theme.c:1661
|
||||
msgid "Coordinate expression was empty or not understood"
|
||||
msgstr "坐标表达式为空或无法理解"
|
||||
|
||||
#: ../src/theme.c:1801 ../src/theme.c:1811 ../src/theme.c:1845
|
||||
#: ../src/theme.c:1798 ../src/theme.c:1808 ../src/theme.c:1842
|
||||
msgid "Coordinate expression results in division by zero"
|
||||
msgstr "坐标表达式用零做除数"
|
||||
|
||||
#: ../src/theme.c:1853
|
||||
#: ../src/theme.c:1850
|
||||
msgid ""
|
||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||
msgstr "坐标表达式试图对浮点数使用 mod 运算符"
|
||||
|
||||
#: ../src/theme.c:1909
|
||||
#: ../src/theme.c:1906
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgstr "坐标表达式的运算符“%s”应该是一个操作数"
|
||||
|
||||
#: ../src/theme.c:1918
|
||||
#: ../src/theme.c:1915
|
||||
msgid "Coordinate expression had an operand where an operator was expected"
|
||||
msgstr "坐标表达式的某个操作数应该是运算符"
|
||||
|
||||
#: ../src/theme.c:1926
|
||||
#: ../src/theme.c:1923
|
||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||
msgstr "坐标表达式以运算符结尾,而不是以操作数结尾"
|
||||
|
||||
#: ../src/theme.c:1936
|
||||
#: ../src/theme.c:1933
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||
"operand in between"
|
||||
msgstr "坐标表达式的运算符“%c”后面跟着运算符“%c”,之间没有操作数"
|
||||
|
||||
#: ../src/theme.c:2054
|
||||
#: ../src/theme.c:2051
|
||||
msgid "Coordinate expression parser overflowed its buffer."
|
||||
msgstr "坐标表达式溢出了其缓冲区。"
|
||||
|
||||
#: ../src/theme.c:2083
|
||||
#: ../src/theme.c:2080
|
||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||
msgstr "坐标表达式有一个闭括号,而没有开括号"
|
||||
|
||||
#: ../src/theme.c:2145
|
||||
#: ../src/theme.c:2142
|
||||
#, c-format
|
||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||
msgstr "坐标表达式有未知的变量或常数“%s”"
|
||||
|
||||
#: ../src/theme.c:2200
|
||||
#: ../src/theme.c:2197
|
||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||
msgstr "坐标表达式有一个开括号,而没有闭括号"
|
||||
|
||||
#: ../src/theme.c:2211
|
||||
#: ../src/theme.c:2208
|
||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||
msgstr "坐标表达式似乎没有任何运算符或操作数"
|
||||
|
||||
#: ../src/theme.c:2452 ../src/theme.c:2474 ../src/theme.c:2495
|
||||
#: ../src/theme.c:2449 ../src/theme.c:2471 ../src/theme.c:2492
|
||||
#, c-format
|
||||
msgid "Theme contained an expression \"%s\" that resulted in an error: %s\n"
|
||||
msgstr "主题包含的表达式“%s”产生一个错误:%s\n"
|
||||
|
||||
#: ../src/theme.c:3949
|
||||
#: ../src/theme.c:3946
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -3264,25 +3288,25 @@ msgstr ""
|
||||
"必须为该框架风格指定<button function=\"%s\" state=\"%s\" draw_ops=\"whatever"
|
||||
"\"/>"
|
||||
|
||||
#: ../src/theme.c:4425 ../src/theme.c:4450
|
||||
#: ../src/theme.c:4422 ../src/theme.c:4447
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgstr ""
|
||||
"缺少 <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
|
||||
#: ../src/theme.c:4496
|
||||
#: ../src/theme.c:4493
|
||||
#, c-format
|
||||
msgid "Failed to load theme \"%s\": %s\n"
|
||||
msgstr "无法载入主题“%s”:%s\n"
|
||||
|
||||
#: ../src/theme.c:4606 ../src/theme.c:4613 ../src/theme.c:4620
|
||||
#: ../src/theme.c:4627 ../src/theme.c:4634
|
||||
#: ../src/theme.c:4603 ../src/theme.c:4610 ../src/theme.c:4617
|
||||
#: ../src/theme.c:4624 ../src/theme.c:4631
|
||||
#, c-format
|
||||
msgid "No <%s> set for theme \"%s\""
|
||||
msgstr "没有为主题“%2$s”设置 <%1$s>"
|
||||
|
||||
#: ../src/theme.c:4642
|
||||
#: ../src/theme.c:4639
|
||||
#, c-format
|
||||
msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
@@ -3291,13 +3315,13 @@ msgstr ""
|
||||
"没有为窗口类型“%s”(在主题“%s”中)设置框架风格,请添加一个 <window type=\"%s\" "
|
||||
"style_set=\"whatever\"/> 元素"
|
||||
|
||||
#: ../src/theme.c:5009 ../src/theme.c:5071 ../src/theme.c:5134
|
||||
#: ../src/theme.c:5006 ../src/theme.c:5068 ../src/theme.c:5131
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
msgstr "用户定义的常数必须以大写字母开头;而“%s”却不必"
|
||||
|
||||
#: ../src/theme.c:5017 ../src/theme.c:5079 ../src/theme.c:5142
|
||||
#: ../src/theme.c:5014 ../src/theme.c:5076 ../src/theme.c:5139
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "常数“%s”已被定义"
|
||||
@@ -3343,13 +3367,13 @@ msgstr "应用程序设置一个假的 _NET_WM_PID %lu\n"
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (于 %s)"
|
||||
|
||||
#: ../src/window-props.c:1405
|
||||
#: ../src/window-props.c:1406
|
||||
#, c-format
|
||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||
msgstr "为 %2$s 指定了无效的 WM_TRANSIENT_FOR 窗口 0x%1$lx。\n"
|
||||
|
||||
#. first time through
|
||||
#: ../src/window.c:5532
|
||||
#: ../src/window.c:5540
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -3365,7 +3389,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/window.c:6141
|
||||
#: ../src/window.c:6105
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
||||
@@ -3399,4 +3423,3 @@ msgstr "窗口 0x%2$lx 上的属性 %1$s 包含无效的 UTF-8\n"
|
||||
msgid ""
|
||||
"Property %s on window 0x%lx contained invalid UTF-8 for item %d in the list\n"
|
||||
msgstr "窗口 0x%2$lx 上的属性 %1$s 为列表中的条目 %3$d 包含无效的 UTF-8\n"
|
||||
|
||||
|
232
src/Makefile.am
232
src/Makefile.am
@@ -2,136 +2,132 @@ lib_LTLIBRARIES = libmetacity-private.la
|
||||
|
||||
SUBDIRS=wm-tester tools themes
|
||||
|
||||
INCLUDES=@METACITY_CFLAGS@ -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1
|
||||
INCLUDES=@METACITY_CFLAGS@ -I $(srcdir)/include -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1
|
||||
|
||||
metacity_SOURCES= \
|
||||
async-getprop.c \
|
||||
async-getprop.h \
|
||||
bell.h \
|
||||
bell.c \
|
||||
boxes.h \
|
||||
boxes.c \
|
||||
common.h \
|
||||
c-screen.c \
|
||||
c-screen.h \
|
||||
c-window.c \
|
||||
c-window.h \
|
||||
compositor.c \
|
||||
compositor.h \
|
||||
constraints.c \
|
||||
constraints.h \
|
||||
core.c \
|
||||
core.h \
|
||||
delete.c \
|
||||
display.c \
|
||||
display.h \
|
||||
draw-workspace.c \
|
||||
draw-workspace.h \
|
||||
edge-resistance.c \
|
||||
edge-resistance.h \
|
||||
effects.c \
|
||||
effects.h \
|
||||
errors.c \
|
||||
errors.h \
|
||||
eventqueue.c \
|
||||
eventqueue.h \
|
||||
fixedtip.c \
|
||||
fixedtip.h \
|
||||
frame.c \
|
||||
frame.h \
|
||||
frames.c \
|
||||
frames.h \
|
||||
gradient.c \
|
||||
gradient.h \
|
||||
group.c \
|
||||
group.h \
|
||||
group-private.h \
|
||||
group-props.c \
|
||||
group-props.h \
|
||||
iconcache.c \
|
||||
iconcache.h \
|
||||
core/async-getprop.c \
|
||||
core/async-getprop.h \
|
||||
core/bell.c \
|
||||
core/bell.h \
|
||||
core/boxes.c \
|
||||
include/boxes.h \
|
||||
core/compositor.c \
|
||||
core/compositor.h \
|
||||
core/constraints.c \
|
||||
core/constraints.h \
|
||||
core/core.c \
|
||||
core/delete.c \
|
||||
core/display.c \
|
||||
core/display.h \
|
||||
ui/draw-workspace.c \
|
||||
ui/draw-workspace.h \
|
||||
core/edge-resistance.c \
|
||||
core/edge-resistance.h \
|
||||
core/effects.c \
|
||||
core/effects.h \
|
||||
core/errors.c \
|
||||
core/errors.h \
|
||||
core/eventqueue.c \
|
||||
core/eventqueue.h \
|
||||
core/frame.c \
|
||||
core/frame.h \
|
||||
ui/gradient.c \
|
||||
ui/gradient.h \
|
||||
core/group-private.h \
|
||||
core/group-props.c \
|
||||
core/group-props.h \
|
||||
core/group.c \
|
||||
core/group.h \
|
||||
core/iconcache.c \
|
||||
core/iconcache.h \
|
||||
core/keybindings.c \
|
||||
core/keybindings.h \
|
||||
core/main.c \
|
||||
include/main.h \
|
||||
core/metacity-Xatomtype.h \
|
||||
core/place.c \
|
||||
core/place.h \
|
||||
core/prefs.c \
|
||||
include/prefs.h \
|
||||
core/screen.c \
|
||||
core/screen.h \
|
||||
core/session.c \
|
||||
core/session.h \
|
||||
core/spring-model.c \
|
||||
core/spring-model.h \
|
||||
core/stack.c \
|
||||
core/stack.h \
|
||||
core/util.c \
|
||||
include/util.h \
|
||||
core/window-props.c \
|
||||
core/window-props.h \
|
||||
core/window.c \
|
||||
core/window.h \
|
||||
core/workspace.c \
|
||||
core/workspace.h \
|
||||
core/xprops.c \
|
||||
core/xprops.h \
|
||||
include/common.h \
|
||||
include/core.h \
|
||||
include/ui.h \
|
||||
inlinepixbufs.h \
|
||||
keybindings.c \
|
||||
keybindings.h \
|
||||
main.c \
|
||||
main.h \
|
||||
menu.c \
|
||||
menu.h \
|
||||
metaaccellabel.c \
|
||||
metaaccellabel.h \
|
||||
metacity-Xatomtype.h \
|
||||
place.c \
|
||||
place.h \
|
||||
prefs.c \
|
||||
prefs.h \
|
||||
resizepopup.c \
|
||||
resizepopup.h \
|
||||
screen.c \
|
||||
screen.h \
|
||||
session.c \
|
||||
session.h \
|
||||
spring-model.c \
|
||||
spring-model.h \
|
||||
stack.c \
|
||||
stack.h \
|
||||
tabpopup.c \
|
||||
tabpopup.h \
|
||||
theme.c \
|
||||
theme.h \
|
||||
theme-parser.c \
|
||||
theme-parser.h \
|
||||
themewidget.c \
|
||||
themewidget.h \
|
||||
ui.c \
|
||||
ui.h \
|
||||
util.c \
|
||||
util.h \
|
||||
window.c \
|
||||
window.h \
|
||||
window-props.c \
|
||||
window-props.h \
|
||||
workspace.c \
|
||||
workspace.h \
|
||||
xprops.c \
|
||||
xprops.h
|
||||
ui/fixedtip.c \
|
||||
ui/fixedtip.h \
|
||||
ui/frames.c \
|
||||
ui/frames.h \
|
||||
ui/menu.c \
|
||||
ui/menu.h \
|
||||
ui/metaaccellabel.c \
|
||||
ui/metaaccellabel.h \
|
||||
ui/resizepopup.c \
|
||||
include/resizepopup.h \
|
||||
ui/tabpopup.c \
|
||||
include/tabpopup.h \
|
||||
ui/theme-parser.c \
|
||||
ui/theme-parser.h \
|
||||
ui/theme.c \
|
||||
ui/theme.h \
|
||||
ui/themewidget.c \
|
||||
ui/themewidget.h \
|
||||
ui/ui.c
|
||||
|
||||
# by setting libmetacity_private_la_CFLAGS, the files shared with
|
||||
# metacity proper will be compiled with different names.
|
||||
libmetacity_private_la_CFLAGS =
|
||||
libmetacity_private_la_SOURCES= \
|
||||
boxes.c \
|
||||
boxes.h \
|
||||
gradient.c \
|
||||
gradient.h \
|
||||
preview-widget.c \
|
||||
preview-widget.h \
|
||||
theme.c \
|
||||
theme.h \
|
||||
theme-parser.c \
|
||||
theme-parser.h \
|
||||
util.c \
|
||||
util.h \
|
||||
common.h
|
||||
libmetacity_private_la_SOURCES= \
|
||||
core/boxes.c \
|
||||
include/boxes.h \
|
||||
ui/gradient.c \
|
||||
ui/gradient.h \
|
||||
core/util.c \
|
||||
include/util.h \
|
||||
include/common.h \
|
||||
ui/preview-widget.c \
|
||||
ui/preview-widget.h \
|
||||
ui/theme-parser.c \
|
||||
ui/theme-parser.h \
|
||||
ui/theme.c \
|
||||
ui/theme.h
|
||||
|
||||
libmetacity_private_la_LDFLAGS = -no-undefined
|
||||
libmetacity_private_la_LIBADD = @METACITY_LIBS@
|
||||
|
||||
libmetacityincludedir = $(includedir)/metacity-1/metacity-private
|
||||
|
||||
libmetacityinclude_HEADERS = \
|
||||
boxes.h \
|
||||
common.h \
|
||||
gradient.h \
|
||||
preview-widget.h \
|
||||
theme.h \
|
||||
theme-parser.h \
|
||||
util.h
|
||||
libmetacityinclude_HEADERS = \
|
||||
include/boxes.h \
|
||||
ui/gradient.h \
|
||||
include/util.h \
|
||||
include/common.h \
|
||||
ui/preview-widget.h \
|
||||
ui/theme-parser.h \
|
||||
ui/theme.h
|
||||
|
||||
metacity_theme_viewer_SOURCES= \
|
||||
theme-viewer.c
|
||||
ui/theme-viewer.c
|
||||
|
||||
metacity_dialog_SOURCES= \
|
||||
metacity-dialog.c
|
||||
ui/metacity-dialog.c
|
||||
|
||||
bin_PROGRAMS=metacity metacity-theme-viewer
|
||||
libexec_PROGRAMS=metacity-dialog
|
||||
@@ -141,9 +137,9 @@ metacity_LDADD=@METACITY_LIBS@ $(EFENCE)
|
||||
metacity_theme_viewer_LDADD= @METACITY_LIBS@ libmetacity-private.la
|
||||
metacity_dialog_LDADD=@METACITY_LIBS@
|
||||
|
||||
testboxes_SOURCES=util.h util.c boxes.h boxes.c testboxes.c
|
||||
testgradient_SOURCES=gradient.h gradient.c testgradient.c
|
||||
testasyncgetprop_SOURCES=async-getprop.h async-getprop.c testasyncgetprop.c
|
||||
testboxes_SOURCES=include/util.h core/util.c include/boxes.h core/boxes.c core/testboxes.c
|
||||
testgradient_SOURCES=ui/gradient.h ui/gradient.c ui/testgradient.c
|
||||
testasyncgetprop_SOURCES=core/async-getprop.h core/async-getprop.c core/testasyncgetprop.c
|
||||
|
||||
noinst_PROGRAMS=testboxes testgradient testasyncgetprop
|
||||
|
||||
@@ -163,7 +159,7 @@ schema_DATA = $(schema_in_files:.schemas.in=.schemas)
|
||||
|
||||
@INTLTOOL_XML_NOMERGE_RULE@
|
||||
|
||||
xmldir = $(datadir)/control-center/keybindings
|
||||
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
|
||||
xml_in_files = 50-metacity-desktop-key.xml.in 50-metacity-key.xml.in
|
||||
xml_DATA = $(xml_in_files:.xml.in=.xml)
|
||||
|
||||
@@ -186,7 +182,7 @@ BUILT_SOURCES = inlinepixbufs.h
|
||||
CLEANFILES = inlinepixbufs.h metacity.desktop metacity.schemas 50-metacity-desktop-key.xml 50-metacity-key.xml
|
||||
|
||||
inlinepixbufs.h: $(IMAGES)
|
||||
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
|
||||
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
|
||||
|
55
src/api.c
55
src/api.c
@@ -1,55 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Metacity misc. public entry points */
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "api.h"
|
||||
#include "display.h"
|
||||
#include "colors.h"
|
||||
|
||||
PangoContext*
|
||||
meta_get_pango_context (Screen *xscreen,
|
||||
const PangoFontDescription *desc)
|
||||
{
|
||||
MetaScreen *screen;
|
||||
|
||||
screen = meta_screen_for_x_screen (xscreen);
|
||||
|
||||
g_return_val_if_fail (screen != NULL, NULL);
|
||||
|
||||
return meta_screen_get_pango_context (screen,
|
||||
desc,
|
||||
/* FIXME, from the frame window */
|
||||
PANGO_DIRECTION_LTR);
|
||||
}
|
||||
|
||||
gulong
|
||||
meta_get_x_pixel (Screen *xscreen, const PangoColor *color)
|
||||
{
|
||||
MetaScreen *screen;
|
||||
|
||||
screen = meta_screen_for_x_screen (xscreen);
|
||||
|
||||
g_return_val_if_fail (screen != NULL, 0);
|
||||
|
||||
return meta_screen_get_x_pixel (screen, color);
|
||||
}
|
||||
|
64
src/api.h
64
src/api.h
@@ -1,64 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* Metacity misc. public entry points */
|
||||
|
||||
/*
|
||||
* 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_API_H
|
||||
#define META_API_H
|
||||
|
||||
/* don't add any internal headers here; api.h is an installed/public
|
||||
* header. Only theme.h is also installed.
|
||||
*/
|
||||
#include <X11/Xlib.h>
|
||||
#include <pango/pangox.h>
|
||||
|
||||
/* Colors/state stuff matches GTK since we get the info from
|
||||
* the GTK UI slave
|
||||
*/
|
||||
typedef struct _MetaUIColors MetaUIColors;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
META_STATE_NORMAL,
|
||||
META_STATE_ACTIVE,
|
||||
META_STATE_PRELIGHT,
|
||||
META_STATE_SELECTED,
|
||||
META_STATE_INSENSITIVE
|
||||
} MetaUIState;
|
||||
|
||||
struct _MetaUIColors
|
||||
{
|
||||
PangoColor fg[5];
|
||||
PangoColor bg[5];
|
||||
PangoColor light[5];
|
||||
PangoColor dark[5];
|
||||
PangoColor mid[5];
|
||||
PangoColor text[5];
|
||||
PangoColor base[5];
|
||||
PangoColor text_aa[5];
|
||||
};
|
||||
|
||||
PangoContext* meta_get_pango_context (Screen *xscreen,
|
||||
const PangoFontDescription *desc);
|
||||
gulong meta_get_x_pixel (Screen *xscreen,
|
||||
const PangoColor *color);
|
||||
|
||||
#endif
|
677
src/c-screen.c
677
src/c-screen.c
@@ -1,677 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2006 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 <config.h>
|
||||
|
||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||
#include <cm/ws.h>
|
||||
#include <cm/stacker.h>
|
||||
#include <cm/wsint.h>
|
||||
#include <cm/drawable-node.h>
|
||||
#include <cm/state.h>
|
||||
#include <cm/magnifier.h>
|
||||
#include <cm/square.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "screen.h"
|
||||
#include "c-screen.h"
|
||||
#include "c-window.h"
|
||||
|
||||
struct MetaCompScreen
|
||||
{
|
||||
WsDisplay *display;
|
||||
CmStacker *stacker;
|
||||
CmMagnifier *magnifier;
|
||||
|
||||
WsWindow *gl_window;
|
||||
WsWindow *root_window;
|
||||
|
||||
WsScreen *screen;
|
||||
MetaScreen *meta_screen;
|
||||
|
||||
int repaint_id;
|
||||
int idle_id;
|
||||
|
||||
WsWindow *selection_window;
|
||||
|
||||
GHashTable *windows_by_xid;
|
||||
};
|
||||
|
||||
static MetaCompWindow *
|
||||
meta_comp_window_lookup (MetaCompScreen *info,
|
||||
Window xid)
|
||||
{
|
||||
MetaCompWindow *window;
|
||||
|
||||
window = g_hash_table_lookup (info->windows_by_xid, (gpointer)xid);
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
MetaCompWindow *
|
||||
meta_comp_screen_lookup_window (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
return meta_comp_window_lookup (info, xwindow);
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void
|
||||
update_frame_counter (void)
|
||||
{
|
||||
#define BUFSIZE 128
|
||||
static GTimer *timer;
|
||||
static double buffer [BUFSIZE];
|
||||
static int next = 0;
|
||||
|
||||
if (!timer)
|
||||
timer = g_timer_new ();
|
||||
|
||||
buffer[next++] = g_timer_elapsed (timer, NULL);
|
||||
|
||||
if (next == BUFSIZE)
|
||||
{
|
||||
int i;
|
||||
double total;
|
||||
|
||||
next = 0;
|
||||
|
||||
total = 0.0;
|
||||
for (i = 1; i < BUFSIZE; ++i)
|
||||
total += buffer[i] - buffer[i - 1];
|
||||
|
||||
g_print ("frames per second: %f\n", 1 / (total / (BUFSIZE - 1)));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
dump_stacking_order (GList *nodes)
|
||||
{
|
||||
GList *list;
|
||||
|
||||
for (list = nodes; list != NULL; list = list->next)
|
||||
{
|
||||
CmDrawableNode *node = list->data;
|
||||
|
||||
if (node)
|
||||
g_print ("%lx, ", WS_RESOURCE_XID (node->drawable));
|
||||
}
|
||||
g_print ("\n");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
repaint (gpointer data)
|
||||
{
|
||||
MetaCompScreen *info = data;
|
||||
CmState *state;
|
||||
#if 0
|
||||
g_print ("repaint\n");
|
||||
#endif
|
||||
glViewport (0, 0,
|
||||
info->meta_screen->rect.width,
|
||||
info->meta_screen->rect.height);
|
||||
|
||||
glLoadIdentity();
|
||||
|
||||
#if 0
|
||||
glClearColor (0, 0, 0, 1.0);
|
||||
glClear (GL_COLOR_BUFFER_BIT);
|
||||
#endif
|
||||
|
||||
ws_window_raise (info->gl_window);
|
||||
|
||||
#if 0
|
||||
glDisable (GL_TEXTURE_2D);
|
||||
glDisable (GL_TEXTURE_RECTANGLE_ARB);
|
||||
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
|
||||
glColor4f (0.0, 1.0, 0.0, 1.0);
|
||||
glRectf (-1.0, -1.0, 1.0, 1.0);
|
||||
glFinish();
|
||||
#endif
|
||||
|
||||
state = cm_state_new ();
|
||||
|
||||
cm_state_disable_depth_buffer_update (state);
|
||||
|
||||
cm_node_render (CM_NODE (info->magnifier), state);
|
||||
|
||||
cm_state_enable_depth_buffer_update (state);
|
||||
|
||||
g_object_unref (state);
|
||||
|
||||
ws_window_gl_swap_buffers (info->gl_window);
|
||||
glFinish();
|
||||
|
||||
#if 0
|
||||
dump_stacking_order (info->stacker->children);
|
||||
#endif
|
||||
|
||||
info->idle_id = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static MetaCompWindow *
|
||||
find_comp_window (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
return meta_comp_window_lookup (info, xwindow);
|
||||
}
|
||||
|
||||
static CmNode *
|
||||
find_node (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
MetaCompWindow *window = meta_comp_window_lookup (info, xwindow);
|
||||
|
||||
if (window)
|
||||
return meta_comp_window_get_node (window);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static GList *all_screen_infos;
|
||||
|
||||
MetaCompScreen *
|
||||
meta_comp_screen_get_by_xwindow (Window xwindow)
|
||||
{
|
||||
GList *list;
|
||||
|
||||
for (list = all_screen_infos; list != NULL; list = list->next)
|
||||
{
|
||||
MetaCompScreen *info = list->data;
|
||||
|
||||
if (find_node (info, xwindow))
|
||||
return info;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
MetaCompScreen *
|
||||
meta_comp_screen_new (WsDisplay *display,
|
||||
MetaScreen *screen)
|
||||
{
|
||||
MetaCompScreen *scr_info = g_new0 (MetaCompScreen, 1);
|
||||
|
||||
scr_info->screen = ws_display_get_screen_from_number (
|
||||
display, screen->number);
|
||||
scr_info->root_window = ws_screen_get_root_window (scr_info->screen);
|
||||
scr_info->display = display;
|
||||
scr_info->meta_screen = screen;
|
||||
scr_info->windows_by_xid = g_hash_table_new (g_direct_hash, g_direct_equal);
|
||||
|
||||
all_screen_infos = g_list_prepend (all_screen_infos, scr_info);
|
||||
|
||||
return scr_info;
|
||||
}
|
||||
|
||||
static char *
|
||||
make_selection_name (MetaCompScreen *info)
|
||||
{
|
||||
char *buffer;
|
||||
|
||||
buffer = g_strdup_printf ("_NET_WM_CM_S%d", info->meta_screen->number);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
static void
|
||||
on_selection_clear (WsWindow *window,
|
||||
WsSelectionClearEvent *event,
|
||||
gpointer data)
|
||||
{
|
||||
MetaCompScreen *info = data;
|
||||
char *buffer = make_selection_name (info);
|
||||
|
||||
if (strcmp (event->selection, buffer))
|
||||
{
|
||||
/* We lost the selection */
|
||||
meta_comp_screen_unredirect (info);
|
||||
}
|
||||
}
|
||||
|
||||
static WsWindow *
|
||||
claim_selection (MetaCompScreen *info)
|
||||
{
|
||||
WsWindow *window = ws_window_new (info->root_window);
|
||||
char *buffer = make_selection_name (info);
|
||||
|
||||
#if 0
|
||||
g_print ("selection window: %lx\n", WS_RESOURCE_XID (window));
|
||||
#endif
|
||||
|
||||
ws_window_own_selection (window, buffer, WS_CURRENT_TIME);
|
||||
|
||||
g_signal_connect (window, "selection_clear_event", G_CALLBACK (on_selection_clear), info);
|
||||
|
||||
g_free (buffer);
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
static void
|
||||
queue_paint (CmNode *node,
|
||||
MetaCompScreen *info)
|
||||
{
|
||||
#if 0
|
||||
g_print ("queueing %s\n", G_OBJECT_TYPE_NAME (node));
|
||||
#endif
|
||||
meta_comp_screen_queue_paint (info);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_redirect (MetaCompScreen *info)
|
||||
{
|
||||
WsWindow *root = ws_screen_get_root_window (info->screen);
|
||||
WsRectangle source;
|
||||
WsRectangle target;
|
||||
WsServerRegion *region;
|
||||
int screen_w;
|
||||
int screen_h;
|
||||
CmSquare *square;
|
||||
|
||||
#if 0
|
||||
g_print ("redirecting %lx\n", WS_RESOURCE_XID (root));
|
||||
#endif
|
||||
|
||||
ws_window_redirect_subwindows (root);
|
||||
info->gl_window = ws_screen_get_gl_window (info->screen);
|
||||
/* FIXME: This should probably happen in libcm */
|
||||
ws_window_set_override_redirect (info->gl_window, TRUE);
|
||||
region = ws_server_region_new (info->display);
|
||||
ws_window_set_input_shape (info->gl_window, region);
|
||||
g_object_unref (G_OBJECT (region));
|
||||
|
||||
ws_display_begin_error_trap (info->display);
|
||||
|
||||
ws_window_unredirect (info->gl_window);
|
||||
|
||||
ws_display_end_error_trap (info->display);
|
||||
|
||||
info->selection_window = claim_selection (info);
|
||||
|
||||
ws_window_map (info->gl_window);
|
||||
|
||||
info->stacker = cm_stacker_new ();
|
||||
|
||||
square = cm_square_new (0.3, 0.3, 0.8, 1.0);
|
||||
|
||||
cm_stacker_add_child (info->stacker, CM_NODE (square));
|
||||
|
||||
g_object_unref (square);
|
||||
|
||||
screen_w = ws_screen_get_width (info->screen);
|
||||
screen_h = ws_screen_get_height (info->screen);
|
||||
|
||||
#if 0
|
||||
g_print ("width: %d height %d\n", screen_w, screen_h);
|
||||
#endif
|
||||
|
||||
source.x = (screen_w - (screen_w / 4)) / 2;
|
||||
source.y = screen_h / 16;
|
||||
source.width = screen_w / 4;
|
||||
source.height = screen_h / 16;
|
||||
|
||||
target.x = 0;
|
||||
target.y = screen_h - screen_h / 4;
|
||||
target.width = screen_w;
|
||||
target.height = screen_h / 4;
|
||||
|
||||
info->magnifier = cm_magnifier_new (CM_NODE (info->stacker), &source, &target);
|
||||
|
||||
if (g_getenv ("USE_MAGNIFIER"))
|
||||
cm_magnifier_set_active (info->magnifier, TRUE);
|
||||
else
|
||||
cm_magnifier_set_active (info->magnifier, FALSE);
|
||||
|
||||
info->repaint_id =
|
||||
g_signal_connect (info->magnifier, "need_repaint",
|
||||
G_CALLBACK (queue_paint), info);
|
||||
|
||||
ws_display_sync (info->display);
|
||||
}
|
||||
|
||||
static void
|
||||
listify (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data)
|
||||
{
|
||||
GList **windows = data;
|
||||
|
||||
*windows = g_list_prepend (*windows, (gpointer)value);
|
||||
}
|
||||
|
||||
static void
|
||||
free_all_windows (MetaCompScreen *info)
|
||||
{
|
||||
GList *windows = NULL, *list;
|
||||
|
||||
g_hash_table_foreach (info->windows_by_xid, listify, &windows);
|
||||
|
||||
for (list = windows; list != NULL; list = list->next)
|
||||
{
|
||||
MetaCompWindow *window = list->data;
|
||||
|
||||
meta_comp_window_free (window);
|
||||
}
|
||||
|
||||
g_list_free (windows);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_unredirect (MetaCompScreen *info)
|
||||
{
|
||||
WsScreen *ws_screen = info->screen;
|
||||
WsWindow *root = ws_screen_get_root_window (ws_screen);
|
||||
|
||||
g_signal_handler_disconnect (info->magnifier, info->repaint_id);
|
||||
g_object_unref (info->magnifier);
|
||||
|
||||
ws_window_unredirect_subwindows (root);
|
||||
ws_screen_release_gl_window (ws_screen);
|
||||
|
||||
free_all_windows (info);
|
||||
|
||||
ws_display_sync (info->display);
|
||||
|
||||
/* FIXME: libcm needs a way to guarantee that a window is destroyed,
|
||||
* without relying on ref counting having it as a side effect
|
||||
*/
|
||||
g_object_unref (info->selection_window);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_queue_paint (MetaCompScreen *info)
|
||||
{
|
||||
#if 0
|
||||
g_print ("queuing\n");
|
||||
#endif
|
||||
if (!info->idle_id)
|
||||
info->idle_id = g_idle_add (repaint, info);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_restack (MetaCompScreen *info,
|
||||
Window window,
|
||||
Window above_this)
|
||||
{
|
||||
MetaCompWindow *comp_window = find_comp_window (info, window);
|
||||
MetaCompWindow *above_comp_window = find_comp_window (info, above_this);
|
||||
CmNode *window_node = find_node (info, window);
|
||||
CmNode *above_node = find_node (info, above_this);
|
||||
|
||||
if ((comp_window && meta_comp_window_stack_frozen (comp_window)) ||
|
||||
(above_comp_window && meta_comp_window_stack_frozen (above_comp_window)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#if 0
|
||||
dump_stacking_order (info->stacker->children);
|
||||
#endif
|
||||
|
||||
if (window_node == above_node)
|
||||
return;
|
||||
|
||||
if (window_node && above_this == WS_RESOURCE_XID (info->gl_window))
|
||||
{
|
||||
cm_stacker_raise_child (info->stacker, window_node);
|
||||
}
|
||||
else if (window_node && above_this == None)
|
||||
{
|
||||
cm_stacker_lower_child (info->stacker, window_node);
|
||||
}
|
||||
else if (window_node && above_node)
|
||||
{
|
||||
cm_stacker_restack_child (info->stacker, window_node, above_node);
|
||||
}
|
||||
#if 0
|
||||
else
|
||||
g_print ("nothing happened\n");
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
g_print ("done restacking; new order:\n");
|
||||
#endif
|
||||
#if 0
|
||||
dump_stacking_order (info->stacker->children);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_raise_window (MetaCompScreen *info,
|
||||
Window window)
|
||||
{
|
||||
CmNode *node = find_node (info, window);
|
||||
|
||||
if (node)
|
||||
cm_stacker_raise_child (info->stacker, node);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_set_size (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
|
||||
|
||||
if (comp_window)
|
||||
{
|
||||
WsRectangle rect;
|
||||
|
||||
rect.x = x;
|
||||
rect.y = y;
|
||||
rect.width = width;
|
||||
rect.height = height;
|
||||
|
||||
meta_comp_window_set_size (comp_window, &rect);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
print_child_titles (WsWindow *window)
|
||||
{
|
||||
GList *children = ws_window_query_subwindows (window);
|
||||
GList *list;
|
||||
int i;
|
||||
|
||||
g_print ("window: %lx %s\n", WS_RESOURCE_XID (window), ws_window_query_title (window));
|
||||
|
||||
i = 0;
|
||||
for (list = children; list != NULL; list = list->next)
|
||||
{
|
||||
WsWindow *child = list->data;
|
||||
|
||||
g_print (" %d adding: %lx %s\n", i++, WS_RESOURCE_XID (child), ws_window_query_title (child));
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
MetaCompScreen *cscreen;
|
||||
XID xid;
|
||||
} DestroyData;
|
||||
|
||||
static void
|
||||
on_window_destroy (MetaCompWindow *comp_window,
|
||||
gpointer closure)
|
||||
{
|
||||
DestroyData *data = closure;
|
||||
CmNode *node = meta_comp_window_get_node (comp_window);
|
||||
|
||||
cm_stacker_remove_child (data->cscreen->stacker, node);
|
||||
g_hash_table_remove (data->cscreen->windows_by_xid, (gpointer)data->xid);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_add_window (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
WsDrawable *drawable;
|
||||
MetaCompWindow *comp_window;
|
||||
DestroyData *data;
|
||||
|
||||
ws_display_begin_error_trap (info->display);
|
||||
|
||||
comp_window = meta_comp_window_lookup (info, xwindow);
|
||||
|
||||
if (comp_window)
|
||||
goto out;
|
||||
|
||||
drawable = WS_DRAWABLE (ws_window_lookup (info->display, xwindow));
|
||||
|
||||
if (ws_window_query_input_only (WS_WINDOW (drawable)))
|
||||
goto out;
|
||||
|
||||
if (WS_WINDOW (drawable) == info->gl_window ||
|
||||
WS_WINDOW (drawable) == info->screen->overlay_window)
|
||||
{
|
||||
#if 0
|
||||
g_print ("gl window\n");
|
||||
#endif
|
||||
goto out;
|
||||
}
|
||||
|
||||
data = g_new (DestroyData, 1);
|
||||
data->cscreen = info;
|
||||
data->xid = WS_RESOURCE_XID (drawable);
|
||||
|
||||
comp_window = meta_comp_window_new (info->meta_screen, drawable,
|
||||
on_window_destroy, data);
|
||||
|
||||
g_hash_table_insert (info->windows_by_xid, (gpointer)WS_RESOURCE_XID (drawable), comp_window);
|
||||
|
||||
cm_stacker_add_child (info->stacker, meta_comp_window_get_node (comp_window));
|
||||
|
||||
out:
|
||||
if (comp_window)
|
||||
{
|
||||
/* This function is called both when windows are created and when they
|
||||
* are mapped, so for now we have this silly function.
|
||||
*/
|
||||
meta_comp_window_refresh_attrs (comp_window);
|
||||
}
|
||||
|
||||
ws_display_end_error_trap (info->display);
|
||||
|
||||
#if 0
|
||||
g_print ("done checking\n");
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
meta_comp_screen_remove_window (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
|
||||
|
||||
if (comp_window)
|
||||
meta_comp_window_free (comp_window);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_set_updates (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
gboolean updates)
|
||||
{
|
||||
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
|
||||
|
||||
meta_comp_window_set_updates (comp_window, updates);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
meta_comp_screen_set_patch (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
CmPoint points[4][4])
|
||||
{
|
||||
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
|
||||
|
||||
if (node)
|
||||
cm_drawable_node_set_patch (node, points);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_unset_patch (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
|
||||
|
||||
if (node)
|
||||
cm_drawable_node_unset_patch (node);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_set_alpha (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
gdouble alpha)
|
||||
{
|
||||
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
|
||||
#if 0
|
||||
g_print ("alpha: %f\n", alpha);
|
||||
#endif
|
||||
cm_drawable_node_set_alpha (node, alpha);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_get_real_size (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
WsRectangle *size)
|
||||
{
|
||||
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
|
||||
|
||||
if (!size)
|
||||
return;
|
||||
|
||||
cm_drawable_node_get_clipbox (node, size);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_unmap (MetaCompScreen *info,
|
||||
Window xwindow)
|
||||
{
|
||||
MetaCompWindow *window = find_comp_window (info, xwindow);
|
||||
|
||||
if (window)
|
||||
meta_comp_window_hide (window);
|
||||
}
|
||||
|
||||
void
|
||||
meta_comp_screen_set_target_rect (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
WsRectangle *rect)
|
||||
{
|
||||
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
|
||||
|
||||
if (node)
|
||||
cm_drawable_node_set_scale_rect (node, rect);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -1,53 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
#include "screen.h"
|
||||
#include "c-window.h"
|
||||
|
||||
typedef struct MetaCompScreen MetaCompScreen;
|
||||
|
||||
MetaCompScreen *meta_comp_screen_new (WsDisplay *display,
|
||||
MetaScreen *screen);
|
||||
MetaCompScreen *meta_comp_screen_get_by_xwindow (Window xwindow);
|
||||
void meta_comp_screen_destroy (MetaCompScreen *scr_info);
|
||||
void meta_comp_screen_redirect (MetaCompScreen *info);
|
||||
void meta_comp_screen_unredirect (MetaCompScreen *info);
|
||||
void meta_comp_screen_add_window (MetaCompScreen *scr_info,
|
||||
Window xwindow);
|
||||
void meta_comp_screen_remove_window (MetaCompScreen *scr_info,
|
||||
Window xwindow);
|
||||
void meta_comp_screen_restack (MetaCompScreen *scr_info,
|
||||
Window window,
|
||||
Window above_this);
|
||||
void meta_comp_screen_set_size (MetaCompScreen *info,
|
||||
Window window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height);
|
||||
void meta_comp_screen_raise_window (MetaCompScreen *scr_info,
|
||||
Window window);
|
||||
void meta_comp_screen_queue_paint (MetaCompScreen *info);
|
||||
void meta_comp_screen_set_updates (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
gboolean updates);
|
||||
void meta_comp_screen_set_patch (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
CmPoint points[4][4]);
|
||||
void meta_comp_screen_unset_patch (MetaCompScreen *info,
|
||||
Window xwindow);
|
||||
void meta_comp_screen_set_alpha (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
gdouble alpha);
|
||||
void meta_comp_screen_get_real_size (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
WsRectangle *size);
|
||||
void meta_comp_screen_set_target_rect (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
WsRectangle *rect);
|
||||
void meta_comp_screen_set_explode (MetaCompScreen *info,
|
||||
Window xwindow,
|
||||
gdouble level);
|
||||
void meta_comp_screen_unmap (MetaCompScreen *info,
|
||||
Window xwindow);
|
||||
MetaCompWindow *meta_comp_screen_lookup_window (MetaCompScreen *info,
|
||||
Window xwindow);
|
1259
src/c-window.c
1259
src/c-window.c
File diff suppressed because it is too large
Load Diff
@@ -1,72 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
/*
|
||||
* Copyright (C) 2006 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 <cm/node.h>
|
||||
#include "display.h"
|
||||
#include "effects.h"
|
||||
|
||||
#ifndef C_WINDOW_H
|
||||
#define C_WINDOW_H
|
||||
|
||||
typedef struct _MetaCompWindow MetaCompWindow;
|
||||
|
||||
typedef void (* MetaCompWindowDestroy) (MetaCompWindow *window,
|
||||
gpointer closure);
|
||||
|
||||
MetaCompWindow *meta_comp_window_new (MetaScreen *screen,
|
||||
WsDrawable *drawable,
|
||||
MetaCompWindowDestroy destroy,
|
||||
gpointer data);
|
||||
CmNode *meta_comp_window_get_node (MetaCompWindow *window);
|
||||
gboolean meta_comp_window_free (MetaCompWindow *window);
|
||||
void meta_comp_window_set_size (MetaCompWindow *window,
|
||||
WsRectangle *size);
|
||||
|
||||
void meta_comp_window_hide (MetaCompWindow *comp_window);
|
||||
void meta_comp_window_show (MetaCompWindow *comp_window);
|
||||
void meta_comp_window_refresh_attrs (MetaCompWindow *comp_window);
|
||||
void meta_comp_window_set_updates (MetaCompWindow *comp_window,
|
||||
gboolean updates);
|
||||
|
||||
void meta_comp_window_explode (MetaCompWindow *comp_window,
|
||||
MetaEffect *effect);
|
||||
void meta_comp_window_shrink (MetaCompWindow *comp_window,
|
||||
MetaEffect *effect);
|
||||
void meta_comp_window_unshrink (MetaCompWindow *comp_window,
|
||||
MetaEffect *effect);
|
||||
void meta_comp_window_run_focus (MetaCompWindow *comp_window,
|
||||
MetaEffect *effect);
|
||||
void meta_comp_window_restack (MetaCompWindow *comp_window,
|
||||
MetaCompWindow *above);
|
||||
void meta_comp_window_freeze_stack (MetaCompWindow *comp_window);
|
||||
void meta_comp_window_thaw_stack (MetaCompWindow *comp_window);
|
||||
gboolean meta_comp_window_stack_frozen (MetaCompWindow *comp_window);
|
||||
void meta_comp_window_run_minimize (MetaCompWindow *window,
|
||||
MetaEffect *effect);
|
||||
void meta_comp_window_run_unminimize (MetaCompWindow *comp_window,
|
||||
MetaEffect *effect);
|
||||
|
||||
#if 0
|
||||
void meta_comp_window_set_explode (MetaCompWindow *comp_window,
|
||||
double level);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
1024
src/compositor.c
1024
src/compositor.c
File diff suppressed because it is too large
Load Diff
@@ -22,11 +22,57 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file core/bell.c Ring the bell or flash the screen
|
||||
*
|
||||
* Sometimes, X programs "ring the bell", whatever that means. Metacity lets
|
||||
* the user configure the bell to be audible or visible (aka visual), and
|
||||
* if it's visual it can be configured to be frame-flash or fullscreen-flash.
|
||||
* We never get told about audible bells; X handles them just fine by itself.
|
||||
*
|
||||
* Visual bells come in at meta_bell_notify(), which checks we are actually
|
||||
* in visual mode and calls through to meta_bell_visual_notify(). That
|
||||
* function then checks what kind of visual flash you like, and calls either
|
||||
* meta_bell_flash_fullscreen()-- which calls meta_bell_flash_screen() to do
|
||||
* its work-- or meta_bell_flash_frame(), which flashes the focussed window
|
||||
* using meta_bell_flash_window_frame(), unless there is no such window, in
|
||||
* which case it flashes the screen instead. meta_bell_flash_window_frame()
|
||||
* flashes the frame and calls meta_bell_unflash_frame() as a timeout to
|
||||
* remove the flash.
|
||||
*
|
||||
* The visual bell was the result of a discussion in Bugzilla here:
|
||||
* <http://bugzilla.gnome.org/show_bug.cgi?id=99886>.
|
||||
*
|
||||
* Several of the functions in this file are ifdeffed out entirely if we are
|
||||
* found not to have the XKB extension, which is required to do these clever
|
||||
* things with bells; some others are entirely no-ops in that case.
|
||||
*
|
||||
* \bug Static functions should not be called meta_*.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "bell.h"
|
||||
#include "screen.h"
|
||||
#include "prefs.h"
|
||||
|
||||
/**
|
||||
* Flashes one entire screen. This is done by making a window the size of the
|
||||
* whole screen (or reusing the old one, if it's still around), mapping it,
|
||||
* painting it white and then black, and then unmapping it. We set saveunder so
|
||||
* that all the windows behind it come back immediately.
|
||||
*
|
||||
* Unlike frame flashes, we don't do fullscreen flashes with a timeout; rather,
|
||||
* we do them in one go, because we don't have to rely on the theme code
|
||||
* redrawing the frame for us in order to do the flash.
|
||||
*
|
||||
* \param display The display which owns the screen (rather redundant)
|
||||
* \param screen The screen to flash
|
||||
*
|
||||
* \bug The way I read it, this appears not to do the flash
|
||||
* the first time we flash a particular display. Am I wrong?
|
||||
*
|
||||
* \bug This appears to destroy our current XSync status.
|
||||
*/
|
||||
static void
|
||||
meta_bell_flash_screen (MetaDisplay *display,
|
||||
MetaScreen *screen)
|
||||
@@ -89,6 +135,16 @@ meta_bell_flash_screen (MetaDisplay *display,
|
||||
XFlush (display->xdisplay);
|
||||
}
|
||||
|
||||
/**
|
||||
* Flashes one screen, or all screens, in response to a bell event.
|
||||
* If the event is on a particular window, flash the screen that
|
||||
* window is on. Otherwise, flash every screen on this display.
|
||||
*
|
||||
* If the configure script found we had no XKB, this does not exist.
|
||||
*
|
||||
* \param display The display the event came in on
|
||||
* \param xkb_ev The bell event
|
||||
*/
|
||||
#ifdef HAVE_XKB
|
||||
static void
|
||||
meta_bell_flash_fullscreen (MetaDisplay *display,
|
||||
@@ -116,6 +172,20 @@ meta_bell_flash_fullscreen (MetaDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes a frame be not flashed; this is the timeout half of
|
||||
* meta_bell_flash_window_frame(). This is done simply by clearing the
|
||||
* flash flag and queuing a redraw of the frame.
|
||||
*
|
||||
* If the configure script found we had no XKB, this does not exist.
|
||||
*
|
||||
* \param data The frame to unflash, cast to a gpointer so it can go into
|
||||
* a callback function.
|
||||
* \return Always FALSE, so we don't get called again.
|
||||
*
|
||||
* \bug This is the parallel to meta_bell_flash_window_frame(), so it should
|
||||
* really be called meta_bell_unflash_window_frame().
|
||||
*/
|
||||
static gboolean
|
||||
meta_bell_unflash_frame (gpointer data)
|
||||
{
|
||||
@@ -125,6 +195,17 @@ meta_bell_unflash_frame (gpointer data)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes a frame flash and then return to normal shortly afterwards.
|
||||
* This is done by setting a flag so that the theme
|
||||
* code will temporarily draw the frame as focussed if it's unfocussed and
|
||||
* vice versa, and then queueing a redraw. Lastly, we create a timeout so
|
||||
* that the flag can be unset and the frame re-redrawn.
|
||||
*
|
||||
* If the configure script found we had no XKB, this does not exist.
|
||||
*
|
||||
* \param window The window to flash
|
||||
*/
|
||||
static void
|
||||
meta_bell_flash_window_frame (MetaWindow *window)
|
||||
{
|
||||
@@ -135,6 +216,13 @@ meta_bell_flash_window_frame (MetaWindow *window)
|
||||
meta_bell_unflash_frame, window->frame, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Flashes the frame of the focussed window. If there is no focussed window,
|
||||
* flashes the screen.
|
||||
*
|
||||
* \param display The display the bell event came in on
|
||||
* \param xkb_ev The bell event we just received
|
||||
*/
|
||||
static void
|
||||
meta_bell_flash_frame (MetaDisplay *display,
|
||||
XkbAnyEvent *xkb_ev)
|
||||
@@ -158,6 +246,17 @@ meta_bell_flash_frame (MetaDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the user some kind of visual bell substitute, in response to a
|
||||
* bell event. What this is depends on the "visual bell type" pref.
|
||||
*
|
||||
* If the configure script found we had no XKB, this does not exist.
|
||||
*
|
||||
* \param display The display the bell event came in on
|
||||
* \param xkb_ev The bell event we just received
|
||||
*
|
||||
* \bug This should be merged with meta_bell_notify().
|
||||
*/
|
||||
static void
|
||||
meta_bell_visual_notify (MetaDisplay *display,
|
||||
XkbAnyEvent *xkb_ev)
|
||||
@@ -176,6 +275,16 @@ meta_bell_visual_notify (MetaDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
@@ -184,8 +293,17 @@ meta_bell_notify (MetaDisplay *display,
|
||||
if (meta_prefs_get_visual_bell ())
|
||||
meta_bell_visual_notify (display, xkb_ev);
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_XKB */
|
||||
|
||||
/**
|
||||
* Turns the bell to audible or visual. This tells X what to do, but
|
||||
* not Metacity; 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)
|
||||
{
|
||||
@@ -197,6 +315,27 @@ meta_bell_set_audible (MetaDisplay *display, gboolean audible)
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* to send us bell notifications, and then also switching
|
||||
* off the audible bell if we're using a visual one ourselves.
|
||||
*
|
||||
* Unlike most X extensions we use, we only initialise XKB here
|
||||
* (rather than in main()). It's possible that XKB is not
|
||||
* installed at all, but if that was known at build time
|
||||
* 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>)
|
||||
* that XFree86's implementation is broken so we shouldn't
|
||||
* call it, but that was in 2002. Is it working now?
|
||||
*/
|
||||
gboolean
|
||||
meta_bell_init (MetaDisplay *display)
|
||||
{
|
||||
@@ -238,6 +377,15 @@ meta_bell_init (MetaDisplay *display)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shuts down the bell subsystem.
|
||||
*
|
||||
* \param display The display which is closing
|
||||
*
|
||||
* \bug This is never called! If we had XkbSetAutoResetControls
|
||||
* enabled in meta_bell_init(), this wouldn't be a problem, but
|
||||
* we don't.
|
||||
*/
|
||||
void
|
||||
meta_bell_shutdown (MetaDisplay *display)
|
||||
{
|
||||
@@ -250,6 +398,14 @@ meta_bell_shutdown (MetaDisplay *display)
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
2607
src/core/compositor.c
Normal file
2607
src/core/compositor.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -28,23 +28,12 @@
|
||||
#include "display.h"
|
||||
#include "spring-model.h"
|
||||
|
||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||
#include "cm/deform.h"
|
||||
/* FIXME: Needs namespacing. */
|
||||
void get_patch_points (Model *model, CmPoint points[4][4]);
|
||||
#endif
|
||||
|
||||
typedef void (* MetaAnimationFinishedFunc) (gpointer data);
|
||||
|
||||
/* XXX namespace me */
|
||||
void compute_window_rect (MetaWindow *window, MetaRectangle *rect);
|
||||
|
||||
MetaCompositor* meta_compositor_new (MetaDisplay *display);
|
||||
void meta_compositor_unref (MetaCompositor *compositor);
|
||||
void meta_compositor_process_event (MetaCompositor *compositor,
|
||||
XEvent *xevent,
|
||||
MetaWindow *window);
|
||||
void meta_compositor_add_window (MetaCompositor *compositor,
|
||||
MetaWindow *window,
|
||||
Window xwindow,
|
||||
XWindowAttributes *attrs);
|
||||
void meta_compositor_remove_window (MetaCompositor *compositor,
|
||||
@@ -57,23 +46,11 @@ void meta_compositor_manage_screen (MetaCompositor *compositor,
|
||||
void meta_compositor_unmanage_screen (MetaCompositor *compositor,
|
||||
MetaScreen *screen);
|
||||
|
||||
#if 0
|
||||
void meta_compositor_minimize (MetaCompositor *compositor,
|
||||
MetaWindow *window,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
MetaAnimationFinishedFunc finished_cb,
|
||||
gpointer finished_data);
|
||||
#endif
|
||||
void meta_compositor_set_updates (MetaCompositor *compositor,
|
||||
MetaWindow *window,
|
||||
gboolean updates);
|
||||
|
||||
void
|
||||
meta_compositor_set_updates (MetaCompositor *compositor,
|
||||
MetaWindow *window,
|
||||
gboolean updates);
|
||||
void
|
||||
meta_compositor_destroy (MetaCompositor *compositor);
|
||||
void meta_compositor_destroy (MetaCompositor *compositor);
|
||||
|
||||
void meta_compositor_begin_move (MetaCompositor *compositor,
|
||||
MetaWindow *window,
|
||||
@@ -86,7 +63,7 @@ void meta_compositor_end_move (MetaCompositor *compositor,
|
||||
MetaWindow *window);
|
||||
void meta_compositor_free_window (MetaCompositor *compositor,
|
||||
MetaWindow *window);
|
||||
void meta_compositor_free_window (MetaCompositor *compositor,
|
||||
MetaWindow *window);
|
||||
Pixmap meta_compositor_get_window_pixmap (MetaCompositor *compositor,
|
||||
MetaWindow *window);
|
||||
|
||||
#endif /* META_COMPOSITOR_H */
|
@@ -718,19 +718,18 @@ meta_core_increment_event_serial (Display *xdisplay)
|
||||
void
|
||||
meta_invalidate_default_icons (void)
|
||||
{
|
||||
GSList *displays, *windows;
|
||||
GSList *displays;
|
||||
|
||||
for (displays = meta_displays_list ();
|
||||
displays != NULL;
|
||||
displays = displays->next)
|
||||
{
|
||||
GSList *windows, *l;
|
||||
|
||||
for (windows = meta_display_list_windows (displays->data);
|
||||
windows != NULL;
|
||||
windows = windows->next)
|
||||
windows = meta_display_list_windows (displays->data);
|
||||
for (l = windows; l != NULL; l = l->next)
|
||||
{
|
||||
|
||||
MetaWindow *window = (MetaWindow*)windows->data;
|
||||
MetaWindow *window = (MetaWindow*)l->data;
|
||||
|
||||
if (window->icon_cache.origin == USING_FALLBACK_ICON)
|
||||
{
|
@@ -271,7 +271,7 @@ io_from_ping_dialog (GIOChannel *channel,
|
||||
|
||||
meta_topic (META_DEBUG_PING,
|
||||
"Read %d bytes strlen %d \"%s\" from child\n",
|
||||
len, str ? strlen (str) : 0, str ? str : "NULL");
|
||||
len, str ? (int) strlen (str) : 0, str ? str : "NULL");
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
@@ -306,6 +306,7 @@ delete_ping_timeout_func (MetaDisplay *display,
|
||||
char numbuf[32];
|
||||
char timestampbuf[32];
|
||||
char *window_id_str;
|
||||
char *window_title;
|
||||
GIOChannel *channel;
|
||||
|
||||
meta_topic (META_DEBUG_PING,
|
||||
@@ -319,6 +320,7 @@ delete_ping_timeout_func (MetaDisplay *display,
|
||||
}
|
||||
|
||||
window_id_str = g_strdup_printf ("0x%lx", window->xwindow);
|
||||
window_title = g_locale_from_utf8 (window->title, -1, NULL, NULL, NULL);
|
||||
|
||||
sprintf (numbuf, "%d", window->screen->number);
|
||||
sprintf (timestampbuf, "%u", timestamp);
|
||||
@@ -329,7 +331,7 @@ delete_ping_timeout_func (MetaDisplay *display,
|
||||
argv[3] = "--timestamp";
|
||||
argv[4] = timestampbuf;
|
||||
argv[5] = "--kill-window-question";
|
||||
argv[6] = window->title;
|
||||
argv[6] = window_title;
|
||||
argv[7] = window_id_str;
|
||||
argv[8] = NULL;
|
||||
|
||||
@@ -362,6 +364,7 @@ delete_ping_timeout_func (MetaDisplay *display,
|
||||
g_io_channel_unref (channel);
|
||||
|
||||
out:
|
||||
g_free (window_title);
|
||||
g_free (window_id_str);
|
||||
}
|
||||
|
@@ -24,6 +24,18 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file display.c Handles operations on an X display.
|
||||
*
|
||||
* The display is represented as a MetaDisplay struct.
|
||||
*
|
||||
* \bug Originally we had the idea that there could be multiple MetaDisplay
|
||||
* structs in one Metacity process, but as the code currently stands, only
|
||||
* one can be initialised; it is a singleton class. We should go through and
|
||||
* remove all the code that iterates over the lists of displays later.
|
||||
* See <http://bugzilla.gnome.org/show_bug.cgi?id=499301>.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "display.h"
|
||||
#include "util.h"
|
||||
@@ -65,6 +77,11 @@
|
||||
#ifdef HAVE_XCURSOR
|
||||
#include <X11/Xcursor/Xcursor.h>
|
||||
#endif
|
||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||
#include <X11/extensions/Xcomposite.h>
|
||||
#include <X11/extensions/Xdamage.h>
|
||||
#include <X11/extensions/Xfixes.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
#define GRAB_OP_IS_WINDOW_SWITCH(g) \
|
||||
@@ -75,6 +92,30 @@
|
||||
g == META_GRAB_OP_KEYBOARD_ESCAPING_DOCK || \
|
||||
g == META_GRAB_OP_KEYBOARD_ESCAPING_GROUP)
|
||||
|
||||
/**
|
||||
* \defgroup pings Pings
|
||||
*
|
||||
* Sometimes we want to see whether a window is responding,
|
||||
* so we send it a "ping" message and see whether it sends us back a "pong"
|
||||
* message within a reasonable time. Here we have a system which lets us
|
||||
* nominate one function to be called if we get the pong in time and another
|
||||
* function if we don't. The system is rather more complicated than it needs
|
||||
* to be, since we only ever use it to destroy windows which are asked to
|
||||
* close themselves and don't do so within a reasonable amount of time, and
|
||||
* therefore we always use the same callbacks. It's possible that we might
|
||||
* use it for other things in future, or on the other hand we might decide
|
||||
* that we're never going to do so and simplify it a bit.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Describes a ping on a window. When we send a ping to a window, we build
|
||||
* one of these structs, and it eventually gets passed to the timeout function
|
||||
* or to the function which handles the response from the window. If the window
|
||||
* does or doesn't respond to the ping, we use this information to deal with
|
||||
* these facts; we have a handler function for each.
|
||||
*
|
||||
* \ingroup pings
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
MetaDisplay *display;
|
||||
@@ -122,6 +163,12 @@ static void sanity_check_timestamps (MetaDisplay *display,
|
||||
|
||||
MetaGroup* get_focussed_group (MetaDisplay *display);
|
||||
|
||||
/**
|
||||
* Destructor for MetaPingData structs. Will destroy the
|
||||
* event source for the struct as well.
|
||||
*
|
||||
* \ingroup pings
|
||||
*/
|
||||
static void
|
||||
ping_data_free (MetaPingData *ping_data)
|
||||
{
|
||||
@@ -132,6 +179,16 @@ ping_data_free (MetaPingData *ping_data)
|
||||
g_free (ping_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Frees every pending ping structure for the given X window on the
|
||||
* given display. This means that we also destroy the timeouts.
|
||||
*
|
||||
* \param display The display the window appears on
|
||||
* \param xwindow The X ID of the window whose pings we should remove
|
||||
*
|
||||
* \ingroup pings
|
||||
*
|
||||
*/
|
||||
static void
|
||||
remove_pending_pings_for_window (MetaDisplay *display, Window xwindow)
|
||||
{
|
||||
@@ -186,10 +243,23 @@ sn_error_trap_pop (SnDisplay *sn_display,
|
||||
#endif
|
||||
|
||||
static void
|
||||
enable_compositor (MetaDisplay *display)
|
||||
enable_compositor (MetaDisplay *display,
|
||||
gboolean composite_windows)
|
||||
{
|
||||
GSList *list;
|
||||
|
||||
if (!META_DISPLAY_HAS_COMPOSITE (display) ||
|
||||
!META_DISPLAY_HAS_DAMAGE (display) ||
|
||||
!META_DISPLAY_HAS_XFIXES (display) ||
|
||||
!META_DISPLAY_HAS_RENDER (display))
|
||||
{
|
||||
meta_warning (_("Missing %s extension required for compositing"),
|
||||
!META_DISPLAY_HAS_COMPOSITE (display) ? "composite" :
|
||||
!META_DISPLAY_HAS_DAMAGE (display) ? "damage" :
|
||||
!META_DISPLAY_HAS_XFIXES (display) ? "xfixes" : "render");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!display->compositor)
|
||||
display->compositor = meta_compositor_new (display);
|
||||
|
||||
@@ -203,7 +273,8 @@ enable_compositor (MetaDisplay *display)
|
||||
meta_compositor_manage_screen (screen->display->compositor,
|
||||
screen);
|
||||
|
||||
meta_screen_composite_all_windows (screen);
|
||||
if (composite_windows)
|
||||
meta_screen_composite_all_windows (screen);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,6 +298,24 @@ disable_compositor (MetaDisplay *display)
|
||||
display->compositor = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a new display, sets it up, initialises all the X extensions
|
||||
* we will need, and adds it to the list of displays.
|
||||
*
|
||||
* \return True if the display was opened successfully, and False
|
||||
* otherwise-- that is, if the display doesn't exist or it already
|
||||
* has a window manager.
|
||||
*
|
||||
* \bug The list of atom_names is prone to get out of sync with the
|
||||
* main list; I'd rather include them in that list using the stringify
|
||||
* operator or something.
|
||||
*
|
||||
* \bug MetaDisplay is (currently) a singleton, but the code pretends
|
||||
* it isn't; at some point we will decide whether to acknowledge this
|
||||
* and simplify.
|
||||
*
|
||||
* \ingroup main
|
||||
*/
|
||||
gboolean
|
||||
meta_display_open (void)
|
||||
{
|
||||
@@ -336,7 +425,7 @@ meta_display_open (void)
|
||||
"_NET_WM_VISIBLE_ICON_NAME",
|
||||
"_NET_WM_USER_TIME_WINDOW",
|
||||
"_NET_WM_ACTION_ABOVE",
|
||||
"_NET_WM_ACTION_BELOW"
|
||||
"_NET_WM_ACTION_BELOW",
|
||||
};
|
||||
Atom atoms[G_N_ELEMENTS(atom_names)];
|
||||
|
||||
@@ -398,7 +487,8 @@ meta_display_open (void)
|
||||
update_window_grab_modifiers (display);
|
||||
|
||||
meta_prefs_add_listener (prefs_changed_callback, display);
|
||||
|
||||
|
||||
meta_verbose ("Creating %d atoms\n", (int) G_N_ELEMENTS (atom_names));
|
||||
XInternAtoms (display->xdisplay, atom_names, G_N_ELEMENTS (atom_names),
|
||||
False, atoms);
|
||||
display->atom_net_wm_name = atoms[0];
|
||||
@@ -647,6 +737,69 @@ meta_display_open (void)
|
||||
meta_verbose ("Not compiled with Render support\n");
|
||||
#endif /* !HAVE_RENDER */
|
||||
|
||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||
{
|
||||
display->have_composite = FALSE;
|
||||
|
||||
display->composite_error_base = 0;
|
||||
display->composite_event_base = 0;
|
||||
|
||||
if (!XCompositeQueryExtension (display->xdisplay,
|
||||
&display->composite_event_base,
|
||||
&display->composite_error_base))
|
||||
{
|
||||
display->composite_error_base = 0;
|
||||
display->composite_event_base = 0;
|
||||
}
|
||||
else
|
||||
display->have_composite = TRUE;
|
||||
|
||||
meta_verbose ("Attempted to init Composite, found error base %d event base %d\n",
|
||||
display->composite_error_base,
|
||||
display->composite_event_base);
|
||||
|
||||
display->have_damage = FALSE;
|
||||
|
||||
display->damage_error_base = 0;
|
||||
display->damage_event_base = 0;
|
||||
|
||||
if (!XDamageQueryExtension (display->xdisplay,
|
||||
&display->damage_event_base,
|
||||
&display->damage_error_base))
|
||||
{
|
||||
display->damage_error_base = 0;
|
||||
display->damage_event_base = 0;
|
||||
}
|
||||
else
|
||||
display->have_damage = TRUE;
|
||||
|
||||
meta_verbose ("Attempted to init Damage, found error base %d event base %d\n",
|
||||
display->damage_error_base,
|
||||
display->damage_event_base);
|
||||
|
||||
display->have_xfixes = FALSE;
|
||||
|
||||
display->xfixes_error_base = 0;
|
||||
display->xfixes_event_base = 0;
|
||||
|
||||
if (!XFixesQueryExtension (display->xdisplay,
|
||||
&display->xfixes_event_base,
|
||||
&display->xfixes_error_base))
|
||||
{
|
||||
display->xfixes_error_base = 0;
|
||||
display->xfixes_event_base = 0;
|
||||
}
|
||||
else
|
||||
display->have_xfixes = TRUE;
|
||||
|
||||
meta_verbose ("Attempted to init XFixes, found error base %d event base %d\n",
|
||||
display->xfixes_error_base,
|
||||
display->xfixes_event_base);
|
||||
}
|
||||
#else /* HAVE_COMPOSITE_EXTENSIONS */
|
||||
meta_verbose ("Not compiled with Composite support\n");
|
||||
#endif /* !HAVE_COMPOSITE_EXTENSIONS */
|
||||
|
||||
#ifdef HAVE_XCURSOR
|
||||
{
|
||||
XcursorSetTheme (display->xdisplay, meta_prefs_get_cursor_theme ());
|
||||
@@ -742,7 +895,13 @@ meta_display_open (void)
|
||||
meta_display_close (display, timestamp);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/* We don't composite the windows here because they will be composited
|
||||
faster with the call to meta_screen_manage_all_windows further down
|
||||
the code */
|
||||
if (meta_prefs_get_compositing_manager ())
|
||||
enable_compositor (display, FALSE);
|
||||
|
||||
meta_display_grab (display);
|
||||
|
||||
/* Now manage all existing windows */
|
||||
@@ -796,9 +955,6 @@ meta_display_open (void)
|
||||
|
||||
meta_display_ungrab (display);
|
||||
|
||||
if (meta_prefs_get_compositing_manager ())
|
||||
enable_compositor (display);
|
||||
|
||||
/* Done opening new display */
|
||||
display->display_opening = FALSE;
|
||||
|
||||
@@ -939,7 +1095,7 @@ meta_display_close (MetaDisplay *display,
|
||||
meta_display_shutdown_keys (display);
|
||||
|
||||
if (display->compositor)
|
||||
meta_compositor_unref (display->compositor);
|
||||
meta_compositor_destroy (display->compositor);
|
||||
|
||||
g_free (display);
|
||||
|
||||
@@ -1406,6 +1562,21 @@ handle_net_restack_window (MetaDisplay* display,
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* This is the most important function in the whole program. It is the heart,
|
||||
* it is the nexus, it is the Grand Central Station of Metacity's world.
|
||||
* When we create a MetaDisplay, we ask GDK to pass *all* events for *all*
|
||||
* windows to this function. So every time anything happens that we might
|
||||
* want to know about, this function gets called. You see why it gets a bit
|
||||
* busy around here. Most of this function is a ginormous switch statement
|
||||
* dealing with all the kinds of events that might turn up.
|
||||
*
|
||||
* \param event The event that just happened
|
||||
* \param data The MetaDisplay that events are coming from, cast to a gpointer
|
||||
* so that it can be sent to a callback
|
||||
*
|
||||
* \ingroup main
|
||||
*/
|
||||
static gboolean
|
||||
event_callback (XEvent *event,
|
||||
gpointer data)
|
||||
@@ -3963,14 +4134,34 @@ meta_display_set_cursor_theme (const char *theme,
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores whether syncing is currently enabled.
|
||||
*/
|
||||
static gboolean is_syncing = FALSE;
|
||||
|
||||
/**
|
||||
* Returns whether X synchronisation is currently enabled.
|
||||
*
|
||||
* \return true if we must wait for events whenever we send X requests;
|
||||
* false otherwise.
|
||||
*
|
||||
* \bug This is *only* called by meta_display_open, but by that time
|
||||
* we have already turned syncing on or off on startup, and we don't
|
||||
* have any way to do so while Metacity is running, so it's rather
|
||||
* pointless.
|
||||
*/
|
||||
gboolean
|
||||
meta_is_syncing (void)
|
||||
{
|
||||
return is_syncing;
|
||||
}
|
||||
|
||||
/**
|
||||
* A handy way to turn on synchronisation on or off for every display.
|
||||
*
|
||||
* \bug Of course there is only one display ever anyway, so this can
|
||||
* be rather hugely simplified.
|
||||
*/
|
||||
void
|
||||
meta_set_syncing (gboolean setting)
|
||||
{
|
||||
@@ -3990,8 +4181,27 @@ meta_set_syncing (gboolean setting)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* How long, in milliseconds, we should wait after pinging a window
|
||||
* before deciding it's not going to get back to us.
|
||||
*/
|
||||
#define PING_TIMEOUT_DELAY 2250
|
||||
|
||||
/**
|
||||
* Does whatever it is we decided to do when a window didn't respond
|
||||
* to a ping. We also remove the ping from the display's list of
|
||||
* pending pings. This function is called by the event loop when the timeout
|
||||
* times out which we created at the start of the ping.
|
||||
*
|
||||
* \param data All the information about this ping. It is a MetaPingData
|
||||
* cast to a void* in order to be passable to a timeout function.
|
||||
* This function will also free this parameter.
|
||||
*
|
||||
* \return Always returns false, because this function is called as a
|
||||
* timeout and we don't want to run the timer again.
|
||||
*
|
||||
* \ingroup pings
|
||||
*/
|
||||
static gboolean
|
||||
meta_display_ping_timeout (gpointer data)
|
||||
{
|
||||
@@ -4016,6 +4226,31 @@ meta_display_ping_timeout (gpointer data)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a ping request to a window. The window must respond to
|
||||
* the request within a certain amount of time. If it does, we
|
||||
* will call one callback; if the time passes and we haven't had
|
||||
* a response, we call a different callback. The window must have
|
||||
* the hint showing that it can respond to a ping; if it doesn't,
|
||||
* we call the "got a response" callback immediately and return.
|
||||
* This function returns straight away after setting things up;
|
||||
* the callbacks will be called from the event loop.
|
||||
*
|
||||
* \param display The MetaDisplay that the window is on
|
||||
* \param window The MetaWindow to send the ping to
|
||||
* \param timestamp The timestamp of the ping. Used for uniqueness.
|
||||
* Cannot be CurrentTime; use a real timestamp!
|
||||
* \param ping_reply_func The callback to call if we get a response.
|
||||
* \param ping_timeout_func The callback to call if we don't get a response.
|
||||
* \param user_data Arbitrary data that will be passed to the callback
|
||||
* function. (In practice it's often a pointer to
|
||||
* the window.)
|
||||
*
|
||||
* \bug This should probably be a method on windows, rather than displays
|
||||
* for one of their windows.
|
||||
*
|
||||
* \ingroup pings
|
||||
*/
|
||||
void
|
||||
meta_display_ping_window (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
@@ -4129,7 +4364,18 @@ process_request_frame_extents (MetaDisplay *display,
|
||||
meta_XFree (hints);
|
||||
}
|
||||
|
||||
/* process the pong from our ping */
|
||||
/**
|
||||
* Process the pong (the response message) from the ping we sent
|
||||
* to the window. This involves removing the timeout, calling the
|
||||
* reply handler function, and freeing memory.
|
||||
*
|
||||
* \param display the display we got the pong from
|
||||
* \param event the XEvent which is a pong; we can tell which
|
||||
* ping it corresponds to because it bears the
|
||||
* same timestamp.
|
||||
*
|
||||
* \ingroup pings
|
||||
*/
|
||||
static void
|
||||
process_pong_message (MetaDisplay *display,
|
||||
XEvent *event)
|
||||
@@ -4174,6 +4420,20 @@ process_pong_message (MetaDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds whether a window has any pings waiting on it.
|
||||
*
|
||||
* \param display The MetaDisplay of the window.
|
||||
* \param window The MetaWindow whose pings we want to know about.
|
||||
*
|
||||
* \return True if there is at least one ping which has been sent
|
||||
* to the window without getting a response; false otherwise.
|
||||
*
|
||||
* \bug This should probably be a method on windows, rather than displays
|
||||
* for one of their windows.
|
||||
*
|
||||
* \ingroup pings
|
||||
*/
|
||||
gboolean
|
||||
meta_display_window_has_pending_pings (MetaDisplay *display,
|
||||
MetaWindow *window)
|
||||
@@ -4336,6 +4596,29 @@ meta_display_get_tab_list (MetaDisplay *display,
|
||||
}
|
||||
|
||||
tab_list = g_list_reverse (tab_list);
|
||||
|
||||
{
|
||||
GSList *tmp;
|
||||
MetaWindow *l_window;
|
||||
|
||||
tmp = meta_display_list_windows (display);
|
||||
|
||||
/* Go through all windows */
|
||||
while (tmp != NULL)
|
||||
{
|
||||
l_window=tmp->data;
|
||||
|
||||
/* Check to see if it demands attention */
|
||||
if (l_window->wm_state_demands_attention &&
|
||||
l_window->workspace!=workspace)
|
||||
{
|
||||
/* if it does, add it to the popup */
|
||||
tab_list = g_list_prepend (tab_list, l_window);
|
||||
}
|
||||
|
||||
tmp = tmp->next;
|
||||
} /* End while tmp!=NULL */
|
||||
}
|
||||
|
||||
return tab_list;
|
||||
}
|
||||
@@ -4525,7 +4808,7 @@ convert_property (MetaDisplay *display,
|
||||
* can send SelectionNotify
|
||||
*/
|
||||
/* FIXME the error trap pop synced anyway, right? */
|
||||
meta_topic (META_DEBUG_SYNC, "Syncing on %s\n", G_GNUC_FUNCTION);
|
||||
meta_topic (META_DEBUG_SYNC, "Syncing on %s\n", G_STRFUNC);
|
||||
XSync (display->xdisplay, False);
|
||||
|
||||
return TRUE;
|
||||
@@ -4830,7 +5113,7 @@ prefs_changed_callback (MetaPreference pref,
|
||||
gboolean cm = meta_prefs_get_compositing_manager ();
|
||||
|
||||
if (cm)
|
||||
enable_compositor (display);
|
||||
enable_compositor (display, TRUE);
|
||||
else
|
||||
disable_compositor (display);
|
||||
}
|
@@ -47,7 +47,7 @@
|
||||
|
||||
#define meta_XFree(p) do { if ((p)) XFree ((p)); } while (0)
|
||||
|
||||
typedef struct MetaCompositor MetaCompositor;
|
||||
typedef struct _MetaCompositor MetaCompositor;
|
||||
typedef struct _MetaDisplay MetaDisplay;
|
||||
typedef struct _MetaFrame MetaFrame;
|
||||
typedef struct _MetaKeyBinding MetaKeyBinding;
|
||||
@@ -354,6 +354,14 @@ struct _MetaDisplay
|
||||
int render_event_base;
|
||||
int render_error_base;
|
||||
#endif
|
||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||
int composite_event_base;
|
||||
int composite_error_base;
|
||||
int damage_event_base;
|
||||
int damage_error_base;
|
||||
int xfixes_event_base;
|
||||
int xfixes_error_base;
|
||||
#endif
|
||||
#ifdef HAVE_XSYNC
|
||||
unsigned int have_xsync : 1;
|
||||
#define META_DISPLAY_HAS_XSYNC(display) ((display)->have_xsync)
|
||||
@@ -372,6 +380,18 @@ struct _MetaDisplay
|
||||
#else
|
||||
#define META_DISPLAY_HAS_RENDER(display) FALSE
|
||||
#endif
|
||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||
unsigned int have_composite : 1;
|
||||
unsigned int have_damage : 1;
|
||||
unsigned int have_xfixes : 1;
|
||||
#define META_DISPLAY_HAS_COMPOSITE(display) ((display)->have_composite)
|
||||
#define META_DISPLAY_HAS_DAMAGE(display) ((display)->have_damage)
|
||||
#define META_DISPLAY_HAS_XFIXES(display) ((display)->have_xfixes)
|
||||
#else
|
||||
#define META_DISPLAY_HAS_COMPOSITE(display) FALSE
|
||||
#define META_DISPLAY_HAS_DAMAGE(display) FALSE
|
||||
#define META_DISPLAY_HAS_XFIXES(display) FALSE
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Xserver time can wraparound, thus comparing two timestamps needs to take
|
@@ -1091,6 +1091,7 @@ meta_display_compute_resistance_and_snapping_edges (MetaDisplay *display)
|
||||
/*
|
||||
* 4th: Free the extra memory not needed and sort the list
|
||||
*/
|
||||
g_list_free (stacked_windows);
|
||||
/* Free the memory used by the obscuring windows/docks lists */
|
||||
g_slist_free (window_stacking);
|
||||
/* FIXME: Shouldn't there be a helper function to make this one line of code
|
@@ -25,7 +25,6 @@
|
||||
#include "iconcache.h"
|
||||
#include "ui.h"
|
||||
#include "errors.h"
|
||||
#include "theme.h"
|
||||
|
||||
#include <X11/Xatom.h>
|
||||
|
||||
@@ -818,9 +817,15 @@ meta_read_icons (MetaScreen *screen,
|
||||
if (icon_cache->want_fallback &&
|
||||
icon_cache->origin < USING_FALLBACK_ICON)
|
||||
{
|
||||
MetaTheme *theme = meta_theme_get_current ();
|
||||
GdkPixbuf *fallback_icon;
|
||||
GdkPixbuf *fallback_mini_icon;
|
||||
|
||||
fallback_icon = NULL;
|
||||
fallback_mini_icon = NULL;
|
||||
|
||||
if (theme->fallback_icon == NULL || theme->fallback_mini_icon == NULL)
|
||||
meta_ui_get_fallback_icons(&fallback_icon, &fallback_mini_icon);
|
||||
|
||||
if (fallback_icon == NULL || fallback_mini_icon == NULL)
|
||||
{
|
||||
get_fallback_icons (screen,
|
||||
iconp,
|
||||
@@ -831,14 +836,14 @@ meta_read_icons (MetaScreen *screen,
|
||||
ideal_mini_height);
|
||||
}
|
||||
|
||||
if (theme->fallback_icon != NULL)
|
||||
*iconp = theme->fallback_icon;
|
||||
if (theme->fallback_mini_icon != NULL)
|
||||
*mini_iconp = theme->fallback_mini_icon;
|
||||
|
||||
if (fallback_icon != NULL)
|
||||
*iconp = fallback_icon;
|
||||
if (fallback_mini_icon != NULL)
|
||||
*mini_iconp = fallback_mini_icon;
|
||||
|
||||
replace_cache (icon_cache, USING_FALLBACK_ICON,
|
||||
*iconp, *mini_iconp);
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@@ -1644,6 +1644,17 @@ process_event (MetaKeyBinding *bindings,
|
||||
"No handler found for this event in this binding table\n");
|
||||
}
|
||||
|
||||
/* 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
|
||||
* ourselves when there wasn't a grab, and we always clear the grab
|
||||
* first; the invariant is enforced using an assertion. See #112560.
|
||||
* FIXME: We need to prove there are no race conditions here.
|
||||
* FIXME: Does it correctly handle alt-Tab being followed by another
|
||||
* grabbing keypress without letting go of alt?
|
||||
* FIXME: An iterative solution would probably be simpler to understand
|
||||
* (and help us solve the other fixmes).
|
||||
*/
|
||||
void
|
||||
meta_display_process_key_event (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
@@ -1791,6 +1802,12 @@ meta_display_process_key_event (MetaDisplay *display,
|
||||
"Ending grab op %u on key event sym %s\n",
|
||||
display->grab_op, XKeysymToString (keysym));
|
||||
meta_display_end_grab_op (display, event->xkey.time);
|
||||
|
||||
g_assert (display->grab_op == META_GRAB_OP_NONE);
|
||||
|
||||
/* and go round again: #112560 */
|
||||
meta_display_process_key_event (display, window, event);
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -22,6 +22,24 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file core/main.c Program startup
|
||||
*
|
||||
* Functions which parse the command-line arguments, create the display,
|
||||
* kick everything off and then close down Metacity when it's time to go.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \mainpage Metacity - a boring window manager for the adult in you
|
||||
*
|
||||
* Many window managers are like Marshmallow Froot Loops; Metacity
|
||||
* is like Cheerios.
|
||||
*
|
||||
* The best way to get a handle on how the whole system fits together
|
||||
* is discussed in doc/code-overview.txt; if you're looking for functions
|
||||
* to investigate, read main(), meta_display_open(), and event_callback().
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include "main.h"
|
||||
#include "util.h"
|
||||
@@ -44,13 +62,36 @@
|
||||
#include <locale.h>
|
||||
#include <time.h>
|
||||
|
||||
/**
|
||||
* The exit code we'll return to our parent process when we eventually die.
|
||||
*/
|
||||
static MetaExitCode meta_exit_code = META_EXIT_SUCCESS;
|
||||
|
||||
/**
|
||||
* Handle on the main loop, so that we have an easy way of shutting Metacity
|
||||
* down.
|
||||
*/
|
||||
static GMainLoop *meta_main_loop = NULL;
|
||||
|
||||
/**
|
||||
* If set, Metacity will spawn an identical copy of itself immediately
|
||||
* before quitting.
|
||||
*/
|
||||
static gboolean meta_restart_after_quit = FALSE;
|
||||
|
||||
static void prefs_changed_callback (MetaPreference pref,
|
||||
gpointer data);
|
||||
|
||||
/**
|
||||
* Prints log messages. If Metacity was compiled with backtrace support,
|
||||
* also prints a backtrace (see meta_print_backtrace()).
|
||||
*
|
||||
* \param log_domain the domain the error occurred in (we ignore this)
|
||||
* \param log_level the log level so that we can filter out less
|
||||
* important messages
|
||||
* \param message the message to log
|
||||
* \param user_data arbitrary data (we ignore this)
|
||||
*/
|
||||
static void
|
||||
log_handler (const gchar *log_domain,
|
||||
GLogLevelFlags log_level,
|
||||
@@ -61,17 +102,27 @@ log_handler (const gchar *log_domain,
|
||||
meta_print_backtrace ();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints the version notice. This is shown when Metacity is called
|
||||
* with the --version switch.
|
||||
*/
|
||||
static void
|
||||
version (void)
|
||||
{
|
||||
g_print (_("metacity %s\n"
|
||||
"Copyright (C) 2001-2007 Havoc Pennington, Red Hat, Inc., and others\n"
|
||||
"Copyright (C) 2001-2008 Havoc Pennington, Red Hat, Inc., and others\n"
|
||||
"This is free software; see the source for copying conditions.\n"
|
||||
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
|
||||
VERSION);
|
||||
exit (0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints a list of which configure script options were used to
|
||||
* build this copy of Metacity. This is actually always called
|
||||
* on startup, but it's all no-op unless we're in verbose mode
|
||||
* (see meta_set_verbose).
|
||||
*/
|
||||
static void
|
||||
meta_print_compilation_info (void)
|
||||
{
|
||||
@@ -117,6 +168,14 @@ meta_print_compilation_info (void)
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints the version number, the current timestamp (not the
|
||||
* build date), the locale, the character encoding, and a list
|
||||
* of configure script options that were used to build this
|
||||
* copy of Metacity. This is actually always called
|
||||
* on startup, but it's all no-op unless we're in verbose mode
|
||||
* (see meta_set_verbose).
|
||||
*/
|
||||
static void
|
||||
meta_print_self_identity (void)
|
||||
{
|
||||
@@ -140,6 +199,11 @@ meta_print_self_identity (void)
|
||||
meta_print_compilation_info ();
|
||||
}
|
||||
|
||||
/**
|
||||
* The set of possible options that can be set on Metacity's
|
||||
* command line. This type exists so that meta_parse_options() can
|
||||
* write to an instance of it.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
gchar *save_file;
|
||||
@@ -148,16 +212,20 @@ typedef struct
|
||||
gboolean replace_wm;
|
||||
gboolean disable_sm;
|
||||
gboolean print_version;
|
||||
gboolean sync;
|
||||
} MetaArguments;
|
||||
|
||||
/**
|
||||
* meta_parse_options() parses argc and argv and returns the
|
||||
* arguments that Metacity understands in struct
|
||||
* MetaArguments. In meta_args.
|
||||
* Parses argc and argv and returns the
|
||||
* arguments that Metacity understands in meta_args.
|
||||
*
|
||||
* The strange call signature has to be written like it is so
|
||||
* that g_option_context_parse() gets a chance to modify argc and
|
||||
* argv.
|
||||
*
|
||||
* \param argc Pointer to the number of arguments Metacity was given
|
||||
* \param argv Pointer to the array of arguments Metacity was given
|
||||
* \param meta_args The result of parsing the arguments.
|
||||
**/
|
||||
static void
|
||||
meta_parse_options (int *argc, char ***argv,
|
||||
@@ -200,6 +268,12 @@ meta_parse_options (int *argc, char ***argv,
|
||||
N_("Print version"),
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"sync", 0, 0, G_OPTION_ARG_NONE,
|
||||
&my_args.sync,
|
||||
N_("Make X calls synchronous"),
|
||||
NULL
|
||||
},
|
||||
{NULL}
|
||||
};
|
||||
GOptionContext *ctx;
|
||||
@@ -218,8 +292,7 @@ meta_parse_options (int *argc, char ***argv,
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_select_display() is a helper function that selects
|
||||
* which display Metacity should use. It first tries to use
|
||||
* Selects which display Metacity should use. It first tries to use
|
||||
* display_name as the display. If display_name is NULL then
|
||||
* try to use the environment variable METACITY_DISPLAY. If that
|
||||
* also is NULL, use the default - :0.0
|
||||
@@ -237,13 +310,29 @@ void meta_select_display (gchar *display_name)
|
||||
putenv (envVar);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is where the story begins. It parses commandline options and
|
||||
* environment variables, sets up the screen, hands control off to
|
||||
* GTK, and cleans up afterwards.
|
||||
*
|
||||
* \param argc Number of arguments (as usual)
|
||||
* \param argv Array of arguments (as usual)
|
||||
*
|
||||
* \bug It's a bit long. It would be good to split it out into separate
|
||||
* functions.
|
||||
*/
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
struct sigaction act;
|
||||
sigset_t empty_mask;
|
||||
MetaArguments meta_args;
|
||||
|
||||
const gchar *log_domains[] = {
|
||||
NULL, G_LOG_DOMAIN, "Gtk", "Gdk", "GLib",
|
||||
"Pango", "GLib-GObject", "GThread"
|
||||
};
|
||||
gint i;
|
||||
|
||||
if (setlocale (LC_ALL, "") == NULL)
|
||||
meta_warning ("Locale not understood by C library, internationalization will not work\n");
|
||||
|
||||
@@ -264,7 +353,6 @@ main (int argc, char **argv)
|
||||
meta_set_verbose (TRUE);
|
||||
if (g_getenv ("METACITY_DEBUG"))
|
||||
meta_set_debugging (TRUE);
|
||||
meta_set_syncing (g_getenv ("METACITY_SYNC") != NULL);
|
||||
|
||||
if (g_get_home_dir ())
|
||||
chdir (g_get_home_dir ());
|
||||
@@ -278,6 +366,8 @@ main (int argc, char **argv)
|
||||
/* Parse command line arguments.*/
|
||||
meta_parse_options (&argc, &argv, &meta_args);
|
||||
|
||||
meta_set_syncing (meta_args.sync || (g_getenv ("METACITY_SYNC") != NULL));
|
||||
|
||||
if (meta_args.print_version)
|
||||
version ();
|
||||
|
||||
@@ -304,30 +394,12 @@ main (int argc, char **argv)
|
||||
|
||||
|
||||
#if 1
|
||||
g_log_set_handler (NULL,
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler (G_LOG_DOMAIN,
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler ("Gtk",
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler ("Gdk",
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler ("GLib",
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler ("Pango",
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler ("GLib-GObject",
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
g_log_set_handler ("GThread",
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
|
||||
for (i=0; i<G_N_ELEMENTS(log_domains); i++)
|
||||
g_log_set_handler (log_domains[i],
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
|
||||
log_handler, NULL);
|
||||
|
||||
#endif
|
||||
|
||||
if (g_getenv ("METACITY_G_FATAL_WARNINGS") != NULL)
|
||||
@@ -374,17 +446,29 @@ main (int argc, char **argv)
|
||||
* info
|
||||
*/
|
||||
if (!meta_args.disable_sm)
|
||||
meta_session_init (meta_args.client_id, meta_args.save_file);
|
||||
{
|
||||
if (meta_args.client_id == NULL)
|
||||
{
|
||||
const gchar *desktop_autostart_id;
|
||||
|
||||
desktop_autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID");
|
||||
|
||||
if (desktop_autostart_id != NULL)
|
||||
meta_args.client_id = g_strdup (desktop_autostart_id);
|
||||
}
|
||||
|
||||
/* Unset DESKTOP_AUTOSTART_ID in order to avoid child processes to
|
||||
* use the same client id. */
|
||||
g_unsetenv ("DESKTOP_AUTOSTART_ID");
|
||||
|
||||
meta_session_init (meta_args.client_id, meta_args.save_file);
|
||||
}
|
||||
/* Free memory possibly allocated by the argument parsing which are
|
||||
* no longer needed.
|
||||
*/
|
||||
if (meta_args.save_file)
|
||||
g_free (meta_args.save_file);
|
||||
if (meta_args.display_name)
|
||||
g_free (meta_args.display_name);
|
||||
if (meta_args.client_id)
|
||||
g_free (meta_args.client_id);
|
||||
g_free (meta_args.save_file);
|
||||
g_free (meta_args.display_name);
|
||||
g_free (meta_args.client_id);
|
||||
|
||||
if (!meta_display_open ())
|
||||
meta_exit (META_EXIT_ERROR);
|
||||
@@ -436,12 +520,15 @@ main (int argc, char **argv)
|
||||
return meta_exit_code;
|
||||
}
|
||||
|
||||
GMainLoop*
|
||||
meta_get_main_loop (void)
|
||||
{
|
||||
return meta_main_loop;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stops Metacity. This tells the event loop to stop processing; it is rather
|
||||
* dangerous to use this rather than meta_restart() because this will leave
|
||||
* the user with no window manager. We generally do this only if, for example,
|
||||
* the session manager asks us to; we assume the session manager knows what
|
||||
* it's talking about.
|
||||
*
|
||||
* \param code The success or failure code to return to the calling process.
|
||||
*/
|
||||
void
|
||||
meta_quit (MetaExitCode code)
|
||||
{
|
||||
@@ -451,6 +538,12 @@ meta_quit (MetaExitCode code)
|
||||
g_main_loop_quit (meta_main_loop);
|
||||
}
|
||||
|
||||
/**
|
||||
* Restarts Metacity. In practice, this tells the event loop to stop
|
||||
* processing, having first set the meta_restart_after_quit flag which
|
||||
* tells Metacity to spawn an identical copy of itself before quitting.
|
||||
* This happens on receipt of a _METACITY_RESTART_MESSAGE client event.
|
||||
*/
|
||||
void
|
||||
meta_restart (void)
|
||||
{
|
||||
@@ -458,6 +551,15 @@ meta_restart (void)
|
||||
meta_quit (META_EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called on pref changes. (One of several functions of its kind and purpose.)
|
||||
*
|
||||
* \bug Why are these particular prefs handled in main.c and not others?
|
||||
* Should they be?
|
||||
*
|
||||
* \param pref Which preference has changed
|
||||
* \param data Arbitrary data (which we ignore)
|
||||
*/
|
||||
static void
|
||||
prefs_changed_callback (MetaPreference pref,
|
||||
gpointer data)
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user