From b70e6b500e747c4b18f3b1948fe193ce22255289 Mon Sep 17 00:00:00 2001 From: o9000 Date: Sat, 31 Jan 2015 11:02:35 +0000 Subject: [PATCH] Better handling of the systray_monitor option git-svn-id: http://tint2.googlecode.com/svn/trunk@678 121b4492-b84c-0410-8b4c-0d4edfb3f3cc --- src/panel.c | 6 ++---- src/systray/systraybar.c | 6 ++++++ src/systray/systraybar.h | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/panel.c b/src/panel.c index bc38454..d58058e 100644 --- a/src/panel.c +++ b/src/panel.c @@ -184,8 +184,7 @@ void init_panel() if (panel_items_order[k] == 'B') init_battery_panel(p); #endif - if (panel_items_order[k] == 'S' && - ((i == systray_monitor) || (i == 0 && systray_monitor >= nb_panel))) { + if (panel_items_order[k] == 'S' && systray_on_monitor(i, nb_panel)) { init_systray_panel(p); refresh_systray = 1; } @@ -487,8 +486,7 @@ void set_panel_items_order(Panel *p) p->area.list = g_slist_append(p->area.list, &p->battery); #endif int i = p - panel1; - if (panel_items_order[k] == 'S' && - ((i == systray_monitor) || (i == 0 && systray_monitor >= nb_panel))) { + if (panel_items_order[k] == 'S' && systray_on_monitor(i, nb_panel)) { p->area.list = g_slist_append(p->area.list, &systray); } if (panel_items_order[k] == 'C') diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 6f40627..4506292 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -636,3 +636,9 @@ void refresh_systray_icon() systray_render_icon(traywin); } } + +int systray_on_monitor(int i_monitor, int nb_panels) +{ + return (i_monitor == systray_monitor) || + (i_monitor == 0 && (systray_monitor >= nb_panels || systray_monitor < 0)); +} diff --git a/src/systray/systraybar.h b/src/systray/systraybar.h index ee0a385..3221d7e 100644 --- a/src/systray/systraybar.h +++ b/src/systray/systraybar.h @@ -67,7 +67,7 @@ void init_systray_panel(void *p); void draw_systray(void *obj, cairo_t *c); int resize_systray(void *obj); void on_change_systray(void *obj); - +int systray_on_monitor(int i_monitor, int nb_panels); // systray protocol // many tray icon doesn't manage stop/restart of the systray manager