Compare commits

...

15 Commits

Author SHA1 Message Date
Florian Müllner
b850a8075f Bump version to 3.12.2
Update NEWS.
2014-05-14 10:43:26 +02:00
Giovanni Campagna
db0383d19f MetaIdleMonitorDBus: unref the objects after exporting them
The object manager already has a reference.

https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:09:35 +02:00
Giovanni Campagna
a175b3c947 default: free the option context after parsing
We don't need it, we should free it.

https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:09:12 +02:00
Giovanni Campagna
554be56639 MetaMonitorConfig: don't always restore the previous config when opening the laptop lid
Only do it if the current configuration was actually created
as the result of closing the laptop lid.

https://bugzilla.gnome.org/show_bug.cgi?id=725637
2014-05-06 21:31:46 +02:00
Giovanni Campagna
b4de2458ab MetaMonitorConfig: don't keep a previous config with the wrong outputs
We can only apply a configuration if its outputs match the connected
ones, so discard the current configuration if the set of output changes
(for example for hotplug), otherwise we will crash trying to apply
the bogus previous configuration.

https://bugzilla.gnome.org/show_bug.cgi?id=725637
2014-05-06 21:31:46 +02:00
Pau Iranzo
49952bdc69 [l10n] Update Catalan translation 2014-05-02 12:43:44 +02:00
Christian Kirbach
b2fd24a098 Updated German translation 2014-05-01 17:47:54 +00:00
Florian Müllner
fe9d2570d0 window: Queue a fullscreen check when moving between monitors
We track changes to windows fullscreen state and stacking order
to determine a monitor's in-fullscreen state, but missed the
obvious case of moving a fullscreen window between monitors.

https://bugzilla.gnome.org/show_bug.cgi?id=728395
2014-04-17 18:33:28 +02:00
Florian Müllner
b16ac1ba8c keybindings: Handle switch-to-workspace-{up,down,left,right} again
Commit 585fdd781c not only removed the tabpopup, but set invalid
handlers (a.k.a. NULL) for those shortcuts; add back handling of
basic handling of those shortcuts by switching instantly without any
popups.

https://bugzilla.gnome.org/show_bug.cgi?id=728423
2014-04-17 17:06:25 +02:00
Florian Müllner
330ce648d3 Bump version to 3.12.1
Update NEWS.
2014-04-15 21:56:45 +02:00
Nirbheek Chauhan
0c0973bbd8 window-props: _NET_WM_WINDOW_OPACITY range is 0xffffffff to 0
After reading the atom, scale the value from 0xffffffff to 0xff. Not doing so
causes Clutter to truncate the opacity value, and only read the last two digits.
Hence, 0x7fffffff (50%) becomes 0xff (100%).

https://bugzilla.gnome.org/show_bug.cgi?id=727874
2014-04-09 16:39:08 +02:00
marablack3
a967d479c5 Updated Greek translation 2014-04-07 18:39:18 +00:00
Inaki Larranaga Murgoitio
9707c1061d Updated Basque language 2014-03-30 15:07:44 +02:00
Inaki Larranaga Murgoitio
29cb77ce70 Updated Basque language 2014-03-30 12:51:39 +02:00
Jasper St. Pierre
f93fa1d705 window-actor: Don't queue a redraw when queueing a new pixmap
We guarantee ourselves that a valid pixmap will appear any time
that the window is painted. The window actor will be scheduled
for a repaint if it's added / removed from the scene graph, like
during construction, if the size changes, or if we receive damage,
which are the existing use cases where this function is called.

So, I can't see any reason that we queue a redraw in here.

With the split into surface actors, we don't have an easy place
we can use to queue a redraw, and since it's unnecessary, we can
just drop it on the floor.

https://bugzilla.gnome.org/show_bug.cgi?id=720631
2014-03-26 17:30:46 -04:00
13 changed files with 2709 additions and 2822 deletions

23
NEWS
View File

@@ -1,3 +1,26 @@
3.12.2
======
* Fix in-fullscreen state when moving between monitors [Florian; #728395]
* Fix crash when monitors change during suspend [Giovanni; #725637]
* Misc. bug fixes [Florian, Giovanni; #728423, #729732]
Contributors:
Giovanni Campagna, Florian Müllner
Translations:
Christian Kirbach [de], Pau Iranzo [ca]
3.12.1
======
* Fix opacity values from _NET_WM_WINDOW_OPACITY [Nirbheek; #727874]
* Misc. cleanups [Jasper; #720631]
Contributors:
Nirbheek Chauhan, Jasper St. Pierre
Translations:
Inaki Larranaga Murgoitio [eu], marablack3 [el]
3.12.0
======

View File

@@ -3,7 +3,7 @@ AC_CONFIG_MACRO_DIR([m4])
m4_define([mutter_major_version], [3])
m4_define([mutter_minor_version], [12])
m4_define([mutter_micro_version], [0])
m4_define([mutter_micro_version], [2])
m4_define([mutter_version],
[mutter_major_version.mutter_minor_version.mutter_micro_version])

531
po/ca.po

File diff suppressed because it is too large Load Diff

531
po/de.po

File diff suppressed because it is too large Load Diff

3558
po/el.po

File diff suppressed because it is too large Load Diff

787
po/eu.po

File diff suppressed because it is too large Load Diff

View File

@@ -968,27 +968,6 @@ is_frozen (MetaWindowActor *self)
return self->priv->freeze_count ? TRUE : FALSE;
}
static void
meta_window_actor_queue_create_pixmap (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
priv->needs_pixmap = TRUE;
if (is_frozen (self))
return;
/* This will cause the compositor paint function to be run
* if the actor is visible or a clone of the actor is visible.
* if the actor isn't visible in any way, then we don't
* need to repair the window anyways, and can wait until
* the stage is redrawn for some other reason
*
* The compositor paint function repairs all windows.
*/
clutter_actor_queue_redraw (priv->actor);
}
static gboolean
is_freeze_thaw_effect (gulong event)
{
@@ -1172,7 +1151,7 @@ meta_window_actor_detach (MetaWindowActor *self)
XFreePixmap (xdisplay, priv->back_pixmap);
priv->back_pixmap = None;
meta_window_actor_queue_create_pixmap (self);
priv->needs_pixmap = TRUE;
}
gboolean
@@ -1311,7 +1290,7 @@ meta_window_actor_sync_actor_geometry (MetaWindowActor *self,
if (priv->size_changed)
{
meta_window_actor_queue_create_pixmap (self);
priv->needs_pixmap = TRUE;
meta_window_actor_update_shape (self);
}
@@ -1484,7 +1463,7 @@ meta_window_actor_new (MetaWindow *window)
priv->last_width = -1;
priv->last_height = -1;
meta_window_actor_queue_create_pixmap (self);
priv->needs_pixmap = TRUE;
meta_window_actor_set_updates_frozen (self,
meta_window_updates_are_frozen (priv->window));

View File

@@ -2522,7 +2522,19 @@ handle_switch_to_workspace (MetaDisplay *display,
gint which = binding->handler->data;
MetaWorkspace *workspace;
workspace = meta_screen_get_workspace_by_index (screen, which);
if (which < 0)
{
/* Negative workspace numbers are directions with respect to the
* current workspace.
*/
workspace = meta_workspace_get_neighbor (screen->active_workspace,
which);
}
else
{
workspace = meta_screen_get_workspace_by_index (screen, which);
}
if (workspace)
{
@@ -3359,28 +3371,28 @@ init_builtin_key_bindings (MetaDisplay *display)
common_keybindings,
META_KEY_BINDING_NONE,
META_KEYBINDING_ACTION_WORKSPACE_LEFT,
NULL, 0);
handle_switch_to_workspace, META_MOTION_LEFT);
add_builtin_keybinding (display,
"switch-to-workspace-right",
common_keybindings,
META_KEY_BINDING_NONE,
META_KEYBINDING_ACTION_WORKSPACE_RIGHT,
NULL, 0);
handle_switch_to_workspace, META_MOTION_RIGHT);
add_builtin_keybinding (display,
"switch-to-workspace-up",
common_keybindings,
META_KEY_BINDING_NONE,
META_KEYBINDING_ACTION_WORKSPACE_UP,
NULL, 0);
handle_switch_to_workspace, META_MOTION_UP);
add_builtin_keybinding (display,
"switch-to-workspace-down",
common_keybindings,
META_KEY_BINDING_NONE,
META_KEYBINDING_ACTION_WORKSPACE_DOWN,
NULL, 0);
handle_switch_to_workspace, META_MOTION_DOWN);
/* The ones which have inverses. These can't be bound to any keystroke

View File

@@ -778,6 +778,9 @@ create_monitor_skeleton (GDBusObjectManagerServer *manager,
meta_dbus_object_skeleton_set_idle_monitor (object, skeleton);
g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
g_object_unref (skeleton);
g_object_unref (object);
}
static void

View File

@@ -77,6 +77,7 @@ struct _MetaMonitorConfig {
GHashTable *configs;
MetaConfiguration *current;
gboolean current_is_stored;
gboolean current_is_for_laptop_lid;
MetaConfiguration *previous;
GFile *file;
@@ -876,7 +877,8 @@ apply_configuration (MetaMonitorConfig *self,
/* Stored (persistent) configurations override the previous one always.
Also, we clear the previous configuration if the current one (which is
about to become previous) is stored.
about to become previous) is stored, or if the current one has
different outputs.
*/
if (stored ||
(self->current && self->current_is_stored))
@@ -887,11 +889,27 @@ apply_configuration (MetaMonitorConfig *self,
}
else
{
self->previous = self->current;
/* Despite the name, config_equal() only checks the set of outputs,
not their modes
*/
if (self->current && config_equal (self->current, config))
{
self->previous = self->current;
}
else
{
if (self->current)
config_free (self->current);
self->previous = NULL;
}
}
self->current = config;
self->current_is_stored = stored;
/* If true, we'll be overridden at the end of this call
inside turn_off_laptop_display()
*/
self->current_is_for_laptop_lid = FALSE;
if (self->current == self->previous)
self->previous = NULL;
@@ -1008,8 +1026,16 @@ meta_monitor_config_apply_stored (MetaMonitorConfig *self,
if (self->lid_is_closed &&
stored->n_outputs > 1 &&
laptop_display_is_on (stored))
return apply_configuration (self, make_laptop_lid_config (stored),
manager, FALSE);
{
if (apply_configuration (self, make_laptop_lid_config (stored),
manager, FALSE))
{
self->current_is_for_laptop_lid = TRUE;
return TRUE;
}
else
return FALSE;
}
else
return apply_configuration (self, stored, manager, TRUE);
}
@@ -1356,6 +1382,7 @@ turn_off_laptop_display (MetaMonitorConfig *self,
new = make_laptop_lid_config (self->current);
apply_configuration (self, new, manager, FALSE);
self->current_is_for_laptop_lid = TRUE;
}
static void
@@ -1375,7 +1402,7 @@ power_client_changed_cb (UpClient *client,
if (is_closed)
turn_off_laptop_display (self, manager);
else
else if (self->current_is_for_laptop_lid)
meta_monitor_config_restore_previous (self, manager);
}
}

View File

@@ -75,6 +75,7 @@ main (int argc, char **argv)
g_printerr ("mutter: %s\n", error->message);
exit (1);
}
g_option_context_free (ctx);
if (plugin)
meta_plugin_manager_load (plugin);

View File

@@ -1714,12 +1714,12 @@ reload_window_opacity (MetaWindow *window,
gboolean initial)
{
int requested_value = 0xFF;
guint8 opacity = 0xFF;
if (value->type != META_PROP_VALUE_INVALID)
requested_value = (int) value->v.cardinal;
opacity = (guint8)((gfloat)value->v.cardinal * 255.0 / ((gfloat)0xffffffff));
meta_window_set_opacity (window, requested_value);
meta_window_set_opacity (window, opacity);
}
#define RELOAD_STRING(var_name, propname) \

View File

@@ -5397,6 +5397,9 @@ meta_window_move_to_monitor (MetaWindow *window,
window->tile_monitor_number = monitor;
meta_window_move_between_rects (window, &old_area, &new_area);
if (window->fullscreen || window->override_redirect)
meta_screen_queue_check_fullscreen (window->screen);
}
void