From 7a0fc200e711dea262ccabd7d07d53aa6d91c9df Mon Sep 17 00:00:00 2001 From: Andreas Fink Date: Wed, 11 Nov 2009 17:12:24 +0000 Subject: [PATCH] *fix* allow minimizing omnipresent windows also on desktop 2-n *fix* hopefully fixed issue 145 *fix* removed two unused variables --- src/battery/battery.c | 3 +-- src/taskbar/task.h | 6 ++++++ src/tint.c | 17 ++++++++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/battery/battery.c b/src/battery/battery.c index c88c3a5..5b98f13 100644 --- a/src/battery/battery.c +++ b/src/battery/battery.c @@ -150,7 +150,6 @@ void init_battery_panel(void *p) { Panel *panel = (Panel*)p; Battery *battery = &panel->battery; - FILE *fp; int bat_percentage_height, bat_percentage_height_ink, bat_time_height, bat_time_height_ink; if (!battery_enabled) @@ -194,7 +193,7 @@ void update_battery() { FILE *fp; char tmp[25]; int64_t energy_now = 0, energy_full = 0, current_now = 0; - int i, seconds = 0; + int seconds = 0; int8_t new_percentage = 0; fp = fopen(path_status, "r"); diff --git a/src/taskbar/task.h b/src/taskbar/task.h index b29e576..492c425 100644 --- a/src/taskbar/task.h +++ b/src/taskbar/task.h @@ -54,6 +54,12 @@ typedef struct { } Task; +typedef struct { + Task* tsk; + int tick; +} Task_urgent; + + Task *add_task (Window win); void remove_task (Task *tsk); diff --git a/src/tint.c b/src/tint.c index 163fd9e..ece6dbc 100644 --- a/src/tint.c +++ b/src/tint.c @@ -265,8 +265,10 @@ void window_action (Task *tsk, int action) XIconifyWindow (server.dsp, tsk->win, server.screen); break; case TOGGLE_ICONIFY: - if (tsk == task_active) XIconifyWindow (server.dsp, tsk->win, server.screen); - else set_active (tsk->win); + if (task_active && tsk->win == task_active->win) + XIconifyWindow (server.dsp, tsk->win, server.screen); + else + set_active (tsk->win); break; case SHADE: window_toggle_shade (tsk->win); @@ -478,10 +480,15 @@ void event_property_notify (XEvent *e) else { tsk = task_get_task (win); if (!tsk) { - if ( at != server.atom._NET_WM_STATE) - return; - else if ( !(tsk = add_task(win)) ) + // some stupid wm send _NET_WM_STATE after the window was minimized to tray??? + if (at != server.atom._NET_WM_STATE) return; + else if (!window_is_skip_taskbar(win)) { + if (tsk = add_task(win)) + panel_refresh = 1; + else + return; + } } //printf("atom root_win = %s, %s\n", XGetAtomName(server.dsp, at), tsk->title); -- 2.45.2