# include <fcntl.h>
#endif
#ifdef HAVE_SIGNAL_H
-#define __USE_UNIX98
# include <signal.h>
#endif
#ifdef HAVE_STDLIB_H
int main(int argc, char **argv)
{
- char *path;
-
#ifdef DEBUG
ob_debug_show_output(TRUE);
#endif
bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
textdomain(PACKAGE_NAME);
- /* create the ~/.openbox dir */
- path = g_build_filename(g_get_home_dir(), ".openbox", NULL);
- mkdir(path, (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP |
- S_IROTH | S_IWOTH | S_IXOTH));
- g_free(path);
- /* create the ~/.openbox/themes dir */
- path = g_build_filename(g_get_home_dir(), ".openbox", "themes", NULL);
- mkdir(path, (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP |
- S_IROTH | S_IWOTH | S_IXOTH));
- g_free(path);
- /* create the ~/.openbox/sessions dir */
- path = g_build_filename(g_get_home_dir(), ".openbox", "sessions", NULL);
- mkdir(path, (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP |
- S_IROTH | S_IWOTH | S_IXOTH));
- g_free(path);
-
g_set_prgname(argv[0]);
+ parse_paths_startup();
+
session_startup(&argc, &argv);
/* parse out command line args */
ob_exit_with_error("Unable to load a theme.");
}
+ if (reconfigure) {
+ GList *it;
+
+ /* update all existing windows for the new theme */
+ for (it = client_list; it; it = g_list_next(it)) {
+ ObClient *c = it->data;
+ frame_adjust_theme(c->frame);
+ }
+ }
event_startup(reconfigure);
grab_startup(reconfigure);
/* focus_backup is used for stacking, so this needs to come before
/* redecorate all existing windows */
for (it = client_list; it; it = g_list_next(it)) {
ObClient *c = it->data;
- frame_adjust_theme(c->frame);
+ frame_adjust_area(c->frame, TRUE, TRUE, FALSE);
}
}
XCloseDisplay(ob_display);
+ parse_paths_shutdown();
+
if (restart) {
if (restart_path != NULL) {
int argcp;
ob_exit();
}
+void ob_reconfigure()
+{
+ reconfigure = TRUE;
+ ob_exit();
+}
+
void ob_exit()
{
ob_main_loop_exit(ob_main_loop);
{
return state;
}
-
-gchar *ob_expand_tilde(const gchar *f)
-{
- gchar **spl;
- gchar *ret;
-
- if (!f)
- return NULL;
- spl = g_strsplit(f, "~", 0);
- ret = g_strjoinv(g_get_home_dir(), spl);
- g_strfreev(spl);
- return ret;
-}
-
-void ob_reconfigure()
-{
- reconfigure = TRUE;
- ob_exit();
-}