changeset 12183:3ecd0d4dbae8 draft

(svn r16594) -Fix [FS#2969]: mouse would under some circumstances not be undrawn when drawing the first chat line causing two mouse pointers to be visible.
author rubidium <rubidium@openttd.org>
date Thu, 18 Jun 2009 17:16:29 +0000
parents c16b6986b69d
children 51855e47b4aa
files src/network/network_chat_gui.cpp
diffstat 1 files changed, 18 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/network/network_chat_gui.cpp
+++ b/src/network/network_chat_gui.cpp
@@ -124,28 +124,26 @@
 /** Hide the chatbox */
 void NetworkUndrawChatMessage()
 {
+	/* Sometimes we also need to hide the cursor
+	 *   This is because both textmessage and the cursor take a shot of the
+	 *   screen before drawing.
+	 *   Now the textmessage takes his shot and paints his data before the cursor
+	 *   does, so in the shot of the cursor is the screen-data of the textmessage
+	 *   included when the cursor hangs somewhere over the textmessage. To
+	 *   avoid wrong repaints, we undraw the cursor in that case, and everything
+	 *   looks nicely ;)
+	 * (and now hope this story above makes sense to you ;))
+	 */
+	if (_cursor.visible &&
+			_cursor.draw_pos.x + _cursor.draw_size.x >= _chatmsg_box.x &&
+			_cursor.draw_pos.x <= _chatmsg_box.x + _chatmsg_box.width &&
+			_cursor.draw_pos.y + _cursor.draw_size.y >= _screen.height - _chatmsg_box.y - _chatmsg_box.height &&
+			_cursor.draw_pos.y <= _screen.height - _chatmsg_box.y) {
+		UndrawMouseCursor();
+	}
+
 	if (_chatmessage_visible) {
 		Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter();
-		/* Sometimes we also need to hide the cursor
-		 *   This is because both textmessage and the cursor take a shot of the
-		 *   screen before drawing.
-		 *   Now the textmessage takes his shot and paints his data before the cursor
-		 *   does, so in the shot of the cursor is the screen-data of the textmessage
-		 *   included when the cursor hangs somewhere over the textmessage. To
-		 *   avoid wrong repaints, we undraw the cursor in that case, and everything
-		 *   looks nicely ;)
-		 * (and now hope this story above makes sense to you ;))
-		 */
-
-		if (_cursor.visible) {
-			if (_cursor.draw_pos.x + _cursor.draw_size.x >= _chatmsg_box.x &&
-				_cursor.draw_pos.x <= _chatmsg_box.x + _chatmsg_box.width &&
-				_cursor.draw_pos.y + _cursor.draw_size.y >= _screen.height - _chatmsg_box.y - _chatmsg_box.height &&
-				_cursor.draw_pos.y <= _screen.height - _chatmsg_box.y) {
-				UndrawMouseCursor();
-			}
-		}
-
 		int x      = _chatmsg_box.x;
 		int y      = _screen.height - _chatmsg_box.y - _chatmsg_box.height;
 		int width  = _chatmsg_box.width;