diff -rauN fluxbox-0.1.12_orig/src/Window.cc fluxbox-0.1.12/src/Window.cc --- fluxbox-0.1.12_orig/src/Window.cc Wed Sep 11 11:57:53 2002 +++ fluxbox-0.1.12/src/Window.cc Tue Nov 12 16:21:13 2002 @@ -3091,11 +3091,11 @@ windowmenu->hide(); //raise tab first, if there is any, so the focus on windows get //right and dont "hide" the tab behind other windows - if (tab) +/* if (tab) tab->raise(); screen->getWorkspace(workspace_number)->raiseWindow(this); - +*/ XAllowEvents(display, ReplayPointer, be->time); } else { @@ -3119,10 +3119,11 @@ if (windowmenu && windowmenu->isVisible()) windowmenu->hide(); //raise tab first if there is any - if (hasTab()) +/* if (hasTab()) tab->raise(); screen->getWorkspace(workspace_number)->raiseWindow(this); +*/ } } else if (be->button == 2 && be->window == frame.label) { screen->getWorkspace(workspace_number)->lowerWindow(this); @@ -3199,7 +3200,20 @@ stopMoving(); else if (isResizing()) stopResizing(); - else if (re->window == frame.window) { + else if (re->button == 3 && frame.window == re->window) { + resizing = false; + fluxbox->ungrab(); + XUngrabPointer(display, CurrentTime); + iconify(); + } else if ((re->button == 1) && ((frame.window == re->window) || (frame.label == re->window) || (frame.handle == re->window))) { + if (hasTab()) + tab->raise(); + screen->getWorkspace(workspace_number)->raiseWindow(this); + } else if ((re->button == 2) && ((frame.window == re->window) || (frame.label == re->window) || (frame.handle == re->window))) { + if (hasTab()) + tab->lower(); + screen->getWorkspace(workspace_number)->lowerWindow(this); + } else if (re->window == frame.window) { if (re->button == 2 && re->state == Mod1Mask) XUngrabPointer(display, CurrentTime); } else {