From 4b5903e3fab7b63fa04c71e3b8e9203f6a460a72 Mon Sep 17 00:00:00 2001 From: Alec Moskvin Date: Mon, 11 Jun 2012 12:15:56 -0400 Subject: [PATCH] Fix integer wrap-around for short timeouts (bug #8580) --- xfce4-notifyd/xfce-notify-window.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/xfce4-notifyd/xfce-notify-window.c b/xfce4-notifyd/xfce-notify-window.c index 8364d7a..3e77e29 100644 --- a/xfce4-notifyd/xfce-notify-window.c +++ b/xfce4-notifyd/xfce-notify-window.c @@ -268,6 +268,7 @@ xfce_notify_window_start_expiration(XfceNotifyWindow *window) { if(window->expire_timeout) { GTimeVal ct; + guint timeout; gboolean fade_transparent; g_get_current_time(&ct); @@ -275,10 +276,15 @@ xfce_notify_window_start_expiration(XfceNotifyWindow *window) fade_transparent = gdk_screen_is_composited(gtk_window_get_screen(GTK_WINDOW (window))); + if(!fade_transparent) + timeout = window->expire_timeout; + else if(window->expire_timeout > FADE_TIME) + timeout = window->expire_timeout - FADE_TIME; + else + timeout = 0; + window->expire_start_timestamp = ct.tv_sec * 1000 + ct.tv_usec / 1000; - window->expire_id = g_timeout_add(fade_transparent - ? window->expire_timeout - FADE_TIME - : window->expire_timeout, + window->expire_id = g_timeout_add(timeout, xfce_notify_window_expire_timeout, window); } -- 1.7.8.6