From 8ec7f2dd9cfd871ac816e8b5383c8a140b7901a4 Mon Sep 17 00:00:00 2001 From: o9000 Date: Sat, 4 Mar 2017 12:24:23 +0100 Subject: [PATCH] Draw panel before systray to reduce flicker --- src/panel.c | 14 +++++++------- src/tint.c | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/panel.c b/src/panel.c index 5fb07d8..501fc55 100644 --- a/src/panel.c +++ b/src/panel.c @@ -667,13 +667,13 @@ void set_panel_layer(Panel *p, Layer layer) state[3] = layer == BOTTOM_LAYER ? server.atom._NET_WM_STATE_BELOW : server.atom._NET_WM_STATE_ABOVE; int num_atoms = layer == NORMAL_LAYER ? 3 : 4; XChangeProperty(server.display, - p->main_win, - server.atom._NET_WM_STATE, - XA_ATOM, - 32, - PropModeReplace, - (unsigned char *)state, - num_atoms); + p->main_win, + server.atom._NET_WM_STATE, + XA_ATOM, + 32, + PropModeReplace, + (unsigned char *)state, + num_atoms); } void replace_panel_all_desktops(Panel *p) diff --git a/src/tint.c b/src/tint.c index 43e706e..4811c19 100644 --- a/src/tint.c +++ b/src/tint.c @@ -1734,6 +1734,16 @@ start: 0); XSetWindowBackgroundPixmap(server.display, panel->main_win, panel->hidden_pixmap); } else { + XCopyArea(server.display, + panel->temp_pmap, + panel->main_win, + server.gc, + 0, + 0, + panel->area.width, + panel->area.height, + 0, + 0); if (panel == (Panel *)systray.area.panel) { if (refresh_systray && panel && !panel->is_hidden) { refresh_systray = FALSE; @@ -1741,16 +1751,6 @@ start: refresh_systray_icons(); } } - XCopyArea(server.display, - panel->temp_pmap, - panel->main_win, - server.gc, - 0, - 0, - panel->area.width, - panel->area.height, - 0, - 0); } } if (first_render) {