Move the main loop out into the libobt
[dana/openbox.git] / obt / display.c
similarity index 64%
rename from obt/instance.c
rename to obt/display.c
index 850fa1c..049b6ae 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
-   obt/instance.c for the Openbox window manager
+   obt/display.c for the Openbox window manager
    Copyright (c) 2007        Dana Jansens
 
    This program is free software; you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    See the COPYING file for a copy of the GNU General Public License.
 */
 
-#include "obt/instance.h"
+#include "obt/display.h"
 #include "obt/util.h"
 
 #ifdef HAVE_STRING_H
 #  include <unistd.h>
 #endif
 
-struct _ObtInstance
-{
-    gint ref;
-    Display *d;
-};
-
-ObtInstance* obt_instance_new(const char *display_name)
+Display* obt_display_open(const char *display_name)
 {
     gchar *n;
-    Display *d;
-    ObtInstance *inst = NULL;
+    Display *d = NULL;
 
     n = display_name ? g_strdup(display_name) : NULL;
     d = XOpenDisplay(n);
     if (d) {
         if (fcntl(ConnectionNumber(d), F_SETFD, 1) == -1)
             g_message("Failed to set display as close-on-exec");
-
-        inst = g_new(ObtInstance, 1);
-        inst->ref = 1;
-        inst->d = d;
     }
     g_free(n);
 
-    return inst;
-}
-
-void obt_instance_ref(ObtInstance *inst)
-{
-    ++inst->ref;
-}
-
-void obt_instance_unref(ObtInstance *inst)
-{
-    if (inst && --inst->ref == 0) {
-        XCloseDisplay(inst->d);
-        obt_free0(inst, ObtInstance, 1);
-    }
+    return d;
 }
 
-Display* obt_display(const ObtInstance *inst)
+void obt_display_close(Display *d)
 {
-    return inst->d;
+    if (d) XCloseDisplay(d);
 }