diff options
-rw-r--r-- | ChangeLog | 83 | ||||
-rw-r--r-- | NEWS | 42 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | po/ChangeLog | 12 | ||||
-rw-r--r-- | po/es.po | 30 | ||||
-rw-r--r-- | po/oc.po | 52 | ||||
-rw-r--r-- | po/sl.po | 43 | ||||
-rw-r--r-- | po/sv.po | 34 | ||||
-rw-r--r-- | src/api.c | 55 | ||||
-rw-r--r-- | src/api.h | 64 | ||||
-rw-r--r-- | src/colors.c | 11 | ||||
-rw-r--r-- | src/colors.h | 6 | ||||
-rw-r--r-- | src/main.c | 17 | ||||
-rw-r--r-- | src/tabpopup.c | 15 | ||||
-rw-r--r-- | src/theme-parser.c | 44 | ||||
-rw-r--r-- | src/window-props.c | 4 | ||||
-rw-r--r-- | src/window.c | 69 |
17 files changed, 361 insertions, 222 deletions
@@ -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. @@ -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. @@ -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 %" @@ -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 "" @@ -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" @@ -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); @@ -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 |