From 2287836f23837f1bfc2437b9186dc83fa63fec94 Mon Sep 17 00:00:00 2001 From: joye Date: Fri, 16 May 2014 20:34:35 +0000 Subject: *** empty log message *** --- src/bltGrLegd.C | 18 ------------------ src/bltGrLegd.h | 1 - src/bltGrLegdOp.C | 25 +++++++++++++++++-------- 3 files changed, 17 insertions(+), 27 deletions(-) diff --git a/src/bltGrLegd.C b/src/bltGrLegd.C index 5587d91..6311430 100644 --- a/src/bltGrLegd.C +++ b/src/bltGrLegd.C @@ -49,7 +49,6 @@ extern "C" { using namespace Blt; static void SelectCmdProc(ClientData); -static Tcl_IdleProc DisplayProc; static Tk_SelectionProc SelectionProc; static Blt_BindPickProc PickEntryProc; @@ -637,14 +636,6 @@ void Legend::removeElement(Element* elemPtr) Blt_DeleteBindings(bindTable_, elemPtr); } -void Legend::eventuallyRedraw() -{ - if ((graphPtr_->tkwin_) && !(flags & REDRAW_PENDING)) { - Tcl_DoWhenIdle(DisplayProc, this); - flags |= REDRAW_PENDING; - } -} - void Legend::eventuallyInvokeSelectCmd() { if ((flags & SELECT_PENDING) == 0) { @@ -996,15 +987,6 @@ Element* Legend::getLastElement() // Support -static void DisplayProc(ClientData clientData) -{ - Legend* legendPtr = (Legend*)clientData; - - legendPtr->flags &= ~REDRAW_PENDING; - if (Tk_IsMapped(legendPtr->graphPtr_->tkwin_)) - legendPtr->draw(Tk_WindowId(legendPtr->graphPtr_->tkwin_)); -} - static int SelectionProc(ClientData clientData, int offset, char *buffer, int maxBytes) { diff --git a/src/bltGrLegd.h b/src/bltGrLegd.h index d47f03e..506df98 100644 --- a/src/bltGrLegd.h +++ b/src/bltGrLegd.h @@ -151,7 +151,6 @@ class Legend { void map(int, int); void draw(Drawable drawable); void print(Blt_Ps ps); - void eventuallyRedraw(); void eventuallyInvokeSelectCmd(); void removeElement(Element*); diff --git a/src/bltGrLegdOp.C b/src/bltGrLegdOp.C index b04325a..8a5d537 100644 --- a/src/bltGrLegdOp.C +++ b/src/bltGrLegdOp.C @@ -250,7 +250,8 @@ static int FocusOp(ClientData clientData, Tcl_Interp* interp, } Blt_SetFocusItem(legendPtr->bindTable_,legendPtr->focusPtr_,CID_LEGEND_ENTRY); - graphPtr->legend_->eventuallyRedraw(); + graphPtr->flags |= CACHE_DIRTY; + graphPtr->eventuallyRedraw(); if (legendPtr->focusPtr_) Tcl_SetStringObj(Tcl_GetObjResult(interp),legendPtr->focusPtr_->name_,-1); @@ -312,7 +313,8 @@ static int SelectionAnchorOp(ClientData clientData, Tcl_Interp* interp, if (elemPtr) Tcl_SetStringObj(Tcl_GetObjResult(interp), elemPtr->name_, -1); - graphPtr->legend_->eventuallyRedraw(); + graphPtr->flags |= CACHE_DIRTY; + graphPtr->eventuallyRedraw(); return TCL_OK; } @@ -323,7 +325,9 @@ static int SelectionClearallOp(ClientData clientData, Tcl_Interp* interp, Graph* graphPtr = (Graph*)clientData; Legend* legendPtr = graphPtr->legend_; legendPtr->clearSelection(); - legendPtr->eventuallyRedraw(); + + graphPtr->flags |= CACHE_DIRTY; + graphPtr->eventuallyRedraw(); return TCL_OK; } @@ -377,10 +381,11 @@ static int SelectionMarkOp(ClientData clientData, Tcl_Interp* interp, Tcl_SetStringObj(Tcl_GetObjResult(interp), elemPtr->name_, -1); legendPtr->selMarkPtr_ = elemPtr; - graphPtr->legend_->eventuallyRedraw(); - if (ops->selectCmd) legendPtr->eventuallyInvokeSelectCmd(); + + graphPtr->flags |= CACHE_DIRTY; + graphPtr->eventuallyRedraw(); } return TCL_OK; } @@ -453,11 +458,12 @@ static int SelectionSetOp(ClientData clientData, Tcl_Interp* interp, if (ops->exportSelection) Tk_OwnSelection(graphPtr->tkwin_, XA_PRIMARY, LostSelectionProc, legendPtr); - graphPtr->legend_->eventuallyRedraw(); - if (ops->selectCmd) legendPtr->eventuallyInvokeSelectCmd(); + graphPtr->flags |= CACHE_DIRTY; + graphPtr->eventuallyRedraw(); + return TCL_OK; } @@ -479,10 +485,13 @@ static void LostSelectionProc(ClientData clientData) { Legend* legendPtr = (Legend*)clientData; LegendOptions* ops = (LegendOptions*)legendPtr->ops(); + Graph* graphPtr = legendPtr->graphPtr_; if (ops->exportSelection) legendPtr->clearSelection(); - legendPtr->eventuallyRedraw(); + + graphPtr->flags |= CACHE_DIRTY; + graphPtr->eventuallyRedraw(); } -- cgit v0.12