Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_x


Modified Files:
      Tag: SPLIT
        Ecore_X.h ecore_x.c 


Log Message:

hook it all in

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/Ecore_X.h,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -u -3 -r1.1.2.14 -r1.1.2.15
--- Ecore_X.h   5 Feb 2003 06:51:57 -0000       1.1.2.14
+++ Ecore_X.h   6 Feb 2003 06:19:40 -0000       1.1.2.15
@@ -386,7 +386,8 @@
 extern int ECORE_LOCK_NUM;
 extern int ECORE_LOCK_CAPS;
 
-int      ecore_x_init(const char *name);       
+int      ecore_x_init(const char *name);
+int      ecore_x_shutdown(void);       
 Display *ecore_x_display_get(void);
 void     ecore_x_double_click_time_set(double t);
 double   ecore_x_double_click_time_get(void);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Attic/ecore_x.c,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -u -3 -r1.1.2.11 -r1.1.2.12
--- ecore_x.c   5 Feb 2003 06:51:57 -0000       1.1.2.11
+++ ecore_x.c   6 Feb 2003 06:19:40 -0000       1.1.2.12
@@ -15,6 +15,8 @@
 static int _ecore_x_event_handlers_num = 0;
 static void (**_ecore_x_event_handlers) (XEvent * event) = NULL;
 
+static int _ecore_x_init_count = 0;
+
 Display *_ecore_x_disp = NULL;
 double   _ecore_x_double_click_time = 0.25;
 Time     _ecore_x_event_last_time = 0;
@@ -76,7 +78,7 @@
 /**
  * Init the X display connection
  * @param name
- * @return 1 on success, 0 on failure
+ * @return greater than 1 on success, 0 on failure
  * 
  * Set up an X display connection and event handlers for event processing
  */
@@ -86,7 +88,11 @@
    int shape_base = 0;
    int shape_err_base = 0;
    
-   if (_ecore_x_disp) return 1;
+   if (_ecore_x_init_count > 0) 
+     {
+       _ecore_x_init_count++;
+       return _ecore_x_init_count;
+     }
    _ecore_x_disp = XOpenDisplay((char *)name);
    if (!_ecore_x_disp) return 0;
    _ecore_x_error_handler_init();
@@ -207,18 +213,22 @@
    _ecore_x_atom_wm_protocols     = XInternAtom(_ecore_x_disp, "WM_PROTOCOLS", False);
    _ecore_x_atom_wm_class         = XInternAtom(_ecore_x_disp, "WM_CLASS", False);
    _ecore_x_atom_wm_name          = XInternAtom(_ecore_x_disp, "WM_NAME", False);
-   return 1;
+   _ecore_x_init_count++;
+   return _ecore_x_init_count;
 }
 
 /**
  * Shut down the X syystem
+ * @return The number of times ecore X has left to be shut down
  * 
  * This closes the X display connection and removes the handlers for it.
  */
-void
+int
 ecore_x_shutdown(void)
 {
-   if (!_ecore_x_disp) return;
+   _ecore_x_init_count--;
+   if (_ecore_x_init_count > 0) return _ecore_x_init_count;
+   if (!_ecore_x_disp) return _ecore_x_init_count;
    XCloseDisplay(_ecore_x_disp);
    free(_ecore_x_event_handlers);
    ecore_main_fd_handler_del(_ecore_x_fd_handler_handle);
@@ -227,6 +237,7 @@
    _ecore_x_filter_handler = NULL;
    _ecore_x_disp = NULL;
    _ecore_x_event_handlers = NULL;
+   return _ecore_x_init_count;
 }
 
 /**




-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to