summaryrefslogtreecommitdiff
path: root/desktop/browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/browser.c')
-rw-r--r--desktop/browser.c38
1 files changed, 36 insertions, 2 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 305f7186f..00cf88129 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -45,6 +45,7 @@ static void browser_window_update(struct browser_window *bw,
bool scroll_to_top);
static void browser_window_set_status(struct browser_window *bw,
const char *text);
+static void browser_window_set_pointer(gui_pointer_shape shape);
static void download_window_callback(content_msg msg, struct content *c,
void *p1, void *p2, const char *error);
@@ -424,6 +425,17 @@ void browser_window_set_status(struct browser_window *bw, const char *text)
gui_window_set_status(bw->window, text);
}
+/**
+ * Change the shape of the mouse pointer
+ *
+ * \param shape shape to use
+ */
+
+void browser_window_set_pointer(gui_pointer_shape shape)
+{
+ gui_window_set_pointer(shape);
+}
+
/**
* Close and destroy a browser window.
@@ -1358,6 +1370,7 @@ void browser_window_follow_link(struct browser_window *bw,
browser_window_create(url);
} else if (click_type == 0) {
browser_window_set_status(bw, url);
+ browser_window_set_pointer(GUI_POINTER_POINT);
done = 1;
}
free(url);
@@ -1386,29 +1399,50 @@ void browser_window_follow_link(struct browser_window *bw,
browser_window_create(url);
} else if (click_type == 0) {
browser_window_set_status(bw, url);
+ browser_window_set_pointer(GUI_POINTER_POINT);
done = 1;
}
free(url);
break;
}
+ if (click_type == 0 && click_boxes[i].box->gadget != NULL) {
+ if (click_boxes[i].box->gadget->type == GADGET_TEXTBOX ||
+ click_boxes[i].box->gadget->type == GADGET_TEXTAREA ||
+ click_boxes[i].box->gadget->type == GADGET_PASSWORD ||
+ click_boxes[i].box->gadget->type == GADGET_FILE) {
+ browser_window_set_pointer(GUI_POINTER_CARET);
+ done = 1;
+ break;
+ }
+ else if (click_boxes[i].box->gadget->type == GADGET_SELECT) {
+ browser_window_set_pointer(GUI_POINTER_MENU);
+ done = 1;
+ break;
+ }
+ }
if (click_type == 0 && click_boxes[i].box->title != NULL) {
browser_window_set_status(bw,
click_boxes[i].box->
title);
+ browser_window_set_pointer(GUI_POINTER_DEFAULT);
done = 1;
break;
}
}
if (click_type == 0 && done == 0) {
- if (bw->loading_content != 0)
+ if (bw->loading_content != 0) {
browser_window_set_status(bw,
bw->loading_content->
status_message);
- else
+ browser_window_set_pointer(GUI_POINTER_DEFAULT);
+ }
+ else {
browser_window_set_status(bw,
bw->current_content->
status_message);
+ browser_window_set_pointer(GUI_POINTER_DEFAULT);
+ }
}
free(click_boxes);