diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index 457ff923c..e1be4d41e 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -705,14 +705,13 @@ void FileBrowserEntry::updateCursor (int x, int y) } } -void FileBrowserEntry::draw () +void FileBrowserEntry::draw (Cairo::RefPtr cc) { - ThumbBrowserEntryBase::draw (); + ThumbBrowserEntryBase::draw (cc); if (state == SRotateSelecting) { - Cairo::RefPtr cr = parent->getDrawingArea ()->get_window()->create_cairo_context(); - drawStraightenGuide (cr); + drawStraightenGuide (cc); } } diff --git a/rtgui/filebrowserentry.h b/rtgui/filebrowserentry.h index 8aaa54b1c..5b95ca069 100644 --- a/rtgui/filebrowserentry.h +++ b/rtgui/filebrowserentry.h @@ -70,7 +70,7 @@ public: FileBrowserEntry (Thumbnail* thm, const Glib::ustring& fname); ~FileBrowserEntry (); - void draw (); + void draw (Cairo::RefPtr cc); void setImageAreaToolListener (ImageAreaToolListener* l) { diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 3f3d5f7fd..122973ac0 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -917,7 +917,7 @@ bool ThumbBrowserBase::Internal::on_draw(const ::Cairo::RefPtr< Cairo::Context> parent->fd[i]->updatepriority = false; } else { parent->fd[i]->updatepriority = true; - parent->fd[i]->draw (); + parent->fd[i]->draw (cr); } } } diff --git a/rtgui/thumbbrowserentrybase.cc b/rtgui/thumbbrowserentrybase.cc index e6988cd62..8184c9560 100644 --- a/rtgui/thumbbrowserentrybase.cc +++ b/rtgui/thumbbrowserentrybase.cc @@ -467,7 +467,7 @@ void ThumbBrowserEntryBase::drawFrame (Cairo::RefPtr cc, const G } } -void ThumbBrowserEntryBase::draw () +void ThumbBrowserEntryBase::draw (Cairo::RefPtr cc) { if (!drawable || !parent) { @@ -490,11 +490,6 @@ void ThumbBrowserEntryBase::draw () updateBackBuffer (); } - Gtk::Widget* w = parent->getDrawingArea (); - - Glib::RefPtr win = w->get_window(); - Cairo::RefPtr cc = win->create_cairo_context(); - int w_ = startx + ofsX; int h_ = starty + ofsY; cc->set_source(backBuffer->getSurface(), w_, h_); diff --git a/rtgui/thumbbrowserentrybase.h b/rtgui/thumbbrowserentrybase.h index 53ea0a211..5332777b1 100644 --- a/rtgui/thumbbrowserentrybase.h +++ b/rtgui/thumbbrowserentrybase.h @@ -119,7 +119,7 @@ public: void updateBackBuffer (); void resize (int h); - virtual void draw (); + virtual void draw (Cairo::RefPtr cc); void addButtonSet (LWButtonSet* bs); int getMinimalHeight ()