Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_border.h e_layout.c e_layout.h e_xinerama.c Log Message: more pager cleanups - still not 100% happy with it... but getting there. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.117 retrieving revision 1.118 diff -u -3 -r1.117 -r1.118 --- e_border.c 17 Mar 2005 13:56:19 -0000 1.117 +++ e_border.c 18 Mar 2005 16:30:46 -0000 1.118 @@ -77,6 +77,8 @@ static void _e_border_event_border_remove_free(void *data, void *ev); static void _e_border_event_border_zone_set_free(void *data, void *ev); static void _e_border_event_border_desk_set_free(void *data, void *ev); +static void _e_border_event_border_raise_free(void *data, void *ev); +static void _e_border_event_border_lower_free(void *data, void *ev); static void _e_border_event_border_resize_free(void *data, void *ev); static void _e_border_event_border_move_free(void *data, void *ev); static void _e_border_event_border_show_free(void *data, void *ev); @@ -116,6 +118,8 @@ int E_EVENT_BORDER_UNICONIFY = 0; int E_EVENT_BORDER_STICK = 0; int E_EVENT_BORDER_UNSTICK = 0; +int E_EVENT_BORDER_RAISE = 0; +int E_EVENT_BORDER_LOWER = 0; #define GRAV_SET(bd, grav) \ printf("GRAV TO %i\n", grav); \ @@ -157,6 +161,8 @@ E_EVENT_BORDER_UNICONIFY = ecore_event_type_new(); E_EVENT_BORDER_STICK = ecore_event_type_new(); E_EVENT_BORDER_UNSTICK = ecore_event_type_new(); + E_EVENT_BORDER_RAISE = ecore_event_type_new(); + E_EVENT_BORDER_LOWER = ecore_event_type_new(); return 1; } @@ -582,6 +588,15 @@ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, 0, 0, 0, 0, 0, mwin, ECORE_X_WINDOW_STACK_BELOW); + { + E_Event_Border_Raise *ev; + + ev = calloc(1, sizeof(E_Event_Border_Raise)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ev->above = NULL; + ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL); + } } void @@ -595,6 +610,15 @@ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, 0, 0, 0, 0, 0, bd->container->bg_win, ECORE_X_WINDOW_STACK_ABOVE); + { + E_Event_Border_Lower *ev; + + ev = calloc(1, sizeof(E_Event_Border_Lower)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ev->below = NULL; + ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL); + } } void @@ -608,6 +632,16 @@ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, 0, 0, 0, 0, 0, above->win, ECORE_X_WINDOW_STACK_ABOVE); + { + E_Event_Border_Raise *ev; + + ev = calloc(1, sizeof(E_Event_Border_Raise)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ev->above = above; + e_object_ref(E_OBJECT(above)); + ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL); + } } void @@ -621,6 +655,16 @@ ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, 0, 0, 0, 0, 0, below->win, ECORE_X_WINDOW_STACK_BELOW); + { + E_Event_Border_Lower *ev; + + ev = calloc(1, sizeof(E_Event_Border_Lower)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ev->below = below; + e_object_ref(E_OBJECT(below)); + ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL); + } } void @@ -3412,6 +3456,29 @@ } static void +_e_border_event_border_raise_free(void *data, void *ev) +{ + E_Event_Border_Raise *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + if (e->above) e_object_unref(E_OBJECT(e->above)); + free(e); +} + +static void +_e_border_event_border_lower_free(void *data, void *ev) +{ + E_Event_Border_Lower *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + if (e->below) e_object_unref(E_OBJECT(e->below)); + free(e); +} + + +static void _e_border_zone_update(E_Border *bd) { E_Container *con; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- e_border.h 15 Mar 2005 10:25:48 -0000 1.30 +++ e_border.h 18 Mar 2005 16:30:47 -0000 1.31 @@ -33,6 +33,8 @@ typedef struct _E_Event_Border_Unstick E_Event_Border_Unstick; typedef struct _E_Event_Border_Zone_Set E_Event_Border_Zone_Set; typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; +typedef struct _E_Event_Border_Raise E_Event_Border_Raise; +typedef struct _E_Event_Border_Lower E_Event_Border_Lower; #else #ifndef E_BORDER_H @@ -273,6 +275,16 @@ E_Desk *desk; }; +struct _E_Event_Border_Raise +{ + E_Border *border, *above; +}; + +struct _E_Event_Border_Lower +{ + E_Border *border, *below; +}; + EAPI int e_border_init(void); EAPI int e_border_shutdown(void); @@ -320,6 +332,8 @@ extern EAPI int E_EVENT_BORDER_UNSTICK; extern EAPI int E_EVENT_BORDER_ZONE_SET; extern EAPI int E_EVENT_BORDER_DESK_SET; +extern EAPI int E_EVENT_BORDER_RAISE; +extern EAPI int E_EVENT_BORDER_LOWER; #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_layout.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_layout.c 13 Mar 2005 11:17:26 -0000 1.2 +++ e_layout.c 18 Mar 2005 16:30:47 -0000 1.3 @@ -3,6 +3,9 @@ */ #include "e.h" +/* FIXME: something is weird here - i had to reverse all stacking logic to make + * it work... */ + typedef struct _E_Smart_Data E_Smart_Data; typedef struct _E_Layout_Item E_Layout_Item; @@ -112,7 +115,7 @@ sd = evas_object_smart_data_get(obj); _e_layout_smart_adopt(sd, child); - sd->items = evas_list_append(sd->items, child); + sd->items = evas_list_prepend(sd->items, child); li = evas_object_data_get(child, "e_layout_data"); _e_layout_smart_move_resize_item(li); } @@ -146,7 +149,7 @@ } void -e_layout_child_raise(Evas_Object *obj) +e_layout_child_lower(Evas_Object *obj) { E_Layout_Item *li; @@ -154,12 +157,14 @@ if (!li) return; li->sd->items = evas_list_remove(li->sd->items, obj); if (li->sd->items) - evas_object_stack_above(obj, evas_list_data(evas_list_last(li->sd->items))); + { + evas_object_stack_above(obj, evas_list_data(evas_list_last(li->sd->items))); + } li->sd->items = evas_list_append(li->sd->items, obj); } void -e_layout_child_lower(Evas_Object *obj) +e_layout_child_raise(Evas_Object *obj) { E_Layout_Item *li; @@ -172,7 +177,7 @@ } void -e_layout_child_raise_above(Evas_Object *obj, Evas_Object *above) +e_layout_child_lower_below(Evas_Object *obj, Evas_Object *below) { E_Layout_Item *li; @@ -180,12 +185,12 @@ if (!li) return; li->sd->items = evas_list_remove(li->sd->items, obj); if (li->sd->items) - evas_object_stack_above(obj, above); - li->sd->items = evas_list_append_relative(li->sd->items, obj, above); + evas_object_stack_above(obj, below); + li->sd->items = evas_list_append_relative(li->sd->items, obj, below); } void -e_layout_child_raise_below(Evas_Object *obj, Evas_Object *below) +e_layout_child_raise_above(Evas_Object *obj, Evas_Object *above) { E_Layout_Item *li; @@ -193,8 +198,8 @@ if (!li) return; li->sd->items = evas_list_remove(li->sd->items, obj); if (li->sd->items) - evas_object_stack_below(obj, below); - li->sd->items = evas_list_prepend_relative(li->sd->items, obj, below); + evas_object_stack_below(obj, above); + li->sd->items = evas_list_prepend_relative(li->sd->items, obj, above); } void @@ -226,13 +231,12 @@ li->w = 0; li->h = 0; evas_object_clip_set(obj, sd->clip); - evas_object_stack_above(obj, sd->obj); evas_object_smart_member_add(li->sd->obj, obj); evas_object_data_set(obj, "e_layout_data", li); evas_object_event_callback_add(obj, EVAS_CALLBACK_FREE, _e_layout_smart_item_del_hook, NULL); if (li->sd->items) - evas_object_stack_above(obj, evas_list_data(evas_list_last(li->sd->items))); + evas_object_stack_below(obj, evas_list_data(li->sd->items)); else evas_object_stack_above(obj, sd->obj); if (!evas_object_visible_get(sd->clip)) @@ -389,7 +393,6 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - { Evas_List *l; @@ -407,7 +410,6 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - { Evas_List *l; @@ -425,7 +427,6 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - { Evas_List *l; @@ -443,7 +444,6 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - { Evas_List *l; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_layout.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_layout.h 13 Mar 2005 08:21:01 -0000 1.1 +++ e_layout.h 18 Mar 2005 16:30:47 -0000 1.2 @@ -17,7 +17,7 @@ EAPI void e_layout_child_raise (Evas_Object *obj); EAPI void e_layout_child_lower (Evas_Object *obj); EAPI void e_layout_child_raise_above (Evas_Object *obj, Evas_Object *above); -EAPI void e_layout_child_raise_below (Evas_Object *obj, Evas_Object *below); +EAPI void e_layout_child_lower_below (Evas_Object *obj, Evas_Object *below); EAPI void e_layout_unpack (Evas_Object *obj); #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_xinerama.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_xinerama.c 7 Mar 2005 09:56:49 -0000 1.2 +++ e_xinerama.c 18 Mar 2005 16:30:48 -0000 1.3 @@ -149,7 +149,7 @@ sz = scr->w * scr->h; sz2 = scr2->w * scr2->h; /* if the one we already have is bigger, DONT add the new */ - if (sz2 > sz) + if (sz2 >= sz) add = 0; /* add the old to a list to remove */ else ------------------------------------------------------- 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://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs