Ecore_Evas: Fixes for working with the xcb engine. Fix some
authordevilhorns <devilhorns@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 14 Jul 2011 15:40:53 +0000 (15:40 +0000)
committerdevilhorns <devilhorns@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 14 Jul 2011 15:40:53 +0000 (15:40 +0000)
formatting. Fix dst_rect being uninitialized. Remove 'prefetch &
fetch' calls as they are not used in the new xcb stuffs.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@61379 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore_evas/Makefile.am
src/lib/ecore_evas/ecore_evas_private.h
src/lib/ecore_evas/ecore_evas_x.c

index aca5c04..647339b 100644 (file)
@@ -67,7 +67,6 @@ $(ECORE_WIN32_INC) \
 $(ECORE_SDL_INC) \
 $(ECORE_WINCE_INC) \
 @EVAS_CFLAGS@ \
-@XCB_CFLAGS@ \
 @EINA_CFLAGS@ \
 @EVIL_CFLAGS@
 
index 2ab7b03..ae28ce2 100644 (file)
 #endif
 
 #include <Evas.h>
+#include <Ecore.h>
 #include <ecore_private.h>
 #include <Ecore_Input.h>
 #include <Ecore_Input_Evas.h>
 
 #define ECORE_MAGIC_EVAS 0x76543211
 
-#ifndef BUILD_ECORE_DIRECTFB
-# undef BUILD_ECORE_EVAS_DIRECTFB
-#endif
-
 #ifdef BUILD_ECORE_EVAS_X11
-# include "Ecore_X.h"
+# include <Ecore_X.h>
+# include <Ecore_X_Atoms.h>
 # ifdef HAVE_ECORE_X_XCB
 #  include <xcb/xcb.h>
-#  ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
-#   include <Evas_Engine_Software_X11.h>
-#  endif
-#  ifdef BUILD_ECORE_EVAS_SOFTWARE_8_X11
-#   include <Evas_Engine_Software_8_X11.h>
-#  endif
 # endif
 # ifdef HAVE_ECORE_X_XLIB
 #  include <X11/Xlib.h>
 #  include <X11/Xutil.h>
-#  ifdef BUILD_ECORE_EVAS_SOFTWARE_XLIB
-#   include <Evas_Engine_Software_X11.h>
-#  endif
-#  ifdef BUILD_ECORE_EVAS_OPENGL_X11
-#    include <Evas_Engine_GL_X11.h>
-#  endif
-#  ifdef BUILD_ECORE_EVAS_SOFTWARE_16_X11
-#   include <Evas_Engine_Software_16_X11.h>
-#  endif
 # endif
 #endif
 
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_X11
+# include <Evas_Engine_Software_X11.h>
+#endif
+
+#ifdef BUILD_ECORE_EVAS_OPENGL_X11
+# include <Evas_Engine_GL_X11.h>
+#endif
+
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_8_X11
+# include <Evas_Engine_Software_8_X11.h>
+#endif
+
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_X11
+# include <Evas_Engine_Software_16_X11.h>
+#endif
+
 #ifdef BUILD_ECORE_EVAS_FB
 # include <Evas_Engine_FB.h>
 #endif
@@ -125,60 +124,60 @@ extern int _ecore_evas_log_dom;
 typedef struct _Ecore_Evas Ecore_Evas;
 #endif
 
-typedef struct _Ecore_Evas_Engine      Ecore_Evas_Engine;
+typedef struct _Ecore_Evas_Engine Ecore_Evas_Engine;
 typedef struct _Ecore_Evas_Engine_Func Ecore_Evas_Engine_Func;
 
 struct _Ecore_Evas_Engine_Func
 {
-   void        (*fn_free) (Ecore_Evas *ee);
-   void        (*fn_callback_resize_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_move_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_show_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_hide_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_delete_request_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_destroy_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_focus_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_focus_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_mouse_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_mouse_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_sticky_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_unsticky_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_pre_render_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_callback_post_render_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
-   void        (*fn_move) (Ecore_Evas *ee, int x, int y);
-   void        (*fn_managed_move) (Ecore_Evas *ee, int x, int y);
-   void        (*fn_resize) (Ecore_Evas *ee, int w, int h);
-   void        (*fn_move_resize) (Ecore_Evas *ee, int x, int y, int w, int h);
-   void        (*fn_rotation_set) (Ecore_Evas *ee, int rot, int resize);
-   void        (*fn_shaped_set) (Ecore_Evas *ee, int shaped);
-   void        (*fn_show) (Ecore_Evas *ee);
-   void        (*fn_hide) (Ecore_Evas *ee);
-   void        (*fn_raise) (Ecore_Evas *ee);
-   void        (*fn_lower) (Ecore_Evas *ee);
-   void        (*fn_activate) (Ecore_Evas *ee);
-   void        (*fn_title_set) (Ecore_Evas *ee, const char *t);
-   void        (*fn_name_class_set) (Ecore_Evas *ee, const char *n, const char *c);
-   void        (*fn_size_min_set) (Ecore_Evas *ee, int w, int h);
-   void        (*fn_size_max_set) (Ecore_Evas *ee, int w, int h);
-   void        (*fn_size_base_set) (Ecore_Evas *ee, int w, int h);
-   void        (*fn_size_step_set) (Ecore_Evas *ee, int w, int h);
-   void        (*fn_object_cursor_set) (Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
-   void        (*fn_layer_set) (Ecore_Evas *ee, int layer);
-   void        (*fn_focus_set) (Ecore_Evas *ee, int on);
-   void        (*fn_iconified_set) (Ecore_Evas *ee, int on);
-   void        (*fn_borderless_set) (Ecore_Evas *ee, int on);
-   void        (*fn_override_set) (Ecore_Evas *ee, int on);
-   void        (*fn_maximized_set) (Ecore_Evas *ee, int on);
-   void        (*fn_fullscreen_set) (Ecore_Evas *ee, int on);
-   void        (*fn_avoid_damage_set) (Ecore_Evas *ee, int on);
-   void        (*fn_withdrawn_set) (Ecore_Evas *ee, int withdrawn);
-   void        (*fn_sticky_set) (Ecore_Evas *ee, int sticky);
-   void        (*fn_ignore_events_set) (Ecore_Evas *ee, int ignore);
-   void        (*fn_alpha_set) (Ecore_Evas *ee, int alpha);
-   void        (*fn_transparent_set) (Ecore_Evas *ee, int transparent);
-
-   int         (*fn_render) (Ecore_Evas *ee);
-   void        (*fn_screen_geometry_get) (const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
+   void (*fn_free) (Ecore_Evas *ee);
+   void (*fn_callback_resize_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_move_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_show_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_hide_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_delete_request_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_destroy_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_focus_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_focus_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_mouse_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_mouse_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_sticky_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_unsticky_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_pre_render_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_callback_post_render_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas *ee));
+   void (*fn_move) (Ecore_Evas *ee, int x, int y);
+   void (*fn_managed_move) (Ecore_Evas *ee, int x, int y);
+   void (*fn_resize) (Ecore_Evas *ee, int w, int h);
+   void (*fn_move_resize) (Ecore_Evas *ee, int x, int y, int w, int h);
+   void (*fn_rotation_set) (Ecore_Evas *ee, int rot, int resize);
+   void (*fn_shaped_set) (Ecore_Evas *ee, int shaped);
+   void (*fn_show) (Ecore_Evas *ee);
+   void (*fn_hide) (Ecore_Evas *ee);
+   void (*fn_raise) (Ecore_Evas *ee);
+   void (*fn_lower) (Ecore_Evas *ee);
+   void (*fn_activate) (Ecore_Evas *ee);
+   void (*fn_title_set) (Ecore_Evas *ee, const char *t);
+   void (*fn_name_class_set) (Ecore_Evas *ee, const char *n, const char *c);
+   void (*fn_size_min_set) (Ecore_Evas *ee, int w, int h);
+   void (*fn_size_max_set) (Ecore_Evas *ee, int w, int h);
+   void (*fn_size_base_set) (Ecore_Evas *ee, int w, int h);
+   void (*fn_size_step_set) (Ecore_Evas *ee, int w, int h);
+   void (*fn_object_cursor_set) (Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
+   void (*fn_layer_set) (Ecore_Evas *ee, int layer);
+   void (*fn_focus_set) (Ecore_Evas *ee, int on);
+   void (*fn_iconified_set) (Ecore_Evas *ee, int on);
+   void (*fn_borderless_set) (Ecore_Evas *ee, int on);
+   void (*fn_override_set) (Ecore_Evas *ee, int on);
+   void (*fn_maximized_set) (Ecore_Evas *ee, int on);
+   void (*fn_fullscreen_set) (Ecore_Evas *ee, int on);
+   void (*fn_avoid_damage_set) (Ecore_Evas *ee, int on);
+   void (*fn_withdrawn_set) (Ecore_Evas *ee, int withdrawn);
+   void (*fn_sticky_set) (Ecore_Evas *ee, int sticky);
+   void (*fn_ignore_events_set) (Ecore_Evas *ee, int ignore);
+   void (*fn_alpha_set) (Ecore_Evas *ee, int alpha);
+   void (*fn_transparent_set) (Ecore_Evas *ee, int transparent);
+
+   int (*fn_render) (Ecore_Evas *ee);
+   void (*fn_screen_geometry_get) (const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
 };
 
 struct _Ecore_Evas_Engine
@@ -186,7 +185,8 @@ struct _Ecore_Evas_Engine
    Ecore_Evas_Engine_Func *func;
 
 #ifdef BUILD_ECORE_EVAS_X11
-   struct {
+   struct 
+     {
       Ecore_X_Window win_root;
       Eina_List     *win_extra;
       Ecore_X_Pixmap pmap;
index 7961533..57fec75 100644 (file)
@@ -1,24 +1,4 @@
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
 #include <string.h>
-
-#include <Ecore.h>
-#include <Ecore_Input.h>
-#include <Ecore_Input_Evas.h>
-#ifdef BUILD_ECORE_EVAS_X11
-# include <Ecore_X.h>
-# include <Ecore_X_Atoms.h>
-#else
-# undef BUILD_ECORE_EVAS_OPENGL_X11
-# undef BUILD_ECORE_EVAS_SOFTWARE_X11
-#endif
-
-#ifndef HAVE_ECORE_X_XCB
-# undef BUILD_ECORE_EVAS_SOFTWARE_XCB
-#endif
-
 #include "ecore_evas_private.h"
 #include "Ecore_Evas.h"
 
@@ -124,17 +104,17 @@ _ecore_evas_x_sync_clear(Ecore_Evas *ee)
 static xcb_visualtype_t *
 xcb_visualtype_get(xcb_screen_t *screen, xcb_visualid_t visual)
 {
-   xcb_depth_iterator_t  iter_depth;
+   xcb_depth_iterator_t iter_depth;
 
    if (!screen) return NULL;
 
    iter_depth = xcb_screen_allowed_depths_iterator(screen);
-   for (; iter_depth.rem; xcb_depth_next (&iter_depth))
+   for (; iter_depth.rem; xcb_depth_next(&iter_depth))
      {
         xcb_visualtype_iterator_t iter_vis;
 
         iter_vis = xcb_depth_visuals_iterator(iter_depth.data);
-        for (; iter_vis.rem; --screen, xcb_visualtype_next (&iter_vis))
+        for (; iter_vis.rem; --screen, xcb_visualtype_next(&iter_vis))
           {
             if (visual == iter_vis.data->visual_id)
               return iter_vis.data;
@@ -146,9 +126,6 @@ xcb_visualtype_get(xcb_screen_t *screen, xcb_visualid_t visual)
 #endif /* HAVE_ECORE_X_XCB */
 
 #ifdef BUILD_ECORE_EVAS_OPENGL_X11
-# ifdef HAVE_ECORE_X_XCB
-/* noop */
-# else
 static Ecore_X_Window
 _ecore_evas_x_gl_window_new(Ecore_Evas *ee, Ecore_X_Window parent, int x, int y, int w, int h, int override, int argb, const int *opt)
 {
@@ -264,7 +241,6 @@ _ecore_evas_x_gl_window_new(Ecore_Evas *ee, Ecore_X_Window parent, int x, int y,
      }
    return win;
 }
-#endif /* HAVE_ECORE_X_XCB */
 #endif
 
 static int
@@ -573,12 +549,7 @@ _ecore_evas_x_event_property_change(void *data __UNUSED__, int type __UNUSED__,
      {
         unsigned int i, num;
         Ecore_X_Window_State *state;
-        int sticky;
-
-#ifdef HAVE_ECORE_X_XCB
-        ecore_x_netwm_window_state_get_prefetch(e->win);
-#endif /* HAVE_ECORE_X_XCB */
-        sticky = 0;
+        int sticky = 0;
 
         /* TODO: we need to move those to the end, with if statements */
         ee->engine.x.state.modal = 0;
@@ -592,9 +563,6 @@ _ecore_evas_x_event_property_change(void *data __UNUSED__, int type __UNUSED__,
         ee->engine.x.state.above = 0;
         ee->engine.x.state.below = 0;
 
-#ifdef HAVE_ECORE_X_XCB
-        ecore_x_netwm_window_state_get_fetch();
-#endif /* HAVE_ECORE_X_XCB */
         ecore_x_netwm_window_state_get(e->win, &state, &num);
         if (state)
           {
@@ -645,9 +613,6 @@ _ecore_evas_x_event_property_change(void *data __UNUSED__, int type __UNUSED__,
                }
              free(state);
           }
-#ifdef HAVE_ECORE_X_XCB
-        ecore_xcb_reply_free();
-#endif /* HAVE_ECORE_X_XCB */
 
         if (ee->prop.sticky && !sticky)
           {
@@ -1084,10 +1049,6 @@ _ecore_evas_x_event_window_hide(void *data __UNUSED__, int type __UNUSED__, void
 static void
 _ecore_evas_x_size_pos_hints_update(Ecore_Evas *ee)
 {
-# ifdef HAVE_ECORE_X_XCB
-   ecore_x_icccm_size_pos_hints_get_prefetch(ee->prop.window);
-   ecore_x_icccm_size_pos_hints_get_fetch();
-# endif /* HAVE_ECORE_X_XCB */
    ecore_x_icccm_size_pos_hints_set(ee->prop.window,
                                     ee->prop.request_pos /*request_pos */,
                                     ECORE_X_GRAVITY_NW /* gravity */,
@@ -1101,9 +1062,6 @@ _ecore_evas_x_size_pos_hints_update(Ecore_Evas *ee)
                                     ee->prop.step.h /* step_y */,
                                     0 /* min_aspect */,
                                     0 /* max_aspect */);
-# ifdef HAVE_ECORE_X_XCB
-   ecore_xcb_reply_free();
-# endif /* HAVE_ECORE_X_XCB */
 }
 
 /* FIXME, should be in idler */
@@ -1758,13 +1716,13 @@ static void
 _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
 {
 # ifdef HAVE_ECORE_X_XCB
-   xcb_get_geometry_cookie_t          cookie_geom;
+   xcb_get_geometry_cookie_t cookie_geom;
    xcb_get_window_attributes_cookie_t cookie_attr;
-   xcb_get_geometry_reply_t          *reply_geom;
+   xcb_get_geometry_reply_t *reply_geom;
    xcb_get_window_attributes_reply_t *reply_attr;
 #else
    XWindowAttributes att;
-#endif /* ! HAVE_ECORE_X_XCB */
+#endif
 
    if (((ee->alpha) && (alpha)) || ((!ee->alpha) && (!alpha)))
      return;
@@ -1896,14 +1854,14 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
                {
                   ee->prop.window = _ecore_evas_x_gl_window_new
                     (ee, ee->engine.x.win_root,
-                     ee->req.x, ee->req.y, ee->req.w, ee->req.h,
-                     ee->prop.override, 1, NULL);
+                        ee->req.x, ee->req.y, ee->req.w, ee->req.h,
+                        ee->prop.override, 1, NULL);
                }
              else
                ee->prop.window = _ecore_evas_x_gl_window_new
                (ee, ee->engine.x.win_root,
-                ee->req.x, ee->req.y, ee->req.w, ee->req.h,
-                ee->prop.override, ee->alpha, NULL);
+                   ee->req.x, ee->req.y, ee->req.w, ee->req.h,
+                   ee->prop.override, ee->alpha, NULL);
           }
         else
           ee->prop.window = _ecore_evas_x_gl_window_new
@@ -4186,7 +4144,7 @@ ecore_evas_x11_leader_default_set(Ecore_Evas *ee)
 static Eina_Bool
 _ecore_evas_x11_convert_rectangle_with_angle(Ecore_Evas *ee, Ecore_X_Rectangle *dst_rect, Ecore_X_Rectangle *src_rect)
 {
-   if (!src_rect || !dst_rect) return 0;
+   if ((!src_rect) || (!dst_rect)) return 0;
 
    if (ee->rotation == 0)
      {
@@ -4245,13 +4203,21 @@ ecore_evas_x11_shape_input_rectangle_set(Ecore_Evas *ee, int x, int y, int w, in
    src_rect.width = w;
    src_rect.height = h;
 
+   dst_rect.x = 0;
+   dst_rect.y = 0;
+   dst_rect.width = 0;
+   dst_rect.height = 0;
+
    ret = _ecore_evas_x11_convert_rectangle_with_angle(ee, &dst_rect, &src_rect);
 
    if (!ee->engine.x.win_shaped_input)
-      ee->engine.x.win_shaped_input = ecore_x_window_override_new(ee->engine.x.win_root, 0, 0, 1, 1);
+      ee->engine.x.win_shaped_input = ecore_x_window_override_new(ee->engine.x.win_root, 
+                                                                  0, 0, 1, 1);
 
    if (ret)
-      ecore_x_window_shape_input_rectangle_set(ee->engine.x.win_shaped_input, dst_rect.x, dst_rect.y, dst_rect.width, dst_rect.height);
+      ecore_x_window_shape_input_rectangle_set(ee->engine.x.win_shaped_input, 
+                                               dst_rect.x, dst_rect.y, 
+                                               dst_rect.width, dst_rect.height);
 #else
    return;
    ee = NULL;
@@ -4282,13 +4248,21 @@ ecore_evas_x11_shape_input_rectangle_add(Ecore_Evas *ee, int x, int y, int w, in
    src_rect.width = w;
    src_rect.height = h;
 
+   dst_rect.x = 0;
+   dst_rect.y = 0;
+   dst_rect.width = 0;
+   dst_rect.height = 0;
+
    ret = _ecore_evas_x11_convert_rectangle_with_angle(ee, &dst_rect, &src_rect);
 
    if (!ee->engine.x.win_shaped_input)
-      ee->engine.x.win_shaped_input = ecore_x_window_override_new(ee->engine.x.win_root, 0, 0, 1, 1);
+      ee->engine.x.win_shaped_input = ecore_x_window_override_new(ee->engine.x.win_root, 
+                                                                  0, 0, 1, 1);
 
    if (ret)
-      ecore_x_window_shape_input_rectangle_add(ee->engine.x.win_shaped_input, dst_rect.x, dst_rect.y, dst_rect.width, dst_rect.height);
+      ecore_x_window_shape_input_rectangle_add(ee->engine.x.win_shaped_input, 
+                                               dst_rect.x, dst_rect.y, 
+                                               dst_rect.width, dst_rect.height);
 #else
    return;
    ee = NULL;
@@ -4319,13 +4293,21 @@ ecore_evas_x11_shape_input_rectangle_subtract(Ecore_Evas *ee, int x, int y, int
    src_rect.width = w;
    src_rect.height = h;
 
+   dst_rect.x = 0;
+   dst_rect.y = 0;
+   dst_rect.width = 0;
+   dst_rect.height = 0;
+
    ret = _ecore_evas_x11_convert_rectangle_with_angle(ee, &dst_rect, &src_rect);
 
    if (!ee->engine.x.win_shaped_input)
-      ee->engine.x.win_shaped_input = ecore_x_window_override_new(ee->engine.x.win_root, 0, 0, 1, 1);
+      ee->engine.x.win_shaped_input = ecore_x_window_override_new(ee->engine.x.win_root, 
+                                                                  0, 0, 1, 1);
 
    if (ret)
-      ecore_x_window_shape_input_rectangle_subtract(ee->engine.x.win_shaped_input, dst_rect.x, dst_rect.y, dst_rect.width, dst_rect.height);
+      ecore_x_window_shape_input_rectangle_subtract(ee->engine.x.win_shaped_input, 
+                                                    dst_rect.x, dst_rect.y, 
+                                                    dst_rect.width, dst_rect.height);
 #else
    return;
    ee = NULL;