aboutsummaryrefslogtreecommitdiff
path: root/lib/gdi/grc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gdi/grc.cpp')
-rw-r--r--lib/gdi/grc.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/gdi/grc.cpp b/lib/gdi/grc.cpp
index e7748967..3b5476a2 100644
--- a/lib/gdi/grc.cpp
+++ b/lib/gdi/grc.cpp
@@ -188,7 +188,7 @@ void gPainter::clear()
void gPainter::blit(gPixmap *pixmap, ePoint pos, const eRect &clip, int flags)
{
gOpcode o;
-
+
o.opcode=gOpcode::blit;
o.dc = m_dc.grabRef();
pixmap->AddRef();
@@ -398,11 +398,16 @@ void gDC::exec(gOpcode *o)
case gOpcode::blit:
{
gRegion clip;
- if (!o->parm.blit->clip.valid())
+ // this code should be checked again but i'm too tired now
+
+ o->parm.blit->position += m_current_offset;
+
+ if (o->parm.blit->clip.valid())
{
clip.intersect(gRegion(o->parm.blit->clip), clip);
} else
clip = m_current_clip;
+
m_pixmap->blit(*o->parm.blit->pixmap, o->parm.blit->position, clip, o->parm.blit->flags);
o->parm.blit->pixmap->Release();
delete o->parm.blit;