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:
Michael Stapelberg 2010-03-19 21:44:36 +01:00
parent 3c8c426011
commit fdcbec248a
1 changed files with 7 additions and 1 deletions

View File

@ -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 its a dock we cant make it float, so we break */
new->floating = FLOATING_AUTO_OFF;
break;