Compare commits

...

7 Commits

Author SHA1 Message Date
Florian Müllner
1d56aac156 Bump version to 3.20.0
Update NEWS.
2016-03-22 18:17:09 +01:00
Jasper St. Pierre
f95f3b1ca5 Update .gitignore 2016-03-21 14:58:09 -07:00
Jasper St. Pierre
3a4ae679ea common: Remove META_LAYER_FOCUSED_WINDOW
Usage of this was removed 14 years ago in 25ca0e2. Let's remove the
constant, too.
2016-03-21 13:45:11 -07:00
Jasper St. Pierre
190357c561 surface-actor-x11: Unredirect ARGB32 windows with full opaque regions
We can detect that these windows are already fully opaque, so allow them
to unredirect. Allows unredirecting Totem during video playback, giving
a significant speed boost.
2016-03-21 13:44:44 -07:00
Jonas Ådahl
92c8a51ba6 bell: Fallback to fullscreen flash if no window was passed
We allow to flash without providing a window. In this case we should
flash the whole screen, instead of crashing.

https://bugzilla.gnome.org/show_bug.cgi?id=763858
2016-03-21 11:38:31 +08:00
Ask Hjorth Larsen
8b1195be1a Updated Danish translation 2016-03-20 23:17:25 +01:00
Milo Casagrande
e427aa3606 Updated Italian translation 2016-03-17 20:26:05 +00:00
12 changed files with 117 additions and 62 deletions

1
.gitignore vendored
View File

@@ -46,6 +46,7 @@ mutter
mutter-restart-helper
mutter-test-client
mutter-test-runner
mutter-test-unit-tests
mutter-all.test
org.gnome.mutter.gschema.valid
org.gnome.mutter.gschema.xml

10
NEWS
View File

@@ -1,3 +1,13 @@
3.20.0
======
* Fix crash when using visual bell [Jonas; #763858]
Contributors:
Jonas Ådahl, Jasper St. Pierre
Translations:
Milo Casagrande [it], Ask Hjorth Larsen [da]
3.19.92
=======
* Add system bell support on wayland [Jonas; #763284]

View File

@@ -1,8 +1,8 @@
AC_PREREQ(2.62)
m4_define([mutter_major_version], [3])
m4_define([mutter_minor_version], [19])
m4_define([mutter_micro_version], [92])
m4_define([mutter_minor_version], [20])
m4_define([mutter_micro_version], [0])
m4_define([mutter_version],
[mutter_major_version.mutter_minor_version.mutter_micro_version])

View File

@@ -1,5 +1,5 @@
# Danish translation of Mutter.
# Copyright (C) 2002-2009, 2012-2015.
# Copyright (C) 2002-2009, 2012-2016.
# This file is distributed under the same license as the metacity package.
# Kjartan Maraas <kmaraas@gnome.org>, 2002
# Keld simonsen <keld@dkuug.dk>, 2002
@@ -8,7 +8,7 @@
# Lasse Bang Mikkelsen <lbm@fatalerror.dk>, 2006.
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2008.
# Joe Hansen <joedalton2@yahoo.dk>, 2011.
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2007, 09, 10, 12, 13, 14, 15.
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2007, 09, 10, 12, 13, 14, 15, 16.
#
# Konventioner:
#
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-03-21 16:30+0100\n"
"PO-Revision-Date: 2015-03-14 17:01+0100\n"
"POT-Creation-Date: 2016-03-20 23:17+0100\n"
"PO-Revision-Date: 2016-03-20 21:46+0100\n"
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -291,7 +291,7 @@ msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs"
msgstr "Fastgør modaldialogvinduer"
msgstr "Fastgør modaldialoger"
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
msgid ""
@@ -299,9 +299,8 @@ msgid ""
"attached to the titlebar of the parent window and are moved together with "
"the parent window."
msgstr ""
"Når sand, vil modaldialogvinduer hænge sammen med titellinjen af "
"ophavsvinduet og flyttes sammen med dette, frem for at have uafhængige "
"titellinjer."
"Når sand, vil modaldialoger hænge sammen med titellinjen af ophavsvinduet og "
"flyttes sammen med dette, frem for at have uafhængige titellinjer."
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
@@ -463,22 +462,22 @@ msgstr "Skift til VT 11"
msgid "Switch to VT 12"
msgstr "Skift til VT 12"
#: ../src/backends/meta-monitor-manager.c:364
#: ../src/backends/meta-monitor-manager.c:518
msgid "Built-in display"
msgstr "Indbygget skærm"
#: ../src/backends/meta-monitor-manager.c:391
#: ../src/backends/meta-monitor-manager.c:544
msgid "Unknown"
msgstr "Ukendt"
#: ../src/backends/meta-monitor-manager.c:393
#: ../src/backends/meta-monitor-manager.c:546
msgid "Unknown Display"
msgstr "Ukendt skærm"
#. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"'
#.
#: ../src/backends/meta-monitor-manager.c:401
#: ../src/backends/meta-monitor-manager.c:554
#, c-format
msgid "%s %s"
msgstr "%s %s"
@@ -493,7 +492,7 @@ msgid ""
msgstr ""
"En anden komposithåndtering kører allerede på skærm %i på terminal \"%s\"."
#: ../src/core/bell.c:185
#: ../src/core/bell.c:192
msgid "Bell event"
msgstr "Bip-hændelse"
@@ -522,40 +521,44 @@ msgstr "_Vent"
msgid "_Force Quit"
msgstr "_Tving til at afslutte"
#: ../src/core/display.c:562
#: ../src/core/display.c:555
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Kunne ikke åbne X Window System-terminalen \"%s\"\n"
#: ../src/core/main.c:176
#: ../src/core/main.c:181
msgid "Disable connection to session manager"
msgstr "Deaktivér forbindelse til sessionshåndtering"
#: ../src/core/main.c:182
#: ../src/core/main.c:187
msgid "Replace the running window manager"
msgstr "Erstat den kørende vindueshåndtering"
#: ../src/core/main.c:188
#: ../src/core/main.c:193
msgid "Specify session management ID"
msgstr "Angiv sessionhåndterings-id"
#: ../src/core/main.c:193
#: ../src/core/main.c:198
msgid "X Display to use"
msgstr "X-skærm som bruges"
#: ../src/core/main.c:199
#: ../src/core/main.c:204
msgid "Initialize session from savefile"
msgstr "Initialisér session fra gemt fil"
#: ../src/core/main.c:205
#: ../src/core/main.c:210
msgid "Make X calls synchronous"
msgstr "Gør kald til X synkrone"
#: ../src/core/main.c:212
#: ../src/core/main.c:217
msgid "Run as a wayland compositor"
msgstr "Kør som en wayland-kompositor"
#: ../src/core/main.c:220
#: ../src/core/main.c:223
msgid "Run as a nested compositor"
msgstr "Kør som en indlejret kompositor"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested"
msgstr "Kør som fuld displayserver, frem for indlejret"
@@ -582,12 +585,12 @@ msgstr "Vis version"
msgid "Mutter plugin to use"
msgstr "Mutter-udvidelsesmodul der skal bruges"
#: ../src/core/prefs.c:2004
#: ../src/core/prefs.c:1997
#, c-format
msgid "Workspace %d"
msgstr "Arbejdsområde %d"
#: ../src/core/screen.c:525
#: ../src/core/screen.c:521
#, c-format
msgid ""
"Display \"%s\" already has a window manager; try using the --replace option "
@@ -596,12 +599,12 @@ msgstr ""
"Terminalen \"%s\" har allerede en vindueshåndtering; prøv tilvalget --"
"replace for at erstatte den aktuelle vindueshåndtering."
#: ../src/core/screen.c:607
#: ../src/core/screen.c:603
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Skærm %d på terminal \"%s\" er ugyldig\n"
#: ../src/core/util.c:118
#: ../src/core/util.c:121
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter blev kompileret uden understøttelse for uddybende tilstand\n"
@@ -1336,9 +1339,6 @@ msgstr "%s (på %s)"
#~ msgid "_Dialog"
#~ msgstr "_Dialog"
#~ msgid "_Modal dialog"
#~ msgstr "_Modaldialogvindue"
#~ msgid "_Utility"
#~ msgstr "_Værktøj"
@@ -1402,9 +1402,6 @@ msgstr "%s (på %s)"
#~ msgid "Border"
#~ msgstr "Ramme"
#~ msgid "Attached Modal Dialog"
#~ msgstr "Fastgjort modaldialogvindue"
#~ msgid "Button layout test %d"
#~ msgstr "Knaplayouttest %d"

View File

@@ -5,15 +5,15 @@
# Pier Luigi Fiorini <plfiorini@libero.it>, 2002.
# Lapo Calamandrei <lapo.calamandrei@virgilio.it>, 2003.
# Luca Ferretti <lferrett@gnome.org>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
# Milo Casagrande <milo@milo.name>, 2012, 2013, 2014, 2015.
# Milo Casagrande <milo@milo.name>, 2012, 2013, 2014, 2015, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-03-04 23:11+0000\n"
"PO-Revision-Date: 2015-03-05 09:16+0100\n"
"POT-Creation-Date: 2016-03-17 13:44+0000\n"
"PO-Revision-Date: 2016-03-17 21:24+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Generator: Poedit 1.7.4\n"
"X-Generator: Poedit 1.8.7\n"
#: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
@@ -466,22 +466,22 @@ msgstr "Passa al VT 11"
msgid "Switch to VT 12"
msgstr "Passa al VT 12"
#: ../src/backends/meta-monitor-manager.c:364
#: ../src/backends/meta-monitor-manager.c:518
msgid "Built-in display"
msgstr "Display integrato"
#: ../src/backends/meta-monitor-manager.c:391
#: ../src/backends/meta-monitor-manager.c:544
msgid "Unknown"
msgstr "Sconosciuto"
#: ../src/backends/meta-monitor-manager.c:393
#: ../src/backends/meta-monitor-manager.c:546
msgid "Unknown Display"
msgstr "Display sconosciuto"
#. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"'
#.
#: ../src/backends/meta-monitor-manager.c:401
#: ../src/backends/meta-monitor-manager.c:554
#, c-format
msgid "%s %s"
msgstr "%s %s"
@@ -497,7 +497,7 @@ msgstr ""
"Un altro compositing manager è già in esecuzione sullo schermo %i sul "
"display «%s»."
#: ../src/core/bell.c:185
#: ../src/core/bell.c:192
msgid "Bell event"
msgstr "Evento campanella"
@@ -526,40 +526,44 @@ msgstr "_Attendi"
msgid "_Force Quit"
msgstr "_Forza uscita"
#: ../src/core/display.c:562
#: ../src/core/display.c:555
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Apertura del display «%s» di X Window System non riuscita\n"
#: ../src/core/main.c:176
#: ../src/core/main.c:181
msgid "Disable connection to session manager"
msgstr "Disabilita la connessione al gestore di sessione"
#: ../src/core/main.c:182
#: ../src/core/main.c:187
msgid "Replace the running window manager"
msgstr "Sostituisce il window manager in esecuzione"
#: ../src/core/main.c:188
#: ../src/core/main.c:193
msgid "Specify session management ID"
msgstr "Specifica l'ID di gestione sessione"
#: ../src/core/main.c:193
#: ../src/core/main.c:198
msgid "X Display to use"
msgstr "Display X da usare"
#: ../src/core/main.c:199
#: ../src/core/main.c:204
msgid "Initialize session from savefile"
msgstr "Inizializza la sessione da file salvato"
#: ../src/core/main.c:205
#: ../src/core/main.c:210
msgid "Make X calls synchronous"
msgstr "Rende le chiamate X sincrone"
#: ../src/core/main.c:212
#: ../src/core/main.c:217
msgid "Run as a wayland compositor"
msgstr "Esegui come compositor Wayland"
#: ../src/core/main.c:220
#: ../src/core/main.c:223
msgid "Run as a nested compositor"
msgstr "Esegui come compositor annidato"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested"
msgstr "Esegui come display server invece che annidato"
@@ -586,12 +590,12 @@ msgstr "Stampa la versione"
msgid "Mutter plugin to use"
msgstr "Plugin Mutter da usare"
#: ../src/core/prefs.c:2004
#: ../src/core/prefs.c:1997
#, c-format
msgid "Workspace %d"
msgstr "Spazio di lavoro %d"
#: ../src/core/screen.c:525
#: ../src/core/screen.c:521
#, c-format
msgid ""
"Display \"%s\" already has a window manager; try using the --replace option "
@@ -600,12 +604,12 @@ msgstr ""
"Il display «%s» ha già un window manager; provare a utilizzare l'opzione --"
"replace per sostituirlo."
#: ../src/core/screen.c:607
#: ../src/core/screen.c:603
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Lo schermo %d nel display «%s» non è valido\n"
#: ../src/core/util.c:118
#: ../src/core/util.c:121
msgid "Mutter was compiled without support for verbose mode\n"
msgstr ""
"Mutter è stato compilato escludendo il supporto per la modalità prolissa\n"

View File

@@ -36,5 +36,6 @@ void meta_shaped_texture_set_fallback_size (MetaShapedTexture *stex,
guint fallback_width,
guint fallback_height);
gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
cairo_region_t * meta_shaped_texture_get_opaque_region (MetaShapedTexture *stex);
#endif

View File

@@ -790,6 +790,13 @@ meta_shaped_texture_set_opaque_region (MetaShapedTexture *stex,
priv->opaque_region = NULL;
}
cairo_region_t *
meta_shaped_texture_get_opaque_region (MetaShapedTexture *stex)
{
MetaShapedTexturePrivate *priv = stex->priv;
return priv->opaque_region;
}
/**
* meta_shaped_texture_get_image:
* @stex: A #MetaShapedTexture

View File

@@ -238,6 +238,33 @@ meta_surface_actor_x11_is_visible (MetaSurfaceActor *actor)
return is_visible (self);
}
static gboolean
meta_surface_actor_x11_is_opaque (MetaSurfaceActor *actor)
{
MetaSurfaceActorX11 *self = META_SURFACE_ACTOR_X11 (actor);
MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
/* If we're not ARGB32, then we're opaque. */
if (!meta_surface_actor_is_argb32 (actor))
return TRUE;
cairo_region_t *opaque_region = meta_surface_actor_get_opaque_region (actor);
/* If we have no opaque region, then no pixels are opaque. */
if (!opaque_region)
return FALSE;
MetaWindow *window = priv->window;
cairo_rectangle_int_t client_area;
meta_window_get_client_area_rect (window, &client_area);
/* Otherwise, check if our opaque region covers our entire surface. */
if (cairo_region_contains_rectangle (opaque_region, &client_area) == CAIRO_REGION_OVERLAP_IN)
return TRUE;
return FALSE;
}
static gboolean
meta_surface_actor_x11_should_unredirect (MetaSurfaceActor *actor)
{
@@ -255,15 +282,15 @@ meta_surface_actor_x11_should_unredirect (MetaSurfaceActor *actor)
if (window->shape_region != NULL)
return FALSE;
if (meta_surface_actor_is_argb32 (actor) && !meta_window_requested_bypass_compositor (window))
return FALSE;
if (!meta_window_is_monitor_sized (window))
return FALSE;
if (meta_window_requested_bypass_compositor (window))
return TRUE;
if (!meta_surface_actor_x11_is_opaque (actor))
return FALSE;
if (meta_window_is_override_redirect (window))
return TRUE;

View File

@@ -235,6 +235,13 @@ meta_surface_actor_set_opaque_region (MetaSurfaceActor *self,
meta_shaped_texture_set_opaque_region (priv->texture, region);
}
cairo_region_t *
meta_surface_actor_get_opaque_region (MetaSurfaceActor *actor)
{
MetaSurfaceActorPrivate *priv = actor->priv;
return meta_shaped_texture_get_opaque_region (priv->texture);
}
static gboolean
is_frozen (MetaSurfaceActor *self)
{

View File

@@ -60,6 +60,7 @@ void meta_surface_actor_set_input_region (MetaSurfaceActor *self,
cairo_region_t *region);
void meta_surface_actor_set_opaque_region (MetaSurfaceActor *self,
cairo_region_t *region);
cairo_region_t * meta_surface_actor_get_opaque_region (MetaSurfaceActor *self);
void meta_surface_actor_process_damage (MetaSurfaceActor *actor,
int x, int y, int width, int height);

View File

@@ -152,8 +152,10 @@ bell_flash_frame (MetaDisplay *display,
{
if (window && window->frame)
bell_flash_window_frame (window);
else
else if (window)
bell_flash_window (window);
else
bell_flash_fullscreen (display);
}
/**

View File

@@ -520,7 +520,6 @@ void meta_frame_borders_clear (MetaFrameBorders *self);
* @META_LAYER_TOP: Top layer
* @META_LAYER_DOCK: Dock layer
* @META_LAYER_FULLSCREEN: Fullscreen layer
* @META_LAYER_FOCUSED_WINDOW: Focused window layer
* @META_LAYER_OVERRIDE_REDIRECT: Override-redirect layer
* @META_LAYER_LAST: Marks the end of the #MetaStackLayer enumeration
*
@@ -535,7 +534,6 @@ typedef enum
META_LAYER_TOP = 4, /* Same as DOCK; see EWMH and bug 330717 */
META_LAYER_DOCK = 4,
META_LAYER_FULLSCREEN = 5,
META_LAYER_FOCUSED_WINDOW = 6,
META_LAYER_OVERRIDE_REDIRECT = 7,
META_LAYER_LAST = 8
} MetaStackLayer;