summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2009-10-15 21:35:29 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2009-10-15 21:35:29 +0000
commit4059d2b0961a6361d422854524b2be0235719c62 (patch)
treea925bed36e4d948100b3cad9a040a0562c91596f /amiga
parent87695acd33f4285dd3c9f4da7568acff9c33016e (diff)
downloadnetsurf-4059d2b0961a6361d422854524b2be0235719c62.tar.gz
netsurf-4059d2b0961a6361d422854524b2be0235719c62.tar.bz2
Fix-up the timer.device scheduler and reinstate it as default. Unfortunately this
doesn't remove the need for INTUITICKS messages as we still need to break out for page reflow (which doesn't use the scheduler), but it should make animations more accurate. svn path=/trunk/netsurf/; revision=9648
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/gui.c16
-rwxr-xr-xamiga/schedule.c8
-rwxr-xr-xamiga/schedule.h1
3 files changed, 13 insertions, 12 deletions
diff --git a/amiga/gui.c b/amiga/gui.c
index 5ec6a5374..f03dcd85f 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -113,7 +113,6 @@ char *quirks_stylesheet_url;
char *adblock_stylesheet_url;
struct MsgPort *appport;
-struct MsgPort *msgport;
struct Device *TimerBase;
struct TimerIFace *ITimer;
struct Library *PopupMenuBase = NULL;
@@ -1508,7 +1507,7 @@ void ami_get_msg(void)
ULONG appsig = 1L << appport->mp_SigBit;
ULONG schedulesig = 1L << msgport->mp_SigBit;
ULONG signal;
- struct Message *timermsg = NULL;
+ struct TimerRequest *timermsg = NULL;
struct MsgPort *printmsgport = ami_print_get_msgport();
ULONG printsig = 1L << printmsgport->mp_SigBit;
ULONG signalmask = winsignal | appsig | schedulesig | rxsig | printsig | applibsig;
@@ -1538,8 +1537,8 @@ void ami_get_msg(void)
}
else if(signal & schedulesig)
{
- while(GetMsg(msgport))
- schedule_run();
+ timermsg = (struct TimeRequest *)GetMsg(msgport);
+ //schedule_run();
}
}
@@ -1951,7 +1950,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
WA_SmartRefresh,TRUE,
WA_IDCMP,IDCMP_MENUPICK | IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS |
IDCMP_NEWSIZE | IDCMP_RAWKEY | IDCMP_GADGETUP | IDCMP_SIZEVERIFY |
- IDCMP_IDCMPUPDATE | IDCMP_INTUITICKS | IDCMP_EXTENDEDMOUSE,
+ IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE | IDCMP_INTUITICKS,
// WINDOW_IconifyGadget, TRUE,
// WINDOW_NewMenu,menu,
WINDOW_HorizProp,1,
@@ -2038,7 +2037,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE |
IDCMP_RAWKEY | IDCMP_SIZEVERIFY |
IDCMP_GADGETUP | IDCMP_IDCMPUPDATE |
- IDCMP_INTUITICKS | IDCMP_ACTIVEWINDOW |
+ IDCMP_ACTIVEWINDOW | IDCMP_INTUITICKS |
IDCMP_EXTENDEDMOUSE | IDCMP_GADGETDOWN,
// WINDOW_IconifyGadget, TRUE,
WINDOW_NewMenu,menu,
@@ -2219,9 +2218,9 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
WA_ReportMouse,TRUE,
WA_IDCMP,IDCMP_MENUPICK | IDCMP_MOUSEMOVE |
IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE |
- IDCMP_RAWKEY |
+ IDCMP_RAWKEY | IDCMP_INTUITICKS |
IDCMP_GADGETUP | IDCMP_IDCMPUPDATE |
- IDCMP_INTUITICKS | IDCMP_EXTENDEDMOUSE,
+ IDCMP_EXTENDEDMOUSE,
WINDOW_HorizProp,1,
WINDOW_VertProp,1,
WINDOW_IDCMPHook,&gwin->shared->scrollerhook,
@@ -2942,6 +2941,7 @@ void gui_window_set_status(struct gui_window *g, const char *text)
if((cur_tab == g->tab) || (g->shared->tabs == 0))
{
utf8text = ami_utf8_easy((char *)text);
+ if(utf8text == NULL) return;
if((g->shared->status == NULL) || (strcmp(utf8text,g->shared->status)))
{
diff --git a/amiga/schedule.c b/amiga/schedule.c
index 8ec7b3da0..9ce5c6096 100755
--- a/amiga/schedule.c
+++ b/amiga/schedule.c
@@ -62,16 +62,16 @@ void schedule(int t, void (*callback)(void *p), void *p)
GetSysTime(&tv);
AddTime(&nscb->tv,&tv); // now contains time when event occurs
-#ifdef AMI_SCHEDULER_USES_TIMER
- if(nscb->treq = AllocVec(sizeof(struct timerequest),MEMF_PRIVATE | MEMF_CLEAR))
+
+ if(nscb->treq = AllocVec(sizeof(struct TimeRequest),MEMF_PRIVATE | MEMF_CLEAR))
{
*nscb->treq = *tioreq;
nscb->treq->Request.io_Command=TR_ADDREQUEST;
- nscb->treq->Time.Seconds=nscb->tv.tv_sec; // secs
+ nscb->treq->Time.Seconds=nscb->tv.Seconds; // secs
nscb->treq->Time.Microseconds=nscb->tv.Microseconds; // micro
SendIO((struct IORequest *)nscb->treq);
}
-#endif
+
nscb->callback = callback;
nscb->p = p;
}
diff --git a/amiga/schedule.h b/amiga/schedule.h
index 3317101ed..76c877861 100755
--- a/amiga/schedule.h
+++ b/amiga/schedule.h
@@ -23,6 +23,7 @@
struct MinList *schedule_list;
struct TimeRequest *tioreq;
+struct MsgPort *msgport;
struct nscallback
{