diff options
Diffstat (limited to 'Userland/Games/Solitaire/Game.cpp')
-rw-r--r-- | Userland/Games/Solitaire/Game.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Userland/Games/Solitaire/Game.cpp b/Userland/Games/Solitaire/Game.cpp index 302d3d86fe..3eb831ddf0 100644 --- a/Userland/Games/Solitaire/Game.cpp +++ b/Userland/Games/Solitaire/Game.cpp @@ -257,10 +257,14 @@ void Game::mousedown_event(GUI::MouseEvent& event) if (is_auto_collecting() && attempt_to_move_card_to_foundations(to_check)) break; - pick_up_cards_from_stack(to_check, click_location, Cards::CardStack::MovementRule::Alternating); + if (event.button() == GUI::MouseButton::Secondary) { + preview_card(to_check, click_location); + } else { + pick_up_cards_from_stack(to_check, click_location, Cards::CardStack::MovementRule::Alternating); + m_mouse_down_location = click_location; + m_mouse_down = true; + } - m_mouse_down_location = click_location; - m_mouse_down = true; start_timer_if_necessary(); } } @@ -274,6 +278,11 @@ void Game::mouseup_event(GUI::MouseEvent& event) GUI::Frame::mouseup_event(event); clear_hovered_stack(); + if (is_previewing_card()) { + clear_card_preview(); + return; + } + if (!is_moving_cards() || m_game_over_animation || m_new_game_animation) return; |