diff --git a/get_svnrev.sh b/get_svnrev.sh index 3dc1e55..06a48ce 100755 --- a/get_svnrev.sh +++ b/get_svnrev.sh @@ -1,6 +1,6 @@ #!/bin/sh -FALLBACK=\"0.10-svn\" +FALLBACK=\"0.11-svn\" if [ $# -eq 0 ]; then DIR=. diff --git a/src/panel.h b/src/panel.h index 765b5f1..2b2a570 100644 --- a/src/panel.h +++ b/src/panel.h @@ -148,7 +148,8 @@ int click_padding(Panel *panel, int x, int y); int click_clock(Panel *panel, int x, int y); Area* click_area(Panel *panel, int x, int y); -void autohide_trigger_show(); -void autohide_trigger_hide(); +void autohide_show(void* p); +void autohide_trigger_show(Panel* p); +void autohide_trigger_hide(Panel* p); #endif diff --git a/src/tint.c b/src/tint.c index 8199608..8052aec 100644 --- a/src/tint.c +++ b/src/tint.c @@ -790,8 +790,12 @@ start: autohide_trigger_show(panel); else if (e.type == LeaveNotify) autohide_trigger_hide(panel); - if (panel->is_hidden) - continue; // discard further processing of this event because the panel is not visible yet + if (panel->is_hidden) { + if (e.type == ClientMessage && e.xclient.message_type == server.atom.XdndPosition) + autohide_show(panel); + else + continue; // discard further processing of this event because the panel is not visible yet + } } switch (e.type) { @@ -871,8 +875,7 @@ start: // Start real_transparency signal_pending = SIGUSR1; } - if (!systray.area.on_screen) break; - if (e.xclient.message_type == server.atom._NET_SYSTEM_TRAY_OPCODE && e.xclient.format == 32 && e.xclient.window == net_sel_win) { + if (systray.area.on_screen && e.xclient.message_type == server.atom._NET_SYSTEM_TRAY_OPCODE && e.xclient.format == 32 && e.xclient.window == net_sel_win) { net_message(&e.xclient); } else if (e.xclient.message_type == server.atom.XdndPosition) {