{
GR_Caret * c = static_cast<GR_Caret *>(_w->getInstanceData());
+ c->m_enabler->stop();
c->m_worker->stop();
- c->_blink(true);
- if (!c->m_bCursorIsOn)
- c->_blink(true); // blink again
- else
- {
- c->_blink(true); // ?? - MARCM
- c->_blink(true);
- }
c->m_worker->start();
- c->m_enabler->stop();
+ c->_blink(true);
}
void GR_Caret::s_blink_timeout(UT_Worker * _w)
{
GR_Caret * c = static_cast<GR_Caret *>(_w->getInstanceData());
+
+ c->m_blinkTimeout->stop();
if (c->isEnabled())
c->disable();
}
{
XAP_UnixFrameImpl * pUnixFrameImpl = static_cast<XAP_UnixFrameImpl *>(g_object_get_data(G_OBJECT(w), "user_data"));
FV_View * pView = static_cast<FV_View *>(pUnixFrameImpl->getFrame()->getCurrentView());
+ double x, y, width, height;
#if GTK_CHECK_VERSION(3,0,0)
- GdkEventExpose *pExposeEvent = reinterpret_cast<GdkEventExpose *>(gtk_get_current_event());
+ cairo_clip_extents (cr, &x, &y, &width, &height);
+ width -= x;
+ height -= y;
+#else
+ x = pExposeEvent->area.x;
+ y = pExposeEvent->area.y;
+ width = pExposeEvent->area.width;
+ height = pExposeEvent->area.height;
#endif
/* Jean: commenting out next lines since the zoom update code does draw only
* part of what needs to be updated. */
UT_Rect rClip;
if (pGr->getPaintCount () > 0)
return TRUE;
- xxx_UT_DEBUGMSG(("Expose area: x %d y %d width %d height %d \n",pExposeEvent->area.x,pExposeEvent->area.y,pExposeEvent->area.width,pExposeEvent->area.height));
- rClip.left = pGr->tlu(pExposeEvent->area.x);
- rClip.top = pGr->tlu(pExposeEvent->area.y);
- rClip.width = pGr->tlu(pExposeEvent->area.width)+1;
- rClip.height = pGr->tlu(pExposeEvent->area.height)+1;
+ rClip.left = pGr->tlu(x);
+ rClip.top = pGr->tlu(y);
#if GTK_CHECK_VERSION(3,0,0)
+ rClip.width = pGr->tlu(width);
+ rClip.height = pGr->tlu(height);
static_cast<GR_CairoGraphics *>(pGr)->setCairo(cr);
pView->draw(&rClip);
static_cast<GR_CairoGraphics *>(pGr)->setCairo(NULL);
#else
+ rClip.width = pGr->tlu(width)+1;
+ rClip.height = pGr->tlu(height)+1;
pView->draw(&rClip);
#endif
}