otherwise systray dies because window is destroyed.
---
statusbar.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/statusbar.c b/statusbar.c
index 85d3947..71430f2 100644
--- a/statusbar.c
+++ b/statusbar.c
@@ -272,9 +272,8 @@ statusbar_position_update(wibox_t *statusbar)
if(statusbar->position == Off)
{
- xcb_unmap_window(globalconf.connection, statusbar->sw.window);
- /* kick out systray if needed */
- statusbar_systray_refresh(statusbar);
+ /* Set need update */
+ globalconf.screens[statusbar->screen].need_arrange = true;
return;
}
@@ -567,8 +566,13 @@ luaA_statusbar_newindex(lua_State *L, wibox_t *statusbar,
awesome_token_t tok)
if(p != statusbar->position)
{
statusbar->position = p;
- simplewindow_wipe(&statusbar->sw);
- statusbar->sw.window = 0;
+ xcb_unmap_window(globalconf.connection, statusbar->sw.window);
+ statusbar_systray_kickout(statusbar->sw.ctx.phys_screen);
+ if(statusbar->sw.window)
+ {
+ simplewindow_wipe(&statusbar->sw);
+ statusbar->sw.window = 0;
+ }
if(statusbar->screen != SCREEN_UNDEF)
{
for(int i = 0; i <
globalconf.screens[statusbar->screen].statusbars.len; i++)
--
1.6.0.1
--
To unsubscribe, send mail to [EMAIL PROTECTED]