Hi Alex, This is actually the correct behavior. You need to redraw the background before writing the new text. The easiest way to do that is with: $app->draw_rect( undef, 0x000000FF );
The undef there indicates that the entire surface should be used as the rectangle. See draw_rect in SDLx::Surface for more information. Cheers, Jeff On Wed, Dec 21, 2011 at 6:17 PM, Alex <cap...@gmx.de> wrote: > Dear all! > > I want to replace an SDLx::Text by some other text. > Do I have to redraw the whole surface that was covered by the old text in > order to "replace" it by a new text? > > The following script demonstrates my problem: > > [code] > #!perl > > use strict; > use warnings; > use SDL; > > use SDL; > use SDLx::App; > use SDLx::Text; > > my $app = SDLx::App->new( > exit_on_quit => 1, > ); > > my $message = SDLx::Text->new; > > $message->write_to( $app, "Hello, World!" ); > $app->update; > > $message->text('Susan'); > $message->write_to( $app ); > $app->update(); > > $app->run(); > [/code] > > First, the text "Hello World!" is drawn to the surface. Then, I alter the > text and draw it again. But the old hello world text still remains on the > surface. > I don't want that. I want "Hello World!" to disappear and Susan so show up. > > How do I do that? > > Best regards, > Alex >