summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/browser.h7
-rw-r--r--render/html.c11
2 files changed, 12 insertions, 6 deletions
diff --git a/desktop/browser.h b/desktop/browser.h
index 489a7edad..306124d30 100644
--- a/desktop/browser.h
+++ b/desktop/browser.h
@@ -269,13 +269,14 @@ bool browser_window_scroll_at_point(struct browser_window *bw,
int x, int y, int scrx, int scry);
/**
- * Drop a file onto a browser window at a particular point.
+ * Drop a file onto a browser window at a particular point, or determine if a
+ * file may be dropped onto the content at given point.
*
* \param bw browser window to look inside
* \param x x-coordinate of point of interest
* \param y y-coordinate of point of interest
- * \param file path to file to be dropped
- * \return true iff file drop has been handled
+ * \param file path to file to be dropped, or NULL to know if drop allowed
+ * \return true iff file drop has been handled, or if drop possible (NULL file)
*/
bool browser_window_drop_file_at_point(struct browser_window *bw,
int x, int y, char *file);
diff --git a/render/html.c b/render/html.c
index db9e20810..29744979a 100644
--- a/render/html.c
+++ b/render/html.c
@@ -2731,13 +2731,14 @@ html_scroll_at_point(struct content *c, int x, int y, int scrx, int scry)
/**
- * Drop a file onto a content at a particular point.
+ * Drop a file onto a content at a particular point, or determine if a file
+ * may be dropped onto the content at given point.
*
* \param c html content to look inside
* \param x x-coordinate of point of interest
* \param y y-coordinate of point of interest
- * \param file path to file to be dropped
- * \return true iff file drop has been handled
+ * \param file path to file to be dropped, or NULL to know if drop allowed
+ * \return true iff file drop has been handled, or if drop possible (NULL file)
*/
static bool html_drop_file_at_point(struct content *c, int x, int y, char *file)
{
@@ -2785,6 +2786,10 @@ static bool html_drop_file_at_point(struct content *c, int x, int y, char *file)
/* No box capable of handling drop */
return false;
+ if (file == NULL)
+ /* There is a box capable of handling drop here */
+ return true;
+
/* Handle the drop */
if (file_box) {
/* File dropped on file input */