Enlightenment CVS committal
Author : rbdpngn
Project : e17
Module : libs/ewl
Dir : e17/libs/ewl/src
Modified Files:
ewl_embed.c ewl_embed.h ewl_window.c
Log Message:
* Add the evas callbacks after the embed has been realized.
* Move the destruction of the windows into the unrealize callback.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_embed.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- ewl_embed.c 28 Apr 2004 13:45:57 -0000 1.32
+++ ewl_embed.c 28 Apr 2004 18:04:44 -0000 1.33
@@ -93,6 +93,8 @@
ewl_object_set_fill_policy(EWL_OBJECT(w), EWL_FLAG_FILL_NONE);
ewl_object_set_toplevel(EWL_OBJECT(w), EWL_FLAG_PROPERTY_TOPLEVEL);
+ ewl_callback_append(EWL_WIDGET(w), EWL_CALLBACK_REALIZE,
+ ewl_embed_realize_cb, NULL);
ewl_callback_append(EWL_WIDGET(w), EWL_CALLBACK_UNREALIZE,
ewl_embed_unrealize_cb, NULL);
ewl_callback_prepend(EWL_WIDGET(w), EWL_CALLBACK_DESTROY,
@@ -160,43 +162,6 @@
if (VISIBLE(w))
ewl_realize_request(w);
- if (w->fx_clip_box) {
- evas_object_clip_set(emb->smart, w->fx_clip_box);
- evas_object_repeat_events_set(w->fx_clip_box, FALSE);
-
- /*
- * Catch mouse events processed through the evas
- */
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_MOUSE_IN,
- ewl_embed_evas_mouse_in_cb, emb);
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_MOUSE_OUT,
- ewl_embed_evas_mouse_out_cb, emb);
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_MOUSE_DOWN,
- ewl_embed_evas_mouse_down_cb, emb);
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_MOUSE_UP,
- ewl_embed_evas_mouse_up_cb, emb);
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_MOUSE_MOVE,
- ewl_embed_evas_mouse_move_cb, emb);
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_MOUSE_WHEEL,
- ewl_embed_evas_mouse_wheel_cb, emb);
-
- /*
- * Catch key events processed through the evas
- */
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_KEY_DOWN,
- ewl_embed_evas_key_down_cb, emb);
- evas_object_event_callback_add(w->fx_clip_box,
- EVAS_CALLBACK_KEY_UP, ewl_embed_evas_key_up_cb,
- emb);
- }
-
paths = ewl_theme_font_path_get();
ecore_list_goto_first(paths);
while ((font_path = ecore_list_next(paths))) {
@@ -691,6 +656,51 @@
DLEAVE_FUNCTION(DLEVEL_STABLE);
}
+void ewl_embed_realize_cb(Ewl_Widget *w, void *ev_data, void *user_data)
+{
+ Ewl_Embed *emb = EWL_EMBED(w);
+ DENTER_FUNCTION(DLEVEL_STABLE);
+
+ if (w->fx_clip_box) {
+ evas_object_clip_set(emb->smart, w->fx_clip_box);
+ evas_object_repeat_events_set(w->fx_clip_box, FALSE);
+
+ /*
+ * Catch mouse events processed through the evas
+ */
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_MOUSE_IN,
+ ewl_embed_evas_mouse_in_cb, emb);
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_MOUSE_OUT,
+ ewl_embed_evas_mouse_out_cb, emb);
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_MOUSE_DOWN,
+ ewl_embed_evas_mouse_down_cb, emb);
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_MOUSE_UP,
+ ewl_embed_evas_mouse_up_cb, emb);
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_MOUSE_MOVE,
+ ewl_embed_evas_mouse_move_cb, emb);
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_MOUSE_WHEEL,
+ ewl_embed_evas_mouse_wheel_cb, emb);
+
+ /*
+ * Catch key events processed through the evas
+ */
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_KEY_DOWN,
+ ewl_embed_evas_key_down_cb, emb);
+ evas_object_event_callback_add(w->fx_clip_box,
+ EVAS_CALLBACK_KEY_UP, ewl_embed_evas_key_up_cb,
+ emb);
+ }
+
+ DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
void ewl_embed_unrealize_cb(Ewl_Widget *w, void *ev_data, void *user_data)
{
DENTER_FUNCTION(DLEVEL_STABLE);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_embed.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- ewl_embed.h 24 Mar 2004 04:11:09 -0000 1.20
+++ ewl_embed.h 28 Apr 2004 18:05:01 -0000 1.21
@@ -70,6 +70,7 @@
/*
* Internally used callbacks, override at your own risk.
*/
+void ewl_embed_realize_cb(Ewl_Widget *w, void *ev_data, void *user_data);
void ewl_embed_unrealize_cb(Ewl_Widget *w, void *ev_data, void *user_data);
void ewl_embed_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_window.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -3 -r1.78 -r1.79
--- ewl_window.c 28 Apr 2004 13:45:57 -0000 1.78
+++ ewl_window.c 28 Apr 2004 18:05:01 -0000 1.79
@@ -494,9 +494,15 @@
embed->evas = NULL;
#ifdef HAVE_EVAS_ENGINE_SOFTWARE_X11_H
- if (strstr(EWL_WINDOW(embed)->render, "x11"))
- ecore_x_window_del((Ecore_X_Window)EWL_WINDOW(embed)->window);
+ if (REALIZED(w) && strstr(EWL_WINDOW(w)->render, "x11")) {
+ ecore_x_window_hide((Ecore_X_Window)embed->evas_window);
+ ecore_x_window_hide((Ecore_X_Window)EWL_WINDOW(w)->window);
+
+ ecore_x_window_del((Ecore_X_Window)embed->evas_window);
+ ecore_x_window_del((Ecore_X_Window)EWL_WINDOW(w)->window);
+ }
#endif
+ IF_FREE(EWL_WINDOW(w)->render);
DLEAVE_FUNCTION(DLEVEL_STABLE);
}
@@ -547,18 +553,7 @@
win = EWL_WINDOW(w);
-#ifdef HAVE_EVAS_ENGINE_SOFTWARE_X11_H
- if (REALIZED(win) && strstr(win->render, "x11")) {
- ecore_x_window_hide((Ecore_X_Window)EWL_EMBED(win)->evas_window);
- ecore_x_window_hide((Ecore_X_Window)win->window);
-
- ecore_x_window_del((Ecore_X_Window)EWL_EMBED(win)->evas_window);
- ecore_x_window_del((Ecore_X_Window)win->window);
- }
-#endif
-
IF_FREE(win->title);
- IF_FREE(win->render);
if ((win = ecore_list_goto(ewl_window_list, win)))
ecore_list_remove(ewl_window_list);
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs