From: Jan Arne Petersen <[email protected]>

Signed-off-by: Jan Arne Petersen <[email protected]>
---
 src/text-backend.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/text-backend.c b/src/text-backend.c
index 07a066c..53aa92c 100644
--- a/src/text-backend.c
+++ b/src/text-backend.c
@@ -759,17 +759,24 @@ bind_input_method(struct wl_client *client,
                                        NULL,
                                        id, input_method);
 
-       if (input_method->input_method_binding == NULL) {
-               resource->destroy = unbind_input_method;
-               input_method->input_method_binding = resource;
+       if (input_method->input_method_binding != NULL) {
+               wl_resource_post_error(resource, 
WL_DISPLAY_ERROR_INVALID_OBJECT,
+                                      "interface object already bound");
+               wl_resource_destroy(resource);
+               return;
+       }
 
-               text_backend->input_method.binding = resource;
+       if (text_backend->input_method.client != client) {
+               wl_resource_post_error(resource, 
WL_DISPLAY_ERROR_INVALID_OBJECT,
+                                      "permission to bind desktop_shell 
denied");
+               wl_resource_destroy(resource);
                return;
        }
 
-       wl_resource_post_error(resource, WL_DISPLAY_ERROR_INVALID_OBJECT,
-                              "interface object already bound");
-       wl_resource_destroy(resource);
+       resource->destroy = unbind_input_method;
+       input_method->input_method_binding = resource;
+
+       text_backend->input_method.binding = resource;
 }
 
 static void
-- 
1.8.1.4

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to