From 433dc7837964c038bcf344794c12de279bdd5263 Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Thu, 24 Feb 2011 18:23:46 +0000 Subject: [PATCH] As spotted by Stephan, pulled out items enabling/disabling of the if block, as menu items must be updated even when the focus is not a text view! Thanks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40670 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/people/PersonWindow.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/apps/people/PersonWindow.cpp b/src/apps/people/PersonWindow.cpp index 3214c5b6d3..cf80607c30 100644 --- a/src/apps/people/PersonWindow.cpp +++ b/src/apps/people/PersonWindow.cpp @@ -129,22 +129,26 @@ PersonWindow::MenusBeginning() fSave->SetEnabled(enabled); fRevert->SetEnabled(enabled); + bool isRedo = false; + bool undoEnabled = false; + bool cutAndCopyEnabled = false; + BTextView* textView = dynamic_cast(CurrentFocus()); if (textView != NULL) { - bool isRedo = false; undo_state state = textView->UndoState(&isRedo); - fUndo->SetEnabled(state != B_UNDO_UNAVAILABLE); + undoEnabled = state != B_UNDO_UNAVAILABLE; - if (isRedo) - fUndo->SetLabel(B_TRANSLATE("Redo")); - else - fUndo->SetLabel(B_TRANSLATE("Undo")); - - enabled = fView->IsTextSelected(); - fCut->SetEnabled(enabled); - fCopy->SetEnabled(enabled); + cutAndCopyEnabled = fView->IsTextSelected(); } + if (isRedo) + fUndo->SetLabel(B_TRANSLATE("Redo")); + else + fUndo->SetLabel(B_TRANSLATE("Undo")); + fUndo->SetEnabled(undoEnabled); + fCut->SetEnabled(cutAndCopyEnabled); + fCopy->SetEnabled(cutAndCopyEnabled); + be_clipboard->Lock(); fPaste->SetEnabled(be_clipboard->Data()->HasData("text/plain", B_MIME_TYPE)); be_clipboard->Unlock();