Author: chris_y
Date: Thu Oct 15 16:35:29 2009
New Revision: 9648
URL:
http://source.netsurf-browser.org?rev=9648&view=rev
Log:
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.
Modified:
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/schedule.c
trunk/netsurf/amiga/schedule.h
Modified: trunk/netsurf/amiga/gui.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9648&...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Thu Oct 15 16:35:29 2009
@@ -113,7 +113,6 @@
char *adblock_stylesheet_url;
struct MsgPort *appport;
-struct MsgPort *msgport;
struct Device *TimerBase;
struct TimerIFace *ITimer;
struct Library *PopupMenuBase = NULL;
@@ -1508,7 +1507,7 @@
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 @@
}
else if(signal & schedulesig)
{
- while(GetMsg(msgport))
- schedule_run();
+ timermsg = (struct TimeRequest *)GetMsg(msgport);
+ //schedule_run();
}
}
@@ -1951,7 +1950,7 @@
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 @@
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 @@
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 @@
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)))
{
Modified: trunk/netsurf/amiga/schedule.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/schedule.c?rev=9648...
==============================================================================
--- trunk/netsurf/amiga/schedule.c (original)
+++ trunk/netsurf/amiga/schedule.c Thu Oct 15 16:35:29 2009
@@ -62,16 +62,16 @@
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;
}
Modified: trunk/netsurf/amiga/schedule.h
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/schedule.h?rev=9648...
==============================================================================
--- trunk/netsurf/amiga/schedule.h (original)
+++ trunk/netsurf/amiga/schedule.h Thu Oct 15 16:35:29 2009
@@ -23,6 +23,7 @@
struct MinList *schedule_list;
struct TimeRequest *tioreq;
+struct MsgPort *msgport;
struct nscallback
{