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
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) {
// 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) {