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
This commit is contained in:
@@ -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<BTextView*>(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();
|
||||
|
||||
Reference in New Issue
Block a user