Open URLs with cmd-click (#7312)
Release Notes: - Added ability to cmd-click on URLs in all buffers --------- Co-authored-by: fdionisi <code@fdionisi.me>
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
use crate::{
|
||||
Action, AnyElement, AnyView, AnyWindowHandle, AppCell, AppContext, AsyncAppContext,
|
||||
AvailableSpace, BackgroundExecutor, Bounds, ClipboardItem, Context, Entity, EventEmitter,
|
||||
ForegroundExecutor, Global, InputEvent, Keystroke, Model, ModelContext, Pixels, Platform,
|
||||
Point, Render, Result, Size, Task, TestDispatcher, TestPlatform, TestWindow, TextSystem, View,
|
||||
ViewContext, VisualContext, WindowContext, WindowHandle, WindowOptions,
|
||||
ForegroundExecutor, Global, InputEvent, Keystroke, Model, ModelContext, Modifiers,
|
||||
ModifiersChangedEvent, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels,
|
||||
Platform, Point, Render, Result, Size, Task, TestDispatcher, TestPlatform, TestWindow,
|
||||
TextSystem, View, ViewContext, VisualContext, WindowContext, WindowHandle, WindowOptions,
|
||||
};
|
||||
use anyhow::{anyhow, bail};
|
||||
use futures::{Stream, StreamExt};
|
||||
@@ -236,6 +237,11 @@ impl TestAppContext {
|
||||
self.test_platform.has_pending_prompt()
|
||||
}
|
||||
|
||||
/// All the urls that have been opened with cx.open_url() during this test.
|
||||
pub fn opened_url(&self) -> Option<String> {
|
||||
self.test_platform.opened_url.borrow().clone()
|
||||
}
|
||||
|
||||
/// Simulates the user resizing the window to the new size.
|
||||
pub fn simulate_window_resize(&self, window_handle: AnyWindowHandle, size: Size<Pixels>) {
|
||||
self.test_window(window_handle).simulate_resize(size);
|
||||
@@ -625,6 +631,36 @@ impl<'a> VisualTestContext {
|
||||
self.cx.simulate_input(self.window, input)
|
||||
}
|
||||
|
||||
/// Simulate a mouse move event to the given point
|
||||
pub fn simulate_mouse_move(&mut self, position: Point<Pixels>, modifiers: Modifiers) {
|
||||
self.simulate_event(MouseMoveEvent {
|
||||
position,
|
||||
modifiers,
|
||||
pressed_button: None,
|
||||
})
|
||||
}
|
||||
|
||||
/// Simulate a primary mouse click at the given point
|
||||
pub fn simulate_click(&mut self, position: Point<Pixels>, modifiers: Modifiers) {
|
||||
self.simulate_event(MouseDownEvent {
|
||||
position,
|
||||
modifiers,
|
||||
button: MouseButton::Left,
|
||||
click_count: 1,
|
||||
});
|
||||
self.simulate_event(MouseUpEvent {
|
||||
position,
|
||||
modifiers,
|
||||
button: MouseButton::Left,
|
||||
click_count: 1,
|
||||
});
|
||||
}
|
||||
|
||||
/// Simulate a modifiers changed event
|
||||
pub fn simulate_modifiers_change(&mut self, modifiers: Modifiers) {
|
||||
self.simulate_event(ModifiersChangedEvent { modifiers })
|
||||
}
|
||||
|
||||
/// Simulates the user resizing the window to the new size.
|
||||
pub fn simulate_resize(&self, size: Size<Pixels>) {
|
||||
self.simulate_window_resize(self.window, size)
|
||||
|
||||
Reference in New Issue
Block a user