aboutsummaryrefslogtreecommitdiff
path: root/src/bw.c
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2009-02-08 19:31:32 -0300
committercorvid <corvid@lavabit.com>2009-02-08 19:31:32 -0300
commit76c6fe90916a407aace73ab6c79e08495c4bcec0 (patch)
treef9f4e5a89f5223b9174a2012c31ca1dc2ae423e1 /src/bw.c
parent24cc07871e0744853dfaed26c9a8eff0b62ff35d (diff)
Fixed the load image popup option. Also cleaned up the API a bit.
Introduced a_Bw_get_url_doc(). Mainly for popup menus.
Diffstat (limited to 'src/bw.c')
-rw-r--r--src/bw.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/bw.c b/src/bw.c
index d0c92086..92d24556 100644
--- a/src/bw.c
+++ b/src/bw.c
@@ -13,6 +13,7 @@
#include "bw.h"
+#include "msg.h"
#include "list.h"
#include "capi.h"
#include "uicmd.hh"
@@ -217,6 +218,38 @@ void a_Bw_add_doc(BrowserWindow *bw, void *vdoc)
}
/*
+ * Get current document.
+ */
+void *a_Bw_get_current_doc(BrowserWindow *bw)
+{
+ void *doc = NULL;
+ int len = dList_length(bw->Docs);
+
+ if (len == 1)
+ doc = dList_nth_data(bw->Docs, 0);
+ else if (len > 1)
+ MSG("a_Bw_get_current_doc() multiple docs not implemented\n");
+
+ return doc;
+}
+
+/*
+ * Get document by URL.
+ *
+ * This is currently used by popup menus that need to ensure that the
+ * page has not changed while the menu was popped up.
+ */
+void *a_Bw_get_url_doc(BrowserWindow *bw, const DilloUrl *url)
+{
+ void *doc = NULL;
+
+ if (url && dList_find_custom(bw->PageUrls, url, (dCompareFunc)a_Url_cmp)) {
+ doc = a_Bw_get_current_doc(bw);
+ }
+ return doc;
+}
+
+/*
* Remove a document from the bw's list
*/
void a_Bw_remove_doc(BrowserWindow *bw, void *vdoc)