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

Reply via email to