Events:
authorxcomputerman <xcomputerman>
Fri, 23 Apr 2004 22:17:01 +0000 (22:17 +0000)
committerxcomputerman <xcomputerman@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 23 Apr 2004 22:17:01 +0000 (22:17 +0000)
- Or the requested event mask with the current mask, instead of replacing
  it.
DND:
- Set default action on drop to Ask

SVN revision: 9873

legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c
legacy/ecore/src/lib/ecore_x/ecore_x_events.c
legacy/ecore/src/lib/ecore_x/ecore_x_private.h

index a8bfa94..d89651a 100644 (file)
@@ -81,6 +81,10 @@ ecore_x_dnd_begin (Ecore_X_Window source, unsigned char *data, int size)
    _xdnd->state = ECORE_X_DND_DRAGGING;
    _xdnd->time = _ecore_x_event_last_time;
 
+   /* Default Accepted Action: ask */
+   _xdnd->action = _ecore_x_atom_xdnd_action_ask;
+   _xdnd->accepted_action = None;
+
    /* TODO: Set supported data types in API */
    _type_text_plain = ecore_x_atom_get("text/plain");
    _xdnd->num_types = 1;
index 39b806d..4944baf 100644 (file)
@@ -18,7 +18,11 @@ static void _ecore_x_event_free_generic(void *data, void *ev);
 void
 ecore_x_event_mask_set(Ecore_X_Window w, long mask)
 {
-   XSelectInput(_ecore_x_disp, w, mask);
+   XWindowAttributes attr;
+
+   memset(&attr, 0, sizeof(XWindowAttributes));
+   XGetWindowAttributes(_ecore_x_disp, w, &attr);
+   XSelectInput(_ecore_x_disp, w, mask | attr.your_event_mask);
 }
 
 static void
index 0bc1a7b..b21e930 100644 (file)
@@ -248,9 +248,11 @@ void _ecore_x_event_handle_shape_change(XEvent *xevent);
 void _ecore_x_selection_data_init(void);
 void _ecore_x_selection_shutdown(void);
 Atom _ecore_x_selection_target_atom_get(char *target);
-char * _ecore_x_selection_target_get(Atom target);
+char * 
+     _ecore_x_selection_target_get(Atom target);
 void _ecore_x_selection_request_data_set(Ecore_X_Selection_Data data);
-Ecore_X_Selection_Data * _ecore_x_selection_get(Atom selection);
+Ecore_X_Selection_Data * 
+     _ecore_x_selection_get(Atom selection);
 int  _ecore_x_selection_set(Window w, unsigned char *data, int len, Atom selection);
 int  _ecore_x_selection_convert(Atom selection, Atom target, void **data_ret);