discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=b0bf0379dc21cd24fc1f94f47828a84a6c5c9f1f

commit b0bf0379dc21cd24fc1f94f47828a84a6c5c9f1f
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue Jun 30 18:38:36 2015 -0400

    copy more attributes from x11 -> wl on xwayland client swap
    
    xwayland sets a wrong size on some (eg. menus) clients and wayland
    cannot provide geometry or stacking information, so ensure that all
    of this is copied over
    
    also remove overrides from focus stack
---
 src/bin/e_comp_x.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 49ef0a1..8e2a86a 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -1,3 +1,4 @@
+#define EXECUTIVE_MODE_ENABLED
 #define E_COMP_X
 #include "e.h"
 
@@ -5351,7 +5352,17 @@ e_comp_x_xwayland_client_setup(E_Client *ec, E_Client 
*wc)
    eina_hash_set(clients_win_hash, &win, wc);
    wc->visible = 1;
    wc->ignored = 0;
+   if (ec->override)
+     e_client_focus_stack_set(eina_list_remove(e_client_focus_stack_get(), 
wc));
    evas_object_show(wc->frame);
+   evas_object_name_set(wc->frame, evas_object_name_get(ec->frame));
+   wc->x = ec->x, wc->y = ec->y;
+   wc->client.x = ec->client.x, wc->client.y = ec->client.y;
+   wc->w = ec->w, wc->h = ec->h;
+   wc->client.x = ec->client.x, wc->client.y = ec->client.y;
+   wc->layer = ec->layer;
+   evas_object_layer_set(wc->frame, evas_object_layer_get(ec->frame));
+   evas_object_geometry_set(wc->frame, ec->x, ec->y, ec->w, ec->h);
    e_object_del(E_OBJECT(ec));
    e_hints_window_visible_set(wc);
    _e_comp_x_client_stack(wc);

-- 


Reply via email to