talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 39766c93c8a45494e63aca31786e9b2d73df1932
parent f1b0edea1fac79d56f17d04c7ebe5dbca1c0e0a2
Author: Colin Leroy <colin@colino.net>
Date:   Wed, 10 Sep 2008 20:12:58 +0000

2008-09-10 [colin]	3.5.0cvs98

	* src/inc.c
	* src/summaryview.c
	* src/common/session.c
		Use g_timeout_add_seconds instead of g_timeout_add
		on glib >= 2.14 when we don't need precision on the
		delay. This helps reducing power consumption:
		http://mjg59.livejournal.com/74651.html

Diffstat:
MChangeLog | 10++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/common/session.c | 10++++++++--
Msrc/inc.c | 6++++++
Msrc/summaryview.c | 5+++++
6 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,13 @@ +2008-09-10 [colin] 3.5.0cvs98 + + * src/inc.c + * src/summaryview.c + * src/common/session.c + Use g_timeout_add_seconds instead of g_timeout_add + on glib >= 2.14 when we don't need precision on the + delay. This helps reducing power consumption: + http://mjg59.livejournal.com/74651.html + 2008-09-10 [colin] 3.5.0cvs97 * src/compose.c diff --git a/PATCHSETS b/PATCHSETS @@ -3509,3 +3509,4 @@ ( cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/gtk/gtkcmclist.h; ) > 3.5.0cvs95.patchset ( cvs diff -u -r 1.3.2.10 -r 1.3.2.11 src/action.h; cvs diff -u -r 1.27.2.42 -r 1.27.2.43 src/addr_compl.c; cvs diff -u -r 1.9.2.25 -r 1.9.2.26 src/addressadd.c; cvs diff -u -r 1.18.2.13 -r 1.18.2.14 src/addressbook.h; cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/addressbook_foldersel.c; cvs diff -u -r 1.5.2.11 -r 1.5.2.12 src/addressitem.h; cvs diff -u -r 1.5.10.25 -r 1.5.10.26 src/addrgather.c; cvs diff -u -r 1.17.2.38 -r 1.17.2.39 src/alertpanel.c; cvs diff -u -r 1.2.4.21 -r 1.2.4.22 src/browseldap.c; cvs diff -u -r 1.14.2.53 -r 1.14.2.54 src/editaddress.c; cvs diff -u -r 1.1.2.9 -r 1.1.2.10 src/editaddress_other_attributes_ldap.h; cvs diff -u -r 1.5.12.12 -r 1.5.12.13 src/editbook.c; cvs diff -u -r 1.5.12.14 -r 1.5.12.15 src/editjpilot.c; cvs diff -u -r 1.8.2.31 -r 1.8.2.32 src/editldap.c; cvs diff -u -r 1.10.2.14 -r 1.10.2.15 src/editldap_basedn.c; cvs diff -u -r 1.5.12.13 -r 1.5.12.14 src/editvcard.c; cvs diff -u -r 1.3.2.24 -r 1.3.2.25 src/exphtmldlg.c; cvs diff -u -r 1.1.4.29 -r 1.1.4.30 src/expldifdlg.c; cvs diff -u -r 1.8.2.26 -r 1.8.2.27 src/export.c; cvs diff -u -r 1.26.2.38 -r 1.26.2.39 src/foldersel.c; cvs diff -u -r 1.4.12.6 -r 1.4.12.7 src/foldersel.h; cvs diff -u -r 1.1.2.10 -r 1.1.2.11 src/gedit-print.c; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/gedit-print.h; cvs diff -u -r 1.14.2.21 -r 1.14.2.22 src/grouplistdialog.c; cvs diff -u -r 1.8.2.27 -r 1.8.2.28 src/headerview.c; cvs diff -u -r 1.2.2.4 -r 1.2.2.5 src/headerview.h; cvs diff -u -r 1.1.2.24 -r 1.1.2.25 src/image_viewer.c; cvs diff -u -r 1.13.2.25 -r 1.13.2.26 src/import.c; cvs diff -u -r 1.14.2.19 -r 1.14.2.20 src/importldif.c; cvs diff -u -r 1.4.12.18 -r 1.4.12.19 src/importmutt.c; cvs diff -u -r 1.1.14.18 -r 1.1.14.19 src/importpine.c; cvs diff -u -r 1.149.2.91 -r 1.149.2.92 src/inc.c; cvs diff -u -r 1.115.2.203 -r 1.115.2.204 src/main.c; cvs diff -u -r 1.7.2.16 -r 1.7.2.17 src/main.h; cvs diff -u -r 1.94.2.184 -r 1.94.2.185 src/messageview.c; cvs diff -u -r 1.19.2.21 -r 1.19.2.22 src/messageview.h; cvs diff -u -r 1.5.2.20 -r 1.5.2.21 src/noticeview.c; cvs diff -u -r 1.60.2.62 -r 1.60.2.63 src/prefs_actions.c; cvs diff -u -r 1.59.2.73 -r 1.59.2.74 src/prefs_filtering.c; cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/prefs_folder_column.c; cvs diff -u -r 1.5.2.16 -r 1.5.2.17 src/prefs_gtk.h; cvs diff -u -r 1.10.2.22 -r 1.10.2.23 src/prefs_summary_column.c; cvs diff -u -r 1.30.2.52 -r 1.30.2.53 src/prefs_toolbar.c; cvs diff -u -r 1.17.2.48 -r 1.17.2.49 src/send_message.c; cvs diff -u -r 1.5.2.14 -r 1.5.2.15 src/setup.c; cvs diff -u -r 1.9.2.22 -r 1.9.2.23 src/sourcewindow.c; cvs diff -u -r 1.1.1.1.16.7 -r 1.1.1.1.16.8 src/sourcewindow.h; cvs diff -u -r 1.3.2.30 -r 1.3.2.31 src/ssl_manager.c; cvs diff -u -r 1.5.2.22 -r 1.5.2.23 src/statusbar.c; cvs diff -u -r 1.3.2.9 -r 1.3.2.10 src/statusbar.h; cvs diff -u -r 1.25.2.60 -r 1.25.2.61 src/stock_pixmap.c; cvs diff -u -r 1.18.2.37 -r 1.18.2.38 src/stock_pixmap.h; cvs diff -u -r 1.395.2.389 -r 1.395.2.390 src/summaryview.c; cvs diff -u -r 1.96.2.205 -r 1.96.2.206 src/textview.c; cvs diff -u -r 1.12.2.23 -r 1.12.2.24 src/textview.h; cvs diff -u -r 1.5.14.9 -r 1.5.14.10 src/undo.h; cvs diff -u -r 1.1.2.7 -r 1.1.2.8 src/uri_opener.c; cvs diff -u -r 1.1.2.74 -r 1.1.2.75 src/wizard.c; cvs diff -u -r 1.1.2.8 -r 1.1.2.9 src/wizard.h; cvs diff -u -r 1.2.2.9 -r 1.2.2.10 src/common/ssl.h; cvs diff -u -r 1.36.2.144 -r 1.36.2.145 src/common/utils.c; cvs diff -u -r 1.4.2.65 -r 1.4.2.66 src/gtk/about.c; cvs diff -u -r 1.2.2.22 -r 1.2.2.23 src/gtk/colorlabel.c; cvs diff -u -r 1.1.4.8 -r 1.1.4.9 src/gtk/colorlabel.h; cvs diff -u -r 1.1.2.12 -r 1.1.2.13 src/gtk/combobox.h; cvs diff -u -r 1.5.2.26 -r 1.5.2.27 src/gtk/description_window.c; cvs diff -u -r 1.2.2.36 -r 1.2.2.37 src/gtk/filesel.c; cvs diff -u -r 1.9.2.59 -r 1.9.2.60 src/gtk/gtkaspell.c; cvs diff -u -r 1.5.2.14 -r 1.5.2.15 src/gtk/gtkaspell.h; cvs diff -u -r 1.1.2.4 -r 1.1.2.5 src/gtk/gtkcmclist.c; cvs diff -u -r 1.1.2.4 -r 1.1.2.5 src/gtk/gtkcmclist.h; cvs diff -u -r 1.1.2.7 -r 1.1.2.8 src/gtk/gtkcmctree.c; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/gtk/gtkcmctree.h; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/gtk/gtkcmoptionmenu.h; cvs diff -u -r 1.1.4.50 -r 1.1.4.51 src/gtk/gtksctree.c; cvs diff -u -r 1.1.4.14 -r 1.1.4.15 src/gtk/gtksctree.h; cvs diff -u -r 1.1.4.9 -r 1.1.4.10 src/gtk/gtkshruler.c; cvs diff -u -r 1.1.4.5 -r 1.1.4.6 src/gtk/gtkshruler.h; cvs diff -u -r 1.1.2.8 -r 1.1.2.9 src/gtk/gtksourceprintjob.c; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/gtk/gtksourceprintjob.h; cvs diff -u -r 1.5.2.82 -r 1.5.2.83 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.45 -r 1.4.2.46 src/gtk/gtkutils.h; cvs diff -u -r 1.5.2.15 -r 1.5.2.16 src/gtk/gtkvscrollbutton.c; cvs diff -u -r 1.3.2.2 -r 1.3.2.3 src/gtk/gtkvscrollbutton.h; cvs diff -u -r 1.1.2.16 -r 1.1.2.17 src/gtk/icon_legend.c; cvs diff -u -r 1.2.2.31 -r 1.2.2.32 src/gtk/inputdialog.c; cvs diff -u -r 1.1.4.31 -r 1.1.4.32 src/gtk/logwindow.c; cvs diff -u -r 1.1.4.14 -r 1.1.4.15 src/gtk/logwindow.h; cvs diff -u -r 1.1.4.6 -r 1.1.4.7 src/gtk/manage_window.c; cvs diff -u -r 1.1.4.7 -r 1.1.4.8 src/gtk/manage_window.h; cvs diff -u -r 1.5.2.36 -r 1.5.2.37 src/gtk/menu.c; cvs diff -u -r 1.12.2.47 -r 1.12.2.48 src/gtk/prefswindow.c; cvs diff -u -r 1.1.4.22 -r 1.1.4.23 src/gtk/progressdialog.c; cvs diff -u -r 1.1.4.12 -r 1.1.4.13 src/gtk/progressdialog.h; cvs diff -u -r 1.1.2.34 -r 1.1.2.35 src/plugins/bogofilter/bogofilter_gtk.c; cvs diff -u -r 1.1.2.30 -r 1.1.2.31 src/plugins/pgpcore/passphrase.c; cvs diff -u -r 1.23.2.50 -r 1.23.2.51 src/plugins/spamassassin/spamassassin_gtk.c; cvs diff -u -r 1.14.2.65 -r 1.14.2.66 src/plugins/trayicon/trayicon.c; cvs diff -u -r 1.1.4.9 -r 1.1.4.10 src/plugins/trayicon/libeggtrayicon/eggtrayicon.c; cvs diff -u -r 1.1.4.2 -r 1.1.4.3 src/plugins/trayicon/libeggtrayicon/eggtrayicon.h; cvs diff -u -r 1.1 -r 1.2 src/plugins/trayicon/libeggtrayicon/gtk2-funcs.c; cvs diff -u -r 1.1.4.3 -r 1.1.4.4 src/plugins/trayicon/libeggtrayicon/gtkplugxembed.c; cvs diff -u -r 1.1.4.1 -r 1.1.4.2 src/plugins/trayicon/libeggtrayicon/gtkplugxembed.h; ) > 3.5.0cvs96.patchset ( cvs diff -u -r 1.382.2.472 -r 1.382.2.473 src/compose.c; ) > 3.5.0cvs97.patchset +( cvs diff -u -r 1.149.2.92 -r 1.149.2.93 src/inc.c; cvs diff -u -r 1.395.2.390 -r 1.395.2.391 src/summaryview.c; cvs diff -u -r 1.23.2.18 -r 1.23.2.19 src/common/session.c; ) > 3.5.0cvs98.patchset diff --git a/configure.ac b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=5 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=97 +EXTRA_VERSION=98 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/common/session.c b/src/common/session.c @@ -240,10 +240,16 @@ void session_set_timeout(Session *session, guint interval) g_source_remove(session->timeout_tag); session->timeout_interval = interval; - if (interval > 0) + if (interval > 0) { +#if GLIB_CHECK_VERSION(2,14,0) + if (interval % 1000 == 0) + session->timeout_tag = + g_timeout_add_seconds(interval/1000, session_timeout_cb, session); + else +#endif session->timeout_tag = g_timeout_add(interval, session_timeout_cb, session); - else + } else session->timeout_tag = 0; } diff --git a/src/inc.c b/src/inc.c @@ -1501,6 +1501,12 @@ static void inc_autocheck_timer_set_interval(guint interval) the common preferences */ if (prefs_common.autochk_newmail && autocheck_data && prefs_common.work_offline == FALSE) { +#if GLIB_CHECK_VERSION(2,14,0) + if (interval % 1000 == 0) + autocheck_timer = + g_timeout_add_seconds(interval/1000, inc_autocheck_func, autocheck_data); + else +#endif autocheck_timer = g_timeout_add (interval, inc_autocheck_func, autocheck_data); debug_print("added timer = %d\n", autocheck_timer); diff --git a/src/summaryview.c b/src/summaryview.c @@ -3588,8 +3588,13 @@ static void summary_display_msg_full(SummaryView *summaryview, MarkAsReadData *data = g_new0(MarkAsReadData, 1); data->summaryview = summaryview; data->msginfo = msginfo; +#if GLIB_CHECK_VERSION(2,14,0) + g_timeout_add_seconds(prefs_common.mark_as_read_delay, + msginfo_mark_as_read_timeout, data); +#else g_timeout_add(prefs_common.mark_as_read_delay * 1000, msginfo_mark_as_read_timeout, data); +#endif } else if (new_window || !prefs_common.mark_as_read_on_new_window) { msginfo_mark_as_read(summaryview, msginfo, row); }