Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b850a8075f | ||
![]() |
db0383d19f | ||
![]() |
a175b3c947 | ||
![]() |
554be56639 | ||
![]() |
b4de2458ab | ||
![]() |
49952bdc69 | ||
![]() |
b2fd24a098 | ||
![]() |
fe9d2570d0 | ||
![]() |
b16ac1ba8c | ||
![]() |
330ce648d3 |
23
NEWS
23
NEWS
@@ -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
|
3.12.0
|
||||||
======
|
======
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@ AC_CONFIG_MACRO_DIR([m4])
|
|||||||
|
|
||||||
m4_define([mutter_major_version], [3])
|
m4_define([mutter_major_version], [3])
|
||||||
m4_define([mutter_minor_version], [12])
|
m4_define([mutter_minor_version], [12])
|
||||||
m4_define([mutter_micro_version], [0])
|
m4_define([mutter_micro_version], [2])
|
||||||
|
|
||||||
m4_define([mutter_version],
|
m4_define([mutter_version],
|
||||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||||
|
@@ -2522,7 +2522,19 @@ handle_switch_to_workspace (MetaDisplay *display,
|
|||||||
gint which = binding->handler->data;
|
gint which = binding->handler->data;
|
||||||
MetaWorkspace *workspace;
|
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)
|
if (workspace)
|
||||||
{
|
{
|
||||||
@@ -3359,28 +3371,28 @@ init_builtin_key_bindings (MetaDisplay *display)
|
|||||||
common_keybindings,
|
common_keybindings,
|
||||||
META_KEY_BINDING_NONE,
|
META_KEY_BINDING_NONE,
|
||||||
META_KEYBINDING_ACTION_WORKSPACE_LEFT,
|
META_KEYBINDING_ACTION_WORKSPACE_LEFT,
|
||||||
NULL, 0);
|
handle_switch_to_workspace, META_MOTION_LEFT);
|
||||||
|
|
||||||
add_builtin_keybinding (display,
|
add_builtin_keybinding (display,
|
||||||
"switch-to-workspace-right",
|
"switch-to-workspace-right",
|
||||||
common_keybindings,
|
common_keybindings,
|
||||||
META_KEY_BINDING_NONE,
|
META_KEY_BINDING_NONE,
|
||||||
META_KEYBINDING_ACTION_WORKSPACE_RIGHT,
|
META_KEYBINDING_ACTION_WORKSPACE_RIGHT,
|
||||||
NULL, 0);
|
handle_switch_to_workspace, META_MOTION_RIGHT);
|
||||||
|
|
||||||
add_builtin_keybinding (display,
|
add_builtin_keybinding (display,
|
||||||
"switch-to-workspace-up",
|
"switch-to-workspace-up",
|
||||||
common_keybindings,
|
common_keybindings,
|
||||||
META_KEY_BINDING_NONE,
|
META_KEY_BINDING_NONE,
|
||||||
META_KEYBINDING_ACTION_WORKSPACE_UP,
|
META_KEYBINDING_ACTION_WORKSPACE_UP,
|
||||||
NULL, 0);
|
handle_switch_to_workspace, META_MOTION_UP);
|
||||||
|
|
||||||
add_builtin_keybinding (display,
|
add_builtin_keybinding (display,
|
||||||
"switch-to-workspace-down",
|
"switch-to-workspace-down",
|
||||||
common_keybindings,
|
common_keybindings,
|
||||||
META_KEY_BINDING_NONE,
|
META_KEY_BINDING_NONE,
|
||||||
META_KEYBINDING_ACTION_WORKSPACE_DOWN,
|
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
|
/* The ones which have inverses. These can't be bound to any keystroke
|
||||||
|
@@ -778,6 +778,9 @@ create_monitor_skeleton (GDBusObjectManagerServer *manager,
|
|||||||
meta_dbus_object_skeleton_set_idle_monitor (object, skeleton);
|
meta_dbus_object_skeleton_set_idle_monitor (object, skeleton);
|
||||||
|
|
||||||
g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
|
g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
|
||||||
|
|
||||||
|
g_object_unref (skeleton);
|
||||||
|
g_object_unref (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -77,6 +77,7 @@ struct _MetaMonitorConfig {
|
|||||||
GHashTable *configs;
|
GHashTable *configs;
|
||||||
MetaConfiguration *current;
|
MetaConfiguration *current;
|
||||||
gboolean current_is_stored;
|
gboolean current_is_stored;
|
||||||
|
gboolean current_is_for_laptop_lid;
|
||||||
MetaConfiguration *previous;
|
MetaConfiguration *previous;
|
||||||
|
|
||||||
GFile *file;
|
GFile *file;
|
||||||
@@ -876,7 +877,8 @@ apply_configuration (MetaMonitorConfig *self,
|
|||||||
|
|
||||||
/* Stored (persistent) configurations override the previous one always.
|
/* Stored (persistent) configurations override the previous one always.
|
||||||
Also, we clear the previous configuration if the current one (which is
|
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 ||
|
if (stored ||
|
||||||
(self->current && self->current_is_stored))
|
(self->current && self->current_is_stored))
|
||||||
@@ -887,11 +889,27 @@ apply_configuration (MetaMonitorConfig *self,
|
|||||||
}
|
}
|
||||||
else
|
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 = config;
|
||||||
self->current_is_stored = stored;
|
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)
|
if (self->current == self->previous)
|
||||||
self->previous = NULL;
|
self->previous = NULL;
|
||||||
@@ -1008,8 +1026,16 @@ meta_monitor_config_apply_stored (MetaMonitorConfig *self,
|
|||||||
if (self->lid_is_closed &&
|
if (self->lid_is_closed &&
|
||||||
stored->n_outputs > 1 &&
|
stored->n_outputs > 1 &&
|
||||||
laptop_display_is_on (stored))
|
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
|
else
|
||||||
return apply_configuration (self, stored, manager, TRUE);
|
return apply_configuration (self, stored, manager, TRUE);
|
||||||
}
|
}
|
||||||
@@ -1356,6 +1382,7 @@ turn_off_laptop_display (MetaMonitorConfig *self,
|
|||||||
|
|
||||||
new = make_laptop_lid_config (self->current);
|
new = make_laptop_lid_config (self->current);
|
||||||
apply_configuration (self, new, manager, FALSE);
|
apply_configuration (self, new, manager, FALSE);
|
||||||
|
self->current_is_for_laptop_lid = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1375,7 +1402,7 @@ power_client_changed_cb (UpClient *client,
|
|||||||
|
|
||||||
if (is_closed)
|
if (is_closed)
|
||||||
turn_off_laptop_display (self, manager);
|
turn_off_laptop_display (self, manager);
|
||||||
else
|
else if (self->current_is_for_laptop_lid)
|
||||||
meta_monitor_config_restore_previous (self, manager);
|
meta_monitor_config_restore_previous (self, manager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -75,6 +75,7 @@ main (int argc, char **argv)
|
|||||||
g_printerr ("mutter: %s\n", error->message);
|
g_printerr ("mutter: %s\n", error->message);
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
g_option_context_free (ctx);
|
||||||
|
|
||||||
if (plugin)
|
if (plugin)
|
||||||
meta_plugin_manager_load (plugin);
|
meta_plugin_manager_load (plugin);
|
||||||
|
@@ -5397,6 +5397,9 @@ meta_window_move_to_monitor (MetaWindow *window,
|
|||||||
window->tile_monitor_number = monitor;
|
window->tile_monitor_number = monitor;
|
||||||
|
|
||||||
meta_window_move_between_rects (window, &old_area, &new_area);
|
meta_window_move_between_rects (window, &old_area, &new_area);
|
||||||
|
|
||||||
|
if (window->fullscreen || window->override_redirect)
|
||||||
|
meta_screen_queue_check_fullscreen (window->screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Reference in New Issue
Block a user