X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xboard.c;h=cbe40e1419362727e61e953f785fcd0b6d00d18b;hb=99567fe1b4652cd8b448638817090158773280be;hp=2efc2c2d6b7827c4b35a536181159050e44f8ec6;hpb=85e09fb8d532d31848d6785dc43b6f9ee56e009a;p=xboard.git diff --git a/xboard.c b/xboard.c index 2efc2c2..cbe40e1 100644 --- a/xboard.c +++ b/xboard.c @@ -3708,59 +3708,6 @@ void SetupDropMenu() } } -int RightClick(int action, int x, int y) -{ // front-end-free part taken out of PieceMenuPopup - int whichMenu; - - if (event->type == ButtonRelease) UnLoadPV(); // [HGM] pv - if (event->type != ButtonPress) return; - if (errorUp) ErrorPopDown(); - switch (gameMode) { - case EditPosition: - case IcsExamining: - whichMenu = 0; - break; - case IcsObserving: - if(!appData.icsEngineAnalyze) return -1; - case IcsPlayingWhite: - case IcsPlayingBlack: - if(!appData.zippyPlay) goto noZip; - case AnalyzeMode: - case AnalyzeFile: - case MachinePlaysWhite: - case MachinePlaysBlack: - case TwoMachinesPlay: // [HGM] pv: use for showing PV - if (!appData.dropMenu) { - LoadPV(x, y); - return; - } - if(gameMode == TwoMachinesPlay || gameMode == AnalyzeMode || - gameMode == AnalyzeFile || gameMode == IcsObserving) return -1; - case EditGame: - noZip: - if (!appData.dropMenu || appData.testLegality && - gameInfo.variant != VariantBughouse && - gameInfo.variant != VariantCrazyhouse) return -1; - SetupDropMenu(); - whichMenu = 1; - break; - default: - return -1; - } - - if (((pmFromX = EventToSquare(x, BOARD_WIDTH)) < 0) || - ((pmFromY = EventToSquare(y, BOARD_HEIGHT)) < 0)) { - pmFromX = pmFromY = -1; - return -1; - } - if (flipView) - pmFromX = BOARD_WIDTH - 1 - pmFromX; - else - pmFromY = BOARD_HEIGHT - 1 - pmFromY; - - return whichMenu; -} - void PieceMenuPopup(w, event, params, num_params) Widget w; XEvent *event; @@ -3768,11 +3715,14 @@ void PieceMenuPopup(w, event, params, num_params) Cardinal *num_params; { String whichMenu; int menuNr; - if (event->type == ButtonRelease) menuNr = RightClick(Release, event->xbutton.x, event->xbutton.y); // [HGM] pv - if (event->type == ButtonPress) menuNr = RightClick(Press, event->xbutton.x, event->xbutton.y); + if (event->type == ButtonRelease) + menuNr = RightClick(Release, event->xbutton.x, event->xbutton.y, &pmFromX, &pmFromY); + else if (event->type == ButtonPress) + menuNr = RightClick(Press, event->xbutton.x, event->xbutton.y, &pmFromX, &pmFromY); switch(menuNr) { case 0: whichMenu = params[0]; break; - case 1: whichMenu = "menuD"; break; + case 1: SetupDropMenu(); whichMenu = "menuD"; break; + case -1: if (errorUp) ErrorPopDown(); default: return; } XtPopupSpringLoaded(XtNameToWidget(boardWidget, whichMenu));