hrev44105 adds 1 changeset to branch 'master' old head: 1a17461323bf10ed380aadd63dadee2b304cb7c6 new head: c645f9bcbeab32cfb3c631a1340d38ebf5fd2d6f ---------------------------------------------------------------------------- c645f9b: Rework tooltip method in BView again. Passing NULL or a blank string to SetToolTip(const char*) sets the tooltip to NULL by calling SetToolTip(BToolTip*) with a NULL argument. Calling SetToolTip(BToolTip*) with a NULL argument calls HideToolTip() because sometimes the tool tip can change without the mouse moving, for example because the user clicked. Thanks Axeld and Stippi. [ John Scipione <jscipione@xxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev44105 Commit: c645f9bcbeab32cfb3c631a1340d38ebf5fd2d6f URL: http://cgit.haiku-os.org/haiku/commit/?id=c645f9b Author: John Scipione <jscipione@xxxxxxxxx> Date: Fri May 4 23:49:41 2012 UTC ---------------------------------------------------------------------------- 1 file changed, 9 insertions(+), 7 deletions(-) src/kits/interface/View.cpp | 16 +++++++++------- ---------------------------------------------------------------------------- diff --git a/src/kits/interface/View.cpp b/src/kits/interface/View.cpp index 80ec21d..5078f2f 100644 --- a/src/kits/interface/View.cpp +++ b/src/kits/interface/View.cpp @@ -4817,6 +4817,11 @@ BView::DoLayout() void BView::SetToolTip(const char* text) { + if (text == NULL || text[0] == '\0') { + SetToolTip((BToolTip*)NULL); + return; + } + if (BTextToolTip* tip = dynamic_cast<BTextToolTip*>(fToolTip)) tip->SetText(text); else @@ -4829,10 +4834,14 @@ BView::SetToolTip(BToolTip* tip) { if (fToolTip == tip) return; + else if (tip == NULL) + HideToolTip(); if (fToolTip != NULL) fToolTip->ReleaseReference(); + fToolTip = tip; + if (fToolTip != NULL) fToolTip->AcquireReference(); } @@ -4851,13 +4860,6 @@ BView::ShowToolTip(BToolTip* tip) if (tip == NULL) return; - if (BTextToolTip* textTip = dynamic_cast<BTextToolTip*>(tip)) { - const char* text = textTip->Text(); - // if text is NULL or blank don't show the tooltip - if (text == NULL || text[0] == '\0') - return; - } - BPoint where; GetMouse(&where, NULL, false);