Implement the possibility to set a workspace open clients automatically in floating mode
Use "wwt" (with workspace: toggle floating) in your configuration file
This commit is contained in:
parent
4135aaad7c
commit
5c48444b4e
@ -161,6 +161,9 @@ struct Workspace {
|
||||
int current_row;
|
||||
int current_col;
|
||||
|
||||
/* Should clients on this workspace be automatically floating? */
|
||||
bool auto_float;
|
||||
|
||||
Client *fullscreen_client;
|
||||
|
||||
/* The focus stack contains the clients in the correct order of focus so that
|
||||
|
@ -854,8 +854,31 @@ void parse_command(xcb_connection_t *conn, const char *command) {
|
||||
return;
|
||||
}
|
||||
|
||||
enum { WITH_WINDOW, WITH_CONTAINER, WITH_WORKSPACE } with = WITH_WINDOW;
|
||||
|
||||
/* Is it a <with>? */
|
||||
if (command[0] == 'w') {
|
||||
command++;
|
||||
/* TODO: implement */
|
||||
if (command[0] == 'c') {
|
||||
with = WITH_CONTAINER;
|
||||
command++;
|
||||
} else if (command[0] == 'w') {
|
||||
with = WITH_WORKSPACE;
|
||||
command++;
|
||||
} else {
|
||||
LOG("not yet implemented.\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Is it 't' for toggle tiling/floating? */
|
||||
if (command[0] == 't') {
|
||||
if (with == WITH_WORKSPACE) {
|
||||
c_ws->auto_float = !c_ws->auto_float;
|
||||
LOG("autofloat is now %d\n", c_ws->auto_float);
|
||||
return;
|
||||
}
|
||||
if (last_focused == NULL) {
|
||||
LOG("Cannot toggle tiling/floating: workspace empty\n");
|
||||
return;
|
||||
@ -873,21 +896,6 @@ void parse_command(xcb_connection_t *conn, const char *command) {
|
||||
return;
|
||||
}
|
||||
|
||||
enum { WITH_WINDOW, WITH_CONTAINER } with = WITH_WINDOW;
|
||||
|
||||
/* Is it a <with>? */
|
||||
if (command[0] == 'w') {
|
||||
command++;
|
||||
/* TODO: implement */
|
||||
if (command[0] == 'c') {
|
||||
with = WITH_CONTAINER;
|
||||
command++;
|
||||
} else {
|
||||
LOG("not yet implemented.\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* It’s a normal <cmd> */
|
||||
char *rest = NULL;
|
||||
enum { ACTION_FOCUS, ACTION_MOVE, ACTION_SNAP } action = ACTION_FOCUS;
|
||||
|
@ -265,10 +265,15 @@ void reparent_window(xcb_connection_t *conn, xcb_window_t child,
|
||||
atom[i] == atoms[_NET_WM_WINDOW_TYPE_SPLASH]) {
|
||||
/* Set the dialog window to automatically floating, will be used below */
|
||||
new->floating = FLOATING_AUTO_ON;
|
||||
LOG("dialog window, automatically floating\n");
|
||||
LOG("dialog/utility/toolbar/splash window, automatically floating\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (new->workspace->auto_float) {
|
||||
new->floating = FLOATING_AUTO_ON;
|
||||
LOG("workspace is in autofloat mode, setting floating\n");
|
||||
}
|
||||
|
||||
if (new->dock) {
|
||||
/* Get _NET_WM_STRUT_PARTIAL to determine the client’s requested height */
|
||||
uint32_t *strut;
|
||||
|
Loading…
Reference in New Issue
Block a user