1 diff -urp icewm-1.3.7/src/wmtaskbar.cc icewm-1.3.7a/src/wmtaskbar.cc
2 --- icewm-1.3.7/src/wmtaskbar.cc 2010-10-31 15:09:36.000000000 +0100
3 +++ icewm-1.3.7a/src/wmtaskbar.cc 2011-08-28 22:13:26.000000000 +0200
4 @@ -897,12 +897,12 @@ void TaskBar::updateWMHints() {
7 void TaskBar::handleCrossing(const XCrossingEvent &crossing) {
8 - if (crossing.serial != ignore_enternotify_hack && crossing.serial != ignore_enternotify_hack + 1)
9 + if (crossing.serial != ignore_enternotify_hack && (crossing.serial != ignore_enternotify_hack + 1 || crossing.detail != NotifyVirtual))
11 if (crossing.type == EnterNotify /* && crossing.mode != NotifyNormal */) {
12 fEdgeTrigger->stopHide();
13 } else if (crossing.type == LeaveNotify /* && crossing.mode != NotifyNormal */) {
14 - if (crossing.detail != NotifyInferior && crossing.detail != NotifyVirtual && crossing.detail != NotifyAncestor) {
15 + if (crossing.detail != NotifyInferior && !(crossing.detail == NotifyVirtual && crossing.mode == NotifyGrab) && !(crossing.detail == NotifyAncestor && crossing.mode != NotifyNormal)) {
16 MSG(("taskbar hide: %d", crossing.detail));
17 fEdgeTrigger->startHide();