On execwm, we should properly release resources before exec'ing into a

new window manager; so allow CWM_EXEC_WM to assign new wm to wm_argv and
pass through cwm_status (now EXECWM) so that x_teardown() gets called
before exec'ing the new window manager.  Removes the need for a separate
x_restart() now, using new wm_argv; and consolidates errno for execvp.
This commit is contained in:
okan
2015-09-16 17:58:25 +00:00
parent 47a10cc055
commit 0fdcf3f3df
5 changed files with 39 additions and 20 deletions

View File

@@ -88,7 +88,7 @@
#define CWM_QUIT 0x0000
#define CWM_RUNNING 0x0001
#define CWM_RESTART 0x0002
#define CWM_EXECWM 0x0002
union arg {
char *c;
@@ -334,6 +334,7 @@ extern Display *X_Dpy;
extern Time Last_Event_Time;
extern struct screen_ctx_q Screenq;
extern struct conf Conf;
extern char *wm_argv;
extern const char *homedir;
extern int HasRandr, Randr_ev;
@@ -581,6 +582,7 @@ void xu_ewmh_handle_net_wm_state_msg(struct client_ctx *,
void xu_ewmh_set_net_wm_state(struct client_ctx *);
void xu_ewmh_restore_net_wm_state(struct client_ctx *);
char *u_argv(char * const *);
void u_exec(char *);
void u_spawn(char *);