summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoye <joye>2014-05-16 20:34:35 (GMT)
committerjoye <joye>2014-05-16 20:34:35 (GMT)
commit2287836f23837f1bfc2437b9186dc83fa63fec94 (patch)
tree586f867af572e372734e216e7d9eee136f11846a
parentaa15cf905430c648ed92864da8a07c4d94735deb (diff)
downloadblt-2287836f23837f1bfc2437b9186dc83fa63fec94.zip
blt-2287836f23837f1bfc2437b9186dc83fa63fec94.tar.gz
blt-2287836f23837f1bfc2437b9186dc83fa63fec94.tar.bz2
*** empty log message ***
-rw-r--r--src/bltGrLegd.C18
-rw-r--r--src/bltGrLegd.h1
-rw-r--r--src/bltGrLegdOp.C25
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();
}