Author: mordante
Date: Sat May 30 10:22:28 2009
New Revision: 35937
URL: http://svn.gna.org/viewcvs/wesnoth?rev=35937&view=rev
Log:
Add more validation when redrawing.
Just to make sure when a widget is redrawn, it's really visible. For
containers make sure the container and its grid have the same status.
Modified:
trunk/src/gui/widgets/container.cpp
trunk/src/gui/widgets/container.hpp
trunk/src/gui/widgets/generator_private.hpp
trunk/src/gui/widgets/grid.cpp
trunk/src/gui/widgets/scrollbar_container.cpp
Modified: trunk/src/gui/widgets/container.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/container.cpp?rev=35937&r1=35936&r2=35937&view=diff
==============================================================================
--- trunk/src/gui/widgets/container.cpp (original)
+++ trunk/src/gui/widgets/container.cpp Sat May 30 10:22:28 2009
@@ -112,6 +112,14 @@
grid_.set_visible_area(area);
}
+void tcontainer_::impl_draw_children(surface& frame_buffer)
+{
+ assert(get_visible() == twidget::VISIBLE
+ && grid_.get_visible() == twidget::VISIBLE);
+
+ grid_.draw_children(frame_buffer);
+}
+
void tcontainer_::set_active(const bool active)
{
// Not all our children might have the proper state so let them run
Modified: trunk/src/gui/widgets/container.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/container.hpp?rev=35937&r1=35936&r2=35937&view=diff
==============================================================================
--- trunk/src/gui/widgets/container.hpp (original)
+++ trunk/src/gui/widgets/container.hpp Sat May 30 10:22:28 2009
@@ -104,8 +104,7 @@
void set_visible_area(const SDL_Rect& area);
/** Inherited from twidget. */
- void impl_draw_children(surface& frame_buffer)
- { grid_.draw_children(frame_buffer); }
+ void impl_draw_children(surface& frame_buffer);
/** Inherited from twidget. */
void child_populate_dirty_list(twindow& caller,
Modified: trunk/src/gui/widgets/generator_private.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/generator_private.hpp?rev=35937&r1=35936&r2=35937&view=diff
==============================================================================
--- trunk/src/gui/widgets/generator_private.hpp (original)
+++ trunk/src/gui/widgets/generator_private.hpp Sat May 30 10:22:28 2009
@@ -661,8 +661,12 @@
/** Inherited from tgenerator_. */
void impl_draw_children(surface& frame_buffer)
{
+ assert(this->get_visible() == twidget::VISIBLE);
+
foreach(titem* item, items_) {
- item->grid.draw_children(frame_buffer);
+ if(item->grid.get_visible() == twidget::VISIBLE) {
+ item->grid.draw_children(frame_buffer);
+ }
}
}
Modified: trunk/src/gui/widgets/grid.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/grid.cpp?rev=35937&r1=35936&r2=35937&view=diff
==============================================================================
--- trunk/src/gui/widgets/grid.cpp (original)
+++ trunk/src/gui/widgets/grid.cpp Sat May 30 10:22:28 2009
@@ -829,6 +829,8 @@
void tgrid::impl_draw_children(surface& frame_buffer)
{
+ assert(get_visible() == twidget::VISIBLE);
+
foreach(tchild& child, children_) {
twidget* widget = child.widget();
Modified: trunk/src/gui/widgets/scrollbar_container.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/scrollbar_container.cpp?rev=35937&r1=35936&r2=35937&view=diff
==============================================================================
--- trunk/src/gui/widgets/scrollbar_container.cpp (original)
+++ trunk/src/gui/widgets/scrollbar_container.cpp Sat May 30 10:22:28 2009
@@ -555,6 +555,9 @@
void tscrollbar_container::impl_draw_children(surface& frame_buffer)
{
+ assert(get_visible() == twidget::VISIBLE
+ && content_grid_->get_visible() == twidget::VISIBLE);
+
// Inherited.
tcontainer_::impl_draw_background(frame_buffer);
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits