summaryrefslogtreecommitdiff
path: root/riscos/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'riscos/window.c')
-rw-r--r--riscos/window.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/riscos/window.c b/riscos/window.c
index 3ff68a361..3fec73cdd 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -1394,7 +1394,20 @@ void ro_gui_toolbar_click(struct gui_window *g, wimp_pointer *pointer)
BROWSER_PRINT, true);
break;
case ICON_TOOLBAR_URL:
- ro_gui_url_complete_start(g);
+ if (pointer->buttons & (wimp_DRAG_SELECT | wimp_DRAG_ADJUST)) {
+ if (g->bw->current_content) {
+ gui_save_type save_type;
+
+ if (ro_gui_shift_pressed())
+ save_type = GUI_SAVE_LINK_URL;
+ else
+ save_type = GUI_SAVE_LINK_TEXT;
+
+ gui_drag_save_object(save_type, g->bw->current_content, g);
+ }
+ }
+ else
+ ro_gui_url_complete_start(g);
break;
case ICON_TOOLBAR_SUGGEST:
ro_gui_popup_menu(url_suggest_menu,
@@ -1479,8 +1492,6 @@ void ro_gui_window_click(struct gui_window *g, wimp_pointer *pointer)
}
}
-LOG(("%d %d", pointer->buttons, ro_gui_mouse_click_state(pointer->buttons)));
-
if (pointer->buttons == wimp_CLICK_MENU)
ro_gui_menu_create(browser_menu, pointer->pos.x,
pointer->pos.y, pointer->w);