summaryrefslogtreecommitdiff
path: root/Userland/Games/Solitaire/Game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Games/Solitaire/Game.cpp')
-rw-r--r--Userland/Games/Solitaire/Game.cpp15
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;