summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Holmes <iain@src.gnome.org>2007-11-22 01:22:09 +0000
committerIain Holmes <iain@src.gnome.org>2007-11-22 01:22:09 +0000
commitfb111d00bc1a44fe49bd2ec179a9e831c19fb1e6 (patch)
tree7ff9c298d5f3cbc9ae095f89daa5dd512aa78e02
parent001205a3c9b1204fde3dff61280dbe7c5fe00968 (diff)
downloadmetacity-fb111d00bc1a44fe49bd2ec179a9e831c19fb1e6.tar.gz
Update to match trunk revision 3425
svn path=/branches/iains-blingtastic-bucket-o-bling/; revision=3426
-rw-r--r--ChangeLog83
-rw-r--r--NEWS42
-rw-r--r--configure.in2
-rw-r--r--po/ChangeLog12
-rw-r--r--po/es.po30
-rw-r--r--po/oc.po52
-rw-r--r--po/sl.po43
-rw-r--r--po/sv.po34
-rw-r--r--src/api.c55
-rw-r--r--src/api.h64
-rw-r--r--src/colors.c11
-rw-r--r--src/colors.h6
-rw-r--r--src/main.c17
-rw-r--r--src/tabpopup.c15
-rw-r--r--src/theme-parser.c44
-rw-r--r--src/window-props.c4
-rw-r--r--src/window.c69
17 files changed, 361 insertions, 222 deletions
diff --git a/ChangeLog b/ChangeLog
index c971fab5..67bdc551 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,85 @@
-2207-10-30 iain Holmes <iain@gnome.org>
+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.
diff --git a/NEWS b/NEWS
index afec9d06..406b5081 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,45 @@
+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
======
diff --git a/configure.in b/configure.in
index beb9cba5..1faa651e 100644
--- a/configure.in
+++ b/configure.in
@@ -4,7 +4,7 @@ m4_define([metacity_major_version], [2])
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], [1])
+m4_define([metacity_micro_version], [3])
m4_define([metacity_version],
[metacity_major_version.metacity_minor_version.metacity_micro_version])
diff --git a/po/ChangeLog b/po/ChangeLog
index 1f5bb7dc..e61bb6ca 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,15 @@
+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/es.po: Updated Spanish translation
+
2007-10-25 Matej Urbančič <mateju@svn.gnome.org>
* sl.po: Updated Slovenian translation.
diff --git a/po/es.po b/po/es.po
index 746fce5d..9f7fc0e2 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity.HEAD.es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-08-07 03:38+0100\n"
-"PO-Revision-Date: 2007-08-07 12:18+0200\n"
+"POT-Creation-Date: 2007-10-30 18:12+0000\n"
+"PO-Revision-Date: 2007-11-01 14:21+0100\n"
"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
"Language-Team: Spanish <traductores@es.gnome.org>\n"
"MIME-Version: 1.0\n"
@@ -181,43 +181,47 @@ msgstr ""
"condiciones de copia. NO se proporciona ninguna garantía; ni de\n"
"MERCANTILIDAD O DE IDONEIDAD PARA UN PROPÓSITO PARTICULAR.\n"
-#: ../src/main.c:171
+#: ../src/main.c:172
msgid "Disable connection to session manager"
msgstr "Desactivar conexión al gestor de sesión"
-#: ../src/main.c:177
+#: ../src/main.c:178
msgid "Replace the running window manager with Metacity"
msgstr "Reemplazar el gestor de ventanas en ejecución por Metacity"
-#: ../src/main.c:183
+#: ../src/main.c:184
msgid "Specify session management ID"
msgstr "Especificar el ID se gestión de sesión"
-#: ../src/main.c:188
+#: ../src/main.c:189
msgid "X Display to use"
msgstr "Pantalla X que usar"
-#: ../src/main.c:194
+#: ../src/main.c:195
msgid "Initialize session from savefile"
msgstr "Inicializar sesión desde el archivo de salvaguarda"
-#: ../src/main.c:200
+#: ../src/main.c:201
msgid "Print version"
msgstr "Imprimir versión"
-#: ../src/main.c:353
+#: ../src/main.c:207
+msgid "Make X calls synchronous"
+msgstr "Hacer que las llamadas a las X sean síncronas"
+
+#: ../src/main.c:361
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Falló al inspeccionar el directorio de temas: %s\n"
-#: ../src/main.c:369
+#: ../src/main.c:377
#, c-format
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr ""
"No se ha podido encontrar un tema. Asegúrese de que %s existe y contiene los "
"temas usuales.\n"
-#: ../src/main.c:429
+#: ../src/main.c:437
#, c-format
msgid "Failed to restart: %s\n"
msgstr "No se pudo reiniciar: %s\n"
@@ -3657,7 +3661,7 @@ msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "WM_TRANSIENT_FOR inválido para la ventana 0x%lx especificada para %s.\n"
#. first time through
-#: ../src/window.c:5540
+#: ../src/window.c:5601
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -3673,7 +3677,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
-#: ../src/window.c:6105
+#: ../src/window.c:6166
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
diff --git a/po/oc.po b/po/oc.po
index 7b341689..9a5d8c4b 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -1,21 +1,24 @@
+# translation of oc.po to Occitan
# Occitan translation of metacity.
-# Copyright (C) 2002-2006 Free Software Foundation, Inc.
+# Copyright (C) 2002-2006, 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the metacity package.
#
# Yannig MARCHEGAY (yannig@marchegay.org) - 2006-2007
#
+# Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: metacity 2.16.5\n"
+"Project-Id-Version: oc\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-08-21 12:15+0100\n"
-"PO-Revision-Date: 2007-09-01 19:08+0200\n"
-"Last-Translator: Yannig MARCHEGAY (Kokoyaya) <yannig@marchegay.org>\n"
-"Language-Team: Occitan (post 1500) <ubuntu-l10n-oci@lists.ubuntu.com>\n"
+"PO-Revision-Date: 2007-11-20 14:32+0100\n"
+"Last-Translator: Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>\n"
+"Language-Team: Occitan <ubuntu-l10n-oci@lists.ubuntu.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);"
+"X-Generator: KBabel 1.11.4\n"
#: ../src/50-metacity-desktop-key.xml.in.h:1
msgid "Desktop"
@@ -63,8 +66,7 @@ msgstr ""
#: ../src/delete.c:350
#, 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 ""
#: ../src/delete.c:459
@@ -196,8 +198,7 @@ msgstr ""
#: ../src/main.c:369
#, c-format
-msgid ""
-"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
+msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr ""
#: ../src/main.c:429
@@ -1876,8 +1877,7 @@ msgstr ""
#: ../src/screen.c:453
#, 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:511
@@ -2093,8 +2093,7 @@ msgstr ""
#: ../src/theme-parser.c:1414 ../src/theme-parser.c:1428
#: ../src/theme-parser.c:1487
-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:1437
@@ -2382,8 +2381,7 @@ msgstr ""
#: ../src/theme-parser.c:3639
#, c-format
-msgid ""
-"Should not have \"resize\" attribute on <%s> element for maximized states"
+msgid "Should not have \"resize\" attribute on <%s> element for maximized states"
msgstr ""
#: ../src/theme-parser.c:3653 ../src/theme-parser.c:3675
@@ -2421,8 +2419,7 @@ msgstr ""
#: ../src/theme-parser.c:3869
#, 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:3874
@@ -2432,8 +2429,7 @@ msgstr ""
#: ../src/theme-parser.c:3886
#, 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:3908
@@ -2766,8 +2762,7 @@ msgstr ""
#: ../src/theme.c:1187
#, 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:1198
@@ -2818,14 +2813,12 @@ msgid "Coordinate expression results in division by zero"
msgstr ""
#: ../src/theme.c:1850
-msgid ""
-"Coordinate expression tries to use mod operator on a floating-point number"
+msgid "Coordinate expression tries to use mod operator on a floating-point number"
msgstr ""
#: ../src/theme.c:1906
#, 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:1915
@@ -2878,8 +2871,7 @@ msgstr ""
#: ../src/theme.c:4422 ../src/theme.c:4447
#, c-format
-msgid ""
-"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
+msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
#: ../src/theme.c:4493
@@ -2902,8 +2894,7 @@ msgstr ""
#: ../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"
+msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr ""
#: ../src/theme.c:5014 ../src/theme.c:5076 ../src/theme.c:5139
@@ -2996,7 +2987,6 @@ msgstr ""
#: ../src/xprops.c:484
#, 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 ""
diff --git a/po/sl.po b/po/sl.po
index c2d2f97a..f7366651 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,4 +1,3 @@
-# Copyright (C) 2002-2006 Free Software Foundation, Inc.
# This file is distributed under the same license as the metacity package.
#
# Andraz Tori <andraz.tori1@guest.arnes.si>, 2000.
@@ -10,7 +9,7 @@ msgstr ""
"Project-Id-Version: metacity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-10-03 03:39+0100\n"
-"PO-Revision-Date: 2007-10-25 15:03+0100\n"
+"PO-Revision-Date: 2007-11-19 15:25+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian <sl@li.org>\n"
"MIME-Version: 1.0\n"
@@ -93,8 +92,8 @@ msgid ""
"most likely the X server was shut down or you killed/destroyed\n"
"the window manager.\n"
msgstr ""
-"Izgubil sem povezavo z zaslonom '%s';\n"
-"verjetno se je strežnik X ugasnil ali pa ste ubili/uničili\n"
+"Izgubljena povezava z zaslonom '%s';\n"
+"najverjetneje se je strežnik X ugasnil ali pa prisilno izklopljen\n"
"upravljalnik oken.\n"
#: ../src/errors.c:278
@@ -114,7 +113,7 @@ msgstr "Menu oken"
# G:0 K:1 O:0
#: ../src/frames.c:1084
msgid "Minimize Window"
-msgstr "Pomanjšaj okno"
+msgstr "Skrči okno"
#: ../src/frames.c:1087
msgid "Maximize Window"
@@ -184,41 +183,45 @@ msgstr ""
"To je prosto programje; za pogoje kopiranja si poglejte izvorno kodo.\n"
"Program prihaja BREZ KAKRŠNIHKOLI ZAGOTOVIL\n"
-#: ../src/main.c:171
+#: ../src/main.c:172
msgid "Disable connection to session manager"
msgstr "Onemogoči povezavo z upraviteljem sej"
-#: ../src/main.c:177
+#: ../src/main.c:178
msgid "Replace the running window manager with Metacity"
msgstr "Zamenjaj trenutnega upravitelja oken z Metacity"
-#: ../src/main.c:183
+#: ../src/main.c:184
msgid "Specify session management ID"
msgstr "Navedite ID upravljanja seje"
-#: ../src/main.c:188
+#: ../src/main.c:189
msgid "X Display to use"
msgstr "Zaslon X za uporabo"
-#: ../src/main.c:194
+#: ../src/main.c:195
msgid "Initialize session from savefile"
msgstr "Zagon seje iz datoteke"
-#: ../src/main.c:200
+#: ../src/main.c:201
msgid "Print version"
msgstr "Izpiši različico"
-#: ../src/main.c:353
+#: ../src/main.c:207
+msgid "Make X calls synchronous"
+msgstr "Naredi klice X usklajene"
+
+#: ../src/main.c:361
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Ni mogoče preiskati mape tem: %s\n"
-#: ../src/main.c:369
+#: ../src/main.c:377
#, c-format
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr "Ni mogoče najti teme! Prepričajte se, da %s obstaja in vsebuje običajne teme.\n"
-#: ../src/main.c:429
+#: ../src/main.c:452
#, c-format
msgid "Failed to restart: %s\n"
msgstr "Ni mogoče znova pognati: %s\n"
@@ -1570,7 +1573,7 @@ msgstr "ime <%s> \"%s\" je uporabljeno drugič"
#: ../src/theme-parser.c:1158
#, c-format
msgid "<%s> parent \"%s\" has not been defined"
-msgstr "starš <%s> \"%s\" ni bil naveden"
+msgstr "nadrejeni predmet <%s> \"%s\" ni bil naveden"
#: ../src/theme-parser.c:1060
#, c-format
@@ -1580,7 +1583,7 @@ msgstr "geometrija <%s> \"%s\" ni bila navedena"
#: ../src/theme-parser.c:1073
#, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry"
-msgstr "<%s> mora navesti ali geometrijo ali starša, ki ima geometrijo"
+msgstr "<%s> mora navesti ali geometrijo ali nadrejeni predmet, ki ima geometrijo"
#: ../src/theme-parser.c:1115
msgid "You must specify a background for an alpha value to be meaningful"
@@ -2050,12 +2053,12 @@ msgstr "Za to temo je element <date> naveden dvakrat"
msgid "<description> specified twice for this theme"
msgstr "Za to temo je element <description> naveden dvakrat"
-#: ../src/theme-parser.c:4573
+#: ../src/theme-parser.c:4613
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Ni mogoče najti veljavne datoteke za temo %s\n"
-#: ../src/theme-parser.c:4629
+#: ../src/theme-parser.c:4669
#, c-format
msgid "Theme file %s did not contain a root <metacity_theme> element"
msgstr "Datoteka teme %s ne vsebuje korenskega elementa <metacity_theme>"
@@ -2521,7 +2524,7 @@ msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Neveljaven WM_TRANSIENT_FOR za okno 0x%lx naveden za %s.\n"
#. first time through
-#: ../src/window.c:5601
+#: ../src/window.c:5650
#, c-format
msgid "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER window as specified in the ICCCM.\n"
msgstr "Okno %s nastavi svoj SM_CLIENT_ID, namesto, da bi nastavilo WM_CLIENT_LEADER kot je zavedeno v ICCCM.\n"
@@ -2533,7 +2536,7 @@ msgstr "Okno %s nastavi svoj SM_CLIENT_ID, namesto, da bi nastavilo WM_CLIENT_LE
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
-#: ../src/window.c:6166
+#: ../src/window.c:6215
#, c-format
msgid "Window %s sets an MWM hint indicating it isn't resizable, but sets min size %d x %d and max size %d x %d; this doesn't make much sense.\n"
msgstr "Okno %s določi namig MWM, ki pove, da ni mogoče spremeniti velikosti, hkrati pa določi najmanjšo velikost na %d x %d in največjo na %d x %d; vrednost ni smiselna.\n"
diff --git a/po/sv.po b/po/sv.po
index 3311b145..74d186e5 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-08-11 12:50+0200\n"
-"PO-Revision-Date: 2007-08-11 12:50+0100\n"
+"POT-Creation-Date: 2007-11-08 12:30+0100\n"
+"PO-Revision-Date: 2007-11-08 12:31+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -177,41 +177,45 @@ msgstr ""
"Det här är fri programvara; se källkoden för kopieringsvillkor.\n"
"Det finns INGA garantier; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL.\n"
-#: ../src/main.c:171
+#: ../src/main.c:172
msgid "Disable connection to session manager"
msgstr "Inaktivera anslutning till sessionshanteraren"
-#: ../src/main.c:177
+#: ../src/main.c:178
msgid "Replace the running window manager with Metacity"
msgstr "Ersätt den körande fönsterhanteraren med Metacity"
-#: ../src/main.c:183
+#: ../src/main.c:184
msgid "Specify session management ID"
msgstr "Ange sessionshanteringsid"
-#: ../src/main.c:188
+#: ../src/main.c:189
msgid "X Display to use"
msgstr "X-display att använda"
-#: ../src/main.c:194
+#: ../src/main.c:195
msgid "Initialize session from savefile"
msgstr "Initiera session från sparandefil"
-#: ../src/main.c:200
+#: ../src/main.c:201
msgid "Print version"
msgstr "Skriv ut version"
-#: ../src/main.c:353
+#: ../src/main.c:207
+msgid "Make X calls synchronous"
+msgstr "Gör X-anrop synkrona"
+
+#: ../src/main.c:361
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Misslyckades med att genomsöka temakatalogen: %s\n"
-#: ../src/main.c:369
+#: ../src/main.c:377
#, c-format
msgid "Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr "Kunde inte hitta ett tema! Försäkra dig om att %s finns och innehåller vanliga teman.\n"
-#: ../src/main.c:429
+#: ../src/main.c:437
#, c-format
msgid "Failed to restart: %s\n"
msgstr "Misslyckades med att starta om: %s\n"
@@ -2539,10 +2543,10 @@ msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Ogiltigt WM_TRANSIENT_FOR-fönster 0x%lx angivet för %s.\n"
#. first time through
-#: ../src/window.c:5551
+#: ../src/window.c:5617
#, c-format
msgid "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER window as specified in the ICCCM.\n"
-msgstr "Fönster %s ställer in SM_CLIENT_ID på sig själv, istället för på WM_CLIENT_LEADER-fönstret som är angivet i ICCCM.\n"
+msgstr "Fönstret %s ställer in SM_CLIENT_ID på sig själv, istället för på WM_CLIENT_LEADER-fönstret som är angivet i ICCCM.\n"
#. We ignore mwm_has_resize_func because WM_NORMAL_HINTS is the
#. * authoritative source for that info. Some apps such as mplayer or
@@ -2551,10 +2555,10 @@ msgstr "Fönster %s ställer in SM_CLIENT_ID på sig själv, istället för på
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
-#: ../src/window.c:6116
+#: ../src/window.c:6182
#, c-format
msgid "Window %s sets an MWM hint indicating it isn't resizable, but sets min size %d x %d and max size %d x %d; this doesn't make much sense.\n"
-msgstr "Fönster %s ställer in ett MWM-tips som anger att det inte går att ändra storlek på, men ställer in minsta storleken %d × %d och största storleken %d × %d; detta verkar inte vettigt.\n"
+msgstr "Fönstret %s ställer in ett MWM-tips som anger att det inte går att ändra storlek på, men ställer in minsta storleken %d × %d och största storleken %d × %d; detta verkar inte vettigt.\n"
#: ../src/xprops.c:155
#, c-format
diff --git a/src/api.c b/src/api.c
deleted file mode 100644
index 5ce14618..00000000
--- a/src/api.c
+++ /dev/null
@@ -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);
-}
-
diff --git a/src/api.h b/src/api.h
deleted file mode 100644
index 6ad938b5..00000000
--- a/src/api.h
+++ /dev/null
@@ -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
diff --git a/src/colors.c b/src/colors.c
index 13340d5f..2110590a 100644
--- a/src/colors.c
+++ b/src/colors.c
@@ -23,6 +23,17 @@
#include "colors.h"
+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];
+};
static void
visual_decompose_mask (gulong mask,
diff --git a/src/colors.h b/src/colors.h
index 41bde10b..1bf47355 100644
--- a/src/colors.h
+++ b/src/colors.h
@@ -24,13 +24,17 @@
#ifndef META_COLORS_H
#define META_COLORS_H
+/* Colors/state stuff matches GTK.
+ */
+typedef struct _MetaUIColors MetaUIColors;
+
/* This stuff will all just be XlibRGB eventually. Right now
* it has a stub implementation.
*/
#include "screen.h"
#include "util.h"
-#include "api.h"
+
gulong meta_screen_get_x_pixel (MetaScreen *screen,
const PangoColor *color);
void meta_screen_init_visual_info (MetaScreen *screen);
diff --git a/src/main.c b/src/main.c
index e46cac12..8319fba7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -382,8 +382,23 @@ 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.
*/
diff --git a/src/tabpopup.c b/src/tabpopup.c
index e17c2a63..5a04e449 100644
--- a/src/tabpopup.c
+++ b/src/tabpopup.c
@@ -145,11 +145,6 @@ tab_entry_new (const MetaTabEntry *entry,
gboolean outline)
{
TabEntry *te;
-
- /* FIXME: make max title size some random relationship to the
- * screen, avg char width of our font would be a better number.
- */
- int max_chars_per_title = screen_width / 15;
te = g_new (TabEntry, 1);
te->key = entry->key;
@@ -160,7 +155,7 @@ tab_entry_new (const MetaTabEntry *entry,
gchar *tmp;
gchar *formatter = "%s";
- str = meta_g_utf8_strndup (entry->title, max_chars_per_title);
+ str = meta_g_utf8_strndup (entry->title, 4096);
if (entry->hidden)
{
@@ -377,6 +372,14 @@ meta_ui_tab_popup_new (const MetaTabEntry *entries,
/* remove all the temporary text */
gtk_label_set_text (GTK_LABEL (popup->label), "");
+ /* Make it so that we ellipsize if the text is too long */
+ gtk_label_set_ellipsize (GTK_LABEL (popup->label), PANGO_ELLIPSIZE_END);
+
+ /* Limit the window size to no bigger than screen_width/4 */
+ if (max_label_width>(screen_width/4))
+ {
+ max_label_width = screen_width/4;
+ }
max_label_width += 20; /* add random padding */
diff --git a/src/theme-parser.c b/src/theme-parser.c
index ae11b838..1c57950e 100644
--- a/src/theme-parser.c
+++ b/src/theme-parser.c
@@ -4466,6 +4466,8 @@ meta_theme_load (const char *theme_name,
char *theme_dir;
MetaTheme *retval;
guint version;
+ const gchar* const* xdg_data_dirs;
+ int i;
text = NULL;
length = 0;
@@ -4511,8 +4513,9 @@ meta_theme_load (const char *theme_name,
gchar *theme_filename = g_strdup_printf (METACITY_THEME_FILENAME_FORMAT,
version);
- /* We try in home dir, then system dir for themes */
-
+ /* We try first in home dir, XDG_DATA_DIRS, then system dir for themes */
+
+ /* Try home dir for themes */
theme_dir = g_build_filename (g_get_home_dir (),
".themes",
theme_name,
@@ -4537,6 +4540,43 @@ meta_theme_load (const char *theme_name,
theme_file = NULL;
}
+ /* Try each XDG_DATA_DIRS for theme */
+ xdg_data_dirs = g_get_system_data_dirs();
+ for(i = 0; xdg_data_dirs[i] != NULL; i++)
+ {
+ if (text == NULL)
+ {
+ theme_dir = g_build_filename (xdg_data_dirs[i],
+ "themes",
+ theme_name,
+ THEME_SUBDIR,
+ NULL);
+
+ theme_file = g_build_filename (theme_dir,
+ theme_filename,
+ NULL);
+
+ error = NULL;
+ if (!g_file_get_contents (theme_file,
+ &text,
+ &length,
+ &error))
+ {
+ meta_topic (META_DEBUG_THEMES, "Failed to read theme from file %s: %s\n",
+ theme_file, error->message);
+ g_error_free (error);
+ g_free (theme_dir);
+ g_free (theme_file);
+ theme_file = NULL;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ /* Look for themes in METACITY_DATADIR */
if (text == NULL)
{
theme_dir = g_build_filename (METACITY_DATADIR,
diff --git a/src/window-props.c b/src/window-props.c
index 3602395a..48c5371d 100644
--- a/src/window-props.c
+++ b/src/window-props.c
@@ -278,8 +278,8 @@ reload_net_wm_user_time_window (MetaWindow *window,
*/
meta_window_reload_property_from_xwindow (
window,
- window->display->atom_net_wm_user_time,
- window->user_time_window);
+ window->user_time_window,
+ window->display->atom_net_wm_user_time);
}
}
}
diff --git a/src/window.c b/src/window.c
index a8ceda62..bcedd84e 100644
--- a/src/window.c
+++ b/src/window.c
@@ -75,6 +75,7 @@ static void meta_window_show (MetaWindow *window);
static void meta_window_hide (MetaWindow *window);
static void meta_window_save_rect (MetaWindow *window);
+static void meta_window_save_user_rect (MetaWindow *window);
static void meta_window_move_resize_internal (MetaWindow *window,
MetaMoveResizeFlags flags,
@@ -613,6 +614,33 @@ meta_window_new_with_attrs (MetaDisplay *display,
* based on startup notification
*/
meta_screen_apply_startup_properties (window->screen, window);
+
+ /* Try to get a "launch timestamp" for the window. If the window is
+ * a transient, we'd like to be able to get a last-usage timestamp
+ * from the parent window. If the window has no parent, there isn't
+ * much we can do...except record the current time so that any children
+ * can use this time as a fallback.
+ */
+ if (!window->net_wm_user_time_set) {
+ MetaWindow *parent = NULL;
+ if (window->xtransient_for)
+ parent = meta_display_lookup_x_window (window->display,
+ window->xtransient_for);
+
+ // First, maybe the app was launched with startup notification using an
+ // obsolete version of the spec; use that timestamp if it exists.
+ if (window->initial_timestamp_set)
+ // NOTE: Do NOT toggle net_wm_user_time_set to true; this is just
+ // being recorded as a fallback for potential transients
+ window->net_wm_user_time = window->initial_timestamp;
+ else if (parent != NULL)
+ meta_window_set_user_time(window, parent->net_wm_user_time);
+ else
+ // NOTE: Do NOT toggle net_wm_user_time_set to true; this is just
+ // being recorded as a fallback for potential transients
+ window->net_wm_user_time =
+ meta_display_get_current_time_roundtrip (window->display);
+ }
if (window->decorated)
meta_window_ensure_frame (window);
@@ -2028,7 +2056,7 @@ meta_window_show (MetaWindow *window)
place_on_top_on_map ? "does" : "does not");
/* Now, in some rare cases we should *not* put a new window on top.
- * These cases include certain types of windows showing for the firat
+ * These cases include certain types of windows showing for the first
* time, and any window which would be covered because of another window
* being set "above" ("always on top").
*
@@ -2038,13 +2066,10 @@ meta_window_show (MetaWindow *window)
* probably rather be a term in the "if" condition below.
*/
- if ( focus_window != NULL &&
- (
- (window->showing_for_first_time &&
- !place_on_top_on_map &&
- !takes_focus_on_map) ||
- window_would_be_covered (window))
- ) {
+ if ( focus_window != NULL && window->showing_for_first_time &&
+ ( (!place_on_top_on_map && !takes_focus_on_map) ||
+ window_would_be_covered (window) )
+ ) {
if (meta_window_is_ancestor_of_transient (focus_window, window))
{
/* This happens for error dialogs or alerts; these need to remain on
@@ -2407,6 +2432,30 @@ meta_window_save_rect (MetaWindow *window)
}
}
+static void
+meta_window_save_user_rect (MetaWindow *window)
+{
+ /* We do not save maximized or fullscreen dimensions, otherwise the
+ * window may snap back to those dimensions (Bug #461927). */
+ if (!(META_WINDOW_MAXIMIZED (window) || window->fullscreen))
+ {
+ MetaRectangle user_rect;
+
+ meta_window_get_client_root_coords (window, &user_rect);
+
+ if (!window->maximized_horizontally)
+ {
+ window->user_rect.x = user_rect.x;
+ window->user_rect.width = user_rect.width;
+ }
+ if (!window->maximized_vertically)
+ {
+ window->user_rect.y = user_rect.y;
+ window->user_rect.height = user_rect.height;
+ }
+ }
+}
+
void
meta_window_maximize_internal (MetaWindow *window,
MetaMaximizeFlags directions,
@@ -3482,7 +3531,7 @@ meta_window_move_resize_internal (MetaWindow *window,
* placement of the window.
*/
if (is_user_action || !window->placed)
- meta_window_get_client_root_coords (window, &window->user_rect);
+ meta_window_save_user_rect(window);
if (need_move_frame || need_resize_frame ||
need_move_client || need_resize_client)
@@ -4526,7 +4575,7 @@ meta_window_move_resize_request (MetaWindow *window,
*
* See also bug 426519.
*/
- meta_window_get_client_root_coords (window, &window->user_rect);
+ meta_window_save_user_rect(window);
}
gboolean