#include "xerror.h"
#include "prop.h"
#include "screen.h"
+#include "actions.h"
#include "startupnotify.h"
#include "focus.h"
#include "focus_cycle.h"
#include "menuframe.h"
#include "grab.h"
#include "group.h"
-#include "propwin.h"
#include "config.h"
+#include "ping.h"
#include "mainloop.h"
#include "gettext.h"
#include "parser/parse.h"
if (chdir(g_get_home_dir()) == -1)
g_message(_("Unable to change to home directory '%s': %s"),
g_get_home_dir(), g_strerror(errno));
-
+
/* parse the command line args, which can change the argv[0] */
parse_args(&argc, argv);
/* parse the environment variables */
prop_startup();
/* Send client message telling the OB process to:
- * remote_control = 1 -> reconfigure
+ * remote_control = 1 -> reconfigure
* remote_control = 2 -> restart */
PROP_MSG(RootWindow(ob_display, ob_screen),
ob_control, remote_control, 0, 0, 0);
of the rc */
i = parse_startup();
+ /* register all the available actions */
+ actions_startup(reconfigure);
/* start up config which sets up with the parser */
config_startup(i);
event_startup(reconfigure);
/* focus_backup is used for stacking, so this needs to come before
anything that calls stacking_add */
+ sn_startup(reconfigure);
+ window_startup(reconfigure);
focus_startup(reconfigure);
focus_cycle_startup(reconfigure);
focus_cycle_indicator_startup(reconfigure);
focus_cycle_popup_startup(reconfigure);
- window_startup(reconfigure);
- sn_startup(reconfigure);
screen_startup(reconfigure);
grab_startup(reconfigure);
- propwin_startup(reconfigure);
group_startup(reconfigure);
+ ping_startup(reconfigure);
client_startup(reconfigure);
dock_startup(reconfigure);
moveresize_startup(reconfigure);
ObClient *c = it->data;
/* the new config can change the window's decorations */
- client_setup_decor_and_functions(c, TRUE);
+ client_setup_decor_and_functions(c, FALSE);
/* redraw the frames */
frame_adjust_area(c->frame, TRUE, TRUE, FALSE);
/* the decor sizes may have changed, so the windows may
end up in new positions */
- client_reconfigure(c);
+ client_reconfigure(c, FALSE);
}
}
moveresize_shutdown(reconfigure);
dock_shutdown(reconfigure);
client_shutdown(reconfigure);
+ ping_shutdown(reconfigure);
group_shutdown(reconfigure);
- propwin_shutdown(reconfigure);
grab_shutdown(reconfigure);
screen_shutdown(reconfigure);
focus_cycle_popup_shutdown(reconfigure);
focus_cycle_indicator_shutdown(reconfigure);
focus_cycle_shutdown(reconfigure);
focus_shutdown(reconfigure);
- sn_shutdown(reconfigure);
window_shutdown(reconfigure);
+ sn_shutdown(reconfigure);
event_shutdown(reconfigure);
config_shutdown();
+ actions_shutdown(reconfigure);
modkeys_shutdown(reconfigure);
} while (reconfigure);
}
g_free(ob_sm_save_file);
g_free(ob_sm_id);
g_free(program_name);
-
+
return exitcode;
}
break;
case SIGUSR2:
ob_debug("Caught signal %d. Reconfiguring.\n", signal);
- ob_reconfigure();
+ ob_reconfigure();
break;
case SIGCHLD:
/* reap children */
{
g_print("Openbox %s\n", PACKAGE_VERSION);
g_print(_("Copyright (c)"));
- g_print(" 2007 Mikael Magnusson\n");
+ g_print(" 2008 Mikael Magnusson\n");
g_print(_("Copyright (c)"));
- g_print(" 2003-2007 Dana Jansens\n\n");
+ g_print(" 2003-2006 Dana Jansens\n\n");
g_print("This program comes with ABSOLUTELY NO WARRANTY.\n");
g_print("This is free software, and you are welcome to redistribute it\n");
g_print("under certain conditions. See the file COPYING for details.\n\n");
g_print(_("\nPassing messages to a running Openbox instance:\n"));
g_print(_(" --reconfigure Reload Openbox's configuration\n"));
g_print(_(" --restart Restart Openbox\n"));
+ g_print(_(" --exit Exit Openbox\n"));
g_print(_("\nDebugging options:\n"));
g_print(_(" --sync Run in synchronous mode\n"));
g_print(_(" --debug Display debugging output\n"));
static void parse_env()
{
/* unset this so we don't pass it on unknowingly */
- unsetenv("DESKTOP_STARTUP_ID");
+ gchar *s = g_strdup("DESKTOP_STARTUP_ID");
+ putenv(s);
+ g_free(s);
}
static void parse_args(gint *argc, gchar **argv)
}
else if (!strcmp(argv[i], "--reconfigure")) {
remote_control = 1;
- } else if (!strcmp(argv[i], "--restart")) {
+ }
+ else if (!strcmp(argv[i], "--restart")) {
remote_control = 2;
}
+ else if (!strcmp(argv[i], "--exit")) {
+ remote_control = 3;
+ }
else if (!strcmp(argv[i], "--sm-save-file")) {
if (i == *argc - 1) /* no args left */
/* not translated cuz it's sekret */