reenable new_client for wl clients, but force moveresize actions to succeed
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 11 Feb 2015 22:00:59 +0000 (17:00 -0500)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 11 Feb 2015 22:00:59 +0000 (17:00 -0500)
src/modules/wl_desktop_shell/e_mod_main.c

index c18ebd85746a08e9cfe5078f69e69e3f27a60ab0..f4e151b24cb56fa315cc27ef5aa8c5796d08853a 100644 (file)
@@ -580,7 +580,6 @@ _e_shell_cb_shell_surface_get(struct wl_client *client, struct wl_resource *reso
           }
 
         ec->netwm.ping = EINA_TRUE;
-        ec->new_client = 0;
      }
 
    /* get the client data */
@@ -1017,6 +1016,7 @@ static void
 _e_xdg_shell_surface_configure(struct wl_resource *resource, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
 {
    E_Client *ec;
+   Eina_Bool new_client;
 
    /* DBG("XDG_SHELL: Surface Configure: %d \t%d %d %d %d",  */
    /*     wl_resource_get_id(resource), x, y, w, h); */
@@ -1041,8 +1041,11 @@ _e_xdg_shell_surface_configure(struct wl_resource *resource, Evas_Coord x, Evas_
           }
      }
 
+   /* ensure resize succeeds */
+   new_client = ec->new_client;
+   ec->new_client = 0;
    e_client_util_move_resize_without_frame(ec, x, y, w, h);
-
+   ec->new_client = new_client;
    /* TODO: ack configure ?? */
 }
 
@@ -1199,7 +1202,6 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour
    cdata->shell.unmap = _e_xdg_shell_surface_unmap;
 
    /* set toplevel client properties */
-   ec->new_client = 0;
    ec->argb = EINA_TRUE;
    ec->no_shape_cut = EINA_TRUE;
    ec->borderless = !ec->internal_elm_win;
@@ -1309,7 +1311,6 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource
    cdata->shell.unmap = _e_xdg_shell_surface_unmap;
 
    ec->override = 1;
-   ec->new_client = 0;
    ec->argb = EINA_TRUE;
    ec->no_shape_cut = EINA_TRUE;
    ec->borderless = !ec->internal_elm_win;