From 3808afd6911bf9d7d56091b995db898604f43799 Mon Sep 17 00:00:00 2001 From: Janos Kovacs Date: Wed, 21 Jan 2015 15:57:27 +0200 Subject: [PATCH] system-controller: only override dst rectangle for apps. Ignoring other types of layers keeps the homescreen itself without sudden changes. Makes the homescreen's launcher component pop up and down smoothly. Change-Id: If3fd985599a34d4226fd13250c9d4d2127e7d9ab --- .../system-controller/wayland/glm-window-manager.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/plugins/system-controller/wayland/glm-window-manager.c b/src/plugins/system-controller/wayland/glm-window-manager.c index 43b7851..b4b9283 100644 --- a/src/plugins/system-controller/wayland/glm-window-manager.c +++ b/src/plugins/system-controller/wayland/glm-window-manager.c @@ -982,6 +982,8 @@ static void surface_destination_rectangle_callback(void *data, mrp_wayland_t *wl; mrp_glm_window_manager_t *wm; mrp_wayland_window_update_t u; + mrp_wayland_layer_t *layer; + mrp_wayland_layer_type_t layer_type; char buf[256]; bool commit_needed = false; @@ -1020,9 +1022,16 @@ static void surface_destination_rectangle_callback(void *data, * wayland messages but hopefully will not end up in a infinite * loop ... */ - if ((sf->requested_x <= MAX_COORDINATE && x != sf->requested_x ) || - (sf->requested_y <= MAX_COORDINATE && y != sf->requested_y ) || - (width != sf->requested_width) || (height != sf->requested_height)) + if ((layer = mrp_wayland_layer_find_by_id(wl, sf->layerid))) + layer_type = layer->type; + else + layer_type = MRP_WAYLAND_LAYER_TYPE_UNKNOWN; + + + if ((layer_type == MRP_WAYLAND_LAYER_APPLICATION) && + ((sf->requested_x <= MAX_COORDINATE && x != sf->requested_x ) || + (sf->requested_y <= MAX_COORDINATE && y != sf->requested_y ) || + (width != sf->requested_width)||(height != sf->requested_height))) { /* * If our original requested width/height are zero, -- 2.7.4