add prop.[ch] to the libobt, but they are not used yet. add a global obt_display...
[dana/openbox.git] / openbox / openbox.c
index 48f31f9..79b30c0 100644 (file)
@@ -25,7 +25,6 @@
 #include "event.h"
 #include "menu.h"
 #include "client.h"
-#include "xerror.h"
 #include "prop.h"
 #include "screen.h"
 #include "actions.h"
@@ -38,7 +37,6 @@
 #include "frame.h"
 #include "keyboard.h"
 #include "mouse.h"
-#include "extensions.h"
 #include "menuframe.h"
 #include "grab.h"
 #include "group.h"
@@ -49,6 +47,7 @@
 #include "parser/parse.h"
 #include "render/render.h"
 #include "render/theme.h"
+#include "obt/display.h"
 
 #ifdef HAVE_FCNTL_H
 #  include <fcntl.h>
 #include <X11/Xlib.h>
 #include <X11/keysym.h>
 
-
-RrInstance *ob_rr_inst;
-RrTheme    *ob_rr_theme;
-ObMainLoop *ob_main_loop;
-Display    *ob_display;
-gint        ob_screen;
-gboolean    ob_replace_wm = FALSE;
-gboolean    ob_sm_use = TRUE;
-gchar      *ob_sm_id = NULL;
-gchar      *ob_sm_save_file = NULL;
-gboolean    ob_sm_restore = TRUE;
-gboolean    ob_debug_xinerama = FALSE;
+RrInstance  *ob_rr_inst;
+RrTheme     *ob_rr_theme;
+ObtMainLoop *ob_main_loop;
+Display     *ob_display;
+gint         ob_screen;
+gboolean     ob_replace_wm = FALSE;
+gboolean     ob_sm_use = TRUE;
+gchar       *ob_sm_id = NULL;
+gchar       *ob_sm_save_file = NULL;
+gboolean     ob_sm_restore = TRUE;
+gboolean     ob_debug_xinerama = FALSE;
 
 static ObState   state;
 static gboolean  xsync = FALSE;
@@ -144,12 +142,9 @@ gint main(gint argc, gchar **argv)
         session_startup(argc, argv);
     }
 
-
-    ob_display = XOpenDisplay(NULL);
-    if (ob_display == NULL)
+    if (!obt_display_open(NULL))
         ob_exit_with_error(_("Failed to open the display from the DISPLAY environment variable."));
-    if (fcntl(ConnectionNumber(ob_display), F_SETFD, 1) == -1)
-        ob_exit_with_error("Failed to set display as close-on-exec");
+    ob_display = obt_display;
 
     if (remote_control) {
         prop_startup();
@@ -159,20 +154,20 @@ gint main(gint argc, gchar **argv)
          * remote_control = 2 -> restart */
         PROP_MSG(RootWindow(ob_display, ob_screen),
                  ob_control, remote_control, 0, 0, 0);
-        XCloseDisplay(ob_display);
+        obt_display_close(ob_display);
         exit(EXIT_SUCCESS);
     }
 
-    ob_main_loop = ob_main_loop_new(ob_display);
+    ob_main_loop = obt_main_loop_new(ob_display);
 
     /* set up signal handler */
-    ob_main_loop_signal_add(ob_main_loop, SIGUSR1, signal_handler, NULL, NULL);
-    ob_main_loop_signal_add(ob_main_loop, SIGUSR2, signal_handler, NULL, NULL);
-    ob_main_loop_signal_add(ob_main_loop, SIGTERM, signal_handler, NULL, NULL);
-    ob_main_loop_signal_add(ob_main_loop, SIGINT, signal_handler, NULL, NULL);
-    ob_main_loop_signal_add(ob_main_loop, SIGHUP, signal_handler, NULL, NULL);
-    ob_main_loop_signal_add(ob_main_loop, SIGPIPE, signal_handler, NULL, NULL);
-    ob_main_loop_signal_add(ob_main_loop, SIGCHLD, signal_handler, NULL, NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGUSR1, signal_handler, NULL,NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGUSR2, signal_handler, NULL,NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGTERM, signal_handler, NULL,NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGINT, signal_handler,  NULL,NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGHUP, signal_handler,  NULL,NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGPIPE, signal_handler, NULL,NULL);
+    obt_main_loop_signal_add(ob_main_loop, SIGCHLD, signal_handler, NULL,NULL);
 
     ob_screen = DefaultScreen(ob_display);
 
@@ -188,9 +183,6 @@ gint main(gint argc, gchar **argv)
     if (!XSetLocaleModifiers(""))
         g_message(_("Cannot set locale modifiers for the X server."));
 
-    /* set our error handler */
-    XSetErrorHandler(xerror_handler);
-
     /* set the DISPLAY environment variable for any lauched children, to the
        display we're using, so they open in the right place. */
     putenv(g_strdup_printf("DISPLAY=%s", DisplayString(ob_display)));
@@ -214,9 +206,7 @@ gint main(gint argc, gchar **argv)
     cursors[OB_CURSOR_NORTHWEST] = load_cursor("top_left_corner",
                                                XC_top_left_corner);
 
-
     prop_startup(); /* get atoms values for the display */
-    extensions_query_all(); /* find which extensions are present */
 
     if (screen_annex()) { /* it will be ours! */
         do {
@@ -347,7 +337,7 @@ gint main(gint argc, gchar **argv)
             reconfigure = FALSE;
 
             state = OB_STATE_RUNNING;
-            ob_main_loop_run(ob_main_loop);
+            obt_main_loop_run(ob_main_loop);
             state = OB_STATE_EXITING;
 
             if (!reconfigure) {
@@ -386,7 +376,7 @@ gint main(gint argc, gchar **argv)
 
     session_shutdown(being_replaced);
 
-    XCloseDisplay(ob_display);
+    obt_display_close(ob_display);
 
     parse_paths_shutdown();
 
@@ -647,14 +637,14 @@ void ob_reconfigure()
 void ob_exit(gint code)
 {
     exitcode = code;
-    ob_main_loop_exit(ob_main_loop);
+    obt_main_loop_exit(ob_main_loop);
 }
 
 void ob_exit_replace()
 {
     exitcode = 0;
     being_replaced = TRUE;
-    ob_main_loop_exit(ob_main_loop);
+    obt_main_loop_exit(ob_main_loop);
 }
 
 Cursor ob_cursor(ObCursor cursor)