summaryrefslogtreecommitdiff
path: root/frontends/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2020-05-22 23:58:16 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2020-05-22 23:58:16 +0100
commitaa86da5f027301540bd4a41cdfa512fa1d2b69e8 (patch)
tree1fca11d5c6b317292b2f6884ee9d8e735b74a1fd /frontends/amiga
parent505217a8e7be13f720b023d9b8691137779c4fb2 (diff)
downloadnetsurf-aa86da5f027301540bd4a41cdfa512fa1d2b69e8.tar.gz
netsurf-aa86da5f027301540bd4a41cdfa512fa1d2b69e8.tar.bz2
Amiga: position page info window under page info button
Diffstat (limited to 'frontends/amiga')
-rw-r--r--frontends/amiga/gui.c17
-rw-r--r--frontends/amiga/pageinfo.c15
-rw-r--r--frontends/amiga/pageinfo.h2
3 files changed, 26 insertions, 8 deletions
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 1dde68727..698c2c775 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -3000,8 +3000,21 @@ static BOOL ami_gui_event(void *w)
break;
case GID_PAGEINFO:
- if(ami_pageinfo_open(gwin->gw->bw) != NSERROR_OK) {
- NSLOG(netsurf, INFO, "Unable to open page info window");
+ {
+ ULONG w_top, w_left;
+ ULONG g_top, g_left, g_height;
+
+ GetAttr(WA_Top, gwin->objects[OID_MAIN], &w_top);
+ GetAttr(WA_Left, gwin->objects[OID_MAIN], &w_left);
+ GetAttr(GA_Top, gwin->objects[GID_PAGEINFO], &g_top);
+ GetAttr(GA_Left, gwin->objects[GID_PAGEINFO], &g_left);
+ GetAttr(GA_Height, gwin->objects[GID_PAGEINFO], &g_height);
+
+ if(ami_pageinfo_open(gwin->gw->bw,
+ w_left + g_left,
+ w_top + g_top + g_height) != NSERROR_OK) {
+ NSLOG(netsurf, INFO, "Unable to open page info window");
+ }
}
break;
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
index 898cb0653..8b65989e3 100644
--- a/frontends/amiga/pageinfo.c
+++ b/frontends/amiga/pageinfo.c
@@ -163,7 +163,7 @@ ami_pageinfo_draw(struct ami_corewindow *ami_cw, int x, int y, struct rect *r, s
}
static nserror
-ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win)
+ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win, ULONG left, ULONG top)
{
struct ami_corewindow *ami_cw = (struct ami_corewindow *)&pageinfo_win->core;
ULONG refresh_mode = WA_SmartRefresh;
@@ -182,7 +182,8 @@ ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win)
WA_CloseGadget, TRUE,
WA_SizeGadget, TRUE,
WA_SizeBBottom, TRUE,
- WA_Height, scrn->Height / 2,
+ WA_Left, left,
+ WA_Top, top,
WA_PubScreen, scrn,
WA_ReportMouse, TRUE,
refresh_mode, TRUE,
@@ -197,7 +198,6 @@ ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win)
WINDOW_VertProp, 1,
WINDOW_UserData, pageinfo_win,
WINDOW_IconifyGadget, FALSE,
- WINDOW_Position, WPOS_CENTERSCREEN,
WINDOW_ParentGroup, ami_cw->objects[GID_CW_MAIN] = LayoutVObj,
LAYOUT_AddChild, ami_cw->objects[GID_CW_DRAW] = SpaceObj,
GA_ID, GID_CW_DRAW,
@@ -216,10 +216,11 @@ ami_pageinfo_create_window(struct ami_pageinfo_window *pageinfo_win)
}
/* exported interface documented in amiga/pageinfo.h */
-nserror ami_pageinfo_open(struct browser_window *bw)
+nserror ami_pageinfo_open(struct browser_window *bw, ULONG left, ULONG top)
{
struct ami_pageinfo_window *ncwin;
nserror res;
+ int width, height;
ncwin = calloc(1, sizeof(struct ami_pageinfo_window));
if (ncwin == NULL) {
@@ -228,7 +229,7 @@ nserror ami_pageinfo_open(struct browser_window *bw)
ncwin->core.wintitle = ami_utf8_easy((char *)messages_get("PageInfo"));
- res = ami_pageinfo_create_window(ncwin);
+ res = ami_pageinfo_create_window(ncwin, left, top);
if (res != NSERROR_OK) {
NSLOG(netsurf, INFO, "Page info init failed");
ami_utf8_free(ncwin->core.wintitle);
@@ -263,6 +264,10 @@ nserror ami_pageinfo_open(struct browser_window *bw)
return res;
}
+ if(page_info_get_size(ncwin->pi, &width, &height) == NSERROR_OK) {
+ SetAttrs(ncwin->core.objects[GID_CW_WIN], WA_InnerWidth, width, WA_InnerHeight, height, TAG_DONE);
+ }
+
return NSERROR_OK;
}
diff --git a/frontends/amiga/pageinfo.h b/frontends/amiga/pageinfo.h
index 7737b258e..e48925e26 100644
--- a/frontends/amiga/pageinfo.h
+++ b/frontends/amiga/pageinfo.h
@@ -25,7 +25,7 @@
* \param bw the browser window
* \return NSERROR_OK or error code if window creation failed.
*/
-nserror ami_pageinfo_open(struct browser_window *bw);
+nserror ami_pageinfo_open(struct browser_window *bw, ULONG left, ULONG top);
#endif