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

Reply via email to