summaryrefslogtreecommitdiff
path: root/amiga/tree.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-12-02 13:24:40 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-12-02 13:24:40 +0000
commitce37fdb128c42cd623cca1e665d32250944c41c5 (patch)
tree2b7a991a8461727a8cfb5e133d6b4eaf89a0894d /amiga/tree.c
parent8d685d7ac08364591d4fdc886d922bd350925077 (diff)
downloadnetsurf-ce37fdb128c42cd623cca1e665d32250944c41c5.tar.gz
netsurf-ce37fdb128c42cd623cca1e665d32250944c41c5.tar.bz2
Support dragging from global history to hotlist
svn path=/trunk/netsurf/; revision=13219
Diffstat (limited to 'amiga/tree.c')
-rwxr-xr-xamiga/tree.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/amiga/tree.c b/amiga/tree.c
index ef0bf5cfd..5ce96926b 100755
--- a/amiga/tree.c
+++ b/amiga/tree.c
@@ -78,9 +78,9 @@ enum {
struct treeview_window {
+ struct nsObject *node;
struct Window *win;
Object *objects[GID_TREE_LAST];
- struct nsObject *node;
int type;
struct NewMenu *menu;
char *menu_name[AMI_TREE_MENU_ITEMS];
@@ -289,12 +289,13 @@ void ami_tree_drag_icon_show(struct treeview_window *twin)
void ami_tree_drag_end(struct treeview_window *twin, int x, int y)
{
struct gui_window_2 *gwin;
+ struct treeview_window *tw;
struct node *selected_node;
BOOL drag;
if(drag = ami_drag_in_progress()) ami_drag_icon_close(twin->win);
- if(drag && (gwin = ami_window_at_pointer()))
+ if(drag && (twin != ami_window_at_pointer(AMINS_TVWINDOW)))
{
selected_node = tree_get_selected_node(tree_get_root(twin->tree));
@@ -304,8 +305,16 @@ void ami_tree_drag_end(struct treeview_window *twin, int x, int y)
}
else
{
- browser_window_go(gwin->bw, tree_url_node_get_url(selected_node),
- NULL, true);
+ if(gwin = ami_window_at_pointer(AMINS_WINDOW))
+ {
+ browser_window_go(gwin->bw, tree_url_node_get_url(selected_node),
+ NULL, true);
+ }
+ else if((tw = ami_window_at_pointer(AMINS_TVWINDOW)) &&
+ (tw != twin) && (tw->type == AMI_TREE_HOTLIST))
+ {
+ hotlist_add_page_xy(tree_url_node_get_url(selected_node), x, y);
+ }
}
tree_drag_end(twin->tree, twin->mouse_state,
twin->drag_x, twin->drag_y,