[PATCH] dim-layer: fix dimming for unfocused surfaces
pochu27 at gmail.com
pochu27 at gmail.com
Tue Jan 7 08:23:19 PST 2014
From: Emilio Pozuelo Monfort <emilio.pozuelo at collabora.co.uk>
Unfocusing a surface should dim it when dim-layer is enabled,
but this got broken in commit 83ffd9.
---
desktop-shell/shell.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index f85a269..cca96be 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -4141,6 +4141,7 @@ activate(struct desktop_shell *shell, struct weston_surface *es,
struct weston_seat *seat)
{
struct weston_surface *main_surface;
+ struct weston_view *main_view;
struct focus_state *state;
struct workspace *ws;
struct weston_surface *old_es;
@@ -4162,8 +4163,18 @@ activate(struct desktop_shell *shell, struct weston_surface *es,
shsurf = get_shell_surface(main_surface);
if (shsurf->state.fullscreen)
shell_configure_fullscreen(shsurf);
- else
+ else {
+ ws = get_current_workspace(shell);
+ main_view = get_default_view(main_surface);
+ if (main_view) {
+ wl_list_remove(&main_view->layer_link);
+ wl_list_insert(&ws->layer.view_list, &main_view->layer_link);
+ weston_view_damage_below(main_view);
+ weston_surface_damage(main_view->surface);
+ }
+
restore_all_output_modes(shell->compositor);
+ }
if (shell->focus_animation_type != ANIMATION_NONE) {
ws = get_current_workspace(shell);
--
1.8.5.2
More information about the wayland-devel
mailing list