Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.h e_border.c Log Message: Sticky windows =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_border.h 7 Feb 2005 13:51:09 -0000 1.25 +++ e_border.h 10 Feb 2005 15:21:22 -0000 1.26 @@ -27,6 +27,8 @@ typedef struct _E_Event_Border_Remove E_Event_Border_Remove; typedef struct _E_Event_Border_Show E_Event_Border_Show; typedef struct _E_Event_Border_Hide E_Event_Border_Hide; +typedef struct _E_Event_Border_Stick E_Event_Border_Stick; +typedef struct _E_Event_Border_Unstick E_Event_Border_Unstick; typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; #else @@ -236,6 +238,16 @@ E_Border *border; }; +struct _E_Event_Border_Stick +{ + E_Border *border; +}; + +struct _E_Event_Border_Unstick +{ + E_Border *border; +}; + struct _E_Event_Border_Desk_Set { E_Border *border; @@ -282,6 +294,8 @@ extern EAPI int E_EVENT_BORDER_SHOW; extern EAPI int E_EVENT_BORDER_HIDE; extern EAPI int E_EVENT_BORDER_REMOVE; +extern EAPI int E_EVENT_BORDER_STICK; +extern EAPI int E_EVENT_BORDER_UNSTICK; extern EAPI int E_EVENT_BORDER_DESK_SET; #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.93 retrieving revision 1.94 diff -u -3 -r1.93 -r1.94 --- e_border.c 10 Feb 2005 13:53:00 -0000 1.93 +++ e_border.c 10 Feb 2005 15:21:23 -0000 1.94 @@ -78,6 +78,8 @@ static void _e_border_event_border_move_free(void *data, void *ev); static void _e_border_event_border_show_free(void *data, void *ev); static void _e_border_event_border_hide_free(void *data, void *ev); +static void _e_border_event_border_stick_free(void *data, void *ev); +static void _e_border_event_border_unstick_free(void *data, void *ev); static void _e_border_zone_update(E_Border *bd); @@ -102,6 +104,8 @@ int E_EVENT_BORDER_MOVE = 0; int E_EVENT_BORDER_SHOW = 0; int E_EVENT_BORDER_HIDE = 0; +int E_EVENT_BORDER_STICK = 0; +int E_EVENT_BORDER_UNSTICK = 0; #define GRAV_SET(bd, grav) \ printf("GRAV TO %i\n", grav); \ @@ -138,6 +142,8 @@ E_EVENT_BORDER_MOVE = ecore_event_type_new(); E_EVENT_BORDER_SHOW = ecore_event_type_new(); E_EVENT_BORDER_HIDE = ecore_event_type_new(); + E_EVENT_BORDER_STICK = ecore_event_type_new(); + E_EVENT_BORDER_UNSTICK = ecore_event_type_new(); return 1; } @@ -882,20 +888,34 @@ void e_border_stick(E_Border *bd) { + E_Event_Border_Stick *ev; + E_OBJECT_CHECK(bd); E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); bd->sticky = 1; e_hints_window_sticky_set(bd->client.win, 1); + + ev = E_NEW(E_Event_Border_Stick, 1); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ecore_event_add(E_EVENT_BORDER_STICK, ev, _e_border_event_border_stick_free, NULL); } void e_border_unstick(E_Border *bd) { + E_Event_Border_Unstick *ev; + E_OBJECT_CHECK(bd); E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); bd->sticky = 0; e_hints_window_sticky_set(bd->client.win, 0); e_border_desk_set(bd, e_desk_current_get(bd->zone)); + + ev = E_NEW(E_Event_Border_Unstick, 1); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ecore_event_add(E_EVENT_BORDER_UNSTICK, ev, _e_border_event_border_unstick_free, NULL); } E_Border * @@ -3119,6 +3139,26 @@ } static void +_e_border_event_border_stick_free(void *data, void *ev) +{ + E_Event_Border_Stick *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + +static void +_e_border_event_border_unstick_free(void *data, void *ev) +{ + E_Event_Border_Unstick *e; + + e = ev; + e_object_unref(E_OBJECT(e->border)); + free(e); +} + +static void _e_border_event_border_desk_set_free(void *data, void *ev) { E_Event_Border_Desk_Set *e; ------------------------------------------------------- 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