Ticket #9744: keymapWindow.cpp.patch

File keymapWindow.cpp.patch, 33.0 KB (added by greekboy, 11 years ago)
  • haiku/src/preferences/keymap/KeymapWindow.cpp

    old new  
    11/*
    2  * Copyright 2004-2010 Haiku Inc. All rights reserved.
     2 * Copyright 2004-2013 Haiku Inc. All rights reserved.
    33 * Distributed under the terms of the MIT License.
    44 *
    55 * Authors:
     
    77 *      Jérôme Duval
    88 *      Alexandre Deckner, alex@zappotek.com
    99 *      Axel Dörfler, axeld@pinc-software.de.
     10 *      Hristos Maretsikos, chrisgrelec@sch.gr.
    1011 */
    1112
    1213
    static const uint32 kMsgRevertKeymap = '  
    5960static const uint32 kMsgKeymapUpdated = 'kMup';
    6061
    6162static const uint32 kMsgDeadKeyAcuteChanged = 'dkAc';
    62 static const uint32 kMsgDeadKeyCircumflexChanged = 'dkCc';
    63 static const uint32 kMsgDeadKeyDiaeresisChanged = 'dkDc';
    64 static const uint32 kMsgDeadKeyGraveChanged = 'dkGc';
    65 static const uint32 kMsgDeadKeyTildeChanged = 'dkTc';
     63static const uint32 kMsgDeadKeyAcuteSmoothChanged = 'dkBc';
     64static const uint32 kMsgDeadKeyAcuteRoughChanged = 'dkCc';
     65static const uint32 kMsgDeadKeyAcuteDiaeresisChanged = 'dkDc';
     66static const uint32 kMsgDeadKeyAcuteSubscriptChanged = 'dkEc';
     67static const uint32 kMsgDeadKeyAcuteSmoothSubscriptChanged = 'dkFc';
     68static const uint32 kMsgDeadKeyAcuteRoughSubscriptChanged = 'dkGc';
     69static const uint32 kMsgDeadKeyGraveChanged = 'dkHc';
     70static const uint32 kMsgDeadKeyGraveSmoothChanged = 'dkIc';
     71static const uint32 kMsgDeadKeyGraveRoughChanged = 'dkJc';
     72static const uint32 kMsgDeadKeyGraveDiaeresisChanged = 'dkKc';
     73static const uint32 kMsgDeadKeyGraveSubscriptChanged = 'dkLc';
     74static const uint32 kMsgDeadKeyGraveSmoothSubscriptChanged = 'dkMc';
     75static const uint32 kMsgDeadKeyGraveRoughSubscriptChanged = 'dkNc';
     76static const uint32 kMsgDeadKeySmoothChanged = 'dkOc';
     77static const uint32 kMsgDeadKeySmoothCircumflexChanged = 'dkPc';
     78static const uint32 kMsgDeadKeySmoothSubscriptChanged = 'dkQc';
     79static const uint32 kMsgDeadKeySmoothCircumflexSubscriptChanged = 'dkRc';
     80static const uint32 kMsgDeadKeyRoughChanged = 'dkSc';
     81static const uint32 kMsgDeadKeyRoughCircumflexChanged = 'dkTc';
     82static const uint32 kMsgDeadKeyRoughSubscriptChanged = 'dkUc';
     83static const uint32 kMsgDeadKeyRoughCircumflexSubscriptChanged = 'dkVc';
     84static const uint32 kMsgDeadKeyCircumflexChanged = 'dkWc';
     85static const uint32 kMsgDeadKeyCircumflexDiaeresisChanged = 'dkXc';
     86static const uint32 kMsgDeadKeyCircumflexSubscriptChanged = 'dkYc';
     87static const uint32 kMsgDeadKeyDiaeresisChanged = 'dkZc';
     88static const uint32 kMsgDeadKeyDiaeresisAccentChanged = 'dkac';
     89static const uint32 kMsgDeadKeyTildeChanged = 'dkbc';
     90static const uint32 kMsgDeadKeyAccentChanged = 'dkcc';
     91static const uint32 kMsgDeadKeyMacronChanged = 'dkdc';
     92static const uint32 kMsgDeadKeyBreveChanged = 'dkec';
     93static const uint32 kMsgDeadKeySubscriptChanged = 'dkfc';
    6694
    6795static const char* kDeadKeyTriggerNone = "<none>";
    6896
    KeymapWindow::MessageReceived(BMessage*  
    349377            break;
    350378        }
    351379
     380        case kMsgDeadKeyAcuteSmoothChanged:
     381        {
     382            BMenuItem* item = fAcuteSmoothMenu->FindMarked();
     383            if (item != NULL) {
     384                const char* trigger = item->Label();
     385                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     386                    trigger = NULL;
     387                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAcuteSmooth, trigger);
     388                fKeyboardLayoutView->Invalidate();
     389            }
     390            break;
     391        }
     392
     393        case kMsgDeadKeyAcuteRoughChanged:
     394        {
     395            BMenuItem* item = fAcuteRoughMenu->FindMarked();
     396            if (item != NULL) {
     397                const char* trigger = item->Label();
     398                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     399                    trigger = NULL;
     400                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAcuteRough, trigger);
     401                fKeyboardLayoutView->Invalidate();
     402            }
     403            break;
     404        }
     405
     406        case kMsgDeadKeyAcuteDiaeresisChanged:
     407        {
     408            BMenuItem* item = fAcuteDiaeresisMenu->FindMarked();
     409            if (item != NULL) {
     410                const char* trigger = item->Label();
     411                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     412                    trigger = NULL;
     413                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAcuteDiaeresis, trigger);
     414                fKeyboardLayoutView->Invalidate();
     415            }
     416            break;
     417        }
     418
     419        case kMsgDeadKeyAcuteSubscriptChanged:
     420        {
     421            BMenuItem* item = fAcuteSubscriptMenu->FindMarked();
     422            if (item != NULL) {
     423                const char* trigger = item->Label();
     424                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     425                    trigger = NULL;
     426                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAcuteSubscript, trigger);
     427                fKeyboardLayoutView->Invalidate();
     428            }
     429            break;
     430        }
     431
     432        case kMsgDeadKeyAcuteSmoothSubscriptChanged:
     433        {
     434            BMenuItem* item = fAcuteSmoothSubscriptMenu->FindMarked();
     435            if (item != NULL) {
     436                const char* trigger = item->Label();
     437                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     438                    trigger = NULL;
     439                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAcuteSmoothSubscript, trigger);
     440                fKeyboardLayoutView->Invalidate();
     441            }
     442            break;
     443        }
     444
     445        case kMsgDeadKeyAcuteRoughSubscriptChanged:
     446        {
     447            BMenuItem* item = fAcuteRoughSubscriptMenu->FindMarked();
     448            if (item != NULL) {
     449                const char* trigger = item->Label();
     450                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     451                    trigger = NULL;
     452                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAcuteRoughSubscript, trigger);
     453                fKeyboardLayoutView->Invalidate();
     454            }
     455            break;
     456        }
     457
     458        case kMsgDeadKeyGraveChanged:
     459        {
     460            BMenuItem* item = fGraveMenu->FindMarked();
     461            if (item != NULL) {
     462                const char* trigger = item->Label();
     463                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     464                    trigger = NULL;
     465                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGrave, trigger);
     466                fKeyboardLayoutView->Invalidate();
     467            }
     468            break;
     469        }
     470
     471        case kMsgDeadKeyGraveSmoothChanged:
     472        {
     473            BMenuItem* item = fGraveSmoothMenu->FindMarked();
     474            if (item != NULL) {
     475                const char* trigger = item->Label();
     476                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     477                    trigger = NULL;
     478                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGraveSmooth, trigger);
     479                fKeyboardLayoutView->Invalidate();
     480            }
     481            break;
     482        }
     483
     484        case kMsgDeadKeyGraveRoughChanged:
     485        {
     486            BMenuItem* item = fGraveRoughMenu->FindMarked();
     487            if (item != NULL) {
     488                const char* trigger = item->Label();
     489                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     490                    trigger = NULL;
     491                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGraveRough, trigger);
     492                fKeyboardLayoutView->Invalidate();
     493            }
     494            break;
     495        }
     496
     497        case kMsgDeadKeyGraveDiaeresisChanged:
     498        {
     499            BMenuItem* item = fGraveDiaeresisMenu->FindMarked();
     500            if (item != NULL) {
     501                const char* trigger = item->Label();
     502                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     503                    trigger = NULL;
     504                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGraveDiaeresis, trigger);
     505                fKeyboardLayoutView->Invalidate();
     506            }
     507            break;
     508        }
     509
     510        case kMsgDeadKeyGraveSubscriptChanged:
     511        {
     512            BMenuItem* item = fGraveSubscriptMenu->FindMarked();
     513            if (item != NULL) {
     514                const char* trigger = item->Label();
     515                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     516                    trigger = NULL;
     517                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGraveSubscript, trigger);
     518                fKeyboardLayoutView->Invalidate();
     519            }
     520            break;
     521        }
     522
     523        case kMsgDeadKeyGraveSmoothSubscriptChanged:
     524        {
     525            BMenuItem* item = fGraveSmoothSubscriptMenu->FindMarked();
     526            if (item != NULL) {
     527                const char* trigger = item->Label();
     528                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     529                    trigger = NULL;
     530                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGraveSmoothSubscript, trigger);
     531                fKeyboardLayoutView->Invalidate();
     532            }
     533            break;
     534        }
     535
     536        case kMsgDeadKeyGraveRoughSubscriptChanged:
     537        {
     538            BMenuItem* item = fGraveRoughSubscriptMenu->FindMarked();
     539            if (item != NULL) {
     540                const char* trigger = item->Label();
     541                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     542                    trigger = NULL;
     543                fCurrentMap.SetDeadKeyTrigger(kDeadKeyGraveRoughSubscript, trigger);
     544                fKeyboardLayoutView->Invalidate();
     545            }
     546            break;
     547        }
     548
     549        case kMsgDeadKeySmoothChanged:
     550        {
     551            BMenuItem* item = fSmoothMenu->FindMarked();
     552            if (item != NULL) {
     553                const char* trigger = item->Label();
     554                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     555                    trigger = NULL;
     556                fCurrentMap.SetDeadKeyTrigger(kDeadKeySmooth, trigger);
     557                fKeyboardLayoutView->Invalidate();
     558            }
     559            break;
     560        }
     561
     562        case kMsgDeadKeySmoothCircumflexChanged:
     563        {
     564            BMenuItem* item = fSmoothCircumflexMenu->FindMarked();
     565            if (item != NULL) {
     566                const char* trigger = item->Label();
     567                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     568                    trigger = NULL;
     569                fCurrentMap.SetDeadKeyTrigger(kDeadKeySmoothCircumflex, trigger);
     570                fKeyboardLayoutView->Invalidate();
     571            }
     572            break;
     573        }
     574
     575        case kMsgDeadKeySmoothSubscriptChanged:
     576        {
     577            BMenuItem* item = fSmoothSubscriptMenu->FindMarked();
     578            if (item != NULL) {
     579                const char* trigger = item->Label();
     580                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     581                    trigger = NULL;
     582                fCurrentMap.SetDeadKeyTrigger(kDeadKeySmoothSubscript, trigger);
     583                fKeyboardLayoutView->Invalidate();
     584            }
     585            break;
     586        }
     587
     588        case kMsgDeadKeySmoothCircumflexSubscriptChanged:
     589        {
     590            BMenuItem* item = fSmoothCircumflexSubscriptMenu->FindMarked();
     591            if (item != NULL) {
     592                const char* trigger = item->Label();
     593                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     594                    trigger = NULL;
     595                fCurrentMap.SetDeadKeyTrigger(kDeadKeySmoothCircumflexSubscript, trigger);
     596                fKeyboardLayoutView->Invalidate();
     597            }
     598            break;
     599        }
     600
     601        case kMsgDeadKeyRoughChanged:
     602        {
     603            BMenuItem* item = fRoughMenu->FindMarked();
     604            if (item != NULL) {
     605                const char* trigger = item->Label();
     606                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     607                    trigger = NULL;
     608                fCurrentMap.SetDeadKeyTrigger(kDeadKeyRough, trigger);
     609                fKeyboardLayoutView->Invalidate();
     610            }
     611            break;
     612        }
     613
     614        case kMsgDeadKeyRoughCircumflexChanged:
     615        {
     616            BMenuItem* item = fRoughCircumflexMenu->FindMarked();
     617            if (item != NULL) {
     618                const char* trigger = item->Label();
     619                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     620                    trigger = NULL;
     621                fCurrentMap.SetDeadKeyTrigger(kDeadKeyRoughCircumflex, trigger);
     622                fKeyboardLayoutView->Invalidate();
     623            }
     624            break;
     625        }
     626
     627        case kMsgDeadKeyRoughSubscriptChanged:
     628        {
     629            BMenuItem* item = fRoughSubscriptMenu->FindMarked();
     630            if (item != NULL) {
     631                const char* trigger = item->Label();
     632                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     633                    trigger = NULL;
     634                fCurrentMap.SetDeadKeyTrigger(kDeadKeyRoughSubscript, trigger);
     635                fKeyboardLayoutView->Invalidate();
     636            }
     637            break;
     638        }
     639
     640        case kMsgDeadKeyRoughCircumflexSubscriptChanged:
     641        {
     642            BMenuItem* item = fRoughCircumflexSubscriptMenu->FindMarked();
     643            if (item != NULL) {
     644                const char* trigger = item->Label();
     645                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     646                    trigger = NULL;
     647                fCurrentMap.SetDeadKeyTrigger(kDeadKeyRoughCircumflexSubscript, trigger);
     648                fKeyboardLayoutView->Invalidate();
     649            }
     650            break;
     651        }
     652
    352653        case kMsgDeadKeyCircumflexChanged:
    353654        {
    354655            BMenuItem* item = fCircumflexMenu->FindMarked();
    KeymapWindow::MessageReceived(BMessage*  
    362663            break;
    363664        }
    364665
     666        case kMsgDeadKeyCircumflexDiaeresisChanged:
     667        {
     668            BMenuItem* item = fCircumflexDiaeresisMenu->FindMarked();
     669            if (item != NULL) {
     670                const char* trigger = item->Label();
     671                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     672                    trigger = NULL;
     673                fCurrentMap.SetDeadKeyTrigger(kDeadKeyCircumflexDiaeresis, trigger);
     674                fKeyboardLayoutView->Invalidate();
     675            }
     676            break;
     677        }
     678
     679        case kMsgDeadKeyCircumflexSubscriptChanged:
     680        {
     681            BMenuItem* item = fCircumflexSubscriptMenu->FindMarked();
     682            if (item != NULL) {
     683                const char* trigger = item->Label();
     684                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     685                    trigger = NULL;
     686                fCurrentMap.SetDeadKeyTrigger(kDeadKeyCircumflexSubscript, trigger);
     687                fKeyboardLayoutView->Invalidate();
     688            }
     689            break;
     690        }
     691
    365692        case kMsgDeadKeyDiaeresisChanged:
    366693        {
    367694            BMenuItem* item = fDiaeresisMenu->FindMarked();
    KeymapWindow::MessageReceived(BMessage*  
    375702            break;
    376703        }
    377704
    378         case kMsgDeadKeyGraveChanged:
     705        case kMsgDeadKeyDiaeresisAccentChanged:
    379706        {
    380             BMenuItem* item = fGraveMenu->FindMarked();
     707            BMenuItem* item = fDiaeresisAccentMenu->FindMarked();
    381708            if (item != NULL) {
    382709                const char* trigger = item->Label();
    383710                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
    384711                    trigger = NULL;
    385                 fCurrentMap.SetDeadKeyTrigger(kDeadKeyGrave, trigger);
     712                fCurrentMap.SetDeadKeyTrigger(kDeadKeyDiaeresisAccent, trigger);
    386713                fKeyboardLayoutView->Invalidate();
    387714            }
    388715            break;
    KeymapWindow::MessageReceived(BMessage*  
    401728            break;
    402729        }
    403730
     731        case kMsgDeadKeyAccentChanged:
     732        {
     733            BMenuItem* item = fAccentMenu->FindMarked();
     734            if (item != NULL) {
     735                const char* trigger = item->Label();
     736                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     737                    trigger = NULL;
     738                fCurrentMap.SetDeadKeyTrigger(kDeadKeyAccent, trigger);
     739                fKeyboardLayoutView->Invalidate();
     740            }
     741            break;
     742        }
     743
     744        case kMsgDeadKeyMacronChanged:
     745        {
     746            BMenuItem* item = fMacronMenu->FindMarked();
     747            if (item != NULL) {
     748                const char* trigger = item->Label();
     749                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     750                    trigger = NULL;
     751                fCurrentMap.SetDeadKeyTrigger(kDeadKeyMacron, trigger);
     752                fKeyboardLayoutView->Invalidate();
     753            }
     754            break;
     755        }
     756
     757        case kMsgDeadKeyBreveChanged:
     758        {
     759            BMenuItem* item = fBreveMenu->FindMarked();
     760            if (item != NULL) {
     761                const char* trigger = item->Label();
     762                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     763                    trigger = NULL;
     764                fCurrentMap.SetDeadKeyTrigger(kDeadKeyBreve, trigger);
     765                fKeyboardLayoutView->Invalidate();
     766            }
     767            break;
     768        }
     769
     770        case kMsgDeadKeySubscriptChanged:
     771        {
     772            BMenuItem* item = fSubscriptMenu->FindMarked();
     773            if (item != NULL) {
     774                const char* trigger = item->Label();
     775                if (strcmp(trigger, kDeadKeyTriggerNone) == 0)
     776                    trigger = NULL;
     777                fCurrentMap.SetDeadKeyTrigger(kDeadKeySubscript, trigger);
     778                fKeyboardLayoutView->Invalidate();
     779            }
     780            break;
     781        }
     782
    404783        default:
    405784            BWindow::MessageReceived(message);
    406785            break;
    KeymapWindow::_CreateDeadKeyMenuField()  
    475854        new BMessage(kMsgDeadKeyAcuteChanged)));
    476855    deadKeyMenu->AddItem(fAcuteMenu);
    477856
     857    fAcuteSmoothMenu = new BMenu(B_TRANSLATE("AcuteSmooth trigger"));
     858    fAcuteSmoothMenu->SetRadioMode(true);
     859    fAcuteSmoothMenu->AddItem(new BMenuItem("\xE2\x88\x95",
     860        new BMessage(kMsgDeadKeyAcuteSmoothChanged)));
     861    fAcuteSmoothMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     862        new BMessage(kMsgDeadKeyAcuteSmoothChanged)));
     863    deadKeyMenu->AddItem(fAcuteSmoothMenu);
     864
     865    fAcuteRoughMenu = new BMenu(B_TRANSLATE("AcuteRough trigger"));
     866    fAcuteRoughMenu->SetRadioMode(true);
     867    fAcuteRoughMenu->AddItem(new BMenuItem("?",
     868        new BMessage(kMsgDeadKeyAcuteRoughChanged)));
     869    fAcuteRoughMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     870        new BMessage(kMsgDeadKeyAcuteRoughChanged)));
     871    deadKeyMenu->AddItem(fAcuteRoughMenu);
     872
     873    fAcuteDiaeresisMenu = new BMenu(B_TRANSLATE("AcuteDiaeresis trigger"));
     874    fAcuteDiaeresisMenu->SetRadioMode(true);
     875    fAcuteDiaeresisMenu->AddItem(new BMenuItem("\x7E",
     876        new BMessage(kMsgDeadKeyAcuteDiaeresisChanged)));
     877    fAcuteDiaeresisMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     878        new BMessage(kMsgDeadKeyAcuteDiaeresisChanged)));
     879    deadKeyMenu->AddItem(fAcuteDiaeresisMenu);
     880
     881    fAcuteSubscriptMenu = new BMenu(B_TRANSLATE("AcuteSubscript trigger"));
     882    fAcuteSubscriptMenu->SetRadioMode(true);
     883    fAcuteSubscriptMenu->AddItem(new BMenuItem("\xE1\xBF\xBD",
     884        new BMessage(kMsgDeadKeyAcuteSubscriptChanged)));
     885    fAcuteSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     886        new BMessage(kMsgDeadKeyAcuteSubscriptChanged)));
     887    deadKeyMenu->AddItem(fAcuteSubscriptMenu);
     888
     889    fAcuteSmoothSubscriptMenu = new BMenu(B_TRANSLATE("AcuteSmoothSubscript trigger"));
     890    fAcuteSmoothSubscriptMenu->SetRadioMode(true);
     891    fAcuteSmoothSubscriptMenu->AddItem(new BMenuItem("\xE1\xBE\xBE",
     892        new BMessage(kMsgDeadKeyAcuteSmoothSubscriptChanged)));
     893    fAcuteSmoothSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     894        new BMessage(kMsgDeadKeyAcuteSmoothSubscriptChanged)));
     895    deadKeyMenu->AddItem(fAcuteSmoothSubscriptMenu);
     896
     897    fAcuteRoughSubscriptMenu = new BMenu(B_TRANSLATE("AcuteRoughSubscript trigger"));
     898    fAcuteRoughSubscriptMenu->SetRadioMode(true);
     899    fAcuteRoughSubscriptMenu->AddItem(new BMenuItem("\xE1\xBF\x9E",
     900        new BMessage(kMsgDeadKeyAcuteRoughSubscriptChanged)));
     901    fAcuteRoughSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     902        new BMessage(kMsgDeadKeyAcuteRoughSubscriptChanged)));
     903    deadKeyMenu->AddItem(fAcuteRoughSubscriptMenu);
     904
     905    fGraveMenu = new BMenu(B_TRANSLATE("Grave trigger"));
     906    fGraveMenu->SetRadioMode(true);
     907    fGraveMenu->AddItem(new BMenuItem("`",
     908        new BMessage(kMsgDeadKeyGraveChanged)));
     909    fGraveMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     910        new BMessage(kMsgDeadKeyGraveChanged)));
     911    deadKeyMenu->AddItem(fGraveMenu);
     912
     913    fGraveSmoothMenu = new BMenu(B_TRANSLATE("GraveSmooth trigger"));
     914    fGraveSmoothMenu->SetRadioMode(true);
     915    fGraveSmoothMenu->AddItem(new BMenuItem("\x5C",
     916        new BMessage(kMsgDeadKeyGraveSmoothChanged)));
     917    fGraveSmoothMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     918        new BMessage(kMsgDeadKeyGraveSmoothChanged)));
     919    deadKeyMenu->AddItem(fGraveSmoothMenu);
     920
     921    fGraveRoughMenu = new BMenu(B_TRANSLATE("GraveRough trigger"));
     922    fGraveRoughMenu->SetRadioMode(true);
     923    fGraveRoughMenu->AddItem(new BMenuItem("|",
     924        new BMessage(kMsgDeadKeyGraveRoughChanged)));
     925    fGraveRoughMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     926        new BMessage(kMsgDeadKeyGraveRoughChanged)));
     927    deadKeyMenu->AddItem(fGraveRoughMenu);
     928
     929    fGraveDiaeresisMenu = new BMenu(B_TRANSLATE("GraveDiaeresis trigger"));
     930    fGraveDiaeresisMenu->SetRadioMode(true);
     931    fGraveDiaeresisMenu->AddItem(new BMenuItem("\x60",
     932        new BMessage(kMsgDeadKeyGraveDiaeresisChanged)));
     933    fGraveDiaeresisMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     934        new BMessage(kMsgDeadKeyGraveDiaeresisChanged)));
     935    deadKeyMenu->AddItem(fGraveDiaeresisMenu);
     936
     937    fGraveSubscriptMenu = new BMenu(B_TRANSLATE("GraveSubscript trigger"));
     938    fGraveSubscriptMenu->SetRadioMode(true);
     939    fGraveSubscriptMenu->AddItem(new BMenuItem("\xC2\xBB",
     940        new BMessage(kMsgDeadKeyGraveSubscriptChanged)));
     941    fGraveSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     942        new BMessage(kMsgDeadKeyGraveSubscriptChanged)));
     943    deadKeyMenu->AddItem(fGraveSubscriptMenu);
     944
     945    fGraveSmoothSubscriptMenu = new BMenu(B_TRANSLATE("GraveSmoothSubscript trigger"));
     946    fGraveSmoothSubscriptMenu->SetRadioMode(true);
     947    fGraveSmoothSubscriptMenu->AddItem(new BMenuItem("\xC2\xAC",
     948        new BMessage(kMsgDeadKeyGraveSmoothSubscriptChanged)));
     949    fGraveSmoothSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     950        new BMessage(kMsgDeadKeyGraveSmoothSubscriptChanged)));
     951    deadKeyMenu->AddItem(fGraveSmoothSubscriptMenu);
     952
     953    fGraveRoughSubscriptMenu = new BMenu(B_TRANSLATE("GraveRoughSubscript trigger"));
     954    fGraveRoughSubscriptMenu->SetRadioMode(true);
     955    fGraveRoughSubscriptMenu->AddItem(new BMenuItem("\xE1\xBF\x9D",
     956        new BMessage(kMsgDeadKeyGraveRoughSubscriptChanged)));
     957    fGraveRoughSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     958        new BMessage(kMsgDeadKeyGraveRoughSubscriptChanged)));
     959    deadKeyMenu->AddItem(fGraveRoughSubscriptMenu);
     960
     961    fSmoothMenu = new BMenu(B_TRANSLATE("Smooth trigger"));
     962    fSmoothMenu->SetRadioMode(true);
     963    fSmoothMenu->AddItem(new BMenuItem("'",
     964        new BMessage(kMsgDeadKeySmoothChanged)));
     965    fSmoothMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     966        new BMessage(kMsgDeadKeySmoothChanged)));
     967    deadKeyMenu->AddItem(fSmoothMenu);
     968
     969    fSmoothCircumflexMenu = new BMenu(B_TRANSLATE("SmoothCircumflex trigger"));
     970    fSmoothCircumflexMenu->SetRadioMode(true);
     971    fSmoothCircumflexMenu->AddItem(new BMenuItem("=",
     972        new BMessage(kMsgDeadKeySmoothCircumflexChanged)));
     973    fSmoothCircumflexMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     974        new BMessage(kMsgDeadKeySmoothCircumflexChanged)));
     975    deadKeyMenu->AddItem(fSmoothCircumflexMenu);
     976
     977    fSmoothSubscriptMenu = new BMenu(B_TRANSLATE("SmoothSubscript trigger"));
     978    fSmoothSubscriptMenu->SetRadioMode(true);
     979    fSmoothSubscriptMenu->AddItem(new BMenuItem("\xE1\xBE\xBF",
     980        new BMessage(kMsgDeadKeySmoothSubscriptChanged)));
     981    fSmoothSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     982        new BMessage(kMsgDeadKeySmoothSubscriptChanged)));
     983    deadKeyMenu->AddItem(fSmoothSubscriptMenu);
     984
     985    fSmoothCircumflexSubscriptMenu = new BMenu(B_TRANSLATE("SmoothCircumflexSubscript trigger"));
     986    fSmoothCircumflexSubscriptMenu->SetRadioMode(true);
     987    fSmoothCircumflexSubscriptMenu->AddItem(new BMenuItem("\xC2\xBD",
     988        new BMessage(kMsgDeadKeySmoothCircumflexSubscriptChanged)));
     989    fSmoothCircumflexSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     990        new BMessage(kMsgDeadKeySmoothCircumflexSubscriptChanged)));
     991    deadKeyMenu->AddItem(fSmoothCircumflexSubscriptMenu);
     992
     993    fRoughMenu = new BMenu(B_TRANSLATE("Rough trigger"));
     994    fRoughMenu->SetRadioMode(true);
     995    fRoughMenu->AddItem(new BMenuItem("\x22",
     996        new BMessage(kMsgDeadKeyRoughChanged)));
     997    fRoughMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     998        new BMessage(kMsgDeadKeyRoughChanged)));
     999    deadKeyMenu->AddItem(fRoughMenu);
     1000
     1001    fRoughCircumflexMenu = new BMenu(B_TRANSLATE("RoughCircumflex trigger"));
     1002    fRoughCircumflexMenu->SetRadioMode(true);
     1003    fRoughCircumflexMenu->AddItem(new BMenuItem("\xC2\xBC",
     1004        new BMessage(kMsgDeadKeyRoughCircumflexChanged)));
     1005    fRoughCircumflexMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1006        new BMessage(kMsgDeadKeyRoughCircumflexChanged)));
     1007    deadKeyMenu->AddItem(fRoughCircumflexMenu);
     1008
     1009    fRoughSubscriptMenu = new BMenu(B_TRANSLATE("RoughSubscript trigger"));
     1010    fRoughSubscriptMenu->SetRadioMode(true);
     1011    fRoughSubscriptMenu->AddItem(new BMenuItem("\xE1\xBF\xBE",
     1012        new BMessage(kMsgDeadKeyRoughSubscriptChanged)));
     1013    fRoughSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1014        new BMessage(kMsgDeadKeyRoughSubscriptChanged)));
     1015    deadKeyMenu->AddItem(fRoughSubscriptMenu);
     1016
     1017    fRoughCircumflexSubscriptMenu = new BMenu(B_TRANSLATE("RoughCircumflexSubscript trigger"));
     1018    fRoughCircumflexSubscriptMenu->SetRadioMode(true);
     1019    fRoughCircumflexSubscriptMenu->AddItem(new BMenuItem("\xE1\xBF\x9F",
     1020        new BMessage(kMsgDeadKeyRoughCircumflexSubscriptChanged)));
     1021    fRoughCircumflexSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1022        new BMessage(kMsgDeadKeyRoughCircumflexSubscriptChanged)));
     1023    deadKeyMenu->AddItem(fRoughCircumflexSubscriptMenu);
     1024
    4781025    fCircumflexMenu = new BMenu(B_TRANSLATE("Circumflex trigger"));
    4791026    fCircumflexMenu->SetRadioMode(true);
    4801027    fCircumflexMenu->AddItem(new BMenuItem("^",
    KeymapWindow::_CreateDeadKeyMenuField()  
    4831030        new BMessage(kMsgDeadKeyCircumflexChanged)));
    4841031    deadKeyMenu->AddItem(fCircumflexMenu);
    4851032
     1033    fCircumflexDiaeresisMenu = new BMenu(B_TRANSLATE("CircumflexDiaeresis trigger"));
     1034    fCircumflexDiaeresisMenu->SetRadioMode(true);
     1035    fCircumflexDiaeresisMenu->AddItem(new BMenuItem("\xE1\xBF\x81",
     1036        new BMessage(kMsgDeadKeyCircumflexDiaeresisChanged)));
     1037    fCircumflexDiaeresisMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1038        new BMessage(kMsgDeadKeyCircumflexDiaeresisChanged)));
     1039    deadKeyMenu->AddItem(fCircumflexDiaeresisMenu);
     1040
     1041    fCircumflexSubscriptMenu = new BMenu(B_TRANSLATE("CircumflexSubscript trigger"));
     1042    fCircumflexSubscriptMenu->SetRadioMode(true);
     1043    fCircumflexSubscriptMenu->AddItem(new BMenuItem("\xC2\xAB",
     1044        new BMessage(kMsgDeadKeyCircumflexSubscriptChanged)));
     1045    fCircumflexSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1046        new BMessage(kMsgDeadKeyCircumflexSubscriptChanged)));
     1047    deadKeyMenu->AddItem(fCircumflexSubscriptMenu);
     1048
    4861049    fDiaeresisMenu = new BMenu(B_TRANSLATE("Diaeresis trigger"));
    4871050    fDiaeresisMenu->SetRadioMode(true);
    4881051    fDiaeresisMenu->AddItem(new BMenuItem("\xC2\xA8",
    KeymapWindow::_CreateDeadKeyMenuField()  
    4931056        new BMessage(kMsgDeadKeyDiaeresisChanged)));
    4941057    deadKeyMenu->AddItem(fDiaeresisMenu);
    4951058
    496     fGraveMenu = new BMenu(B_TRANSLATE("Grave trigger"));
    497     fGraveMenu->SetRadioMode(true);
    498     fGraveMenu->AddItem(new BMenuItem("`",
    499         new BMessage(kMsgDeadKeyGraveChanged)));
    500     fGraveMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
    501         new BMessage(kMsgDeadKeyGraveChanged)));
    502     deadKeyMenu->AddItem(fGraveMenu);
     1059    fDiaeresisAccentMenu = new BMenu(B_TRANSLATE("DiaeresisAccent trigger"));
     1060    fDiaeresisAccentMenu->SetRadioMode(true);
     1061    fDiaeresisAccentMenu->AddItem(new BMenuItem("\xCE\x85",
     1062        new BMessage(kMsgDeadKeyDiaeresisAccentChanged)));
     1063    fDiaeresisAccentMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1064        new BMessage(kMsgDeadKeyDiaeresisAccentChanged)));
     1065    deadKeyMenu->AddItem(fDiaeresisAccentMenu);
    5031066
    5041067    fTildeMenu = new BMenu(B_TRANSLATE("Tilde trigger"));
    5051068    fTildeMenu->SetRadioMode(true);
    KeymapWindow::_CreateDeadKeyMenuField()  
    5091072        new BMessage(kMsgDeadKeyTildeChanged)));
    5101073    deadKeyMenu->AddItem(fTildeMenu);
    5111074
     1075    fAccentMenu = new BMenu(B_TRANSLATE("Accent trigger"));
     1076    fAccentMenu->SetRadioMode(true);
     1077    fAccentMenu->AddItem(new BMenuItem("\xCE\x84",
     1078        new BMessage(kMsgDeadKeyAccentChanged)));
     1079    fAccentMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1080        new BMessage(kMsgDeadKeyAccentChanged)));
     1081    deadKeyMenu->AddItem(fAccentMenu);
     1082
     1083    fMacronMenu = new BMenu(B_TRANSLATE("Macron trigger"));
     1084    fMacronMenu->SetRadioMode(true);
     1085    fMacronMenu->AddItem(new BMenuItem("\xC2\xAD",
     1086        new BMessage(kMsgDeadKeyMacronChanged)));
     1087    fMacronMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1088        new BMessage(kMsgDeadKeyMacronChanged)));
     1089    deadKeyMenu->AddItem(fMacronMenu);
     1090
     1091    fBreveMenu = new BMenu(B_TRANSLATE("Breve trigger"));
     1092    fBreveMenu->SetRadioMode(true);
     1093    fBreveMenu->AddItem(new BMenuItem("_",
     1094        new BMessage(kMsgDeadKeyBreveChanged)));
     1095    fBreveMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1096        new BMessage(kMsgDeadKeyBreveChanged)));
     1097    deadKeyMenu->AddItem(fBreveMenu);
     1098
     1099    fSubscriptMenu = new BMenu(B_TRANSLATE("Subscript trigger"));
     1100    fSubscriptMenu->SetRadioMode(true);
     1101    fSubscriptMenu->AddItem(new BMenuItem("{",
     1102        new BMessage(kMsgDeadKeySubscriptChanged)));
     1103    fSubscriptMenu->AddItem(new BMenuItem(kDeadKeyTriggerNone,
     1104        new BMessage(kMsgDeadKeySubscriptChanged)));
     1105    deadKeyMenu->AddItem(fSubscriptMenu);
     1106
    5121107    return new BMenuField(NULL, deadKeyMenu);
    5131108}
    5141109
    KeymapWindow::_UpdateDeadKeyMenu()  
    6971292    if (menuItem)
    6981293        menuItem->SetMarked(true);
    6991294
     1295    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAcuteSmooth, trigger);
     1296    if (!trigger.Length())
     1297        trigger = kDeadKeyTriggerNone;
     1298    menuItem = fAcuteSmoothMenu->FindItem(trigger.String());
     1299    if (menuItem)
     1300        menuItem->SetMarked(true);
     1301
     1302    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAcuteRough, trigger);
     1303    if (!trigger.Length())
     1304        trigger = kDeadKeyTriggerNone;
     1305    menuItem = fAcuteRoughMenu->FindItem(trigger.String());
     1306    if (menuItem)
     1307        menuItem->SetMarked(true);
     1308
     1309    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAcuteDiaeresis, trigger);
     1310    if (!trigger.Length())
     1311        trigger = kDeadKeyTriggerNone;
     1312    menuItem = fAcuteDiaeresisMenu->FindItem(trigger.String());
     1313    if (menuItem)
     1314        menuItem->SetMarked(true);
     1315
     1316    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAcuteSubscript, trigger);
     1317    if (!trigger.Length())
     1318        trigger = kDeadKeyTriggerNone;
     1319    menuItem = fAcuteSubscriptMenu->FindItem(trigger.String());
     1320    if (menuItem)
     1321        menuItem->SetMarked(true);
     1322
     1323    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAcuteSmoothSubscript, trigger);
     1324    if (!trigger.Length())
     1325        trigger = kDeadKeyTriggerNone;
     1326    menuItem = fAcuteSmoothSubscriptMenu->FindItem(trigger.String());
     1327    if (menuItem)
     1328        menuItem->SetMarked(true);
     1329
     1330    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAcuteRoughSubscript, trigger);
     1331    if (!trigger.Length())
     1332        trigger = kDeadKeyTriggerNone;
     1333    menuItem = fAcuteRoughSubscriptMenu->FindItem(trigger.String());
     1334    if (menuItem)
     1335        menuItem->SetMarked(true);
     1336
     1337    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGrave, trigger);
     1338    if (!trigger.Length())
     1339        trigger = kDeadKeyTriggerNone;
     1340    menuItem = fGraveMenu->FindItem(trigger.String());
     1341    if (menuItem)
     1342        menuItem->SetMarked(true);
     1343
     1344    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGraveSmooth, trigger);
     1345    if (!trigger.Length())
     1346        trigger = kDeadKeyTriggerNone;
     1347    menuItem = fGraveSmoothMenu->FindItem(trigger.String());
     1348    if (menuItem)
     1349        menuItem->SetMarked(true);
     1350
     1351    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGraveRough, trigger);
     1352    if (!trigger.Length())
     1353        trigger = kDeadKeyTriggerNone;
     1354    menuItem = fGraveRoughMenu->FindItem(trigger.String());
     1355    if (menuItem)
     1356        menuItem->SetMarked(true);
     1357
     1358    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGraveDiaeresis, trigger);
     1359    if (!trigger.Length())
     1360        trigger = kDeadKeyTriggerNone;
     1361    menuItem = fGraveDiaeresisMenu->FindItem(trigger.String());
     1362    if (menuItem)
     1363        menuItem->SetMarked(true);
     1364
     1365    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGraveSubscript, trigger);
     1366    if (!trigger.Length())
     1367        trigger = kDeadKeyTriggerNone;
     1368    menuItem = fGraveSubscriptMenu->FindItem(trigger.String());
     1369    if (menuItem)
     1370        menuItem->SetMarked(true);
     1371
     1372    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGraveSmoothSubscript, trigger);
     1373    if (!trigger.Length())
     1374        trigger = kDeadKeyTriggerNone;
     1375    menuItem = fGraveSmoothSubscriptMenu->FindItem(trigger.String());
     1376    if (menuItem)
     1377        menuItem->SetMarked(true);
     1378
     1379    fCurrentMap.GetDeadKeyTrigger(kDeadKeyGraveRoughSubscript, trigger);
     1380    if (!trigger.Length())
     1381        trigger = kDeadKeyTriggerNone;
     1382    menuItem = fGraveRoughSubscriptMenu->FindItem(trigger.String());
     1383    if (menuItem)
     1384        menuItem->SetMarked(true);
     1385
     1386    fCurrentMap.GetDeadKeyTrigger(kDeadKeySmooth, trigger);
     1387    if (!trigger.Length())
     1388        trigger = kDeadKeyTriggerNone;
     1389    menuItem = fSmoothMenu->FindItem(trigger.String());
     1390    if (menuItem)
     1391        menuItem->SetMarked(true);
     1392
     1393    fCurrentMap.GetDeadKeyTrigger(kDeadKeySmoothCircumflex, trigger);
     1394    if (!trigger.Length())
     1395        trigger = kDeadKeyTriggerNone;
     1396    menuItem = fSmoothCircumflexMenu->FindItem(trigger.String());
     1397    if (menuItem)
     1398        menuItem->SetMarked(true);
     1399
     1400    fCurrentMap.GetDeadKeyTrigger(kDeadKeySmoothSubscript, trigger);
     1401    if (!trigger.Length())
     1402        trigger = kDeadKeyTriggerNone;
     1403    menuItem = fSmoothSubscriptMenu->FindItem(trigger.String());
     1404    if (menuItem)
     1405        menuItem->SetMarked(true);
     1406
     1407    fCurrentMap.GetDeadKeyTrigger(kDeadKeySmoothCircumflexSubscript, trigger);
     1408    if (!trigger.Length())
     1409        trigger = kDeadKeyTriggerNone;
     1410    menuItem = fSmoothCircumflexSubscriptMenu->FindItem(trigger.String());
     1411    if (menuItem)
     1412        menuItem->SetMarked(true);
     1413
     1414    fCurrentMap.GetDeadKeyTrigger(kDeadKeyRough, trigger);
     1415    if (!trigger.Length())
     1416        trigger = kDeadKeyTriggerNone;
     1417    menuItem = fRoughMenu->FindItem(trigger.String());
     1418    if (menuItem)
     1419        menuItem->SetMarked(true);
     1420
     1421    fCurrentMap.GetDeadKeyTrigger(kDeadKeyRoughCircumflex, trigger);
     1422    if (!trigger.Length())
     1423        trigger = kDeadKeyTriggerNone;
     1424    menuItem = fRoughCircumflexMenu->FindItem(trigger.String());
     1425    if (menuItem)
     1426        menuItem->SetMarked(true);
     1427
     1428    fCurrentMap.GetDeadKeyTrigger(kDeadKeyRoughSubscript, trigger);
     1429    if (!trigger.Length())
     1430        trigger = kDeadKeyTriggerNone;
     1431    menuItem = fRoughSubscriptMenu->FindItem(trigger.String());
     1432    if (menuItem)
     1433        menuItem->SetMarked(true);
     1434
     1435    fCurrentMap.GetDeadKeyTrigger(kDeadKeyRoughCircumflexSubscript, trigger);
     1436    if (!trigger.Length())
     1437        trigger = kDeadKeyTriggerNone;
     1438    menuItem = fRoughCircumflexSubscriptMenu->FindItem(trigger.String());
     1439    if (menuItem)
     1440        menuItem->SetMarked(true);
     1441
    7001442    fCurrentMap.GetDeadKeyTrigger(kDeadKeyCircumflex, trigger);
    7011443    if (!trigger.Length())
    7021444        trigger = kDeadKeyTriggerNone;
    KeymapWindow::_UpdateDeadKeyMenu()  
    7041446    if (menuItem)
    7051447        menuItem->SetMarked(true);
    7061448
     1449    fCurrentMap.GetDeadKeyTrigger(kDeadKeyCircumflexDiaeresis, trigger);
     1450    if (!trigger.Length())
     1451        trigger = kDeadKeyTriggerNone;
     1452    menuItem = fCircumflexDiaeresisMenu->FindItem(trigger.String());
     1453    if (menuItem)
     1454        menuItem->SetMarked(true);
     1455
     1456    fCurrentMap.GetDeadKeyTrigger(kDeadKeyCircumflexSubscript, trigger);
     1457    if (!trigger.Length())
     1458        trigger = kDeadKeyTriggerNone;
     1459    menuItem = fCircumflexSubscriptMenu->FindItem(trigger.String());
     1460    if (menuItem)
     1461        menuItem->SetMarked(true);
     1462
    7071463    fCurrentMap.GetDeadKeyTrigger(kDeadKeyDiaeresis, trigger);
    7081464    if (!trigger.Length())
    7091465        trigger = kDeadKeyTriggerNone;
    KeymapWindow::_UpdateDeadKeyMenu()  
    7111467    if (menuItem)
    7121468        menuItem->SetMarked(true);
    7131469
    714     fCurrentMap.GetDeadKeyTrigger(kDeadKeyGrave, trigger);
     1470    fCurrentMap.GetDeadKeyTrigger(kDeadKeyDiaeresisAccent, trigger);
    7151471    if (!trigger.Length())
    7161472        trigger = kDeadKeyTriggerNone;
    717     menuItem = fGraveMenu->FindItem(trigger.String());
     1473    menuItem = fDiaeresisAccentMenu->FindItem(trigger.String());
    7181474    if (menuItem)
    7191475        menuItem->SetMarked(true);
    7201476
    KeymapWindow::_UpdateDeadKeyMenu()  
    7241480    menuItem = fTildeMenu->FindItem(trigger.String());
    7251481    if (menuItem)
    7261482        menuItem->SetMarked(true);
     1483
     1484    fCurrentMap.GetDeadKeyTrigger(kDeadKeyAccent, trigger);
     1485    if (!trigger.Length())
     1486        trigger = kDeadKeyTriggerNone;
     1487    menuItem = fAccentMenu->FindItem(trigger.String());
     1488    if (menuItem)
     1489        menuItem->SetMarked(true);
     1490
     1491    fCurrentMap.GetDeadKeyTrigger(kDeadKeyMacron, trigger);
     1492    if (!trigger.Length())
     1493        trigger = kDeadKeyTriggerNone;
     1494    menuItem = fMacronMenu->FindItem(trigger.String());
     1495    if (menuItem)
     1496        menuItem->SetMarked(true);
     1497
     1498    fCurrentMap.GetDeadKeyTrigger(kDeadKeyBreve, trigger);
     1499    if (!trigger.Length())
     1500        trigger = kDeadKeyTriggerNone;
     1501    menuItem = fBreveMenu->FindItem(trigger.String());
     1502    if (menuItem)
     1503        menuItem->SetMarked(true);
     1504
     1505    fCurrentMap.GetDeadKeyTrigger(kDeadKeySubscript, trigger);
     1506    if (!trigger.Length())
     1507        trigger = kDeadKeyTriggerNone;
     1508    menuItem = fSubscriptMenu->FindItem(trigger.String());
     1509    if (menuItem)
     1510        menuItem->SetMarked(true);
    7271511}
    7281512
    7291513