all repos — fluxbox @ a691d915f85a7010ad9d6c4be3ac6ab34cc202d6

custom fork of the fluxbox windowmanager

fixed checking on iconified when selecting item
fluxgen fluxgen
commit

a691d915f85a7010ad9d6c4be3ac6ab34cc202d6

parent

6051b3a899b8b28a35e47f51831d41489c043415

1 files changed, 22 insertions(+), 19 deletions(-)

jump to
M src/Windowmenu.ccsrc/Windowmenu.cc

@@ -21,7 +21,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Windowmenu.cc,v 1.15 2002/07/23 13:49:01 fluxgen Exp $ +// $Id: Windowmenu.cc,v 1.16 2002/08/12 03:27:31 fluxgen Exp $ //use GNU extensions #ifndef _GNU_SOURCE

@@ -132,57 +132,60 @@

void Windowmenu::itemSelected(int button, unsigned int index) { BasemenuItem *item = find(index); - + hide(); switch (item->function()) { case BScreen::WINDOWSHADE: - hide(); - + if (window->isIconic()) + break; + window->shade(); if (window->hasTab()) window->getTab()->shade(); - break; + break; case BScreen::WINDOWICONIFY: - hide(); - window->iconify(); - break; + if (!window->isIconic()) + window->iconify(); + else + window->deiconify(); // restore window + + break; case BScreen::WINDOWMAXIMIZE: - hide(); window->maximize((unsigned int) button); - break; + break; case BScreen::WINDOWCLOSE: - hide(); window->close(); - break; + break; case BScreen::WINDOWRAISE: - hide(); + if (window->isIconic()) + break; + if (window->hasTab()) window->getTab()->raise(); //raise tabs screen->getWorkspace(window->getWorkspaceNumber())->raiseWindow(window); - break; + break; case BScreen::WINDOWLOWER: - hide(); - screen->getWorkspace(window->getWorkspaceNumber())->lowerWindow(window); + if (window->isIconic()) + break; + + screen->getWorkspace(window->getWorkspaceNumber())->lowerWindow(window); if (window->hasTab()) window->getTab()->lower(); //lower tabs AND all it's windows break; case BScreen::WINDOWSTICK: - hide(); window->stick(); break; case BScreen::WINDOWKILL: - hide(); XKillClient(screen->getBaseDisplay()->getXDisplay(), window->getClientWindow()); break; case BScreen::WINDOWTAB: - hide(); window->setTab(!window->hasTab()); break; }