systray: restack on client raise
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
8f5363bcc1
commit
4711f4631f
17
client.c
17
client.c
|
@ -284,13 +284,24 @@ client_raise(client_t *c)
|
||||||
layer_t layer;
|
layer_t layer;
|
||||||
statusbar_t *sb;
|
statusbar_t *sb;
|
||||||
int screen;
|
int screen;
|
||||||
|
xembed_window_t *emwin;
|
||||||
config_win_vals[0] = XCB_NONE;
|
|
||||||
config_win_vals[1] = XCB_STACK_MODE_BELOW;
|
|
||||||
|
|
||||||
/* Push c on top of the stack. */
|
/* Push c on top of the stack. */
|
||||||
stack_client_push(c);
|
stack_client_push(c);
|
||||||
|
|
||||||
|
config_win_vals[0] = XCB_NONE;
|
||||||
|
|
||||||
|
for(emwin = globalconf.embedded; emwin; emwin = emwin->next)
|
||||||
|
{
|
||||||
|
xcb_configure_window(globalconf.connection,
|
||||||
|
emwin->win,
|
||||||
|
XCB_CONFIG_WINDOW_SIBLING | XCB_CONFIG_WINDOW_STACK_MODE,
|
||||||
|
config_win_vals);
|
||||||
|
config_win_vals[0] = emwin->win;
|
||||||
|
}
|
||||||
|
|
||||||
|
config_win_vals[1] = XCB_STACK_MODE_BELOW;
|
||||||
|
|
||||||
for(screen = 0; screen < globalconf.screens_info->nscreen; screen++)
|
for(screen = 0; screen < globalconf.screens_info->nscreen; screen++)
|
||||||
for(sb = globalconf.screens[screen].statusbar; sb; sb = sb->next)
|
for(sb = globalconf.screens[screen].statusbar; sb; sb = sb->next)
|
||||||
if(sb->sw)
|
if(sb->sw)
|
||||||
|
|
|
@ -36,7 +36,7 @@ systray_draw(draw_context_t *ctx,
|
||||||
{
|
{
|
||||||
int i = 0, phys_screen;
|
int i = 0, phys_screen;
|
||||||
xembed_window_t *em;
|
xembed_window_t *em;
|
||||||
uint32_t config_win_vals[6];
|
uint32_t config_win_vals[4];
|
||||||
/* p is always a statusbar, titlebars are forbidden */
|
/* p is always a statusbar, titlebars are forbidden */
|
||||||
statusbar_t *sb = (statusbar_t *) p;
|
statusbar_t *sb = (statusbar_t *) p;
|
||||||
|
|
||||||
|
@ -61,10 +61,6 @@ systray_draw(draw_context_t *ctx,
|
||||||
config_win_vals[2] = w->area.height;
|
config_win_vals[2] = w->area.height;
|
||||||
/* height */
|
/* height */
|
||||||
config_win_vals[3] = w->area.height;
|
config_win_vals[3] = w->area.height;
|
||||||
/* sibling */
|
|
||||||
config_win_vals[4] = sb->sw->window;
|
|
||||||
/* stack mode */
|
|
||||||
config_win_vals[5] = XCB_STACK_MODE_ABOVE;
|
|
||||||
|
|
||||||
switch(sb->position)
|
switch(sb->position)
|
||||||
{
|
{
|
||||||
|
@ -82,9 +78,7 @@ systray_draw(draw_context_t *ctx,
|
||||||
XCB_CONFIG_WINDOW_X
|
XCB_CONFIG_WINDOW_X
|
||||||
| XCB_CONFIG_WINDOW_Y
|
| XCB_CONFIG_WINDOW_Y
|
||||||
| XCB_CONFIG_WINDOW_WIDTH
|
| XCB_CONFIG_WINDOW_WIDTH
|
||||||
| XCB_CONFIG_WINDOW_HEIGHT
|
| XCB_CONFIG_WINDOW_HEIGHT,
|
||||||
| XCB_CONFIG_WINDOW_SIBLING
|
|
||||||
| XCB_CONFIG_WINDOW_STACK_MODE,
|
|
||||||
config_win_vals);
|
config_win_vals);
|
||||||
config_win_vals[1] -= config_win_vals[3];
|
config_win_vals[1] -= config_win_vals[3];
|
||||||
}
|
}
|
||||||
|
@ -105,9 +99,7 @@ systray_draw(draw_context_t *ctx,
|
||||||
XCB_CONFIG_WINDOW_X
|
XCB_CONFIG_WINDOW_X
|
||||||
| XCB_CONFIG_WINDOW_Y
|
| XCB_CONFIG_WINDOW_Y
|
||||||
| XCB_CONFIG_WINDOW_WIDTH
|
| XCB_CONFIG_WINDOW_WIDTH
|
||||||
| XCB_CONFIG_WINDOW_HEIGHT
|
| XCB_CONFIG_WINDOW_HEIGHT,
|
||||||
| XCB_CONFIG_WINDOW_SIBLING
|
|
||||||
| XCB_CONFIG_WINDOW_STACK_MODE,
|
|
||||||
config_win_vals);
|
config_win_vals);
|
||||||
config_win_vals[1] += config_win_vals[3];
|
config_win_vals[1] += config_win_vals[3];
|
||||||
}
|
}
|
||||||
|
@ -132,9 +124,7 @@ systray_draw(draw_context_t *ctx,
|
||||||
XCB_CONFIG_WINDOW_X
|
XCB_CONFIG_WINDOW_X
|
||||||
| XCB_CONFIG_WINDOW_Y
|
| XCB_CONFIG_WINDOW_Y
|
||||||
| XCB_CONFIG_WINDOW_WIDTH
|
| XCB_CONFIG_WINDOW_WIDTH
|
||||||
| XCB_CONFIG_WINDOW_HEIGHT
|
| XCB_CONFIG_WINDOW_HEIGHT,
|
||||||
| XCB_CONFIG_WINDOW_SIBLING
|
|
||||||
| XCB_CONFIG_WINDOW_STACK_MODE,
|
|
||||||
config_win_vals);
|
config_win_vals);
|
||||||
config_win_vals[0] += config_win_vals[2];
|
config_win_vals[0] += config_win_vals[2];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue