summaryrefslogtreecommitdiff
path: root/openbox/openbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/openbox.c')
-rw-r--r--openbox/openbox.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/openbox/openbox.c b/openbox/openbox.c
index e3309f00..1c4a8706 100644
--- a/openbox/openbox.c
+++ b/openbox/openbox.c
@@ -87,6 +87,7 @@ static Cursor cursors[OB_NUM_CURSORS];
static KeyCode keys[OB_NUM_KEYS];
static gint exitcode = 0;
static gboolean reconfigure_and_exit = FALSE;
+static gboolean being_replaced = FALSE;
static void signal_handler(gint signal, gpointer data);
static void parse_args(gint argc, gchar **argv);
@@ -332,7 +333,7 @@ gint main(gint argc, gchar **argv)
RrThemeFree(ob_rr_theme);
RrInstanceFree(ob_rr_inst);
- session_shutdown();
+ session_shutdown(being_replaced);
XCloseDisplay(ob_display);
@@ -448,7 +449,7 @@ static void parse_args(gint argc, gchar **argv)
void ob_exit_with_error(gchar *msg)
{
g_critical(msg);
- session_shutdown();
+ session_shutdown(TRUE);
exit(EXIT_FAILURE);
}
@@ -476,6 +477,13 @@ void ob_exit(gint code)
ob_main_loop_exit(ob_main_loop);
}
+void ob_exit_replace()
+{
+ exitcode = 0;
+ being_replaced = TRUE;
+ ob_main_loop_exit(ob_main_loop);
+}
+
Cursor ob_cursor(ObCursor cursor)
{
g_assert(cursor < OB_NUM_CURSORS);