Author: alink
Date: Tue Apr  3 09:44:18 2007
New Revision: 16576

URL: http://svn.gna.org/viewcvs/wesnoth?rev=16576&view=rev
Log:
Fix a false click after some dialogs by using a more up-to-date drag distance 
and clean up some redundancies with 
the dragging code.

Modified:
    trunk/src/mouse_events.cpp

Modified: trunk/src/mouse_events.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/mouse_events.cpp?rev=16576&r1=16575&r2=16576&view=diff
==============================================================================
--- trunk/src/mouse_events.cpp (original)
+++ trunk/src/mouse_events.cpp Tue Apr  3 09:44:18 2007
@@ -927,14 +927,15 @@
                if (dragging_started_ && !browse && !commands_disabled) {
                        left_click(event, browse);
                }
+               dragging_started_= false;
        } else if(is_middle_click(event) && event.state == SDL_RELEASED) {
                minimap_scrolling_ = false;
        } else if(is_left_click(event) && event.state == SDL_PRESSED) {
                left_click(event, browse);
                if (!browse && !commands_disabled) {
                        dragging_ = true;
-                       drag_from_x_ = event.x;
-                       drag_from_y_ = event.y;
+                       dragging_started_ = false;
+                       SDL_GetMouseState(&drag_from_x_, &drag_from_y_);
                }
        } else if(is_right_click(event) && event.state == SDL_PRESSED) {
                // FIXME: when it's not our turn, movement gets highlighted
@@ -1100,11 +1101,7 @@
                                                                                
        }
                                                                         }
                                                                }
-                                                               if 
(game_events::pump()) {
-                                                                       
dragging_ = false;
-                                                                       
dragging_started_ = false;
-                                                                       
cursor::set_dragging(false);
-                                                               }
+                                                               
game_events::pump();
                                                                return;
                                                        }
                                                }
@@ -1127,9 +1124,6 @@
           hex != selected_hex_ && !browse &&
           enemy->second.side() != u->second.side() &&
           current_team().is_enemy(enemy->second.side())) {
-               dragging_ = false;
-               dragging_started_ = false;
-               cursor::set_dragging(false);
                attack_enemy(u,enemy);
        }
 
@@ -1138,17 +1132,11 @@
                     units_.count(selected_hex_) && !enemy_paths_ &&
                     enemy == units_.end() && !current_route_.steps.empty() &&
                     current_route_.steps.front() == selected_hex_) {
-               dragging_ = false;
-               dragging_started_ = false;
-               cursor::set_dragging(false);
                move_unit_along_current_route(check_shroud);
                if(check_shroud && clear_shroud(*gui_, status_, map_, 
gameinfo_, units_, teams_, team_num_ - 1)) {
                        clear_undo_stack();
                }
        } else {
-               dragging_ = false;
-               dragging_started_ = false;
-               cursor::set_dragging(false);
                gui_->unhighlight_reach();
                current_paths_ = paths();
 
@@ -1176,11 +1164,7 @@
                                paths::route route = get_route(it, go_to, 
current_team());
                                gui_->set_route(&route);
                        }
-                       if (game_events::fire("select",hex)) {
-                               dragging_ = false;
-                               dragging_started_ = false;
-                               cursor::set_dragging(false);
-                       }
+                       game_events::fire("select",hex);
                }
        }
 }
@@ -1477,11 +1461,7 @@
                SDL_GetMouseState(&mousex, &mousey);
                mouse_motion(mousex, mousey, true);
                show_attack_options(it);
-               if (game_events::fire("select",selected_hex_)) {
-                       dragging_ = false;
-                       dragging_started_ = false;
-                       cursor::set_dragging(false);
-               }
+               game_events::fire("select",selected_hex_);
        }
 }
 


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to