mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-10 10:01:13 +09:00
UI: Prevent crash when right clicking on an unloaded image
This commit is contained in:
parent
57479c2d4b
commit
6fd03425b2
Notes:
github-actions[bot]
2025-01-12 19:30:53 +00:00
Author: https://github.com/Gingeh
Commit: 6fd03425b2
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3210
Reviewed-by: https://github.com/tcl3 ✅
11 changed files with 43 additions and 20 deletions
|
@ -592,10 +592,13 @@ Tab::Tab(BrowserWindow* window, RefPtr<WebView::WebContentClient> parent_client,
|
|||
open_link_in_new_tab(m_image_context_menu_url);
|
||||
});
|
||||
|
||||
auto* copy_image_action = new QAction("&Copy Image", this);
|
||||
copy_image_action->setIcon(load_icon_from_uri("resource://icons/16x16/edit-copy.png"sv));
|
||||
QObject::connect(copy_image_action, &QAction::triggered, this, [this]() {
|
||||
auto* bitmap = m_image_context_menu_bitmap.bitmap();
|
||||
m_image_context_menu_copy_image_action = new QAction("&Copy Image", this);
|
||||
m_image_context_menu_copy_image_action->setIcon(load_icon_from_uri("resource://icons/16x16/edit-copy.png"sv));
|
||||
QObject::connect(m_image_context_menu_copy_image_action, &QAction::triggered, this, [this]() {
|
||||
if (!m_image_context_menu_bitmap.has_value())
|
||||
return;
|
||||
|
||||
auto* bitmap = m_image_context_menu_bitmap.value().bitmap();
|
||||
if (bitmap == nullptr)
|
||||
return;
|
||||
|
||||
|
@ -621,14 +624,15 @@ Tab::Tab(BrowserWindow* window, RefPtr<WebView::WebContentClient> parent_client,
|
|||
m_image_context_menu->addAction(open_image_action);
|
||||
m_image_context_menu->addAction(open_image_in_new_tab_action);
|
||||
m_image_context_menu->addSeparator();
|
||||
m_image_context_menu->addAction(copy_image_action);
|
||||
m_image_context_menu->addAction(m_image_context_menu_copy_image_action);
|
||||
m_image_context_menu->addAction(copy_image_url_action);
|
||||
m_image_context_menu->addSeparator();
|
||||
m_image_context_menu->addAction(&m_window->inspect_dom_node_action());
|
||||
|
||||
view().on_image_context_menu_request = [this](auto& image_url, Gfx::IntPoint content_position, Gfx::ShareableBitmap const& shareable_bitmap) {
|
||||
view().on_image_context_menu_request = [this](auto& image_url, Gfx::IntPoint content_position, Optional<Gfx::ShareableBitmap> const& shareable_bitmap) {
|
||||
m_image_context_menu_url = image_url;
|
||||
m_image_context_menu_bitmap = shareable_bitmap;
|
||||
m_image_context_menu_copy_image_action->setEnabled(shareable_bitmap.has_value());
|
||||
|
||||
m_image_context_menu->exec(view().map_point_to_global_position(content_position));
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue