set pass events on DND type windows
authorMike Blumenkrantz <zmike@osg.samsung.com>
Thu, 6 Aug 2015 23:14:03 +0000 (19:14 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Thu, 6 Aug 2015 23:31:20 +0000 (19:31 -0400)
these are the actual drag windows from external apps and will be stuck
under the cursor, ideally not blocking/intercepting all motion events

src/bin/e_comp_x.c
src/bin/e_hints.c

index 7add7847f9f9ab573d4e0fcb0784ee7566277ffe..6592d272c429888669f849ec71fe053817dcb64c 100644 (file)
@@ -3848,7 +3848,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec)
                free(rects);
              if (ec->shape_changed)
                e_comp_object_frame_theme_set(ec->frame, E_COMP_OBJECT_FRAME_RESHADOW);
-             evas_object_pass_events_set(ec->frame, 0);
+             evas_object_pass_events_set(ec->frame, ec->netwm.type == E_WINDOW_TYPE_DND);
           }
         else
           {
@@ -3920,7 +3920,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec)
                   ec->shape_input_rects = (Eina_Rectangle*)rects;
                   ec->shape_input_rects_num = num;
                }
-             evas_object_pass_events_set(ec->frame, 0);
+             evas_object_pass_events_set(ec->frame, ec->netwm.type == E_WINDOW_TYPE_DND);
           }
         else
           {
index 8d3084a8d5d67774f8f4c1b29bd13ce9afbebde7..2a25a4f5e4874d152d3223648c0d609bf280ae03 100644 (file)
@@ -720,6 +720,7 @@ e_hints_window_type_get(E_Client *ec)
                }
           }
         free(types);
+        evas_object_pass_events_set(ec->frame, ec->netwm.type == E_WINDOW_TYPE_DND);
      }
    ec->dialog = (ec->netwm.type == E_WINDOW_TYPE_DIALOG);
    if (!ec->dialog)