diff -u -r lcdproc-CVS-stable-0-4-3-20020327/server/client_functions.c lcdproc-0.4.3mp/server/client_functions.c --- lcdproc-CVS-stable-0-4-3-20020327/server/client_functions.c Wed Mar 27 03:06:17 2002 +++ lcdproc-0.4.3mp/server/client_functions.c Wed Mar 27 19:10:34 2002 @@ -628,6 +628,9 @@ number = atoi (argv[i]); if (number > 0) s->priority = number; + + /* resort according to priority */ + screenlist_next (); sock_send_string(c->sock, "success\n"); } else { sock_send_string (c->sock, "huh? -priority requires a parameter\n"); @@ -957,8 +960,19 @@ } return 0; } - /* FIXME? Shouldn't this be handled in widget.c?*/ i = 3; + + /* Check for blink speed */ + if (strcmp(argv[i], "blink") == 0) + { + i++; + w->blink = atoi(argv[i]); + debug (RPT_DEBUG, "Widget %s blink set to %d", wid, w->blink); + sock_send_string(c->sock, "success\n"); + return 0; + } + + /* FIXME? Shouldn't this be handled in widget.c?*/ switch (w->type) { case WID_STRING: /* String takes "x y text"*/ if (argc != i + 3) diff -u -r lcdproc-CVS-stable-0-4-3-20020327/server/render.c lcdproc-0.4.3mp/server/render.c --- lcdproc-CVS-stable-0-4-3-20020327/server/render.c Tue Mar 26 03:05:14 2002 +++ lcdproc-0.4.3mp/server/render.c Wed Mar 27 18:19:33 2002 @@ -258,9 +258,16 @@ // Increment widget timers if (timer_delta < 0) w->timer = 0; - else + else w->timer += timer_delta; + /* -blink means don't render this widget */ + if (w->blink && ((w->timer % w->blink) == 0)) + w->blink = -w->blink; + + if (w->blink < 0) + continue; + /* TODO: Make this cleaner and more flexible!*/ switch (w->type) { case WID_STRING: diff -u -r lcdproc-CVS-stable-0-4-3-20020327/server/widget.c lcdproc-0.4.3mp/server/widget.c --- lcdproc-CVS-stable-0-4-3-20020327/server/widget.c Wed Mar 27 03:06:17 2002 +++ lcdproc-0.4.3mp/server/widget.c Wed Mar 27 18:19:33 2002 @@ -66,6 +66,7 @@ w->length = 1; w->speed = 1; w->timer = 0; + w->blink = 0; w->text = NULL; w->kids = NULL; diff -u -r lcdproc-CVS-stable-0-4-3-20020327/server/widget.h lcdproc-0.4.3mp/server/widget.h --- lcdproc-CVS-stable-0-4-3-20020327/server/widget.h Wed Mar 27 03:06:17 2002 +++ lcdproc-0.4.3mp/server/widget.h Wed Mar 27 18:19:33 2002 @@ -25,6 +25,7 @@ int length; /* size or direction*/ int speed; /* For scroller...*/ int timer; /* For scroller...*/ + int blink; /* Blink speed. 0 means none */ char *text; /* text or binary data*/ LinkedList *kids; /* Frames can contain more widgets...*/ } widget;