Enlightenment CVS committal Author : morlenxus Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_desk.c e_desk.h Log Message: Patch by Michael Stapelberg <[EMAIL PROTECTED]> (needed by the new tiling module). =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_desk.c,v retrieving revision 1.71 retrieving revision 1.72 diff -u -3 -r1.71 -r1.72 --- e_desk.c 9 Dec 2007 15:40:14 -0000 1.71 +++ e_desk.c 5 Jun 2008 10:52:13 -0000 1.72 @@ -10,6 +10,7 @@ static void _e_desk_free(E_Desk *desk); static void _e_border_event_desk_show_free(void *data, void *ev); +static void _e_border_event_desk_before_show_free(void *data, void *ev); static void _e_border_event_desk_deskshow_free(void *data, void *ev); static void _e_border_event_desk_name_change_free(void *data, void *ev); @@ -21,6 +22,7 @@ static int _e_desk_hide_animator(void *data); EAPI int E_EVENT_DESK_SHOW = 0; +EAPI int E_EVENT_DESK_BEFORE_SHOW = 0; EAPI int E_EVENT_DESK_DESKSHOW = 0; EAPI int E_EVENT_DESK_NAME_CHANGE = 0; @@ -28,6 +30,7 @@ e_desk_init(void) { E_EVENT_DESK_SHOW = ecore_event_type_new(); + E_EVENT_DESK_BEFORE_SHOW = ecore_event_type_new(); E_EVENT_DESK_DESKSHOW = ecore_event_type_new(); E_EVENT_DESK_NAME_CHANGE = ecore_event_type_new(); return 1; @@ -200,6 +203,7 @@ E_Border_List *bl; E_Border *bd; E_Event_Desk_Show *ev; + E_Event_Desk_Before_Show *eev; Evas_List *l; int was_zone = 0; int x, y, dx = 0, dy = 0; @@ -208,6 +212,11 @@ E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); if (desk->visible) return; + eev = E_NEW(E_Event_Desk_Before_Show, 1); + eev->desk = e_desk_current_get(desk->zone); + e_object_ref(E_OBJECT(eev->desk)); + ecore_event_add(E_EVENT_DESK_BEFORE_SHOW, eev, _e_border_event_desk_before_show_free, NULL); + ecore_x_window_shadow_tree_flush(); for (x = 0; x < desk->zone->desk_x_count; x++) { @@ -507,6 +516,17 @@ e_object_unref(E_OBJECT(ev->desk)); free(ev); } + +static void +_e_border_event_desk_before_show_free(void *data, void *event) +{ + E_Event_Desk_Before_Show *ev; + + ev = event; + e_object_unref(E_OBJECT(ev->desk)); + free(ev); +} + static void _e_border_event_desk_deskshow_free(void *data, void *event) =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_desk.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_desk.h 1 Sep 2006 15:37:23 -0000 1.25 +++ e_desk.h 5 Jun 2008 10:52:13 -0000 1.26 @@ -5,6 +5,7 @@ typedef struct _E_Desk E_Desk; typedef struct _E_Event_Desk_Show E_Event_Desk_Show; +typedef struct _E_Event_Desk_Before_Show E_Event_Desk_Before_Show; typedef struct _E_Event_Desk_DeskShow E_Event_Desk_DeskShow; typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change; @@ -34,6 +35,12 @@ E_Desk *desk; }; +struct _E_Event_Desk_Before_Show +{ + E_Desk *desk; +}; + + struct _E_Event_Desk_Name_Change { E_Desk *desk; @@ -61,6 +68,7 @@ EAPI void e_desk_col_remove(E_Zone *zone); extern EAPI int E_EVENT_DESK_SHOW; +extern EAPI int E_EVENT_DESK_BEFORE_SHOW; extern EAPI int E_EVENT_DESK_DESKSHOW; extern EAPI int E_EVENT_DESK_NAME_CHANGE; ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs