move to simpler calls.
authorCarsten Haitzler <raster@rasterman.com>
Sun, 17 Oct 2004 06:21:21 +0000 (06:21 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Sun, 17 Oct 2004 06:21:21 +0000 (06:21 +0000)
SVN revision: 11892

legacy/ecore/src/lib/ecore_x/Ecore_X.h
legacy/ecore/src/lib/ecore_x/ecore_x.c

index 9112161..ccab420 100644 (file)
@@ -34,10 +34,6 @@ typedef void         Ecore_X_Display;
 extern "C" {
 #endif
    
-#ifndef _ECORE_X_PRIVATE_H
-typedef void Ecore_X_Reply;   
-#endif
-
 typedef struct _Ecore_X_Rectangle {
    int x, y;
    unsigned int width, height;
@@ -890,9 +886,7 @@ void             ecore_x_icccm_send_take_focus(Ecore_X_Window win);
    void            ecore_x_window_client_sniff(Ecore_X_Window win);
    Ecore_X_Atom    ecore_x_atom_get(char *name);
 
-   void            ecore_x_reply_del(Ecore_X_Reply *reply);
-       
-   typedef struct _Ecore_X_Reply_Window_Attributes
+   typedef struct _Ecore_X_Window_Attributes
      {
        Ecore_X_Window     root;
        int                x, y, w, h;
@@ -917,11 +911,10 @@ void             ecore_x_icccm_send_take_focus(Ecore_X_Window win);
         * Visual *visual;
         */
      }
-   Ecore_X_Reply_Window_Attributes;
-   Ecore_X_Reply *
-     ecore_x_window_attributes_fetch(Ecore_X_Window win,
-                                    void (*func) (void *data, Ecore_X_Reply *reply, void *reply_data),
-                                    void *data);
+   Ecore_X_Window_Attributes;
+   
+   int
+     ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret);
        
    Ecore_X_Cursor
      ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y);
index a29ff46..418b98f 100644 (file)
@@ -990,82 +990,40 @@ ecore_x_atom_get(char *name)
    return XInternAtom(_ecore_x_disp, name, False);
 }
 
-void
-ecore_x_reply_del(Ecore_X_Reply *reply)
-{
-   ecore_job_del(reply->job);
-   reply->reply_data_free(reply->reply_data);
-   free(reply);
-}
 
-static void _ecore_x_reply_call(void *data);
-static void
-_ecore_x_reply_call(void *data)
-{
-   Ecore_X_Reply *reply;
-   
-   reply = data;
-   reply->func(reply->data, reply, reply->reply_data);
-   reply->reply_data_free(reply->reply_data);
-   free(reply);
-}
 
-Ecore_X_Reply *
-ecore_x_window_attributes_fetch(Ecore_X_Window win,
-                               void (*func) (void *data, Ecore_X_Reply *reply, void *reply_data),
-                               void *data)
+
+
+
+int
+ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret)
 {
-   Ecore_X_Reply *reply;
-   Ecore_X_Reply_Window_Attributes *reply_data;
-   
-   reply = calloc(1, sizeof(Ecore_X_Reply));
-   if (!reply) return NULL;
-   reply_data = calloc(1, sizeof(Ecore_X_Reply_Window_Attributes));
-   if (!reply_data)
-     {
-       free(reply);
-       return NULL;
-     }
-   reply->reply_data = reply_data;
-   reply->reply_data_free = free;
-   reply->func = func;
-   reply->data = data;
+   XWindowAttributes att;
    
-     {
-       XWindowAttributes att;
-       
-       if (!XGetWindowAttributes(_ecore_x_disp, win, &att))
-         {
-            reply->reply_data_free(reply->reply_data);
-            free(reply);
-            return NULL;
-         }
-       reply_data->root = att.root;
-       reply_data->x = att.x;
-       reply_data->y = att.y;
-       reply_data->w = att.width;
-       reply_data->h = att.height;
-       reply_data->border = att.border_width;
-       reply_data->depth = att.depth;
-       if (att.map_state != IsUnmapped) reply_data->visible = 1;
-       if (att.map_state == IsViewable) reply_data->viewable = 1;
-       if (att.override_redirect) reply_data->override = 1;
-       if (att.class == InputOnly) reply_data->input_only = 1;
-       if (att.save_under) reply_data->save_under = 1;
-       reply_data->event_mask.mine = att.your_event_mask;
-       reply_data->event_mask.all = att.your_event_mask;
-       reply_data->event_mask.no_propagate = att.do_not_propagate_mask;
-     }
-   reply->job = ecore_job_add(_ecore_x_reply_call, reply);
-   if (!reply->job)
-     {
-       reply->reply_data_free(reply->reply_data);
-       free(reply);
-       return NULL;
-     }
-   return reply;
+   if (!XGetWindowAttributes(_ecore_x_disp, win, &att)) return 0;
+   memset(att_ret, 0, sizeof(Ecore_X_Window_Attributes));
+   att_ret->root = att.root;
+   att_ret->x = att.x;
+   att_ret->y = att.y;
+   att_ret->w = att.width;
+   att_ret->h = att.height;
+   att_ret->border = att.border_width;
+   att_ret->depth = att.depth;
+   if (att.map_state != IsUnmapped) att_ret->visible = 1;
+   if (att.map_state == IsViewable) att_ret->viewable = 1;
+   if (att.override_redirect) att_ret->override = 1;
+   if (att.class == InputOnly) att_ret->input_only = 1;
+   if (att.save_under) att_ret->save_under = 1;
+   att_ret->event_mask.mine = att.your_event_mask;
+   att_ret->event_mask.all = att.your_event_mask;
+   att_ret->event_mask.no_propagate = att.do_not_propagate_mask;
+   return 1;
 }
 
+
+
+
+
 Ecore_X_Cursor
 ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y)
 {