Start dock clients on the output they request to be started on according to their geometry
Use dzen2’s -xs option to use this, or specify the coordinates using -x manually.
This commit is contained in:
parent
3c8c426011
commit
fdcbec248a
|
@ -272,12 +272,18 @@ void reparent_window(xcb_connection_t *conn, xcb_window_t child,
|
|||
for (int i = 0; i < xcb_get_property_value_length(preply); i++)
|
||||
if (atom[i] == atoms[_NET_WM_WINDOW_TYPE_DOCK]) {
|
||||
DLOG("Window is a dock.\n");
|
||||
Output *t_out = get_output_containing(x, y);
|
||||
if (t_out != c_ws->output) {
|
||||
DLOG("Dock client requested to be on output %s by geometry (%d, %d)\n",
|
||||
t_out->name, x, y);
|
||||
new->workspace = t_out->current_workspace;
|
||||
}
|
||||
new->dock = true;
|
||||
new->borderless = true;
|
||||
new->titlebar_position = TITLEBAR_OFF;
|
||||
new->force_reconfigure = true;
|
||||
new->container = NULL;
|
||||
SLIST_INSERT_HEAD(&(c_ws->output->dock_clients), new, dock_clients);
|
||||
SLIST_INSERT_HEAD(&(t_out->dock_clients), new, dock_clients);
|
||||
/* If it’s a dock we can’t make it float, so we break */
|
||||
new->floating = FLOATING_AUTO_OFF;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue