Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_evas
Modified Files:
Ecore_Evas.h ecore_evas_private.h ecore_evas_x.c
Log Message:
extra ecore_x and ecore_evas features for e17.. :)
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Ecore_Evas.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- Ecore_Evas.h 22 Oct 2004 03:41:48 -0000 1.5
+++ Ecore_Evas.h 23 Nov 2004 15:17:53 -0000 1.6
@@ -58,9 +58,15 @@
/* engine/target specific init calls */
Ecore_Evas *ecore_evas_software_x11_new(const char *disp_name,
Ecore_X_Window parent, int x, int y, int w, int h);
Ecore_X_Window ecore_evas_software_x11_window_get(Ecore_Evas *ee);
+Ecore_X_Window ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee);
+void ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int
on);
+int ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee);
Ecore_Evas *ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window
parent, int x, int y, int w, int h);
Ecore_X_Window ecore_evas_gl_x11_window_get(Ecore_Evas *ee);
+Ecore_X_Window ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee);
+void ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on);
+int ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee);
Ecore_Evas *ecore_evas_fb_new(char *disp_name, int rotation, int w, int h);
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_private.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ecore_evas_private.h 20 Oct 2004 17:51:29 -0000 1.7
+++ ecore_evas_private.h 23 Nov 2004 15:17:54 -0000 1.8
@@ -85,6 +85,7 @@
Ecore_X_Pixmap mask;
Ecore_X_GC gc;
Region damages;
+ unsigned char direct_resize : 1;
} x;
#endif
#ifdef BUILD_ECORE_EVAS_FB
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_x.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- ecore_evas_x.c 19 Nov 2004 08:25:04 -0000 1.28
+++ ecore_evas_x.c 23 Nov 2004 15:17:54 -0000 1.29
@@ -356,7 +356,7 @@
ee->w = e->w;
ee->h = e->h;
if (e->win == ee->engine.x.win_container)
- ecore_x_window_resize(ee->engine.x.win, ee->w, ee->h);
+ ecore_x_window_move_resize(ee->engine.x.win, 0, 0, ee->w, ee->h);
if ((ee->rotation == 90) || (ee->rotation == 270))
{
evas_output_size_set(ee->evas, ee->h, ee->w);
@@ -618,12 +618,70 @@
_ecore_evas_resize(Ecore_Evas *ee, int w, int h)
{
ecore_x_window_resize(ee->engine.x.win_container, w, h);
+ if (ee->engine.x.direct_resize)
+ {
+ ecore_x_window_move_resize(ee->engine.x.win, 0, 0, w, h);
+ if ((ee->w != w) || (ee->h != h))
+ {
+ ee->w = w;
+ ee->h = h;
+ if ((ee->rotation == 90) || (ee->rotation == 270))
+ {
+ evas_output_size_set(ee->evas, ee->h, ee->w);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+ }
+ else
+ {
+ evas_output_size_set(ee->evas, ee->w, ee->h);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+ }
+ if (ee->prop.avoid_damage)
+ {
+ ecore_evas_avoid_damage_set(ee, 0);
+ ecore_evas_avoid_damage_set(ee, 1);
+ }
+ if (ee->shaped)
+ {
+ ecore_evas_shaped_set(ee, 0);
+ ecore_evas_shaped_set(ee, 1);
+ }
+ }
+ }
}
static void
_ecore_evas_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
{
ecore_x_window_move_resize(ee->engine.x.win_container, x, y, w, h);
+ if (ee->engine.x.direct_resize)
+ {
+ ecore_x_window_move_resize(ee->engine.x.win, 0, 0, w, h);
+ if ((ee->w != w) || (ee->h != h))
+ {
+ ee->w = w;
+ ee->h = h;
+ if ((ee->rotation == 90) || (ee->rotation == 270))
+ {
+ evas_output_size_set(ee->evas, ee->h, ee->w);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+ }
+ else
+ {
+ evas_output_size_set(ee->evas, ee->w, ee->h);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+ }
+ if (ee->prop.avoid_damage)
+ {
+ ecore_evas_avoid_damage_set(ee, 0);
+ ecore_evas_avoid_damage_set(ee, 1);
+ }
+ if (ee->shaped)
+ {
+ ecore_evas_shaped_set(ee, 0);
+ ecore_evas_shaped_set(ee, 1);
+ }
+ }
+ }
}
static void
@@ -965,7 +1023,7 @@
int rw, rh;
ecore_x_window_size_get(0, &rw, &rh);
- ecore_x_window_resize(ee->engine.x.win, rw, rh);
+ ecore_x_window_move_resize(ee->engine.x.win, 0, 0, rw, rh);
ecore_x_window_reparent(ee->engine.x.win, 0, 0, 0);
ecore_x_window_raise(ee->engine.x.win);
ecore_x_window_show(ee->engine.x.win);
@@ -988,13 +1046,13 @@
ecore_x_window_size_get(ee->engine.x.win_container, &pw, &ph);
ecore_x_window_reparent(ee->engine.x.win, ee->engine.x.win_container,
0, 0);
- ecore_x_window_resize(ee->engine.x.win, pw, ph);
+ ecore_x_window_move_resize(ee->engine.x.win, 0, 0, pw, ph);
ecore_x_window_shape_mask_set(ee->engine.x.win, 0);
if (ee->should_be_visible)
ecore_x_window_show(ee->engine.x.win_container);
ee->w = pw;
ee->h = ph;
}
- ecore_x_window_resize(ee->engine.x.win, ee->w, ee->h);
+ ecore_x_window_move_resize(ee->engine.x.win, 0, 0, ee->w, ee->h);
if ((ee->rotation == 90) || (ee->rotation == 270))
{
evas_output_size_set(ee->evas, ee->h, ee->w);
@@ -1250,6 +1308,56 @@
#endif
}
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+Ecore_X_Window
+ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+ return ee->engine.x.win;
+#else
+ return 0;
+#endif
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+void
+ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int on)
+{
+#ifdef BUILD_ECORE_X
+ ee->engine.x.direct_resize = on;
+#else
+ return;
+#endif
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+int
+ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+ return ee->engine.x.direct_resize;
+#else
+ return 0;
+#endif
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
Ecore_Evas *
ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent,
int x, int y, int w, int h)
@@ -1390,3 +1498,49 @@
return 0;
#endif
}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+Ecore_X_Window
+ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+ return ee->engine.x.win;
+#else
+ return 0;
+#endif
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+void
+ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on)
+{
+#ifdef BUILD_ECORE_X
+ ee->engine.x.direct_resize = on;
+#else
+ return;
+#endif
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ */
+int
+ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_X
+ return ee->engine.x.direct_resize;
+#else
+ return 0;
+#endif
+}
+
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs