Pass Cairo context down to child elements instead of recreating it.
This commit is contained in:
@@ -705,14 +705,13 @@ void FileBrowserEntry::updateCursor (int x, int y)
|
||||
}
|
||||
}
|
||||
|
||||
void FileBrowserEntry::draw ()
|
||||
void FileBrowserEntry::draw (Cairo::RefPtr<Cairo::Context> cc)
|
||||
{
|
||||
|
||||
ThumbBrowserEntryBase::draw ();
|
||||
ThumbBrowserEntryBase::draw (cc);
|
||||
|
||||
if (state == SRotateSelecting) {
|
||||
Cairo::RefPtr<Cairo::Context> cr = parent->getDrawingArea ()->get_window()->create_cairo_context();
|
||||
drawStraightenGuide (cr);
|
||||
drawStraightenGuide (cc);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -70,7 +70,7 @@ public:
|
||||
|
||||
FileBrowserEntry (Thumbnail* thm, const Glib::ustring& fname);
|
||||
~FileBrowserEntry ();
|
||||
void draw ();
|
||||
void draw (Cairo::RefPtr<Cairo::Context> cc);
|
||||
|
||||
void setImageAreaToolListener (ImageAreaToolListener* l)
|
||||
{
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -467,7 +467,7 @@ void ThumbBrowserEntryBase::drawFrame (Cairo::RefPtr<Cairo::Context> cc, const G
|
||||
}
|
||||
}
|
||||
|
||||
void ThumbBrowserEntryBase::draw ()
|
||||
void ThumbBrowserEntryBase::draw (Cairo::RefPtr<Cairo::Context> cc)
|
||||
{
|
||||
|
||||
if (!drawable || !parent) {
|
||||
@@ -490,11 +490,6 @@ void ThumbBrowserEntryBase::draw ()
|
||||
updateBackBuffer ();
|
||||
}
|
||||
|
||||
Gtk::Widget* w = parent->getDrawingArea ();
|
||||
|
||||
Glib::RefPtr<Gdk::Window> win = w->get_window();
|
||||
Cairo::RefPtr<Cairo::Context> cc = win->create_cairo_context();
|
||||
|
||||
int w_ = startx + ofsX;
|
||||
int h_ = starty + ofsY;
|
||||
cc->set_source(backBuffer->getSurface(), w_, h_);
|
||||
|
@@ -119,7 +119,7 @@ public:
|
||||
|
||||
void updateBackBuffer ();
|
||||
void resize (int h);
|
||||
virtual void draw ();
|
||||
virtual void draw (Cairo::RefPtr<Cairo::Context> cc);
|
||||
|
||||
void addButtonSet (LWButtonSet* bs);
|
||||
int getMinimalHeight ()
|
||||
|
Reference in New Issue
Block a user