Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/3f84dba7797c33e70b87d0f6c7b8f058ffc45593
...commit
http://git.netsurf-browser.org/netsurf.git/commit/3f84dba7797c33e70b87d0f6c7b8f058ffc45593
...tree
http://git.netsurf-browser.org/netsurf.git/tree/3f84dba7797c33e70b87d0f6c7b8f058ffc45593
The branch, master has been updated
via 3f84dba7797c33e70b87d0f6c7b8f058ffc45593 (commit)
via dc5cae7306068596e7ec0cb5d01820e93d351be4 (commit)
via 3efeb41d1d063f99c2b3a21f9bf0c90f2d3f37d3 (commit)
via aa86da5f027301540bd4a41cdfa512fa1d2b69e8 (commit)
via 505217a8e7be13f720b023d9b8691137779c4fb2 (commit)
via 413c3803c50b29854fff1003e585ee7dfea3fa36 (commit)
from 67b2d3931d325bb65887daa92c030c1466d30d8f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=3f84dba7797c33e70b87d0f6c7b8f058ffc45593
commit 3f84dba7797c33e70b87d0f6c7b8f058ffc45593
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Amiga: fix an issue where the page info icon was not updating correctly
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 698c2c7..e4dca8c 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -3253,6 +3253,56 @@ static void ami_gui_appicon_remove(struct gui_window_2
*gwin)
}
}
+static nserror gui_page_info_change(struct gui_window *gw)
+{
+ int bm_idx;
+ browser_window_page_info_state pistate;
+ struct gui_window_2 *gwin = ami_gui_get_gui_window_2(gw);
+ struct browser_window *bw = ami_gui_get_browser_window(gw);
+
+ /* if this isn't the visible tab, don't do anything */
+ if((gwin == NULL) || (gwin->gw != gw)) return NSERROR_OK;
+
+ pistate = browser_window_get_page_info_state(bw);
+
+ switch(pistate) {
+ case PAGE_STATE_INTERNAL:
+ bm_idx = GID_PAGEINFO_INTERNAL_BM;
+ break;
+
+ case PAGE_STATE_LOCAL:
+ bm_idx = GID_PAGEINFO_LOCAL_BM;
+ break;
+
+ case PAGE_STATE_INSECURE:
+ bm_idx = GID_PAGEINFO_INSECURE_BM;
+ break;
+
+ case PAGE_STATE_SECURE_OVERRIDE:
+ bm_idx = GID_PAGEINFO_WARNING_BM;
+ break;
+
+ case PAGE_STATE_SECURE_ISSUES:
+ bm_idx = GID_PAGEINFO_WARNING_BM;
+ break;
+
+ case PAGE_STATE_SECURE:
+ bm_idx = GID_PAGEINFO_SECURE_BM;
+ break;
+
+ default:
+ bm_idx = GID_PAGEINFO_INTERNAL_BM;
+ break;
+ }
+
+ RefreshSetGadgetAttrs((struct Gadget *)gwin->objects[GID_PAGEINFO],
gwin->win, NULL,
+ BUTTON_RenderImage, gwin->objects[bm_idx],
+ GA_HintInfo, gwin->helphints[bm_idx],
+ TAG_DONE);
+
+ return NSERROR_OK;
+}
+
static void ami_handle_appmsg(void)
{
struct AppMessage *appmsg;
@@ -3605,6 +3655,7 @@ static void ami_switch_tab(struct gui_window_2 *gwin,
bool redraw)
ami_throbber_redraw_schedule(0, gwin->gw);
gui_window_set_icon(gwin->gw, gwin->gw->favicon);
+ gui_page_info_change(gwin->gw);
}
ami_gui_free_space_box(bbox);
@@ -6088,53 +6139,6 @@ static void gui_window_new_content(struct gui_window *g)
ami_gui_scroller_update(g->shared);
}
-static nserror gui_page_info_change(struct gui_window *gw)
-{
- int bm_idx;
- browser_window_page_info_state pistate;
- struct gui_window_2 *gwin = ami_gui_get_gui_window_2(gw);
- struct browser_window *bw = ami_gui_get_browser_window(gw);
-
- pistate = browser_window_get_page_info_state(bw);
-
- switch(pistate) {
- case PAGE_STATE_INTERNAL:
- bm_idx = GID_PAGEINFO_INTERNAL_BM;
- break;
-
- case PAGE_STATE_LOCAL:
- bm_idx = GID_PAGEINFO_LOCAL_BM;
- break;
-
- case PAGE_STATE_INSECURE:
- bm_idx = GID_PAGEINFO_INSECURE_BM;
- break;
-
- case PAGE_STATE_SECURE_OVERRIDE:
- bm_idx = GID_PAGEINFO_WARNING_BM;
- break;
-
- case PAGE_STATE_SECURE_ISSUES:
- bm_idx = GID_PAGEINFO_WARNING_BM;
- break;
-
- case PAGE_STATE_SECURE:
- bm_idx = GID_PAGEINFO_SECURE_BM;
- break;
-
- default:
- bm_idx = GID_PAGEINFO_INTERNAL_BM;
- break;
- }
-
- RefreshSetGadgetAttrs((struct Gadget *)gwin->objects[GID_PAGEINFO],
gwin->win, NULL,
- BUTTON_RenderImage, gwin->objects[bm_idx],
- GA_HintInfo, gwin->helphints[bm_idx],
- TAG_DONE);
-
- return NSERROR_OK;
-}
-
static bool gui_window_drag_start(struct gui_window *g, gui_drag_type type,
const struct rect *rect)
{
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=dc5cae7306068596e7ec0cb5d01820e93d351be4
commit dc5cae7306068596e7ec0cb5d01820e93d351be4
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Amiga: make page info borderless
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
index 3bfe0e3..8b79a0a 100644
--- a/frontends/amiga/pageinfo.c
+++ b/frontends/amiga/pageinfo.c
@@ -179,13 +179,12 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win, ULONG left,
ami_cw->objects[GID_CW_WIN] = WindowObj,
WA_ScreenTitle, ami_gui_get_screen_title(),
- WA_Title, ami_cw->wintitle,
WA_Activate, TRUE,
- WA_DepthGadget, TRUE,
- WA_DragBar, TRUE,
- WA_CloseGadget, TRUE,
- WA_SizeGadget, TRUE,
- WA_SizeBBottom, TRUE,
+ WA_DepthGadget, FALSE,
+ WA_DragBar, FALSE,
+ WA_CloseGadget, FALSE,
+ WA_SizeGadget, FALSE,
+ WA_Borderless, TRUE,
WA_Left, left,
WA_Top, top,
WA_PubScreen, scrn,
@@ -198,15 +197,13 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win, ULONG left,
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE |
IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW,
WINDOW_SharedPort, ami_gui_get_shared_msgport(),
- WINDOW_HorizProp, 1,
- WINDOW_VertProp, 1,
WINDOW_UserData, pageinfo_win,
WINDOW_IconifyGadget, FALSE,
WINDOW_ParentGroup, ami_cw->objects[GID_CW_MAIN] = LayoutVObj,
LAYOUT_AddChild, ami_cw->objects[GID_CW_DRAW] =
SpaceObj,
GA_ID, GID_CW_DRAW,
SPACE_Transparent, TRUE,
- SPACE_BevelStyle, BVS_DISPLAY,
+ SPACE_BevelStyle, BVS_BOX,
GA_RelVerify, TRUE,
SpaceEnd,
EndGroup,
@@ -269,7 +266,12 @@ nserror ami_pageinfo_open(struct browser_window *bw, ULONG
left, ULONG top)
}
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);
+ /* Set window to the correct size.
+ * TODO: this should really set the size of
ncwin->core.objects[GID_CW_DRAW]
+ * and let the window adjust, here we've hardcoded to add 6x4px
as that's
+ * what window.class does before v45.
+ */
+ SetAttrs(ncwin->core.objects[GID_CW_WIN], WA_InnerWidth, width
+ 6, WA_InnerHeight, height + 4, TAG_DONE);
}
return NSERROR_OK;
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=3efeb41d1d063f99c2b3a21f9bf0c90f2d3f37d3
commit 3efeb41d1d063f99c2b3a21f9bf0c90f2d3f37d3
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Amiga: make page info close when window goes inactive
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
index 8b65989..3bfe0e3 100644
--- a/frontends/amiga/pageinfo.c
+++ b/frontends/amiga/pageinfo.c
@@ -94,7 +94,11 @@ ami_pageinfo_close_cb(void *p)
static BOOL
ami_pageinfo_event(struct ami_corewindow *ami_cw, ULONG result)
{
- /* we don't have any events on this window yet */
+ if((result & WMHI_CLASSMASK) == WMHI_INACTIVE) {
+ /* Window went inactive, so close it */
+ ami_pageinfo_destroy(ami_cw);
+ return TRUE;
+ }
return FALSE;
}
@@ -188,7 +192,7 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win, ULONG left,
WA_ReportMouse, TRUE,
refresh_mode, TRUE,
WA_IDCMP, IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE |
- IDCMP_RAWKEY | IDCMP_IDCMPUPDATE |
+ IDCMP_RAWKEY | IDCMP_IDCMPUPDATE |
IDCMP_INACTIVEWINDOW |
IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY |
IDCMP_REFRESHWINDOW,
WINDOW_IDCMPHook, &ami_cw->idcmp_hook,
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE |
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=aa86da5f027301540bd4a41cdfa512fa1d2b69e8
commit aa86da5f027301540bd4a41cdfa512fa1d2b69e8
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Amiga: position page info window under page info button
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 1dde687..698c2c7 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 898cb06..8b65989 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 7737b25..e48925e 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
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=505217a8e7be13f720b023d9b8691137779c4fb2
commit 505217a8e7be13f720b023d9b8691137779c4fb2
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Fix offset to allow tiled rendering
diff --git a/desktop/page-info.c b/desktop/page-info.c
index d698c2b..0991d07 100644
--- a/desktop/page-info.c
+++ b/desktop/page-info.c
@@ -635,7 +635,7 @@ nserror page_info_redraw(
.x1 = clip->x1 + x,
.y1 = clip->y1 + y,
};
- int cur_y = 0;
+ int cur_y = y;
nserror err;
/* Start knockout rendering if it's available for this plotter. */
@@ -653,7 +653,7 @@ nserror page_info_redraw(
cur_y += pi->window_padding;
for (unsigned i = 0; i < PI_ENTRY__COUNT; i++) {
const struct page_info_entry *entry = pi->entries + i;
- int cur_x = pi->window_padding;
+ int cur_x = x + pi->window_padding;
if (page_info__hide_entry(i, pi->scheme)) {
continue;
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=413c3803c50b29854fff1003e585ee7dfea3fa36
commit 413c3803c50b29854fff1003e585ee7dfea3fa36
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Amiga: simplify page info GUI, add close gadget
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
index 9a2b049..898cb06 100644
--- a/frontends/amiga/pageinfo.c
+++ b/frontends/amiga/pageinfo.c
@@ -179,7 +179,7 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win)
WA_Activate, TRUE,
WA_DepthGadget, TRUE,
WA_DragBar, TRUE,
- WA_CloseGadget, FALSE,
+ WA_CloseGadget, TRUE,
WA_SizeGadget, TRUE,
WA_SizeBBottom, TRUE,
WA_Height, scrn->Height / 2,
@@ -193,32 +193,18 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win)
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE |
IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW,
WINDOW_SharedPort, ami_gui_get_shared_msgport(),
+ WINDOW_HorizProp, 1,
+ 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_HSCROLLLAYOUT]
= LayoutVObj,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_VSCROLLLAYOUT] = LayoutHObj,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_DRAW] = SpaceObj,
- GA_ID, GID_CW_DRAW,
- SPACE_Transparent, TRUE,
- SPACE_BevelStyle, BVS_DISPLAY,
- GA_RelVerify, TRUE,
- SpaceEnd,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_VSCROLL] = ScrollerObj,
- GA_ID, GID_CW_VSCROLL,
- GA_RelVerify, TRUE,
- ICA_TARGET, ICTARGET_IDCMP,
- ScrollerEnd,
- LayoutEnd,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_HSCROLL] = ScrollerObj,
- GA_ID, GID_CW_HSCROLL,
- GA_RelVerify, TRUE,
- ICA_TARGET, ICTARGET_IDCMP,
- SCROLLER_Orientation, SORIENT_HORIZ,
- ScrollerEnd,
- LayoutEnd,
- CHILD_WeightedHeight, 0,
+ LAYOUT_AddChild, ami_cw->objects[GID_CW_DRAW] =
SpaceObj,
+ GA_ID, GID_CW_DRAW,
+ SPACE_Transparent, TRUE,
+ SPACE_BevelStyle, BVS_DISPLAY,
+ GA_RelVerify, TRUE,
+ SpaceEnd,
EndGroup,
EndWindow;
-----------------------------------------------------------------------
Summary of changes:
desktop/page-info.c | 4 +-
frontends/amiga/gui.c | 115 +++++++++++++++++++++++++-------------------
frontends/amiga/pageinfo.c | 65 ++++++++++++-------------
frontends/amiga/pageinfo.h | 2 +-
4 files changed, 100 insertions(+), 86 deletions(-)
diff --git a/desktop/page-info.c b/desktop/page-info.c
index d698c2b..0991d07 100644
--- a/desktop/page-info.c
+++ b/desktop/page-info.c
@@ -635,7 +635,7 @@ nserror page_info_redraw(
.x1 = clip->x1 + x,
.y1 = clip->y1 + y,
};
- int cur_y = 0;
+ int cur_y = y;
nserror err;
/* Start knockout rendering if it's available for this plotter. */
@@ -653,7 +653,7 @@ nserror page_info_redraw(
cur_y += pi->window_padding;
for (unsigned i = 0; i < PI_ENTRY__COUNT; i++) {
const struct page_info_entry *entry = pi->entries + i;
- int cur_x = pi->window_padding;
+ int cur_x = x + pi->window_padding;
if (page_info__hide_entry(i, pi->scheme)) {
continue;
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 1dde687..e4dca8c 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;
@@ -3240,6 +3253,56 @@ static void ami_gui_appicon_remove(struct gui_window_2
*gwin)
}
}
+static nserror gui_page_info_change(struct gui_window *gw)
+{
+ int bm_idx;
+ browser_window_page_info_state pistate;
+ struct gui_window_2 *gwin = ami_gui_get_gui_window_2(gw);
+ struct browser_window *bw = ami_gui_get_browser_window(gw);
+
+ /* if this isn't the visible tab, don't do anything */
+ if((gwin == NULL) || (gwin->gw != gw)) return NSERROR_OK;
+
+ pistate = browser_window_get_page_info_state(bw);
+
+ switch(pistate) {
+ case PAGE_STATE_INTERNAL:
+ bm_idx = GID_PAGEINFO_INTERNAL_BM;
+ break;
+
+ case PAGE_STATE_LOCAL:
+ bm_idx = GID_PAGEINFO_LOCAL_BM;
+ break;
+
+ case PAGE_STATE_INSECURE:
+ bm_idx = GID_PAGEINFO_INSECURE_BM;
+ break;
+
+ case PAGE_STATE_SECURE_OVERRIDE:
+ bm_idx = GID_PAGEINFO_WARNING_BM;
+ break;
+
+ case PAGE_STATE_SECURE_ISSUES:
+ bm_idx = GID_PAGEINFO_WARNING_BM;
+ break;
+
+ case PAGE_STATE_SECURE:
+ bm_idx = GID_PAGEINFO_SECURE_BM;
+ break;
+
+ default:
+ bm_idx = GID_PAGEINFO_INTERNAL_BM;
+ break;
+ }
+
+ RefreshSetGadgetAttrs((struct Gadget *)gwin->objects[GID_PAGEINFO],
gwin->win, NULL,
+ BUTTON_RenderImage, gwin->objects[bm_idx],
+ GA_HintInfo, gwin->helphints[bm_idx],
+ TAG_DONE);
+
+ return NSERROR_OK;
+}
+
static void ami_handle_appmsg(void)
{
struct AppMessage *appmsg;
@@ -3592,6 +3655,7 @@ static void ami_switch_tab(struct gui_window_2 *gwin,
bool redraw)
ami_throbber_redraw_schedule(0, gwin->gw);
gui_window_set_icon(gwin->gw, gwin->gw->favicon);
+ gui_page_info_change(gwin->gw);
}
ami_gui_free_space_box(bbox);
@@ -6075,53 +6139,6 @@ static void gui_window_new_content(struct gui_window *g)
ami_gui_scroller_update(g->shared);
}
-static nserror gui_page_info_change(struct gui_window *gw)
-{
- int bm_idx;
- browser_window_page_info_state pistate;
- struct gui_window_2 *gwin = ami_gui_get_gui_window_2(gw);
- struct browser_window *bw = ami_gui_get_browser_window(gw);
-
- pistate = browser_window_get_page_info_state(bw);
-
- switch(pistate) {
- case PAGE_STATE_INTERNAL:
- bm_idx = GID_PAGEINFO_INTERNAL_BM;
- break;
-
- case PAGE_STATE_LOCAL:
- bm_idx = GID_PAGEINFO_LOCAL_BM;
- break;
-
- case PAGE_STATE_INSECURE:
- bm_idx = GID_PAGEINFO_INSECURE_BM;
- break;
-
- case PAGE_STATE_SECURE_OVERRIDE:
- bm_idx = GID_PAGEINFO_WARNING_BM;
- break;
-
- case PAGE_STATE_SECURE_ISSUES:
- bm_idx = GID_PAGEINFO_WARNING_BM;
- break;
-
- case PAGE_STATE_SECURE:
- bm_idx = GID_PAGEINFO_SECURE_BM;
- break;
-
- default:
- bm_idx = GID_PAGEINFO_INTERNAL_BM;
- break;
- }
-
- RefreshSetGadgetAttrs((struct Gadget *)gwin->objects[GID_PAGEINFO],
gwin->win, NULL,
- BUTTON_RenderImage, gwin->objects[bm_idx],
- GA_HintInfo, gwin->helphints[bm_idx],
- TAG_DONE);
-
- return NSERROR_OK;
-}
-
static bool gui_window_drag_start(struct gui_window *g, gui_drag_type type,
const struct rect *rect)
{
diff --git a/frontends/amiga/pageinfo.c b/frontends/amiga/pageinfo.c
index 9a2b049..8b79a0a 100644
--- a/frontends/amiga/pageinfo.c
+++ b/frontends/amiga/pageinfo.c
@@ -94,7 +94,11 @@ ami_pageinfo_close_cb(void *p)
static BOOL
ami_pageinfo_event(struct ami_corewindow *ami_cw, ULONG result)
{
- /* we don't have any events on this window yet */
+ if((result & WMHI_CLASSMASK) == WMHI_INACTIVE) {
+ /* Window went inactive, so close it */
+ ami_pageinfo_destroy(ami_cw);
+ return TRUE;
+ }
return FALSE;
}
@@ -163,7 +167,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;
@@ -175,19 +179,19 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win)
ami_cw->objects[GID_CW_WIN] = WindowObj,
WA_ScreenTitle, ami_gui_get_screen_title(),
- WA_Title, ami_cw->wintitle,
WA_Activate, TRUE,
- WA_DepthGadget, TRUE,
- WA_DragBar, TRUE,
+ WA_DepthGadget, FALSE,
+ WA_DragBar, FALSE,
WA_CloseGadget, FALSE,
- WA_SizeGadget, TRUE,
- WA_SizeBBottom, TRUE,
- WA_Height, scrn->Height / 2,
+ WA_SizeGadget, FALSE,
+ WA_Borderless, TRUE,
+ WA_Left, left,
+ WA_Top, top,
WA_PubScreen, scrn,
WA_ReportMouse, TRUE,
refresh_mode, TRUE,
WA_IDCMP, IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE |
- IDCMP_RAWKEY | IDCMP_IDCMPUPDATE |
+ IDCMP_RAWKEY | IDCMP_IDCMPUPDATE |
IDCMP_INACTIVEWINDOW |
IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY |
IDCMP_REFRESHWINDOW,
WINDOW_IDCMPHook, &ami_cw->idcmp_hook,
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE |
@@ -195,30 +199,13 @@ ami_pageinfo_create_window(struct ami_pageinfo_window
*pageinfo_win)
WINDOW_SharedPort, ami_gui_get_shared_msgport(),
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_HSCROLLLAYOUT]
= LayoutVObj,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_VSCROLLLAYOUT] = LayoutHObj,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_DRAW] = SpaceObj,
- GA_ID, GID_CW_DRAW,
- SPACE_Transparent, TRUE,
- SPACE_BevelStyle, BVS_DISPLAY,
- GA_RelVerify, TRUE,
- SpaceEnd,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_VSCROLL] = ScrollerObj,
- GA_ID, GID_CW_VSCROLL,
- GA_RelVerify, TRUE,
- ICA_TARGET, ICTARGET_IDCMP,
- ScrollerEnd,
- LayoutEnd,
- LAYOUT_AddChild,
ami_cw->objects[GID_CW_HSCROLL] = ScrollerObj,
- GA_ID, GID_CW_HSCROLL,
- GA_RelVerify, TRUE,
- ICA_TARGET, ICTARGET_IDCMP,
- SCROLLER_Orientation, SORIENT_HORIZ,
- ScrollerEnd,
- LayoutEnd,
- CHILD_WeightedHeight, 0,
+ LAYOUT_AddChild, ami_cw->objects[GID_CW_DRAW] =
SpaceObj,
+ GA_ID, GID_CW_DRAW,
+ SPACE_Transparent, TRUE,
+ SPACE_BevelStyle, BVS_BOX,
+ GA_RelVerify, TRUE,
+ SpaceEnd,
EndGroup,
EndWindow;
@@ -230,10 +217,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) {
@@ -242,7 +230,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);
@@ -277,6 +265,15 @@ nserror ami_pageinfo_open(struct browser_window *bw)
return res;
}
+ if(page_info_get_size(ncwin->pi, &width, &height) == NSERROR_OK) {
+ /* Set window to the correct size.
+ * TODO: this should really set the size of
ncwin->core.objects[GID_CW_DRAW]
+ * and let the window adjust, here we've hardcoded to add 6x4px
as that's
+ * what window.class does before v45.
+ */
+ SetAttrs(ncwin->core.objects[GID_CW_WIN], WA_InnerWidth, width
+ 6, WA_InnerHeight, height + 4, TAG_DONE);
+ }
+
return NSERROR_OK;
}
diff --git a/frontends/amiga/pageinfo.h b/frontends/amiga/pageinfo.h
index 7737b25..e48925e 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
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]