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);
|
fSave->SetEnabled(enabled);
|
||||||
fRevert->SetEnabled(enabled);
|
fRevert->SetEnabled(enabled);
|
||||||
|
|
||||||
|
bool isRedo = false;
|
||||||
|
bool undoEnabled = false;
|
||||||
|
bool cutAndCopyEnabled = false;
|
||||||
|
|
||||||
BTextView* textView = dynamic_cast<BTextView*>(CurrentFocus());
|
BTextView* textView = dynamic_cast<BTextView*>(CurrentFocus());
|
||||||
if (textView != NULL) {
|
if (textView != NULL) {
|
||||||
bool isRedo = false;
|
|
||||||
undo_state state = textView->UndoState(&isRedo);
|
undo_state state = textView->UndoState(&isRedo);
|
||||||
fUndo->SetEnabled(state != B_UNDO_UNAVAILABLE);
|
undoEnabled = state != B_UNDO_UNAVAILABLE;
|
||||||
|
|
||||||
if (isRedo)
|
cutAndCopyEnabled = fView->IsTextSelected();
|
||||||
fUndo->SetLabel(B_TRANSLATE("Redo"));
|
|
||||||
else
|
|
||||||
fUndo->SetLabel(B_TRANSLATE("Undo"));
|
|
||||||
|
|
||||||
enabled = fView->IsTextSelected();
|
|
||||||
fCut->SetEnabled(enabled);
|
|
||||||
fCopy->SetEnabled(enabled);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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();
|
be_clipboard->Lock();
|
||||||
fPaste->SetEnabled(be_clipboard->Data()->HasData("text/plain", B_MIME_TYPE));
|
fPaste->SetEnabled(be_clipboard->Data()->HasData("text/plain", B_MIME_TYPE));
|
||||||
be_clipboard->Unlock();
|
be_clipboard->Unlock();
|
||||||
|
|||||||
Reference in New Issue
Block a user