Compare commits
29 Commits
METACITY_2
...
METACITY_2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e16863f783 | ||
![]() |
96c238bbc6 | ||
![]() |
2df2e18a9b | ||
![]() |
5305e17392 | ||
![]() |
cb19fdc3ce | ||
![]() |
7d1e1b042f | ||
![]() |
4b4d6cac42 | ||
![]() |
905a92a20a | ||
![]() |
f1bcb6b51a | ||
![]() |
a39cb116c7 | ||
![]() |
87f613fbbe | ||
![]() |
f38e760506 | ||
![]() |
05dcc58174 | ||
![]() |
ce42492db4 | ||
![]() |
893fadf7d6 | ||
![]() |
a182b353ce | ||
![]() |
f335b0c381 | ||
![]() |
2972ab6df6 | ||
![]() |
8e927fd300 | ||
![]() |
c50c8e6f7d | ||
![]() |
d8a1b9750b | ||
![]() |
1b2e5e56a8 | ||
![]() |
7a9be72bdf | ||
![]() |
d5705ef576 | ||
![]() |
20b7ee18ef | ||
![]() |
7311386172 | ||
![]() |
91e594863c | ||
![]() |
455dbdf67a | ||
![]() |
7f1fd68952 |
100
ChangeLog
100
ChangeLog
@@ -1,3 +1,103 @@
|
||||
2005-08-22 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* NEWS: 2.11.3 release
|
||||
|
||||
2005-08-22 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* configure.in: Patch from Björn Lindqvist to check for the
|
||||
appropriate versions of glib and gtk. Fixes #314116.
|
||||
|
||||
2005-08-12 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* src/place.c (meta_window_place): Avoid obscuring
|
||||
centered-on-desktop windows which are denied focus. Fixes
|
||||
#313234.
|
||||
|
||||
2005-08-08 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* configure.in: post-release version bump to 2.11.3
|
||||
|
||||
2005-08-08 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* NEWS: 2.11.2 release
|
||||
|
||||
2005-08-08 Elijah Newren <newren@gmail.com>
|
||||
|
||||
Patch from Brent Smith to fix a duplicate string. Fixes #309774.
|
||||
|
||||
* src/theme-parser.c (parse_toplevel_element, parse_draw_op_element):
|
||||
Change "No \"%s\" attribute on element <%s>" string to "No \"%s\"
|
||||
attribute on <%s> element"
|
||||
|
||||
2005-08-03 Ray Strode <rstrode@redhat.com>
|
||||
|
||||
Improve the behavior of keyboard move/resize and edge
|
||||
snapping. Still not perfect, bug 310888.
|
||||
|
||||
* src/effects.c (draw_xor_rect): Make the outside of a
|
||||
wireframe rectangle line up with the outside edge of its
|
||||
window, instead of centering the wireframe edges on the
|
||||
window edges.
|
||||
|
||||
* src/keybindings.c (process_keyboard_move_grab): allow
|
||||
edge snapping in wireframe mode. Adjust code to take
|
||||
into account changed semantics of find_next_*_edge
|
||||
functions.
|
||||
(process_keyboard_resize_grab_op_change): new function
|
||||
to take some orthogonal logic out of
|
||||
process_keyboard_resize_grab_op. Only allow keyboard
|
||||
resize cursor to go to flat edges, not corners.
|
||||
(process_keyboard_resize_grab): allow edge snapping in
|
||||
wireframe mode. Fix up snapping logic.
|
||||
|
||||
* src/place.c (get_{vertical,horizontal}_edges): use
|
||||
GArray instead of int *, since the number of output
|
||||
edges isn't known until the middle of the function now.
|
||||
Use xor rect extents instead of window extends if in
|
||||
wireframe mode.
|
||||
(meta_window_find_next_{vertical,horizontal}_edge: add
|
||||
new source_edge_position parameter to specify which edge
|
||||
on the active window to start from when looking for next
|
||||
edge on the screen. Return the coordinate of the edge
|
||||
found and not the coordinate of where the window should be
|
||||
moved to snap to where the edge was found.
|
||||
|
||||
* src/window.c (update_move): all the user to specify
|
||||
an edge to resize with mouse in keyboard resize mode.
|
||||
window
|
||||
|
||||
2005-08-01 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* src/metacity.schemas.in: Change default theme from "Simple" to
|
||||
"Clearlooks".
|
||||
|
||||
2005-07-31 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* src/stack.c (is_focused_foreach, get_standalone_layer): use only
|
||||
the expected_focus_window instead of both the focused_window and
|
||||
the expected_focus_window. Removes an infinite flicker loop in
|
||||
sloppy and mouse focus, and an ugly one time flicker in click to
|
||||
focus. Fixes #311400.
|
||||
|
||||
2005-07-30 Elijah Newren <newren@gmail.com>
|
||||
|
||||
Patch from Jaap Haitsma to make sure that Metacity dialogs have
|
||||
icons. Fixes #309876.
|
||||
|
||||
* src/metacity-dialog.c (kill_window_question,
|
||||
warn_about_no_sm_support, error_about_command): call
|
||||
gtk_window_set_icon_name() to set the dialog icon
|
||||
|
||||
2005-07-28 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* src/place.c (avoid_being_obscured_as_second_modal_dialog):
|
||||
remove some unneeded debug spew that was causing crashes. Fixes
|
||||
#311819.
|
||||
|
||||
2005-07-24 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* configure.in: post-release version bump to 2.11.2
|
||||
|
||||
2005-07-24 Elijah Newren <newren@gmail.com>
|
||||
|
||||
* NEWS: 2.11.1 release
|
||||
|
36
NEWS
36
NEWS
@@ -1,3 +1,39 @@
|
||||
2.11.3
|
||||
==
|
||||
|
||||
Thanks to Bj<42>rn Lindqvist and Elijah Newren for improvements in
|
||||
this release.
|
||||
|
||||
- Check for the right versions of glib and gtk+ (Bj<42>rn) [#314116]
|
||||
- Avoid obscuring centered-on-desktop windows which are denied focus
|
||||
(Elijah) [#313234]
|
||||
|
||||
Translations
|
||||
Vladimir Petkov (bg), Jordi Mallach (ca), Kostas Papadimas (el),
|
||||
Ivar Smolin (et), Gabor Kelemen (hu), Mohammad DAMT (id), Duarte
|
||||
Loreto (pt), Mugurel Tudor (ro), Laurent Dhima (sq), Maxim
|
||||
Dziumanenko (uk)
|
||||
|
||||
2.11.2
|
||||
==
|
||||
|
||||
Thanks to Elijah Newren, Jaap Haitsma, Ray Strode, and Brent Smith for
|
||||
improvements in this release.
|
||||
|
||||
- Fix an easy to trigger crasher in 2.11.1 caused by unneeded
|
||||
debugging spew (Elijah) [#311819]
|
||||
- Make sure that Metacity dialogs have icons (Jaap) [#309876]
|
||||
- Fix an infinite restacking flicker loop in sloppy and mouse focus
|
||||
with fullscreen windows (Elijah) [#311400]
|
||||
- Change default theme from Simple to Clearlooks (Elijah)
|
||||
- Vastly improve the behavior of keyboard move/resize and edge
|
||||
snapping (Ray) [#310888]
|
||||
- Remove a duplicate string (Brent) [#309774]
|
||||
|
||||
Translations
|
||||
Yuval Tanny (he), Gnome PL Team (pl), Raphael Higino (pt_BR),
|
||||
Chao-Hsiung Liao (zh_TW)
|
||||
|
||||
2.11.1
|
||||
==
|
||||
|
||||
|
@@ -2,7 +2,7 @@ AC_PREREQ(2.50)
|
||||
|
||||
# Fibonacci sequence for micro version numbering:
|
||||
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
|
||||
AC_INIT([metacity], [2.11.1],
|
||||
AC_INIT([metacity], [2.11.3],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=metacity])
|
||||
|
||||
AC_CONFIG_SRCDIR(src/display.c)
|
||||
@@ -159,8 +159,11 @@ ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB es et eu fa fi f
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
|
||||
## here we get the flags we'll actually use
|
||||
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.2.0)
|
||||
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.2.0)
|
||||
# GOptionEntry requires glib-2.6.0
|
||||
PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.6.0)
|
||||
# gtk_window_set_icon_name requires gtk2+-2.60
|
||||
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.6.0)
|
||||
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.6.0)
|
||||
|
||||
if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then
|
||||
echo "pangoxft found"
|
||||
|
61
po/ChangeLog
61
po/ChangeLog
@@ -1,3 +1,64 @@
|
||||
2005-08-20 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>
|
||||
|
||||
* ca.po: Updated Catalan translation.
|
||||
|
||||
2005-08-19 Priit Laes <plaes@cvs.gnome.org>
|
||||
|
||||
* et.po: Translation updated by Ivar Smolin.
|
||||
|
||||
2005-08-17 Laurent Dhima <laurenti@alblinux.net>
|
||||
|
||||
* sq.po: Updated Albanian translation.
|
||||
|
||||
2005-08-15 Maxim Dziumanenko <mvd@mylinux.ua>
|
||||
|
||||
* uk.po: Updated Ukrainian translation.
|
||||
|
||||
2005-08-15 Gabor Kelemen <kelemeng@gnome.hu>
|
||||
|
||||
* hu.po: Hungarian translation updated.
|
||||
|
||||
2005-08-15 Mugurel Tudor <mugurelu@gnome.ro>
|
||||
|
||||
* ro.po: Updated Romanian translation
|
||||
|
||||
2005-08-14 Mohammad DAMT <mdamt@gnome.org>
|
||||
|
||||
* id.po: Updated Indonesian translation
|
||||
|
||||
2005-08-13 Kostas Papadimas <pkst@gnome.org>
|
||||
|
||||
* el.po: Updated Greek translation.
|
||||
|
||||
2005-08-11 Duarte Loreto <happyguy_pt@hotmail.com>
|
||||
|
||||
* pt.po: Updated Portuguese translation.
|
||||
|
||||
2005-08-10 Alexander Shopov <ash@contact.bg>
|
||||
|
||||
* bg.po: Updated Bulgarian translation by
|
||||
Rostislav Raykov <zbrox@i-space.org>
|
||||
|
||||
2005-08-02 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
|
||||
|
||||
* zh_TW.po: Updated Traditional Chinese translation.
|
||||
|
||||
2005-07-31 Yair Hershkovitz <yairhr@gmail.com>
|
||||
|
||||
* he.po: Updated Hebrew translation by Yuval Tanai.
|
||||
|
||||
2005-07-28 Artur Flinta <aflinta@cvs.gnome.org>
|
||||
|
||||
* pl.po: Updated Polish translation by GNOME PL Team.
|
||||
|
||||
2005-07-26 Raphael Higino <raphaelh@cvs.gnome.org>
|
||||
|
||||
* pt_BR.po: Converted to UTF-8.
|
||||
|
||||
2005-07-26 Raphael Higino <raphaelh@cvs.gnome.org>
|
||||
|
||||
* pt_BR.po: Updated Brazilian Portuguese translation.
|
||||
|
||||
2005-07-24 Ilkka Tuohela <hile@iki.fi>
|
||||
|
||||
* fi.po: Updated Finnish translation.
|
||||
|
70
po/el.po
70
po/el.po
@@ -15,13 +15,13 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: el\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-07-17 01:42+0300\n"
|
||||
"PO-Revision-Date: 2005-07-17 01:50+0300\n"
|
||||
"POT-Creation-Date: 2005-08-13 13:11+0300\n"
|
||||
"PO-Revision-Date: 2005-08-13 13:11+0300\n"
|
||||
"Last-Translator: Kostas Papadimas <pkst@gnome.org>\n"
|
||||
"Language-Team: <nls@tux.hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../src/tools/metacity-message.c:150
|
||||
#, c-format
|
||||
@@ -122,19 +122,19 @@ msgstr ""
|
||||
"Κάποιο άλλο πρόγραμμα χρησιμοποιεί ήδη το κλειδί %s με μετατροπείς %x ώς "
|
||||
"δεσμό\n"
|
||||
|
||||
#: ../src/keybindings.c:2535
|
||||
#: ../src/keybindings.c:2620
|
||||
#, c-format
|
||||
msgid "Error launching metacity-dialog to print an error about a command: %s\n"
|
||||
msgstr ""
|
||||
"Σφάλμα εκκίνησης διαλόγου metacity για την εκτύπωση ενός σφάλματος για μια "
|
||||
"εντολή: %s\n"
|
||||
|
||||
#: ../src/keybindings.c:2640
|
||||
#: ../src/keybindings.c:2725
|
||||
#, c-format
|
||||
msgid "No command %d has been defined.\n"
|
||||
msgstr "Δεν έχει ορισθεί εντολή %d.\n"
|
||||
|
||||
#: ../src/keybindings.c:3485
|
||||
#: ../src/keybindings.c:3570
|
||||
msgid "No terminal command has been defined.\n"
|
||||
msgstr "Δεν έχει ορισθεί εντολή τερματικού.\n"
|
||||
|
||||
@@ -157,7 +157,7 @@ msgstr ""
|
||||
|
||||
#: ../src/main.c:257
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr ""
|
||||
msgstr "Αποενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας"
|
||||
|
||||
#: ../src/main.c:263
|
||||
msgid "Replace the running window manager with Metacity"
|
||||
@@ -165,19 +165,19 @@ msgstr "Αντικατάσταση του διαχειριστή παραθύρ
|
||||
|
||||
#: ../src/main.c:269
|
||||
msgid "Specify session management ID"
|
||||
msgstr ""
|
||||
msgstr "Καθορισμός ID διαχείρισης συνεδρίας"
|
||||
|
||||
#: ../src/main.c:274
|
||||
msgid "X Display to use"
|
||||
msgstr ""
|
||||
msgstr "X Display για χρήση"
|
||||
|
||||
#: ../src/main.c:280
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr ""
|
||||
msgstr "Εκκίνηση συνεδρίας από savefile"
|
||||
|
||||
#: ../src/main.c:286
|
||||
msgid "Print version"
|
||||
msgstr ""
|
||||
msgstr "Εκτύπωση έκδοσης"
|
||||
|
||||
#: ../src/main.c:440
|
||||
#, c-format
|
||||
@@ -379,19 +379,19 @@ msgstr ""
|
||||
"Ο εξαναγκασμός αυτού του παραθύρου σε τερματισμό θα προκαλέσει το χάσιμο των "
|
||||
"μη αποθηκευμένων αλλαγών."
|
||||
|
||||
#: ../src/metacity-dialog.c:128
|
||||
#: ../src/metacity-dialog.c:129
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Εξαναγκασμός σε Τερματισμό"
|
||||
|
||||
#: ../src/metacity-dialog.c:225
|
||||
#: ../src/metacity-dialog.c:226
|
||||
msgid "Title"
|
||||
msgstr "Τίτλος"
|
||||
|
||||
#: ../src/metacity-dialog.c:237
|
||||
#: ../src/metacity-dialog.c:238
|
||||
msgid "Class"
|
||||
msgstr "Κλάση"
|
||||
|
||||
#: ../src/metacity-dialog.c:263
|
||||
#: ../src/metacity-dialog.c:264
|
||||
msgid ""
|
||||
"These windows do not support \"save current setup\" and will have to be "
|
||||
"restarted manually next time you log in."
|
||||
@@ -399,7 +399,7 @@ msgstr ""
|
||||
"Αυτά τα παράθυρα δεν υποστηρίζουν \"αποθήκευση τρέχουσας εγκατάστασης\" και "
|
||||
"θα πρέπει να επανεκκινηθούν χειρονακτικά στην επόμενη είσοδο σας."
|
||||
|
||||
#: ../src/metacity-dialog.c:328
|
||||
#: ../src/metacity-dialog.c:330
|
||||
#, c-format
|
||||
msgid ""
|
||||
"There was an error running \"%s\":\n"
|
||||
@@ -1765,7 +1765,6 @@ msgstr ""
|
||||
"κανένας συνδυασμός πλήκτρων για αυτή την ενέργεια."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:143
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The keybinding which invokes the panel's screenshot utility to take a "
|
||||
"screenshot of a window. The format looks like \"<Control>a\" or \"<"
|
||||
@@ -1774,14 +1773,14 @@ msgid ""
|
||||
"\". If you set the option to the special string \"disabled\", then there "
|
||||
"will be no keybinding for this action."
|
||||
msgstr ""
|
||||
"Ο συνδυασμός πλήκτρων που χρησιμοποιείται για την λήψη στιγμιότυπου οθόνης"
|
||||
" ενός παραθύρου. Η διαμόρφωση μοιάζει με \"<Control>a\" ή \"<Shift><"
|
||||
"Alt>F1\". Ο διαβιβαστής είναι φιλελεύθερος και επιτρέπει κεφαλαία και "
|
||||
"πεζά και συντομεύσεις όπως \"<Ctl>\" και \"<Ctrl>\". Αν ορίσετε "
|
||||
"\"disabled\" δε θα υπάρχει κανένας συνδυασμός πλήκτρων για αυτήν την ενέργεια."
|
||||
"Ο συνδυασμός πλήκτρων που χρησιμοποιείται για την λήψη στιγμιότυπου οθόνης "
|
||||
"ενός παραθύρου. Η διαμόρφωση μοιάζει με \"<Control>a\" ή \"<"
|
||||
"Shift><Alt>F1\". Ο διαβιβαστής είναι φιλελεύθερος και επιτρέπει "
|
||||
"κεφαλαία και πεζά και συντομεύσεις όπως \"<Ctl>\" και \"<Ctrl>"
|
||||
"\". Αν ορίσετε \"disabled\" δε θα υπάρχει κανένας συνδυασμός πλήκτρων για "
|
||||
"αυτήν την ενέργεια."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:144
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The keybinding which invokes the panel's screenshot utility. The format "
|
||||
"looks like \"<Control>a\" or \"<Shift><Alt>F1\". The "
|
||||
@@ -1790,11 +1789,11 @@ msgid ""
|
||||
"option to the special string \"disabled\", then there will be no keybinding "
|
||||
"for this action."
|
||||
msgstr ""
|
||||
"Ο συνδυασμός πλήκτρων που καλεί την εφαρμογή λήψης στιγμιότυπου οθόνης. "
|
||||
"Η διαμόρφωση μοιάζει με \"<Control>a\" ή \"<Shift><Alt>F1\". Ο "
|
||||
"διαβιβαστής είναι φιλελεύθερος και επιτρέπει κεφαλαία και πεζά και συντομεύσεις"
|
||||
" όπως \"<Ctl>\" και \"<Ctrl>\" Αν ορίσετε \"disabled\" δε θα υπάρχει κανένας "
|
||||
"συνδυασμός πλήκτρων για αυτή την ενέργεια."
|
||||
"Ο συνδυασμός πλήκτρων που καλεί την εφαρμογή λήψης στιγμιότυπου οθόνης. Η "
|
||||
"διαμόρφωση μοιάζει με \"<Control>a\" ή \"<Shift><Alt>F1\". "
|
||||
"Ο διαβιβαστής είναι φιλελεύθερος και επιτρέπει κεφαλαία και πεζά και "
|
||||
"συντομεύσεις όπως \"<Ctl>\" και \"<Ctrl>\" Αν ορίσετε \"disabled"
|
||||
"\" δε θα υπάρχει κανένας συνδυασμός πλήκτρων για αυτή την ενέργεια."
|
||||
|
||||
#: ../src/metacity.schemas.in.h:145
|
||||
msgid ""
|
||||
@@ -2242,16 +2241,12 @@ msgstr ""
|
||||
"small,medium,large,x-large,xx-large)\n"
|
||||
|
||||
#: ../src/theme-parser.c:729 ../src/theme-parser.c:737
|
||||
#: ../src/theme-parser.c:2936 ../src/theme-parser.c:3025
|
||||
#: ../src/theme-parser.c:3032 ../src/theme-parser.c:3039
|
||||
#, c-format
|
||||
msgid "No \"%s\" attribute on element <%s>"
|
||||
msgstr "Δεν υπάρχει γνώρισμα \"%s\" στο στοιχείο <%s>"
|
||||
|
||||
#: ../src/theme-parser.c:807 ../src/theme-parser.c:897
|
||||
#: ../src/theme-parser.c:935 ../src/theme-parser.c:1012
|
||||
#: ../src/theme-parser.c:1062 ../src/theme-parser.c:1070
|
||||
#: ../src/theme-parser.c:1126 ../src/theme-parser.c:1134
|
||||
#: ../src/theme-parser.c:2936 ../src/theme-parser.c:3025
|
||||
#: ../src/theme-parser.c:3032 ../src/theme-parser.c:3039
|
||||
#, c-format
|
||||
msgid "No \"%s\" attribute on <%s> element"
|
||||
msgstr "Δεν υπάρχει γνώρισμα \"%s\" στο στοιχείο <%s>"
|
||||
@@ -3255,7 +3250,7 @@ msgid "Application set a bogus _NET_WM_PID %ld\n"
|
||||
msgstr "Η εφαρμογή έθεσε ένα πλαστό _NET_WM_PID %ld\n"
|
||||
|
||||
#. first time through
|
||||
#: ../src/window.c:5197
|
||||
#: ../src/window.c:5205
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -3271,7 +3266,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/window.c:5868
|
||||
#: ../src/window.c:5876
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
||||
@@ -3310,6 +3305,9 @@ msgstr ""
|
||||
"Η ιδιότητα %s στο παράθυρο 0x%lx περιείχε μη έγκυρο UTF-8\n"
|
||||
" για το αντικείμενο %d στη λίστα\n"
|
||||
|
||||
#~ msgid "No \"%s\" attribute on element <%s>"
|
||||
#~ msgstr "Δεν υπάρχει γνώρισμα \"%s\" στο στοιχείο <%s>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "metacity [--sm-disable] [--sm-client-id=ID] [--sm-save-file=FILENAME] [--"
|
||||
#~ "display=DISPLAY] [--replace] [--version]\n"
|
||||
|
44
po/et.po
44
po/et.po
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Project-Id-Version: metacity\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-06-01 14:51+0000\n"
|
||||
"PO-Revision-Date: 2005-07-11 12:49+0300\n"
|
||||
"PO-Revision-Date: 2005-08-18 13:20+0300\n"
|
||||
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
|
||||
"Language-Team: Estonian <gnome-et@linux.ee>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -65,7 +65,7 @@ msgstr ""
|
||||
#: ../src/delete.c:452
|
||||
#, c-format
|
||||
msgid "Failed to get hostname: %s\n"
|
||||
msgstr ""
|
||||
msgstr "Tõrge hostimine hankimisel: %s\n"
|
||||
|
||||
#: ../src/display.c:316
|
||||
#, c-format
|
||||
@@ -602,7 +602,7 @@ msgstr "Käivita terminal"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:61
|
||||
msgid "Show the panel menu"
|
||||
msgstr ""
|
||||
msgstr "Paneelimenüü näitamine"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:62
|
||||
msgid "Show the panel run application dialog"
|
||||
@@ -614,51 +614,51 @@ msgstr ""
|
||||
|
||||
#: ../src/metacity.schemas.in.h:64
|
||||
msgid "Switch to workspace 1"
|
||||
msgstr "Liigu 1. tööalale"
|
||||
msgstr "Liikumine 1. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:65
|
||||
msgid "Switch to workspace 10"
|
||||
msgstr "Liigu 10. tööalale"
|
||||
msgstr "Liikumine 10. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:66
|
||||
msgid "Switch to workspace 11"
|
||||
msgstr "Liigu 11. tööalale"
|
||||
msgstr "Liikumine 11. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:67
|
||||
msgid "Switch to workspace 12"
|
||||
msgstr "Liigu 12. tööalale"
|
||||
msgstr "Liikumine 12. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:68
|
||||
msgid "Switch to workspace 2"
|
||||
msgstr "Liigu 2. tööalale"
|
||||
msgstr "Liikumine 2. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:69
|
||||
msgid "Switch to workspace 3"
|
||||
msgstr "Liigu 3. tööalale"
|
||||
msgstr "Liikumine 3. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:70
|
||||
msgid "Switch to workspace 4"
|
||||
msgstr "Liigu 4. tööalale"
|
||||
msgstr "Liikumine 4. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:71
|
||||
msgid "Switch to workspace 5"
|
||||
msgstr "Liigu 5. tööalale"
|
||||
msgstr "Liikumine 5. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:72
|
||||
msgid "Switch to workspace 6"
|
||||
msgstr "Liigu 6. tööalale"
|
||||
msgstr "Liikumine 6. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:73
|
||||
msgid "Switch to workspace 7"
|
||||
msgstr "Liigu 7. tööalale"
|
||||
msgstr "Liikumine 7. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:74
|
||||
msgid "Switch to workspace 8"
|
||||
msgstr "Liigu 8. tööalale"
|
||||
msgstr "Liikumine 8. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:75
|
||||
msgid "Switch to workspace 9"
|
||||
msgstr "Liigu 9. tööalale"
|
||||
msgstr "Liikumine 9. tööalale"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:76
|
||||
msgid "Switch to workspace above this one"
|
||||
@@ -682,11 +682,11 @@ msgstr ""
|
||||
|
||||
#: ../src/metacity.schemas.in.h:81
|
||||
msgid "Take a screenshot"
|
||||
msgstr ""
|
||||
msgstr "Kuvatõmmise võtmine"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:82
|
||||
msgid "Take a screenshot of a window"
|
||||
msgstr ""
|
||||
msgstr "Kuvatõmmise võtmine aknast"
|
||||
|
||||
#: ../src/metacity.schemas.in.h:83
|
||||
msgid "Tells Metacity how to implement the visual indication that the system bell or another application 'bell' indicator has been rung. Currently there are two valid values, \"fullscreen\", which causes a fullscreen white-black flash, and \"frame_flash\" which causes the titlebar of the application which sent the bell signal to flash. If the application which sent the bell is unknown (as is usually the case for the default \"system beep\"), the currently focused window's titlebar is flashed."
|
||||
@@ -1207,7 +1207,7 @@ msgstr ""
|
||||
#: ../src/theme-parser.c:242
|
||||
#, c-format
|
||||
msgid "Line %d character %d: %s"
|
||||
msgstr ""
|
||||
msgstr "Rida %d, märk %d: %s"
|
||||
|
||||
#: ../src/theme-parser.c:396
|
||||
#, c-format
|
||||
@@ -1223,12 +1223,12 @@ msgstr ""
|
||||
#: ../src/theme-parser.c:485
|
||||
#, c-format
|
||||
msgid "Integer %ld must be positive"
|
||||
msgstr ""
|
||||
msgstr "Täisarv %ld peab olema positiivne"
|
||||
|
||||
#: ../src/theme-parser.c:493
|
||||
#, c-format
|
||||
msgid "Integer %ld is too large, current max is %d"
|
||||
msgstr ""
|
||||
msgstr "Täisarv %ld on liiga suur, praegu on suurim lubatud väärtus %d"
|
||||
|
||||
#: ../src/theme-parser.c:521
|
||||
#: ../src/theme-parser.c:602
|
||||
@@ -1240,12 +1240,12 @@ msgstr ""
|
||||
#: ../src/theme-parser.c:552
|
||||
#, c-format
|
||||
msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Tõeväärtused peavad olema kas \"true\" või \"false\" aga mitte \"%s\""
|
||||
|
||||
#: ../src/theme-parser.c:572
|
||||
#, c-format
|
||||
msgid "Angle must be between 0.0 and 360.0, was %g\n"
|
||||
msgstr ""
|
||||
msgstr "Nurk peab olema 0.0 ja 360.0 vahel, oli aga %g\n"
|
||||
|
||||
#: ../src/theme-parser.c:638
|
||||
#, c-format
|
||||
|
264
po/he.po
264
po/he.po
@@ -1,19 +1,22 @@
|
||||
# translation of metacity.HEAD.he.po to Hebrew
|
||||
# translation of metacity.HEAD.po to Hebrew
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# Gil 'Dolfin' Osher <dolfin@rpg.org.il>, 2002,2003
|
||||
# Gil 'Dolfin' Osher <dolfin@rpg.org.il>, 2002,2003.
|
||||
# Yuval Tanny, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity.HEAD\n"
|
||||
"Project-Id-Version: metacity.HEAD.he\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-07-08 06:30+0000\n"
|
||||
"PO-Revision-Date: 2005-07-08 13:47+0300\n"
|
||||
"Last-Translator: Yair Hershkovitz <yairhr@gmail.com>\n"
|
||||
"POT-Creation-Date: 2005-07-30 15:39+0000\n"
|
||||
"PO-Revision-Date: 2005-07-31 01:18+0300\n"
|
||||
"Last-Translator: Yuval Tanny\n"
|
||||
"Language-Team: Hebrew <he@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.10.2\n"
|
||||
|
||||
#: ../src/tools/metacity-message.c:150
|
||||
#, c-format
|
||||
@@ -48,8 +51,7 @@ msgstr "שגיאה בקריאה מתהליך הצגת תיבת דו-שיח: %s\n
|
||||
|
||||
#: ../src/delete.c:344
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Error launching metacity-dialog to ask about killing an application: %s\n"
|
||||
msgid "Error launching metacity-dialog to ask about killing an application: %s\n"
|
||||
msgstr "שגיאה בהפעלת תיבת דו-שיח של מטאסיטי השואלת אם להרוג יישום: %s\n"
|
||||
|
||||
#: ../src/delete.c:452
|
||||
@@ -57,7 +59,7 @@ msgstr "שגיאה בהפעלת תיבת דו-שיח של מטאסיטי השו
|
||||
msgid "Failed to get hostname: %s\n"
|
||||
msgstr "נכשל בקבלת שם המארח: %s\n"
|
||||
|
||||
#: ../src/display.c:316
|
||||
#: ../src/display.c:319
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "נכשל בפתיחת תצוגת מערכת X Window '%s'\n"
|
||||
@@ -120,12 +122,6 @@ msgid "No terminal command has been defined.\n"
|
||||
msgstr "אף פקודת מסוף לא הוגדרה.\n"
|
||||
|
||||
#: ../src/main.c:69
|
||||
msgid ""
|
||||
"metacity [--sm-disable] [--sm-client-id=ID] [--sm-save-file=FILENAME] [--"
|
||||
"display=DISPLAY] [--replace] [--version]\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:76
|
||||
#, c-format
|
||||
msgid ""
|
||||
"metacity %s\n"
|
||||
@@ -139,18 +135,41 @@ msgstr ""
|
||||
"זוהי תוכנה חופשית; ראה קוד מקור לתנאי ההעתקה.\n"
|
||||
"אין אחראיות; אפילו לא לאפשרויות מסחר או התאמה למטרה מסויימת.\n"
|
||||
|
||||
#: ../src/main.c:443
|
||||
#: ../src/main.c:257
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:263
|
||||
msgid "Replace the running window manager with Metacity"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:269
|
||||
msgid "Specify session management ID"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:274
|
||||
msgid "X Display to use"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:280
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:286
|
||||
msgid "Print version"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:440
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to scan themes directory: %s\n"
|
||||
msgstr "נכשל בטעינת ערכת נושא \"%s\": %s\n"
|
||||
|
||||
#: ../src/main.c:459
|
||||
#: ../src/main.c:456
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not find a theme! Be sure %s exists and contains the usual themes."
|
||||
msgid "Could not find a theme! Be sure %s exists and contains the usual themes."
|
||||
msgstr "לא ניתן למצוא ערכת נושא! ודא כי %s קיים ומכיל את ערכות הנושא הרגילות."
|
||||
|
||||
#: ../src/main.c:521
|
||||
#: ../src/main.c:518
|
||||
#, c-format
|
||||
msgid "Failed to restart: %s\n"
|
||||
msgstr "נכשל בהפעלה מחדש: %s\n"
|
||||
@@ -195,7 +214,7 @@ msgstr "_סגור"
|
||||
#. separator
|
||||
#: ../src/menu.c:66
|
||||
msgid "_Always on Visible Workspace"
|
||||
msgstr "רק בסביבת העבודה _הגלויה"
|
||||
msgstr "_הראה בכל סביבות העבודה"
|
||||
|
||||
#: ../src/menu.c:67
|
||||
msgid "_Only on This Workspace"
|
||||
@@ -217,7 +236,7 @@ msgstr "הזז חלון לסביבת העבודה למעלה"
|
||||
msgid "Move to Workspace _Down"
|
||||
msgstr "הזז חלון לסביבת העבודה למטה"
|
||||
|
||||
#: ../src/menu.c:162 ../src/prefs.c:1996
|
||||
#: ../src/menu.c:162 ../src/prefs.c:2106
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "סביבת עבודה %d"
|
||||
@@ -331,29 +350,28 @@ msgid "The window \"%s\" is not responding."
|
||||
msgstr "החלון \"%s\" אינו מגיב"
|
||||
|
||||
#: ../src/metacity-dialog.c:118
|
||||
msgid ""
|
||||
"Forcing this application to quit will cause you to lose any unsaved changes."
|
||||
msgid "Forcing this application to quit will cause you to lose any unsaved changes."
|
||||
msgstr "להכריח את ישום זה לסיים יגרום לאיבוד שינויים שלא נשמרו"
|
||||
|
||||
#: ../src/metacity-dialog.c:128
|
||||
#: ../src/metacity-dialog.c:129
|
||||
msgid "_Force Quit"
|
||||
msgstr ""
|
||||
msgstr "_הכרח יציאה"
|
||||
|
||||
#: ../src/metacity-dialog.c:225
|
||||
#: ../src/metacity-dialog.c:226
|
||||
msgid "Title"
|
||||
msgstr "כותרת"
|
||||
|
||||
#: ../src/metacity-dialog.c:237
|
||||
#: ../src/metacity-dialog.c:238
|
||||
msgid "Class"
|
||||
msgstr "מחלקה"
|
||||
|
||||
#: ../src/metacity-dialog.c:263
|
||||
#: ../src/metacity-dialog.c:264
|
||||
msgid ""
|
||||
"These windows do not support \"save current setup\" and will have to be "
|
||||
"restarted manually next time you log in."
|
||||
msgstr ""
|
||||
msgstr "חלון זה אינו תומך ב\"שמירת ההגדרות הנוכחיות\", ויהיה צורך באתחול ידני בכניסה הבאה שלך."
|
||||
|
||||
#: ../src/metacity-dialog.c:328
|
||||
#: ../src/metacity-dialog.c:330
|
||||
#, c-format
|
||||
msgid ""
|
||||
"There was an error running \"%s\":\n"
|
||||
@@ -1476,64 +1494,64 @@ msgstr "מצב מיקוד חלון"
|
||||
msgid "Window title font"
|
||||
msgstr "גופן כותרת חלון"
|
||||
|
||||
#: ../src/prefs.c:501 ../src/prefs.c:517 ../src/prefs.c:533 ../src/prefs.c:549
|
||||
#: ../src/prefs.c:565 ../src/prefs.c:585 ../src/prefs.c:601 ../src/prefs.c:617
|
||||
#: ../src/prefs.c:633 ../src/prefs.c:649 ../src/prefs.c:665 ../src/prefs.c:681
|
||||
#: ../src/prefs.c:697 ../src/prefs.c:714 ../src/prefs.c:730 ../src/prefs.c:746
|
||||
#: ../src/prefs.c:762 ../src/prefs.c:778 ../src/prefs.c:793 ../src/prefs.c:808
|
||||
#: ../src/prefs.c:823 ../src/prefs.c:839
|
||||
#: ../src/prefs.c:528 ../src/prefs.c:544 ../src/prefs.c:560 ../src/prefs.c:576
|
||||
#: ../src/prefs.c:592 ../src/prefs.c:612 ../src/prefs.c:628 ../src/prefs.c:644
|
||||
#: ../src/prefs.c:660 ../src/prefs.c:676 ../src/prefs.c:692 ../src/prefs.c:708
|
||||
#: ../src/prefs.c:724 ../src/prefs.c:741 ../src/prefs.c:757 ../src/prefs.c:773
|
||||
#: ../src/prefs.c:789 ../src/prefs.c:805 ../src/prefs.c:820 ../src/prefs.c:835
|
||||
#: ../src/prefs.c:850 ../src/prefs.c:866 ../src/prefs.c:882 ../src/prefs.c:898
|
||||
#, c-format
|
||||
msgid "GConf key \"%s\" is set to an invalid type\n"
|
||||
msgstr "מפתח GConf \"%s\" נקבע לסוג לא תקני\n"
|
||||
|
||||
#: ../src/prefs.c:884
|
||||
#: ../src/prefs.c:943
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||
"modifier\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:908 ../src/prefs.c:1318
|
||||
#: ../src/prefs.c:967 ../src/prefs.c:1428
|
||||
#, c-format
|
||||
msgid "GConf key '%s' is set to an invalid value\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:1035
|
||||
#: ../src/prefs.c:1145
|
||||
#, c-format
|
||||
msgid "Could not parse font description \"%s\" from GConf key %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:1220
|
||||
#: ../src/prefs.c:1330
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%d stored in GConf key %s is not a reasonable number of workspaces, current "
|
||||
"maximum is %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:1280
|
||||
#: ../src/prefs.c:1390
|
||||
msgid ""
|
||||
"Workarounds for broken applications disabled. Some applications may not "
|
||||
"behave properly.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:1345
|
||||
#: ../src/prefs.c:1455
|
||||
#, c-format
|
||||
msgid "%d stored in GConf key %s is out of range 0 to %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:1479
|
||||
#: ../src/prefs.c:1589
|
||||
#, c-format
|
||||
msgid "Error setting number of workspaces to %d: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:1723
|
||||
#: ../src/prefs.c:1833
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||
"\"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/prefs.c:2077
|
||||
#: ../src/prefs.c:2187
|
||||
#, c-format
|
||||
msgid "Error setting name for workspace %d to \"%s\": %s\n"
|
||||
msgstr ""
|
||||
@@ -1557,8 +1575,7 @@ msgstr ""
|
||||
|
||||
#: ../src/screen.c:448
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgid "Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/screen.c:506
|
||||
@@ -1791,8 +1808,7 @@ msgstr ""
|
||||
|
||||
#: ../src/theme-parser.c:1320 ../src/theme-parser.c:1334
|
||||
#: ../src/theme-parser.c:1393
|
||||
msgid ""
|
||||
"Cannot specify both button_width/button_height and aspect ratio for buttons"
|
||||
msgid "Cannot specify both button_width/button_height and aspect ratio for buttons"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme-parser.c:1343
|
||||
@@ -2094,8 +2110,7 @@ msgstr ""
|
||||
|
||||
#: ../src/theme-parser.c:3679
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Element <%s> is not allowed inside a name/author/date/description element"
|
||||
msgid "Element <%s> is not allowed inside a name/author/date/description element"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme-parser.c:3684
|
||||
@@ -2105,8 +2120,7 @@ msgstr ""
|
||||
|
||||
#: ../src/theme-parser.c:3696
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Element <%s> is not allowed inside a distance/border/aspect_ratio element"
|
||||
msgid "Element <%s> is not allowed inside a distance/border/aspect_ratio element"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme-parser.c:3718
|
||||
@@ -2396,159 +2410,156 @@ msgstr ""
|
||||
msgid "Frame geometry does not specify size of buttons"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:849
|
||||
#: ../src/theme.c:843
|
||||
msgid "Gradients should have at least two colors"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:975
|
||||
#: ../src/theme.c:969
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||
"where NORMAL is the state; could not parse \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:989
|
||||
#: ../src/theme.c:983
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1000
|
||||
#: ../src/theme.c:994
|
||||
#, c-format
|
||||
msgid "Did not understand state \"%s\" in color specification"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1013
|
||||
#: ../src/theme.c:1007
|
||||
#, c-format
|
||||
msgid "Did not understand color component \"%s\" in color specification"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1043
|
||||
#: ../src/theme.c:1037
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||
"format"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1054
|
||||
#: ../src/theme.c:1048
|
||||
#, c-format
|
||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1064
|
||||
#: ../src/theme.c:1058
|
||||
#, c-format
|
||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1111
|
||||
#: ../src/theme.c:1105
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgid "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1122
|
||||
#: ../src/theme.c:1116
|
||||
#, c-format
|
||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1132
|
||||
#: ../src/theme.c:1126
|
||||
#, c-format
|
||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1161
|
||||
#: ../src/theme.c:1155
|
||||
#, c-format
|
||||
msgid "Could not parse color \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1423
|
||||
#: ../src/theme.c:1417
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1450
|
||||
#: ../src/theme.c:1444
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contains floating point number '%s' which could not be "
|
||||
"parsed"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1464
|
||||
#: ../src/theme.c:1458
|
||||
#, c-format
|
||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1531
|
||||
#: ../src/theme.c:1525
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression contained unknown operator at the start of this text: "
|
||||
"\"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1588
|
||||
#: ../src/theme.c:1582
|
||||
msgid "Coordinate expression was empty or not understood"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1731 ../src/theme.c:1741 ../src/theme.c:1775
|
||||
#: ../src/theme.c:1725 ../src/theme.c:1735 ../src/theme.c:1769
|
||||
msgid "Coordinate expression results in division by zero"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1783
|
||||
msgid ""
|
||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||
#: ../src/theme.c:1777
|
||||
msgid "Coordinate expression tries to use mod operator on a floating-point number"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1840
|
||||
#: ../src/theme.c:1834
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgid "Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1849
|
||||
#: ../src/theme.c:1843
|
||||
msgid "Coordinate expression had an operand where an operator was expected"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1857
|
||||
#: ../src/theme.c:1851
|
||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1867
|
||||
#: ../src/theme.c:1861
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||
"operand in between"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:1986
|
||||
#: ../src/theme.c:1980
|
||||
msgid ""
|
||||
"Coordinate expression parser overflowed its buffer, this is really a "
|
||||
"Metacity bug, but are you sure you need a huge expression like that?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:2015
|
||||
#: ../src/theme.c:2009
|
||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:2078
|
||||
#: ../src/theme.c:2072
|
||||
#, c-format
|
||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:2135
|
||||
#: ../src/theme.c:2129
|
||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:2146
|
||||
#: ../src/theme.c:2140
|
||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:2390 ../src/theme.c:2412 ../src/theme.c:2433
|
||||
#: ../src/theme.c:2384 ../src/theme.c:2406 ../src/theme.c:2427
|
||||
#, c-format
|
||||
msgid "Theme contained an expression \"%s\" that resulted in an error: %s\n"
|
||||
msgstr "ערכת הנושא מכילה ביטוי \"%s\" שגרם לשגיאה: %s\n"
|
||||
|
||||
#: ../src/theme.c:3919
|
||||
#: ../src/theme.c:3913
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -2557,32 +2568,30 @@ msgstr ""
|
||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> חייב להיות "
|
||||
"מצויין לסגנון מסגרת זו"
|
||||
|
||||
#: ../src/theme.c:4369 ../src/theme.c:4401
|
||||
#: ../src/theme.c:4363 ../src/theme.c:4395
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgstr ""
|
||||
"חסר <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
msgstr "חסר <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||
|
||||
#: ../src/theme.c:4452
|
||||
#: ../src/theme.c:4446
|
||||
#, c-format
|
||||
msgid "Failed to load theme \"%s\": %s\n"
|
||||
msgstr "נכשל בטעינת ערכת נושא \"%s\": %s\n"
|
||||
|
||||
#: ../src/theme.c:4598 ../src/theme.c:4605 ../src/theme.c:4612
|
||||
#: ../src/theme.c:4619 ../src/theme.c:4626
|
||||
#: ../src/theme.c:4592 ../src/theme.c:4599 ../src/theme.c:4606
|
||||
#: ../src/theme.c:4613 ../src/theme.c:4620
|
||||
#, c-format
|
||||
msgid "No <%s> set for theme \"%s\""
|
||||
msgstr "לא נקבע <%s> לערכת הנושא \"%s\""
|
||||
|
||||
#: ../src/theme.c:4636
|
||||
#: ../src/theme.c:4630
|
||||
#, c-format
|
||||
msgid ""
|
||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||
"type=\"%s\" style_set=\"whatever\"/> element"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/theme.c:4658
|
||||
#: ../src/theme.c:4652
|
||||
#, c-format
|
||||
msgid ""
|
||||
"<menu_icon function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||
@@ -2591,13 +2600,12 @@ msgstr ""
|
||||
"<menu_icon function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> חייב להיות "
|
||||
"מצויין לערכת נושא זו"
|
||||
|
||||
#: ../src/theme.c:5047 ../src/theme.c:5109
|
||||
#: ../src/theme.c:5041 ../src/theme.c:5103
|
||||
#, c-format
|
||||
msgid ""
|
||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||
msgstr "קבועים מותאמים-אישית חייבים להתחיל באות גדולה; \"%s\" לא"
|
||||
|
||||
#: ../src/theme.c:5055 ../src/theme.c:5117
|
||||
#: ../src/theme.c:5049 ../src/theme.c:5111
|
||||
#, c-format
|
||||
msgid "Constant \"%s\" has already been defined"
|
||||
msgstr "הקבוע \"%s\" כבר הוגדר"
|
||||
@@ -2639,7 +2647,7 @@ msgid "Application set a bogus _NET_WM_PID %ld\n"
|
||||
msgstr ""
|
||||
|
||||
#. first time through
|
||||
#: ../src/window.c:5197
|
||||
#: ../src/window.c:5205
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||
@@ -2653,7 +2661,7 @@ msgstr ""
|
||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||
#. * about these apps but make them work.
|
||||
#.
|
||||
#: ../src/window.c:5868
|
||||
#: ../src/window.c:5876
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
||||
@@ -2677,48 +2685,6 @@ msgstr "המאפיין %s של החלון 0x%lx מכיל UTF-8 לא תקני\n"
|
||||
|
||||
#: ../src/xprops.c:482
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Property %s on window 0x%lx contained invalid UTF-8 for item %d in the list\n"
|
||||
msgid "Property %s on window 0x%lx contained invalid UTF-8 for item %d in the list\n"
|
||||
msgstr "המאפיין %s של החלון 0x%lx מכיל UTF-8 לא תקני לפריט %d ברשימה\n"
|
||||
|
||||
#~ msgid "Put on _All Workspaces"
|
||||
#~ msgstr "שים ב_כל סביבות העבודה"
|
||||
|
||||
#~ msgid "Select how to give focus to windows"
|
||||
#~ msgstr "בחר כיצד למקד חלונות"
|
||||
|
||||
#~ msgid "Window Focus"
|
||||
#~ msgstr "מקד חלון"
|
||||
|
||||
#~ msgid "Clic_k to give focus"
|
||||
#~ msgstr "ל_חץ כדי למקד"
|
||||
|
||||
#~ msgid "Focus behavior:"
|
||||
#~ msgstr "התנהגות מיקוד:"
|
||||
|
||||
#~ msgid "Window Focus Preferences"
|
||||
#~ msgstr "העדפות מיקוד חלון"
|
||||
|
||||
#~ msgid "_Point to give focus"
|
||||
#~ msgstr "_הצבע כדי למקד"
|
||||
|
||||
#~ msgid "_Raise window on focus"
|
||||
#~ msgstr "_שחזר חלון במיקוד"
|
||||
|
||||
#~ msgid "Only on %s"
|
||||
#~ msgstr "רק ב %s"
|
||||
|
||||
#~ msgid "Move to %s"
|
||||
#~ msgstr "הזז ל%s"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The window \"%s\" is not responding.\n"
|
||||
#~ "Force this application to exit?\n"
|
||||
#~ "(Any open documents will be lost.)"
|
||||
#~ msgstr ""
|
||||
#~ "החלון \"%s\" אינו מגיב.\n"
|
||||
#~ "האם לאלץ יישום זה להסתיים?\n"
|
||||
#~ "(כל המסמכים הפתוחים יאבדו.)"
|
||||
|
||||
#~ msgid "Kill application"
|
||||
#~ msgstr "הרוג יישום"
|
||||
|
1365
po/pt_BR.po
1365
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
1207
po/zh_TW.po
1207
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@@ -455,19 +455,31 @@ draw_xor_rect (MetaScreen *screen,
|
||||
* a bit oddly.
|
||||
*/
|
||||
XSegment segments[8];
|
||||
MetaRectangle shrunk_rect;
|
||||
int i;
|
||||
|
||||
#define LINE_WIDTH META_WIREFRAME_XOR_LINE_WIDTH
|
||||
|
||||
|
||||
/* We don't want the wireframe going outside the window area.
|
||||
* It makes it harder for the user to position windows and it exposes other
|
||||
* annoying bugs.
|
||||
*/
|
||||
shrunk_rect = *rect;
|
||||
|
||||
shrunk_rect.x += LINE_WIDTH / 2 + LINE_WIDTH % 2;
|
||||
shrunk_rect.y += LINE_WIDTH / 2 + LINE_WIDTH % 2;
|
||||
shrunk_rect.width -= LINE_WIDTH + 2 * (LINE_WIDTH % 2);
|
||||
shrunk_rect.height -= LINE_WIDTH + 2 * (LINE_WIDTH % 2);
|
||||
|
||||
XDrawRectangle (screen->display->xdisplay,
|
||||
screen->xroot,
|
||||
screen->root_xor_gc,
|
||||
rect->x, rect->y,
|
||||
rect->width, rect->height);
|
||||
shrunk_rect.x, shrunk_rect.y,
|
||||
shrunk_rect.width, shrunk_rect.height);
|
||||
|
||||
/* Don't put lines inside small rectangles where they won't fit */
|
||||
if (rect->width < (LINE_WIDTH * 4) ||
|
||||
rect->height < (LINE_WIDTH * 4))
|
||||
if (shrunk_rect.width < (LINE_WIDTH * 4) ||
|
||||
shrunk_rect.height < (LINE_WIDTH * 4))
|
||||
return;
|
||||
|
||||
if ((width >= 0) && (height >= 0))
|
||||
@@ -502,11 +514,11 @@ draw_xor_rect (MetaScreen *screen,
|
||||
box_height = text_height + 2 * LINE_WIDTH;
|
||||
|
||||
|
||||
box_x = rect->x + (rect->width - box_width) / 2;
|
||||
box_y = rect->y + (rect->height - box_height) / 2;
|
||||
box_x = shrunk_rect.x + (shrunk_rect.width - box_width) / 2;
|
||||
box_y = shrunk_rect.y + (shrunk_rect.height - box_height) / 2;
|
||||
|
||||
if ((box_width < rect->width) &&
|
||||
(box_height < rect->height))
|
||||
if ((box_width < shrunk_rect.width) &&
|
||||
(box_height < shrunk_rect.height))
|
||||
{
|
||||
XFillRectangle (screen->display->xdisplay,
|
||||
screen->xroot,
|
||||
@@ -525,32 +537,32 @@ draw_xor_rect (MetaScreen *screen,
|
||||
|
||||
XFreeFontInfo (NULL, font_struct, 1);
|
||||
|
||||
if ((box_width + LINE_WIDTH) >= (rect->width / 3))
|
||||
if ((box_width + LINE_WIDTH) >= (shrunk_rect.width / 3))
|
||||
return;
|
||||
|
||||
if ((box_height + LINE_WIDTH) >= (rect->height / 3))
|
||||
if ((box_height + LINE_WIDTH) >= (shrunk_rect.height / 3))
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Two vertical lines at 1/3 and 2/3 */
|
||||
segments[0].x1 = rect->x + rect->width / 3;
|
||||
segments[0].y1 = rect->y + LINE_WIDTH / 2 + LINE_WIDTH % 2;
|
||||
segments[0].x1 = shrunk_rect.x + shrunk_rect.width / 3;
|
||||
segments[0].y1 = shrunk_rect.y + LINE_WIDTH / 2 + LINE_WIDTH % 2;
|
||||
segments[0].x2 = segments[0].x1;
|
||||
segments[0].y2 = rect->y + rect->height - LINE_WIDTH / 2;
|
||||
segments[0].y2 = shrunk_rect.y + shrunk_rect.height - LINE_WIDTH / 2;
|
||||
|
||||
segments[1] = segments[0];
|
||||
segments[1].x1 = rect->x + (rect->width / 3) * 2;
|
||||
segments[1].x1 = shrunk_rect.x + (shrunk_rect.width / 3) * 2;
|
||||
segments[1].x2 = segments[1].x1;
|
||||
|
||||
/* Now make two horizontal lines at 1/3 and 2/3, but not
|
||||
* overlapping the verticals
|
||||
*/
|
||||
|
||||
segments[2].x1 = rect->x + LINE_WIDTH / 2 + LINE_WIDTH % 2;
|
||||
segments[2].x1 = shrunk_rect.x + LINE_WIDTH / 2 + LINE_WIDTH % 2;
|
||||
segments[2].x2 = segments[0].x1 - LINE_WIDTH / 2;
|
||||
segments[2].y1 = rect->y + rect->height / 3;
|
||||
segments[2].y1 = shrunk_rect.y + shrunk_rect.height / 3;
|
||||
segments[2].y2 = segments[2].y1;
|
||||
|
||||
segments[3] = segments[2];
|
||||
@@ -559,7 +571,7 @@ draw_xor_rect (MetaScreen *screen,
|
||||
|
||||
segments[4] = segments[3];
|
||||
segments[4].x1 = segments[3].x2 + LINE_WIDTH;
|
||||
segments[4].x2 = rect->x + rect->width - LINE_WIDTH / 2;
|
||||
segments[4].x2 = shrunk_rect.x + shrunk_rect.width - LINE_WIDTH / 2;
|
||||
|
||||
/* Second horizontal line is just like the first, but
|
||||
* shifted down
|
||||
@@ -568,7 +580,7 @@ draw_xor_rect (MetaScreen *screen,
|
||||
while (i < 8)
|
||||
{
|
||||
segments[i] = segments[i - 3];
|
||||
segments[i].y1 = rect->y + (rect->height / 3) * 2;
|
||||
segments[i].y1 = shrunk_rect.y + (shrunk_rect.height / 3) * 2;
|
||||
segments[i].y2 = segments[i].y1;
|
||||
++i;
|
||||
}
|
||||
|
@@ -1690,6 +1690,7 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
int incr;
|
||||
gboolean smart_snap;
|
||||
int edge;
|
||||
int candidate_position;
|
||||
|
||||
handled = FALSE;
|
||||
|
||||
@@ -1711,13 +1712,7 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
meta_window_get_position (window, &x, &y);
|
||||
}
|
||||
|
||||
/* FIXME in wireframe mode the edge snapping is all fucked up
|
||||
* since the edge-find routines use window->rect. Window
|
||||
* constraints are also broken with wireframe.
|
||||
*/
|
||||
smart_snap = (event->xkey.state & ShiftMask) != 0;
|
||||
if (display->grab_wireframe_active)
|
||||
smart_snap = FALSE;
|
||||
|
||||
#define SMALL_INCREMENT 1
|
||||
#define NORMAL_INCREMENT 10
|
||||
@@ -1736,12 +1731,13 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
* since in wireframe we always moveresize at the end
|
||||
* of the grab only.
|
||||
*/
|
||||
meta_window_move_resize (display->grab_window,
|
||||
TRUE,
|
||||
display->grab_initial_window_pos.x,
|
||||
display->grab_initial_window_pos.y,
|
||||
display->grab_initial_window_pos.width,
|
||||
display->grab_initial_window_pos.height);
|
||||
if (!display->grab_wireframe_active)
|
||||
meta_window_move_resize (display->grab_window,
|
||||
TRUE,
|
||||
display->grab_initial_window_pos.x,
|
||||
display->grab_initial_window_pos.y,
|
||||
display->grab_initial_window_pos.width,
|
||||
display->grab_initial_window_pos.height);
|
||||
display->grab_was_cancelled = TRUE;
|
||||
}
|
||||
|
||||
@@ -1758,13 +1754,17 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
case XK_KP_Up:
|
||||
y -= incr;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_horizontal_edge (window, FALSE);
|
||||
if (smart_snap || ((edge > y) && ABS (edge - y) < incr))
|
||||
y = edge;
|
||||
}
|
||||
|
||||
edge = meta_window_find_next_horizontal_edge (window,
|
||||
META_WINDOW_EDGE_TOP,
|
||||
FALSE);
|
||||
if (window->frame)
|
||||
candidate_position = edge + window->frame->child_y;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap || ((candidate_position > y) && ABS (candidate_position - y) < incr))
|
||||
y = candidate_position;
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
case XK_KP_End:
|
||||
@@ -1773,13 +1773,17 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
case XK_KP_Down:
|
||||
y += incr;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_horizontal_edge (window, TRUE);
|
||||
if (smart_snap || ((edge < y) && ABS (edge - y) < incr))
|
||||
y = edge;
|
||||
}
|
||||
|
||||
edge = meta_window_find_next_horizontal_edge (window,
|
||||
META_WINDOW_EDGE_BOTTOM,
|
||||
TRUE);
|
||||
if (window->frame)
|
||||
candidate_position = edge - window->frame->bottom_height - window->rect.height;
|
||||
else
|
||||
candidate_position = edge - window->rect.height;
|
||||
|
||||
if (smart_snap || ((candidate_position < y) && ABS (candidate_position - y) < incr))
|
||||
y = candidate_position;
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -1792,12 +1796,17 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
case XK_KP_Left:
|
||||
x -= incr;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_vertical_edge (window, FALSE);
|
||||
if (smart_snap || ((edge > x) && ABS (edge - x) < incr))
|
||||
x = edge;
|
||||
}
|
||||
edge = meta_window_find_next_vertical_edge (window,
|
||||
META_WINDOW_EDGE_LEFT,
|
||||
FALSE);
|
||||
if (window->frame)
|
||||
candidate_position = edge + window->frame->child_x;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap ||
|
||||
((candidate_position > x) && ABS (candidate_position - x) < incr))
|
||||
x = candidate_position;
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
@@ -1807,13 +1816,17 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
case XK_KP_Right:
|
||||
x += incr;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_vertical_edge (window, TRUE);
|
||||
if (smart_snap || ((edge < x) && ABS (edge - x) < incr))
|
||||
x = edge;
|
||||
}
|
||||
edge = meta_window_find_next_vertical_edge (window,
|
||||
META_WINDOW_EDGE_RIGHT,
|
||||
TRUE);
|
||||
if (window->frame)
|
||||
candidate_position = edge - window->frame->right_width - window->rect.width;
|
||||
else
|
||||
candidate_position = edge - window->rect.width;
|
||||
|
||||
if (smart_snap || ((candidate_position < x) && ABS (candidate_position - x) < incr))
|
||||
x = candidate_position;
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -1841,50 +1854,15 @@ process_keyboard_move_grab (MetaDisplay *display,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
process_keyboard_resize_grab (MetaDisplay *display,
|
||||
MetaScreen *screen,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
KeySym keysym)
|
||||
process_keyboard_resize_grab_op_change (MetaDisplay *display,
|
||||
MetaScreen *screen,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
KeySym keysym)
|
||||
{
|
||||
gboolean handled;
|
||||
int height_inc;
|
||||
int width_inc;
|
||||
int x, y;
|
||||
int orig_x, orig_y;
|
||||
int width, height;
|
||||
gboolean smart_snap;
|
||||
int edge;
|
||||
int gravity;
|
||||
|
||||
|
||||
handled = FALSE;
|
||||
|
||||
/* don't care about releases, but eat them, don't end grab */
|
||||
if (event->type == KeyRelease)
|
||||
return TRUE;
|
||||
|
||||
/* don't end grab on modifier key presses */
|
||||
if (is_modifier (display, event->xkey.keycode))
|
||||
return TRUE;
|
||||
|
||||
if (keysym == XK_Escape)
|
||||
{
|
||||
/* End resize and restore to original state.
|
||||
* The move_resize is only needed when !wireframe
|
||||
* since in wireframe we always moveresize at the end
|
||||
* of the grab only.
|
||||
*/
|
||||
meta_window_move_resize (display->grab_window,
|
||||
TRUE,
|
||||
display->grab_initial_window_pos.x,
|
||||
display->grab_initial_window_pos.y,
|
||||
display->grab_initial_window_pos.width,
|
||||
display->grab_initial_window_pos.height);
|
||||
display->grab_was_cancelled = TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
switch (display->grab_op)
|
||||
{
|
||||
case META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN:
|
||||
@@ -1918,12 +1896,12 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
{
|
||||
case XK_Left:
|
||||
case XK_KP_Left:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_SW;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_W;
|
||||
handled = TRUE;
|
||||
break;
|
||||
case XK_Right:
|
||||
case XK_KP_Right:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_SE;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_E;
|
||||
handled = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -1934,12 +1912,12 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
{
|
||||
case XK_Left:
|
||||
case XK_KP_Left:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_NW;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_W;
|
||||
handled = TRUE;
|
||||
break;
|
||||
case XK_Right:
|
||||
case XK_KP_Right:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_NE;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_E;
|
||||
handled = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -1950,12 +1928,12 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
{
|
||||
case XK_Up:
|
||||
case XK_KP_Up:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_NW;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_N;
|
||||
handled = TRUE;
|
||||
break;
|
||||
case XK_Down:
|
||||
case XK_KP_Down:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_SW;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_S;
|
||||
handled = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -1966,12 +1944,12 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
{
|
||||
case XK_Up:
|
||||
case XK_KP_Up:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_NE;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_N;
|
||||
handled = TRUE;
|
||||
break;
|
||||
case XK_Down:
|
||||
case XK_KP_Down:
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_SE;
|
||||
display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_S;
|
||||
handled = TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -1994,33 +1972,80 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
process_keyboard_resize_grab (MetaDisplay *display,
|
||||
MetaScreen *screen,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
KeySym keysym)
|
||||
{
|
||||
gboolean handled;
|
||||
int height_inc;
|
||||
int width_inc;
|
||||
int x, y;
|
||||
int orig_x, orig_y;
|
||||
int width, height;
|
||||
gboolean smart_snap;
|
||||
int edge;
|
||||
int gravity;
|
||||
int candidate_position;
|
||||
|
||||
handled = FALSE;
|
||||
|
||||
/* don't care about releases, but eat them, don't end grab */
|
||||
if (event->type == KeyRelease)
|
||||
return TRUE;
|
||||
|
||||
/* don't end grab on modifier key presses */
|
||||
if (is_modifier (display, event->xkey.keycode))
|
||||
return TRUE;
|
||||
|
||||
if (keysym == XK_Escape)
|
||||
{
|
||||
/* End resize and restore to original state.
|
||||
* The move_resize is only needed when !wireframe
|
||||
* since in wireframe we always moveresize at the end
|
||||
* of the grab only.
|
||||
*/
|
||||
if (!display->grab_wireframe_active)
|
||||
meta_window_move_resize (display->grab_window,
|
||||
TRUE,
|
||||
display->grab_initial_window_pos.x,
|
||||
display->grab_initial_window_pos.y,
|
||||
display->grab_initial_window_pos.width,
|
||||
display->grab_initial_window_pos.height);
|
||||
display->grab_was_cancelled = TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (process_keyboard_resize_grab_op_change (display, screen, window,
|
||||
event, keysym))
|
||||
return TRUE;
|
||||
|
||||
if (display->grab_wireframe_active)
|
||||
{
|
||||
x = display->grab_wireframe_rect.x;
|
||||
y = display->grab_wireframe_rect.y;
|
||||
orig_x = x;
|
||||
orig_y = y;
|
||||
orig_x = display->grab_wireframe_rect.x;
|
||||
orig_y = display->grab_wireframe_rect.y;
|
||||
width = display->grab_wireframe_rect.width;
|
||||
height = display->grab_wireframe_rect.height;
|
||||
}
|
||||
else
|
||||
{
|
||||
meta_window_get_position (window, &orig_x, &orig_y);
|
||||
x = orig_x;
|
||||
y = orig_y;
|
||||
width = window->rect.width;
|
||||
height = window->rect.height;
|
||||
}
|
||||
|
||||
x = orig_x;
|
||||
y = orig_y;
|
||||
|
||||
gravity = meta_resize_gravity_from_grab_op (display->grab_op);
|
||||
|
||||
/* FIXME in wireframe mode the edge snapping is all fucked up
|
||||
* since the edge-find routines use window->rect. Window
|
||||
* constraints are also broken with wireframe.
|
||||
*/
|
||||
smart_snap = (event->xkey.state & ShiftMask) != 0;
|
||||
if (display->grab_wireframe_active)
|
||||
smart_snap = FALSE;
|
||||
|
||||
#define SMALL_INCREMENT 1
|
||||
#define NORMAL_INCREMENT 10
|
||||
@@ -2071,17 +2096,27 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
case NorthWestGravity:
|
||||
case NorthEastGravity:
|
||||
/* Move bottom edge up */
|
||||
height -= height_inc;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
edge = meta_window_find_next_horizontal_edge (window,
|
||||
META_WINDOW_EDGE_BOTTOM,
|
||||
FALSE);
|
||||
|
||||
if (window->frame)
|
||||
candidate_position = edge - window->frame->bottom_height;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap ||
|
||||
((candidate_position > (y + (height - height_inc))) &&
|
||||
ABS (candidate_position - (y + (height - height_inc))) < height_inc))
|
||||
{
|
||||
edge = meta_window_find_next_horizontal_edge (window, TRUE);
|
||||
|
||||
if (smart_snap || ((edge > (y+height)) &&
|
||||
ABS (edge - (y+height)) < height_inc))
|
||||
height = edge - y;
|
||||
if (candidate_position - y > 0)
|
||||
height = candidate_position - y;
|
||||
}
|
||||
|
||||
else if (height - height_inc > 0)
|
||||
{
|
||||
height -= height_inc;
|
||||
}
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
|
||||
@@ -2091,14 +2126,18 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
/* Move top edge up */
|
||||
y -= height_inc;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_horizontal_edge (window, FALSE);
|
||||
edge = meta_window_find_next_horizontal_edge (window,
|
||||
META_WINDOW_EDGE_TOP,
|
||||
FALSE);
|
||||
|
||||
if (window->frame)
|
||||
candidate_position = edge + window->frame->child_y;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap || ((candidate_position > y) && ABS (candidate_position - y) < height_inc))
|
||||
y = candidate_position;
|
||||
|
||||
if (smart_snap || ((edge > y) && ABS (edge - y) < height_inc))
|
||||
y = edge;
|
||||
}
|
||||
|
||||
height += (orig_y - y);
|
||||
break;
|
||||
|
||||
@@ -2122,33 +2161,48 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
/* Move bottom edge down */
|
||||
height += height_inc;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_horizontal_edge (window, TRUE);
|
||||
edge = meta_window_find_next_horizontal_edge (window,
|
||||
META_WINDOW_EDGE_BOTTOM,
|
||||
TRUE);
|
||||
|
||||
if (smart_snap || ((edge < (y+height)) &&
|
||||
ABS (edge - (y+height)) < height_inc))
|
||||
height = edge - y;
|
||||
}
|
||||
|
||||
handled = TRUE;
|
||||
if (window->frame)
|
||||
candidate_position = edge - window->frame->bottom_height;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap || ((candidate_position < (y+height)) &&
|
||||
ABS (candidate_position - (y+height)) < height_inc))
|
||||
height = candidate_position - y;
|
||||
break;
|
||||
|
||||
case SouthGravity:
|
||||
case SouthWestGravity:
|
||||
case SouthEastGravity:
|
||||
/* Move top edge down */
|
||||
y += height_inc;
|
||||
edge = meta_window_find_next_horizontal_edge (window,
|
||||
META_WINDOW_EDGE_TOP,
|
||||
TRUE);
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
if (window->frame)
|
||||
candidate_position = edge + window->frame->child_y;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap ||
|
||||
((candidate_position < (y + height_inc)) &&
|
||||
ABS (candidate_position - (y + height_inc)) < height_inc))
|
||||
{
|
||||
edge = meta_window_find_next_horizontal_edge (window, FALSE);
|
||||
|
||||
if (smart_snap || ((edge < y) && ABS (edge - y) < height_inc))
|
||||
y = edge;
|
||||
if (height - (candidate_position - orig_y) > 0)
|
||||
{
|
||||
y = candidate_position;
|
||||
height -= (y - orig_y);
|
||||
}
|
||||
}
|
||||
else if (height - ((y + height_inc) - orig_y) > 0)
|
||||
{
|
||||
y += height_inc;
|
||||
height -= (y - orig_y);
|
||||
}
|
||||
|
||||
height -= (y - orig_y);
|
||||
break;
|
||||
|
||||
case EastGravity:
|
||||
@@ -2168,17 +2222,21 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
case EastGravity:
|
||||
case SouthEastGravity:
|
||||
case NorthEastGravity:
|
||||
/* Move left edge left */
|
||||
x -= width_inc;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_vertical_edge (window, TRUE);
|
||||
|
||||
if (smart_snap || ((edge > x) && ABS (edge - x) < width_inc))
|
||||
x = edge;
|
||||
}
|
||||
|
||||
/* Move left edge left */
|
||||
edge = meta_window_find_next_vertical_edge (window,
|
||||
META_WINDOW_EDGE_LEFT,
|
||||
FALSE);
|
||||
|
||||
if (window->frame)
|
||||
candidate_position = edge + window->frame->child_x;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap || ((candidate_position > x) && ABS (candidate_position - x) < width_inc))
|
||||
x = candidate_position;
|
||||
|
||||
width += (orig_x - x);
|
||||
break;
|
||||
|
||||
@@ -2186,17 +2244,27 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
case SouthWestGravity:
|
||||
case NorthWestGravity:
|
||||
/* Move right edge left */
|
||||
width -= width_inc;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
edge = meta_window_find_next_vertical_edge (window,
|
||||
META_WINDOW_EDGE_RIGHT,
|
||||
FALSE);
|
||||
|
||||
if (window->frame)
|
||||
candidate_position = edge - window->frame->right_width;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap ||
|
||||
((candidate_position > (x + (width - width_inc))) &&
|
||||
ABS (candidate_position - (x + (width - width_inc))) < width_inc))
|
||||
{
|
||||
edge = meta_window_find_next_vertical_edge (window, FALSE);
|
||||
|
||||
if (smart_snap || ((edge > (x+width)) &&
|
||||
ABS (edge - (x+width)) < width_inc))
|
||||
width = edge - x;
|
||||
if (candidate_position - x > 0)
|
||||
width = candidate_position - x;
|
||||
}
|
||||
|
||||
else if (width - width_inc > 0)
|
||||
{
|
||||
width -= width_inc;
|
||||
}
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
|
||||
@@ -2218,17 +2286,30 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
case SouthEastGravity:
|
||||
case NorthEastGravity:
|
||||
/* Move left edge right */
|
||||
x += width_inc;
|
||||
edge = meta_window_find_next_vertical_edge (window,
|
||||
META_WINDOW_EDGE_LEFT,
|
||||
TRUE);
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
if (window->frame)
|
||||
candidate_position = edge + window->frame->child_x;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap ||
|
||||
((candidate_position < (x + width_inc)) &&
|
||||
ABS (candidate_position - (x + width_inc)) < width_inc))
|
||||
{
|
||||
edge = meta_window_find_next_vertical_edge (window, FALSE);
|
||||
|
||||
if (smart_snap || ((edge < x) && ABS (edge - x) < width_inc))
|
||||
x = edge;
|
||||
if (width - (candidate_position - orig_x) > 0)
|
||||
{
|
||||
x = candidate_position;
|
||||
width -= (x - orig_x);
|
||||
}
|
||||
}
|
||||
else if (width - ((x + width_inc) - orig_x) > 0)
|
||||
{
|
||||
x += width_inc;
|
||||
width -= (x - orig_x);
|
||||
}
|
||||
|
||||
width -= (x - orig_x);
|
||||
break;
|
||||
|
||||
case WestGravity:
|
||||
@@ -2237,15 +2318,19 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
||||
/* Move right edge right */
|
||||
width += width_inc;
|
||||
|
||||
if (!display->grab_wireframe_active)
|
||||
{
|
||||
edge = meta_window_find_next_vertical_edge (window, TRUE);
|
||||
|
||||
if (smart_snap || ((edge > (x+width)) &&
|
||||
ABS (edge - (x+width)) < width_inc))
|
||||
width = edge - x;
|
||||
}
|
||||
|
||||
edge = meta_window_find_next_vertical_edge (window,
|
||||
META_WINDOW_EDGE_RIGHT,
|
||||
TRUE);
|
||||
|
||||
if (window->frame)
|
||||
candidate_position = edge - window->frame->right_width;
|
||||
else
|
||||
candidate_position = edge;
|
||||
|
||||
if (smart_snap || ((candidate_position > (x+width)) &&
|
||||
ABS (candidate_position - (x+width)) < width_inc))
|
||||
width = candidate_position - x;
|
||||
|
||||
handled = TRUE;
|
||||
break;
|
||||
|
||||
|
@@ -118,7 +118,8 @@ kill_window_question (const char *window_name,
|
||||
_("Forcing this application to quit will "
|
||||
"cause you to lose any unsaved changes."));
|
||||
g_free (str);
|
||||
|
||||
gtk_window_set_icon_name (GTK_WINDOW (dialog), "panel-force-quit");
|
||||
|
||||
gtk_label_set_use_markup (GTK_LABEL (GTK_MESSAGE_DIALOG (dialog)->label), TRUE);
|
||||
gtk_label_set_line_wrap (GTK_LABEL (GTK_MESSAGE_DIALOG (dialog)->label), TRUE);
|
||||
|
||||
@@ -261,6 +262,7 @@ warn_about_no_sm_support (char **lame_apps,
|
||||
GTK_MESSAGE_WARNING,
|
||||
GTK_BUTTONS_NONE,
|
||||
_("These windows do not support \"save current setup\" and will have to be restarted manually next time you log in."));
|
||||
gtk_window_set_icon_name (GTK_WINDOW (dialog), "stock_dialog-warning");
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog),
|
||||
"response",
|
||||
@@ -333,6 +335,7 @@ error_about_command (const char *gconf_key,
|
||||
GTK_MESSAGE_ERROR,
|
||||
GTK_BUTTONS_CLOSE,
|
||||
"%s", error);
|
||||
gtk_window_set_icon_name (GTK_WINDOW (dialog), "stock_dialog-error");
|
||||
|
||||
gtk_widget_realize (dialog);
|
||||
copy_of_gdk_x11_window_set_user_time (dialog->window, timestamp);
|
||||
|
@@ -114,7 +114,7 @@
|
||||
<applyto>/apps/metacity/general/theme</applyto>
|
||||
<owner>metacity</owner>
|
||||
<type>string</type>
|
||||
<default>Simple</default>
|
||||
<default>Clearlooks</default>
|
||||
<locale name="C">
|
||||
<short>Current theme</short>
|
||||
<long>
|
||||
|
287
src/place.c
287
src/place.c
@@ -369,20 +369,6 @@ avoid_being_obscured_as_second_modal_dialog (MetaWindow *window,
|
||||
"focus window\n",
|
||||
window->desc);
|
||||
}
|
||||
|
||||
meta_topic (META_DEBUG_PLACEMENT,
|
||||
"Status:\n"
|
||||
" denied focus: %d\n"
|
||||
" modal: %d\n"
|
||||
" same app: %d\n"
|
||||
" overlaps %d\n",
|
||||
window->denied_focus_and_not_transient,
|
||||
window->wm_state_modal,
|
||||
meta_window_same_application (window, focus_window),
|
||||
meta_rectangle_intersect (&window->rect,
|
||||
&focus_window->rect,
|
||||
&overlap)
|
||||
);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -894,7 +880,7 @@ meta_window_place (MetaWindow *window,
|
||||
meta_topic (META_DEBUG_PLACEMENT, "Centered window %s on screen %d xinerama %d\n",
|
||||
window->desc, window->screen->number, xi->number);
|
||||
|
||||
goto done;
|
||||
goto done_check_denied_focus;
|
||||
}
|
||||
|
||||
/* Find windows that matter (not minimized, on same workspace
|
||||
@@ -1140,43 +1126,53 @@ get_vertical_edges (MetaWindow *window,
|
||||
GSList *windows;
|
||||
GSList *tmp;
|
||||
int n_windows;
|
||||
int *edges;
|
||||
int i, j;
|
||||
int n_edges;
|
||||
GArray *edges;
|
||||
int edge, i;
|
||||
MetaRectangle rect;
|
||||
MetaRectangle work_area;
|
||||
|
||||
windows = get_windows_on_same_workspace (window, &n_windows);
|
||||
|
||||
i = 0;
|
||||
/* 4 = workspace/screen edges */
|
||||
n_edges = n_windows * 2 + 4 + window->screen->n_xinerama_infos - 1;
|
||||
|
||||
edges = g_new (int, n_edges);
|
||||
edges = g_array_sized_new (FALSE, FALSE, sizeof (int),
|
||||
n_windows * 2 + 4 /* 4 = workspace/screen edges */
|
||||
+ window->screen->n_xinerama_infos - 1
|
||||
+ 2 /* active window edges when in wireframe mode */);
|
||||
|
||||
/* workspace/screen edges */
|
||||
meta_window_get_work_area_current_xinerama (window, &work_area);
|
||||
|
||||
edges[i] = work_area.x;
|
||||
++i;
|
||||
edges[i] = work_area.x + work_area.width;
|
||||
++i;
|
||||
edges[i] = 0;
|
||||
++i;
|
||||
edges[i] = window->screen->width;
|
||||
++i;
|
||||
|
||||
g_assert (i == 4);
|
||||
|
||||
g_array_append_val (edges, work_area.x);
|
||||
edge = work_area.x + work_area.width;
|
||||
g_array_append_val (edges, edge);
|
||||
edge = 0;
|
||||
g_array_append_val (edges, edge);
|
||||
g_array_append_val (edges, window->screen->width);
|
||||
|
||||
/* Now get the xinerama screen edges */
|
||||
for (j = 0; j < window->screen->n_xinerama_infos - 1; j++) {
|
||||
edges[i] = window->screen->xinerama_infos[j].x_origin +
|
||||
window->screen->xinerama_infos[j].width;
|
||||
++i;
|
||||
}
|
||||
|
||||
meta_window_get_outer_rect (window, &rect);
|
||||
|
||||
for (i = 0; i < window->screen->n_xinerama_infos - 1; i++)
|
||||
{
|
||||
edge = window->screen->xinerama_infos[i].x_origin +
|
||||
window->screen->xinerama_infos[i].width;
|
||||
|
||||
g_array_append_val (edges, edge);
|
||||
}
|
||||
|
||||
if (window->display->grab_wireframe_active)
|
||||
{
|
||||
int left_edge, right_edge, top_edge, bottom_edge;
|
||||
|
||||
meta_window_get_xor_rect (window, &window->display->grab_wireframe_rect,
|
||||
&rect);
|
||||
|
||||
window_get_edges (window, &left_edge, &right_edge,
|
||||
&top_edge, &bottom_edge);
|
||||
|
||||
g_array_append_val (edges, left_edge);
|
||||
g_array_append_val (edges, right_edge);
|
||||
}
|
||||
else
|
||||
meta_window_get_outer_rect (window, &rect);
|
||||
|
||||
/* get window edges */
|
||||
tmp = windows;
|
||||
while (tmp != NULL)
|
||||
@@ -1188,22 +1184,21 @@ get_vertical_edges (MetaWindow *window,
|
||||
|
||||
if (rects_overlap_vertically (&rect, &w_rect))
|
||||
{
|
||||
window_get_edges (w, &edges[i], &edges[i+1], NULL, NULL);
|
||||
i += 2;
|
||||
g_array_append_val (edges, w_rect.x);
|
||||
edge = w_rect.x + w_rect.width;
|
||||
g_array_append_val (edges, edge);
|
||||
}
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
n_edges = i;
|
||||
|
||||
g_slist_free (windows);
|
||||
|
||||
/* Sort */
|
||||
qsort (edges, n_edges, sizeof (int), intcmp);
|
||||
qsort (edges->data, edges->len, sizeof (int), intcmp);
|
||||
|
||||
*edges_p = edges;
|
||||
*n_edges_p = n_edges;
|
||||
}
|
||||
*n_edges_p = edges->len;
|
||||
*edges_p = (int *) g_array_free (edges, FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
get_horizontal_edges (MetaWindow *window,
|
||||
@@ -1213,41 +1208,52 @@ get_horizontal_edges (MetaWindow *window,
|
||||
GSList *windows;
|
||||
GSList *tmp;
|
||||
int n_windows;
|
||||
int *edges;
|
||||
int i, j;
|
||||
int n_edges;
|
||||
GArray *edges;
|
||||
int edge, i;
|
||||
MetaRectangle rect;
|
||||
MetaRectangle work_area;
|
||||
|
||||
windows = get_windows_on_same_workspace (window, &n_windows);
|
||||
|
||||
i = 0;
|
||||
n_edges = n_windows * 2 + 4 + window->screen->n_xinerama_infos - 1; /* 4 = workspace/screen edges */
|
||||
edges = g_new (int, n_edges);
|
||||
edges = g_array_sized_new (FALSE, FALSE, sizeof (int),
|
||||
n_windows * 2 + 4 /* 4 = workspace/screen edges */
|
||||
+ window->screen->n_xinerama_infos - 1
|
||||
+ 2 /* active window edges when in wireframe mode */);
|
||||
|
||||
/* workspace/screen edges */
|
||||
meta_window_get_work_area_current_xinerama (window, &work_area);
|
||||
|
||||
edges[i] = work_area.y;
|
||||
++i;
|
||||
edges[i] = work_area.y + work_area.height;
|
||||
++i;
|
||||
edges[i] = 0;
|
||||
++i;
|
||||
edges[i] = window->screen->height;
|
||||
++i;
|
||||
g_array_append_val (edges, work_area.y);
|
||||
edge = work_area.y + work_area.height;
|
||||
g_array_append_val (edges, edge);
|
||||
edge = 0;
|
||||
g_array_append_val (edges, edge);
|
||||
g_array_append_val (edges, window->screen->height);
|
||||
|
||||
g_assert (i == 4);
|
||||
|
||||
/* Now get the xinerama screen edges */
|
||||
for (j = 0; j < window->screen->n_xinerama_infos - 1; j++) {
|
||||
edges[i] = window->screen->xinerama_infos[j].y_origin +
|
||||
window->screen->xinerama_infos[j].height;
|
||||
++i;
|
||||
}
|
||||
for (i = 0; i < window->screen->n_xinerama_infos - 1; i++)
|
||||
{
|
||||
edge = window->screen->xinerama_infos[i].y_origin +
|
||||
window->screen->xinerama_infos[i].height;
|
||||
g_array_append_val (edges, edge);
|
||||
}
|
||||
|
||||
meta_window_get_outer_rect (window, &rect);
|
||||
|
||||
if (window->display->grab_wireframe_active)
|
||||
{
|
||||
int left_edge, right_edge, top_edge, bottom_edge;
|
||||
|
||||
meta_window_get_xor_rect (window, &window->display->grab_wireframe_rect,
|
||||
&rect);
|
||||
|
||||
window_get_edges (window, &left_edge, &right_edge,
|
||||
&top_edge, &bottom_edge);
|
||||
|
||||
g_array_append_val (edges, top_edge);
|
||||
g_array_append_val (edges, bottom_edge);
|
||||
}
|
||||
else
|
||||
meta_window_get_outer_rect (window, &rect);
|
||||
|
||||
/* get window edges */
|
||||
tmp = windows;
|
||||
while (tmp != NULL)
|
||||
@@ -1259,60 +1265,75 @@ get_horizontal_edges (MetaWindow *window,
|
||||
|
||||
if (rects_overlap_horizontally (&rect, &w_rect))
|
||||
{
|
||||
window_get_edges (w, NULL, NULL, &edges[i], &edges[i+1]);
|
||||
i += 2;
|
||||
g_array_append_val (edges, w_rect.y);
|
||||
edge = w_rect.y + w_rect.height;
|
||||
g_array_append_val (edges, edge);
|
||||
}
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
n_edges = i;
|
||||
|
||||
g_slist_free (windows);
|
||||
|
||||
/* Sort */
|
||||
qsort (edges, n_edges, sizeof (int), intcmp);
|
||||
qsort (edges->data, edges->len, sizeof (int), intcmp);
|
||||
|
||||
*edges_p = edges;
|
||||
*n_edges_p = n_edges;
|
||||
*n_edges_p = edges->len;
|
||||
*edges_p = (int *) g_array_free (edges, FALSE);
|
||||
}
|
||||
|
||||
int
|
||||
meta_window_find_next_vertical_edge (MetaWindow *window,
|
||||
MetaWindowEdgePosition source_edge_position,
|
||||
gboolean right)
|
||||
{
|
||||
int left_edge, right_edge;
|
||||
int left_edge, right_edge, source_edge;
|
||||
int *edges;
|
||||
int i;
|
||||
int n_edges;
|
||||
int retval;
|
||||
|
||||
get_vertical_edges (window, &edges, &n_edges);
|
||||
|
||||
/* Find next */
|
||||
meta_window_get_position (window, &retval, NULL);
|
||||
|
||||
window_get_edges (window, &left_edge, &right_edge, NULL, NULL);
|
||||
|
||||
/* Find next */
|
||||
if (window->display->grab_wireframe_active)
|
||||
{
|
||||
MetaRectangle rect;
|
||||
|
||||
meta_window_get_xor_rect (window, &window->display->grab_wireframe_rect,
|
||||
&rect);
|
||||
|
||||
left_edge = rect.x;
|
||||
right_edge = left_edge + rect.width;
|
||||
}
|
||||
else
|
||||
window_get_edges (window, &left_edge, &right_edge, NULL, NULL);
|
||||
|
||||
switch (source_edge_position)
|
||||
{
|
||||
case META_WINDOW_EDGE_LEFT:
|
||||
source_edge = left_edge;
|
||||
break;
|
||||
|
||||
case META_WINDOW_EDGE_RIGHT:
|
||||
source_edge = right_edge;
|
||||
break;
|
||||
|
||||
case META_WINDOW_EDGE_TOP:
|
||||
case META_WINDOW_EDGE_BOTTOM:
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
retval = source_edge;
|
||||
|
||||
if (right)
|
||||
{
|
||||
i = 0;
|
||||
while (i < n_edges)
|
||||
{
|
||||
if (edges[i] > right_edge)
|
||||
if (edges[i] > source_edge)
|
||||
{
|
||||
/* This is the one we want, snap right
|
||||
* edge of window to edges[i]
|
||||
*/
|
||||
retval = edges[i];
|
||||
if (window->frame)
|
||||
{
|
||||
retval -= window->frame->rect.width;
|
||||
retval += window->frame->child_x;
|
||||
}
|
||||
else
|
||||
{
|
||||
retval -= window->rect.width;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1326,13 +1347,9 @@ meta_window_find_next_vertical_edge (MetaWindow *window,
|
||||
{
|
||||
--i;
|
||||
|
||||
if (edges[i] < left_edge)
|
||||
if (edges[i] < source_edge)
|
||||
{
|
||||
/* This is the one we want */
|
||||
retval = edges[i];
|
||||
if (window->frame)
|
||||
retval += window->frame->child_x;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1346,9 +1363,10 @@ meta_window_find_next_vertical_edge (MetaWindow *window,
|
||||
|
||||
int
|
||||
meta_window_find_next_horizontal_edge (MetaWindow *window,
|
||||
MetaWindowEdgePosition source_edge_position,
|
||||
gboolean down)
|
||||
{
|
||||
int top_edge, bottom_edge;
|
||||
int top_edge, bottom_edge, source_edge;
|
||||
int *edges;
|
||||
int i;
|
||||
int n_edges;
|
||||
@@ -1357,30 +1375,45 @@ meta_window_find_next_horizontal_edge (MetaWindow *window,
|
||||
get_horizontal_edges (window, &edges, &n_edges);
|
||||
|
||||
/* Find next */
|
||||
meta_window_get_position (window, NULL, &retval);
|
||||
if (window->display->grab_wireframe_active)
|
||||
{
|
||||
MetaRectangle rect;
|
||||
|
||||
meta_window_get_xor_rect (window, &window->display->grab_wireframe_rect,
|
||||
&rect);
|
||||
|
||||
top_edge = rect.y;
|
||||
bottom_edge = top_edge + rect.height;
|
||||
}
|
||||
else
|
||||
window_get_edges (window, NULL, NULL, &top_edge, &bottom_edge);
|
||||
|
||||
switch (source_edge_position)
|
||||
{
|
||||
case META_WINDOW_EDGE_TOP:
|
||||
source_edge = top_edge;
|
||||
break;
|
||||
|
||||
case META_WINDOW_EDGE_BOTTOM:
|
||||
source_edge = bottom_edge;
|
||||
break;
|
||||
|
||||
case META_WINDOW_EDGE_LEFT:
|
||||
case META_WINDOW_EDGE_RIGHT:
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
retval = source_edge;
|
||||
|
||||
window_get_edges (window, NULL, NULL, &top_edge, &bottom_edge);
|
||||
|
||||
if (down)
|
||||
{
|
||||
i = 0;
|
||||
while (i < n_edges)
|
||||
{
|
||||
if (edges[i] > bottom_edge)
|
||||
if (edges[i] > source_edge)
|
||||
{
|
||||
/* This is the one we want, snap right
|
||||
* edge of window to edges[i]
|
||||
*/
|
||||
retval = edges[i];
|
||||
if (window->frame)
|
||||
{
|
||||
retval -= window->frame->rect.height;
|
||||
retval += window->frame->child_y;
|
||||
}
|
||||
else
|
||||
{
|
||||
retval -= window->rect.height;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1394,13 +1427,9 @@ meta_window_find_next_horizontal_edge (MetaWindow *window,
|
||||
{
|
||||
--i;
|
||||
|
||||
if (edges[i] < top_edge)
|
||||
if (edges[i] < source_edge)
|
||||
{
|
||||
/* This is the one we want */
|
||||
retval = edges[i];
|
||||
if (window->frame)
|
||||
retval += window->frame->child_y;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1435,11 +1464,10 @@ meta_window_find_nearest_vertical_edge (MetaWindow *window,
|
||||
int left_pos, right_pos;
|
||||
|
||||
left_pos = edges[i];
|
||||
if (window->frame)
|
||||
left_pos += window->frame->child_x;
|
||||
|
||||
if (window->frame)
|
||||
{
|
||||
left_pos += window->frame->child_x;
|
||||
right_pos = edges[i] - window->frame->rect.width;
|
||||
right_pos += window->frame->child_x;
|
||||
}
|
||||
@@ -1506,11 +1534,10 @@ meta_window_find_nearest_horizontal_edge (MetaWindow *window,
|
||||
int top_pos, bottom_pos;
|
||||
|
||||
top_pos = edges[i];
|
||||
if (window->frame)
|
||||
top_pos += window->frame->child_y;
|
||||
|
||||
if (window->frame)
|
||||
{
|
||||
top_pos += window->frame->child_y;
|
||||
bottom_pos = edges[i] - window->frame->rect.height;
|
||||
bottom_pos += window->frame->child_y;
|
||||
}
|
||||
|
27
src/place.h
27
src/place.h
@@ -25,6 +25,16 @@
|
||||
#include "window.h"
|
||||
#include "frame.h"
|
||||
|
||||
typedef enum _MetaWindowEdgePosition MetaWindowEdgePosition;
|
||||
|
||||
enum _MetaWindowEdgePosition
|
||||
{
|
||||
META_WINDOW_EDGE_TOP = 0,
|
||||
META_WINDOW_EDGE_LEFT,
|
||||
META_WINDOW_EDGE_RIGHT,
|
||||
META_WINDOW_EDGE_BOTTOM
|
||||
};
|
||||
|
||||
void meta_window_place (MetaWindow *window,
|
||||
MetaFrameGeometry *fgeom,
|
||||
int x,
|
||||
@@ -32,14 +42,16 @@ void meta_window_place (MetaWindow *window,
|
||||
int *new_x,
|
||||
int *new_y);
|
||||
|
||||
/* Returns the position to move the window to in order
|
||||
/* Returns the position to move the specified window edge to in order
|
||||
* to snap it to the next edge in the given direction,
|
||||
* while moving.
|
||||
*/
|
||||
int meta_window_find_next_vertical_edge (MetaWindow *window,
|
||||
gboolean right);
|
||||
int meta_window_find_next_horizontal_edge (MetaWindow *window,
|
||||
MetaWindowEdgePosition source_edge_position,
|
||||
gboolean down);
|
||||
int meta_window_find_next_horizontal_edge (MetaWindow *window,
|
||||
MetaWindowEdgePosition source_edge_position,
|
||||
gboolean right);
|
||||
|
||||
/* Returns the position to move the window to in order
|
||||
* to snap it to the nearest edge, while moving.
|
||||
@@ -49,13 +61,4 @@ int meta_window_find_nearest_vertical_edge (MetaWindow *window,
|
||||
|
||||
int meta_window_find_nearest_horizontal_edge (MetaWindow *window,
|
||||
int y_pos);
|
||||
|
||||
/* FIXME need edge-snap functions for resizing as well, those
|
||||
* behave somewhat differently.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
11
src/stack.c
11
src/stack.c
@@ -242,8 +242,7 @@ static gboolean
|
||||
is_focused_foreach (MetaWindow *window,
|
||||
void *data)
|
||||
{
|
||||
if (window->has_focus ||
|
||||
(window == window->display->expected_focus_window))
|
||||
if (window == window->display->expected_focus_window)
|
||||
{
|
||||
*((gboolean*) data) = TRUE;
|
||||
return FALSE;
|
||||
@@ -291,12 +290,12 @@ get_standalone_layer (MetaWindow *window)
|
||||
if (window->wm_state_below)
|
||||
layer = META_LAYER_BOTTOM;
|
||||
else if ((window->fullscreen || window_is_fullscreen_size (window)) &&
|
||||
(window->has_focus || focused_transient ||
|
||||
(focused_transient ||
|
||||
window == window->display->expected_focus_window ||
|
||||
window->display->focus_window == NULL ||
|
||||
(window->display->focus_window != NULL &&
|
||||
window->display->expected_focus_window == NULL ||
|
||||
(window->display->expected_focus_window != NULL &&
|
||||
windows_on_different_xinerama (window,
|
||||
window->display->focus_window))))
|
||||
window->display->expected_focus_window))))
|
||||
layer = META_LAYER_FULLSCREEN;
|
||||
else if (window->wm_state_above)
|
||||
layer = META_LAYER_DOCK;
|
||||
|
@@ -726,7 +726,7 @@ parse_toplevel_element (GMarkupParseContext *context,
|
||||
if (name == NULL)
|
||||
{
|
||||
set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
|
||||
_("No \"%s\" attribute on element <%s>"),
|
||||
_("No \"%s\" attribute on <%s> element"),
|
||||
"name", element_name);
|
||||
return;
|
||||
}
|
||||
@@ -734,7 +734,7 @@ parse_toplevel_element (GMarkupParseContext *context,
|
||||
if (value == NULL)
|
||||
{
|
||||
set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
|
||||
_("No \"%s\" attribute on element <%s>"),
|
||||
_("No \"%s\" attribute on <%s> element"),
|
||||
"value", element_name);
|
||||
return;
|
||||
}
|
||||
@@ -2933,7 +2933,7 @@ parse_draw_op_element (GMarkupParseContext *context,
|
||||
if (name == NULL)
|
||||
{
|
||||
set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
|
||||
_("No \"%s\" attribute on element <%s>"), "name", element_name);
|
||||
_("No \"%s\" attribute on <%s> element"), "name", element_name);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3022,21 +3022,21 @@ parse_draw_op_element (GMarkupParseContext *context,
|
||||
if (name == NULL)
|
||||
{
|
||||
set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
|
||||
_("No \"%s\" attribute on element <%s>"), "name", element_name);
|
||||
_("No \"%s\" attribute on <%s> element"), "name", element_name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tile_width == NULL)
|
||||
{
|
||||
set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
|
||||
_("No \"%s\" attribute on element <%s>"), "tile_width", element_name);
|
||||
_("No \"%s\" attribute on <%s> element"), "tile_width", element_name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tile_height == NULL)
|
||||
{
|
||||
set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
|
||||
_("No \"%s\" attribute on element <%s>"), "tile_height", element_name);
|
||||
_("No \"%s\" attribute on <%s> element"), "tile_height", element_name);
|
||||
return;
|
||||
}
|
||||
|
||||
|
85
src/window.c
85
src/window.c
@@ -6498,27 +6498,22 @@ update_move (MetaWindow *window,
|
||||
if (window->maximized)
|
||||
return;
|
||||
|
||||
if (mask & ShiftMask)
|
||||
{
|
||||
/* snap to edges */
|
||||
if (dy != 0)
|
||||
new_x = meta_window_find_nearest_vertical_edge (window, new_x);
|
||||
|
||||
if (dx != 0)
|
||||
new_y = meta_window_find_nearest_horizontal_edge (window, new_y);
|
||||
}
|
||||
|
||||
if (window->display->grab_wireframe_active)
|
||||
{
|
||||
/* FIXME Horribly broken, does not honor position
|
||||
* constraints
|
||||
*/
|
||||
meta_window_update_wireframe (window, new_x, new_y,
|
||||
window->display->grab_wireframe_rect.width,
|
||||
window->display->grab_wireframe_rect.height);
|
||||
}
|
||||
meta_window_update_wireframe (window, new_x, new_y,
|
||||
window->display->grab_wireframe_rect.width,
|
||||
window->display->grab_wireframe_rect.height);
|
||||
else
|
||||
{
|
||||
/* FIXME, edge snapping broken in wireframe mode */
|
||||
if (mask & ShiftMask)
|
||||
{
|
||||
/* snap to edges */
|
||||
new_x = meta_window_find_nearest_vertical_edge (window, new_x);
|
||||
new_y = meta_window_find_nearest_horizontal_edge (window, new_y);
|
||||
}
|
||||
|
||||
meta_window_move (window, TRUE, new_x, new_y);
|
||||
}
|
||||
meta_window_move (window, TRUE, new_x, new_y);
|
||||
}
|
||||
|
||||
static void update_resize (MetaWindow *window,
|
||||
@@ -6562,6 +6557,50 @@ update_resize (MetaWindow *window,
|
||||
/* FIXME this is only used in wireframe mode */
|
||||
new_x = window->display->grab_anchor_window_pos.x;
|
||||
new_y = window->display->grab_anchor_window_pos.y;
|
||||
|
||||
if (window->display->grab_op == META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN)
|
||||
{
|
||||
if ((dx > 0) && (dy > 0))
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_SE;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if ((dx < 0) && (dy > 0))
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_SW;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if ((dx > 0) && (dy < 0))
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_NE;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if ((dx < 0) && (dy < 0))
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_NW;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if (dx < 0)
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_W;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if (dx > 0)
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_E;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if (dy > 0)
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_S;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
else if (dy < 0)
|
||||
{
|
||||
window->display->grab_op = META_GRAB_OP_KEYBOARD_RESIZING_N;
|
||||
meta_window_update_keyboard_resize (window, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
switch (window->display->grab_op)
|
||||
{
|
||||
@@ -7270,11 +7309,13 @@ warp_grab_pointer (MetaWindow *window,
|
||||
|
||||
if (window == window->display->grab_window &&
|
||||
window->display->grab_wireframe_active)
|
||||
rect = window->display->grab_wireframe_rect;
|
||||
{
|
||||
meta_window_get_xor_rect (window, &window->display->grab_wireframe_rect,
|
||||
&rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
rect = window->rect;
|
||||
meta_window_get_position (window, &rect.x, &rect.y);
|
||||
meta_window_get_outer_rect (window, &rect);
|
||||
}
|
||||
|
||||
switch (grab_op)
|
||||
|
Reference in New Issue
Block a user