[Commits] Makefile.am 1.20.2.24 1.20.2.24.2.1 about.c 1.4.2.79 1.4.2.79.2.1 authors.h 1.1.2.73 1.1.2.73.2.1 colorlabel.c 1.2.2.33 1.2.2.33.2.1 colorsel.c 1.1.4.15 1.1.4.15.2.1 combobox.c 1.1.2.23 1.1.2.23.2.1 description_window.c 1.5.2.31 1.5.2.31.2.1 foldersort.c 1.1.2.21 1.1.2.21.2.1 gtkaspell.c 1.9.2.72 1.9.2.72.2.1 gtkaspell.h 1.5.2.18 1.5.2.18.6.1 gtkcmclist.c 1.1.2.15 1.1.2.15.2.1 gtkcmclist.h 1.1.2.6 1.1.2.6.6.1 gtkcmctree.c 1.1.2.17 1.1.2.17.2.1 gtkcmctree.h 1.1.2.4 1.1.2.4.6.1 gtkcmoptionmenu.c 1.1.2.6 1.1.2.6.2.1 gtksctree.c 1.1.4.60 1.1.4.60.2.1 gtkshruler.c 1.1.4.16 1.1.4.16.2.1 gtkshruler.h 1.1.4.9 1.1.4.9.2.1 gtkutils.c 1.5.2.95 1.5.2.95.2.1 gtkutils.h 1.4.2.57 1.4.2.57.2.1 gtkvscrollbutton.c 1.5.2.21 1.5.2.21.2.1 icon_legend.c 1.1.2.19 1.1.2.19.2.1 inputdialog.c 1.2.2.42 1.2.2.42.2.1 logwindow.c 1.1.4.37 1.1.4.37.2.1 menu.c 1.5.2.42 1.5.2.42.2.1 menu.h 1.4.2.24 1.4.2.24.2.1 pluginwindow.c 1.5.2.59 1.5.2.59.2.1 prefswindow.c 1.12.2.56 1.12.2.56.2.1 progressdialog.c 1.1.4.27 1.1.4.27.2.1 quicksearch.c 1.1.2.103 1.1.2.103.2.1 spell_entry.c 1.1.2.11 1.1.2.11.2.1

miras at claws-mail.org miras at claws-mail.org
Tue Nov 29 01:15:27 CET 2011


Update of /home/claws-mail/claws/src/gtk
In directory claws-mail:/tmp/cvs-serv12914/src/gtk

Modified Files:
      Tag: new-contacts
	Makefile.am about.c authors.h colorlabel.c colorsel.c 
	combobox.c description_window.c foldersort.c gtkaspell.c 
	gtkaspell.h gtkcmclist.c gtkcmclist.h gtkcmctree.c 
	gtkcmctree.h gtkcmoptionmenu.c gtksctree.c gtkshruler.c 
	gtkshruler.h gtkutils.c gtkutils.h gtkvscrollbutton.c 
	icon_legend.c inputdialog.c logwindow.c menu.c menu.h 
	pluginwindow.c prefswindow.c progressdialog.c quicksearch.c 
	spell_entry.c 
Log Message:
2011-11-29 [mir]	3.7.10cvs16.4-new-contacts

	* AUTHORS
	* configure.ac
	* doc/man/claws-mail.1
	* manual/advanced.xml
	* manual/es/advanced.xml
	* po/bg.po
	* po/ca.po
	* po/cs.po
	* po/de.po
	* po/en_GB.po
	* po/es.po
	* po/fi.po
	* po/fr.po
	* po/hu.po
	* po/id.po
	* po/it.po
	* po/ja.po
	* po/lt.po
	* po/nl.po
	* po/pl.po
	* po/pt_BR.po
	* po/pt_PT.po
	* po/ru.po
	* po/sk.po
	* po/sv.po
	* po/uk.po
	* po/zh_CN.po
	* src/account.c
	* src/action.c
	* src/addr_compl.c
	* src/addrbook.c
	* src/addrbook.h
	* src/addrcustomattr.c
	* src/addrduplicates.c
	* src/addressadd.c
	* src/addressbook.c
	* src/addressbook_foldersel.c
	* src/addrgather.c
	* src/alertpanel.c
	* src/browseldap.c
	* src/codeconv.c
	* src/compose.c
	* src/editaddress.c
	* src/editaddress_other_attributes_ldap.c
	* src/editbook.c
	* src/editgroup.c
	* src/editjpilot.c
	* src/editldap.c
	* src/editldap_basedn.c
	* src/edittags.c
	* src/editvcard.c
	* src/exphtmldlg.c
	* src/expldifdlg.c
	* src/export.c
	* src/exportldif.c
	* src/filtering.c
	* src/filtering.h
	* src/folder.c
	* src/folder.h
	* src/folder_item_prefs.c
	* src/foldersel.c
	* src/folderview.c
	* src/grouplistdialog.c
	* src/headerview.c
	* src/image_viewer.c
	* src/imap_gtk.c
	* src/import.c
	* src/importldif.c
	* src/importmutt.c
	* src/importpine.c
	* src/jpilot.c
	* src/ldif.c
	* src/main.c
	* src/mainwindow.c
	* src/mainwindow.h
	* src/message_search.c
	* src/messageview.c
	* src/mh_gtk.c
	* src/mimeview.c
	* src/mimeview.h
	* src/mutt.c
	* src/news.c
	* src/noticeview.c
	* src/pine.c
	* src/prefs_account.c
	* src/prefs_actions.c
	* src/prefs_actions.h
	* src/prefs_common.c
	* src/prefs_common.h
	* src/prefs_compose_writing.c
	* src/prefs_customheader.c
	* src/prefs_display_header.c
	* src/prefs_ext_prog.c
	* src/prefs_filtering.c
	* src/prefs_filtering_action.c
	* src/prefs_folder_column.c
	* src/prefs_folder_item.c
	* src/prefs_image_viewer.c
	* src/prefs_logging.c
	* src/prefs_matcher.c
	* src/prefs_message.c
	* src/prefs_msg_colors.c
	* src/prefs_other.c
	* src/prefs_receive.c
	* src/prefs_send.c
	* src/prefs_spelling.c
	* src/prefs_summaries.c
	* src/prefs_summary_column.c
	* src/prefs_summary_open.c
	* src/prefs_template.c
	* src/prefs_toolbar.c
	* src/prefs_wrapping.c
	* src/printing.c
	* src/procheader.c
	* src/procheader.h
	* src/procmsg.c
	* src/procmsg.h
	* src/quote_fmt.c
	* src/send_message.c
	* src/sourcewindow.c
	* src/ssl_manager.c
	* src/statusbar.c
	* src/stock_pixmap.c
	* src/summary_search.c
	* src/summaryview.c
	* src/summaryview.h
	* src/textview.c
	* src/textview.h
	* src/undo.c
	* src/uri_opener.c
	* src/vcard.c
	* src/wizard.c
	* src/common/defs.h
	* src/common/ssl.c
	* src/gtk/Makefile.am
	* src/gtk/about.c
	* src/gtk/authors.h
	* src/gtk/colorlabel.c
	* src/gtk/colorsel.c
	* src/gtk/combobox.c
	* src/gtk/description_window.c
	* src/gtk/foldersort.c
	* src/gtk/gtkaspell.c
	* src/gtk/gtkaspell.h
	* src/gtk/gtkcmclist.c
	* src/gtk/gtkcmclist.h
	* src/gtk/gtkcmctree.c
	* src/gtk/gtkcmctree.h
	* src/gtk/gtkcmoptionmenu.c
	* src/gtk/gtksctree.c
	* src/gtk/gtkshruler.c
	* src/gtk/gtkshruler.h
	* src/gtk/gtkutils.c
	* src/gtk/gtkutils.h
	* src/gtk/gtkvscrollbutton.c
	* src/gtk/icon_legend.c
	* src/gtk/inputdialog.c
	* src/gtk/logwindow.c
	* src/gtk/menu.c
	* src/gtk/menu.h
	* src/gtk/pluginwindow.c
	* src/gtk/prefswindow.c
	* src/gtk/progressdialog.c
	* src/gtk/quicksearch.c
	* src/gtk/spell_entry.c
	* src/plugins/bogofilter/bogofilter_gtk.c
	* src/plugins/dillo_viewer/dillo_prefs.c
	* src/plugins/dillo_viewer/dillo_viewer.c
	* src/plugins/pgpcore/passphrase.c
	* src/plugins/pgpcore/prefs_gpg.c
	* src/plugins/pgpcore/select-keys.c
	* src/plugins/spamassassin/spamassassin_gtk.c
	* src/plugins/trayicon/trayicon.c
	* src/plugins/trayicon/trayicon_prefs.c
	    Applied patch 3.7.10cvs17 to 3.7.10cvs106 from the
	    gtk2 branch making new-addressbook branch in sync
	    with head. 

Index: gtkcmctree.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/gtkcmctree.h,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.4.6.1
diff -u -d -r1.1.2.4 -r1.1.2.4.6.1
--- gtkcmctree.h	2 Jan 2009 10:51:34 -0000	1.1.2.4
+++ gtkcmctree.h	29 Nov 2011 00:15:25 -0000	1.1.2.4.6.1
@@ -68,18 +68,13 @@
 
 typedef enum
 {
-  GTK_CMCTREE_LINES_NONE,
-  GTK_CMCTREE_LINES_SOLID,
-  GTK_CMCTREE_LINES_DOTTED,
-  GTK_CMCTREE_LINES_TABBED
+  GTK_CMCTREE_LINES_NONE
 } GtkCMCTreeLineStyle;
 
 typedef enum
 {
   GTK_CMCTREE_EXPANDER_NONE,
-  GTK_CMCTREE_EXPANDER_SQUARE,
-  GTK_CMCTREE_EXPANDER_TRIANGLE,
-  GTK_CMCTREE_EXPANDER_CIRCULAR
+  GTK_CMCTREE_EXPANDER_TRIANGLE
 } GtkCMCTreeExpanderStyle;
 
 typedef enum
@@ -116,8 +111,6 @@
 {
   GtkCMCList clist;
   
-  GdkGC *lines_gc;
-  
   gint tree_indent;
   gint tree_spacing;
   gint tree_column;

Index: gtkcmctree.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/gtkcmctree.c,v
retrieving revision 1.1.2.17
retrieving revision 1.1.2.17.2.1
diff -u -d -r1.1.2.17 -r1.1.2.17.2.1
--- gtkcmctree.c	20 Dec 2010 13:17:42 -0000	1.1.2.17
+++ gtkcmctree.c	29 Nov 2011 00:15:24 -0000	1.1.2.17.2.1
@@ -31,11 +31,6 @@
 #include <config.h>
 #include <stdlib.h>
 
-/* We know this file uses some deprecated stuff. */
-#undef G_DISABLE_DEPRECATED
-#undef GTK_DISABLE_DEPRECATED
-#undef GDK_DISABLE_DEPRECATED
-
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #include "gtkcmctree.h"
[...2365 lines suppressed...]
 	}
@@ -6068,14 +5324,14 @@
 
   if (GTK_CMCLIST_REORDERABLE (clist) &&
       gtk_drag_get_source_widget (context) == widget &&
-      selection_data->target ==
+      gtk_selection_data_get_target (selection_data) ==
       gdk_atom_intern_static_string ("gtk-clist-drag-reorder") &&
-      selection_data->format == 8 &&
-      selection_data->length == sizeof (GtkCMCListCellInfo))
+      gtk_selection_data_get_format (selection_data) == 8 &&
+      gtk_selection_data_get_length (selection_data) == sizeof (GtkCMCListCellInfo))
     {
       GtkCMCListCellInfo *source_info;
 
-      source_info = (GtkCMCListCellInfo *)(selection_data->data);
+      source_info = (GtkCMCListCellInfo *)(gtk_selection_data_get_data (selection_data));
       if (source_info)
 	{
 	  GtkCMCListDestInfo dest_info;

Index: gtkaspell.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkaspell.c,v
retrieving revision 1.9.2.72
retrieving revision 1.9.2.72.2.1
diff -u -d -r1.9.2.72 -r1.9.2.72.2.1
--- gtkaspell.c	6 Jan 2011 11:43:50 -0000	1.9.2.72
+++ gtkaspell.c	29 Nov 2011 00:15:24 -0000	1.9.2.72.2.1
@@ -1188,6 +1188,38 @@
 	set_point_continue(gtkaspell);
 }
 
+void gtkaspell_block_check(GtkAspell *gtkaspell)
+{
+	GtkTextView *gtktext;
+	
+	if (gtkaspell == NULL)
+		return;
+		
+	gtktext = gtkaspell->gtktext;
+	g_signal_handlers_block_by_func(G_OBJECT(gtktext),
+					 G_CALLBACK(entry_insert_cb),
+					 gtkaspell);
+	g_signal_handlers_block_by_func(G_OBJECT(gtktext),
+					 G_CALLBACK(entry_delete_cb),
+					 gtkaspell);
+}
+
+void gtkaspell_unblock_check(GtkAspell *gtkaspell)
+{
+	GtkTextView *gtktext;
+
+	if (gtkaspell == NULL)
+		return;
+		
+	gtktext = gtkaspell->gtktext;
+	g_signal_handlers_unblock_by_func(G_OBJECT(gtktext),
+					 G_CALLBACK(entry_insert_cb),
+					 gtkaspell);
+	g_signal_handlers_unblock_by_func(G_OBJECT(gtktext),
+					 G_CALLBACK(entry_delete_cb),
+					 gtkaspell);
+}
+
 static void replace_real_word(GtkAspell *gtkaspell, const gchar *newword)
 {
 	int		oldlen, newlen, wordlen;
@@ -1349,10 +1381,10 @@
 				   GdkEventKey *event,
 				   GtkAspell *gtkaspell)
 {
-	if (event && event->keyval == GDK_Escape) {
+	if (event && event->keyval == GDK_KEY_Escape) {
 		gtk_widget_destroy(widget);
 		return TRUE;
-	} else if (event && event->keyval == GDK_Return) {
+	} else if (event && event->keyval == GDK_KEY_Return) {
 		replace_with_supplied_word_cb(widget, gtkaspell);
 		return TRUE;
 	}
@@ -1719,11 +1751,11 @@
 				   GdkEventKey *event,
 				   GtkAspell *gtkaspell)
 {
-	if (event && (isascii(event->keyval) || event->keyval == GDK_Return)) {
+	if (event && (isascii(event->keyval) || event->keyval == GDK_KEY_Return)) {
 		gtk_accel_groups_activate(
 				G_OBJECT(gtkaspell->parent_window),
 				event->keyval, event->state);
-	} else if (event && event->keyval == GDK_Escape) {
+	} else if (event && event->keyval == GDK_KEY_Escape) {
 		destroy_menu(NULL, gtkaspell);
 	}
 	return FALSE;
@@ -1775,7 +1807,7 @@
         g_signal_connect(G_OBJECT(item), "activate",
 			 G_CALLBACK(add_word_to_session_cb), 
 			 gtkaspell);
-	gtk_widget_add_accelerator(item, "activate", accel, GDK_space,
+	gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_space,
 				   GDK_CONTROL_MASK,
 				   GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
 
@@ -1785,7 +1817,7 @@
         g_signal_connect(G_OBJECT(item), "activate",
 			 G_CALLBACK(add_word_to_personal_cb), 
 			 gtkaspell);
-	gtk_widget_add_accelerator(item, "activate", accel, GDK_Return,
+	gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_Return,
 				   GDK_CONTROL_MASK,
 				   GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
 
@@ -1795,9 +1827,9 @@
         g_signal_connect(G_OBJECT(item), "activate",
 			 G_CALLBACK(replace_with_create_dialog_cb), 
 			 gtkaspell);
-	gtk_widget_add_accelerator(item, "activate", accel, GDK_R, 0,
+	gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_R, 0,
 				   GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
-	gtk_widget_add_accelerator(item, "activate", accel, GDK_R, 
+	gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_R, 
 				   GDK_CONTROL_MASK,
 				   GTK_ACCEL_LOCKED);
 
@@ -1811,9 +1843,9 @@
 		g_signal_connect(G_OBJECT(item), "activate",
 				 G_CALLBACK(check_with_alternate_cb),
 				 gtkaspell);
-		gtk_widget_add_accelerator(item, "activate", accel, GDK_X, 0,
+		gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_X, 0,
 					   GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
-		gtk_widget_add_accelerator(item, "activate", accel, GDK_X, 
+		gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_X, 
 					   GDK_CONTROL_MASK,
 					   GTK_ACCEL_LOCKED);
 	}
@@ -1864,12 +1896,12 @@
 			if (curmenu == NULL && count < MENUCOUNT) {
 				gtk_widget_add_accelerator(item, "activate",
 							   accel,
-							   GDK_A + count, 0,
+							   GDK_KEY_A + count, 0,
 							   GTK_ACCEL_LOCKED | 
 							   GTK_ACCEL_VISIBLE);
 				gtk_widget_add_accelerator(item, "activate", 
 							   accel,
-							   GDK_A + count, 
+							   GDK_KEY_A + count, 
 							   GDK_CONTROL_MASK,
 							   GTK_ACCEL_LOCKED);
 				}

Index: menu.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/menu.h,v
retrieving revision 1.4.2.24
retrieving revision 1.4.2.24.2.1
diff -u -d -r1.4.2.24 -r1.4.2.24.2.1
--- menu.h	16 Feb 2011 07:16:21 -0000	1.4.2.24
+++ menu.h	29 Nov 2011 00:15:25 -0000	1.4.2.24.2.1
@@ -22,7 +22,9 @@
 
 #include <glib.h>
 #include <gtk/gtk.h>
+#if !GTK_CHECK_VERSION(3, 0, 0)
 #include "gtkcmoptionmenu.h"
+#endif
 
 #define MENU_VAL_ID "Claws::Menu::ValueID"
 #define MENU_VAL_DATA "Claws::Menu::ValueDATA"
@@ -92,8 +94,10 @@
 void cm_menu_set_sensitive_full(GtkUIManager *gui_manager, gchar *menu, gboolean sensitive);
 void cm_toggle_menu_set_active_full(GtkUIManager *gui_manager, gchar *menu, gboolean active);
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 gint menu_find_option_menu_index(GtkCMOptionMenu *optmenu, gpointer data,
 				 GCompareFunc func);
+#endif
 
 void menu_button_position	(GtkMenu		*menu,
 				 gint			*x,

Index: gtkaspell.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkaspell.h,v
retrieving revision 1.5.2.18
retrieving revision 1.5.2.18.6.1
diff -u -d -r1.5.2.18 -r1.5.2.18.6.1
--- gtkaspell.h	26 Apr 2009 10:31:28 -0000	1.5.2.18
+++ gtkaspell.h	29 Nov 2011 00:15:24 -0000	1.5.2.18.6.1
@@ -169,6 +169,8 @@
 void		gtkaspell_dict_changed			(GtkAspell *gtkaspell);
 void		gtkaspell_context_set			(GtkAspell *gtkaspell);
 void		gtkaspell_free_suggestions_list		(GtkAspell *gtkaspell);
+void		gtkaspell_block_check			(GtkAspell *gtkaspell);
+void		gtkaspell_unblock_check			(GtkAspell *gtkaspell);
 
 
 #endif /* USE_ENCHANT */

Index: Makefile.am
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Makefile.am,v
retrieving revision 1.20.2.24
retrieving revision 1.20.2.24.2.1
diff -u -d -r1.20.2.24 -r1.20.2.24.2.1
--- Makefile.am	9 Feb 2010 07:46:41 -0000	1.20.2.24
+++ Makefile.am	29 Nov 2011 00:15:24 -0000	1.20.2.24.2.1
@@ -6,6 +6,14 @@
 EXTRA_DIST = \
 	claws-marshal.list
 
+if GTK2
+gtk2_sources = \
+	gtkcmctree.c \
+	gtkcmclist.c \
+	gtkcmoptionmenu.c \
+	gtksctree.c
+endif
+
 libclawsgtk_la_SOURCES = \
 	about.c \
 	colorlabel.c \
@@ -15,11 +23,9 @@
 	filesel.c \
 	foldersort.c \
 	gtkaspell.c \
-	gtkcmctree.c \
-	gtkcmclist.c \
-	gtkcmoptionmenu.c \
+	gtkunit.c \
+	$(gtk2_sources) \
 	gtkshruler.c \
-	gtksctree.c \
 	gtkutils.c \
 	gtkvscrollbutton.c \
 	icon_legend.c \
@@ -46,12 +52,8 @@
 	filesel.h \
 	foldersort.h \
 	gtkaspell.h \
-	gtkcmctree.h \
-	gtkcmclist.h \
-	gtkcmoptionmenu.h \
-	gtksctree.h \
-	gtkshruler.h \
 	gtkutils.h \
+	gtkunit.h \
 	gtkvscrollbutton.h \
 	headers.h \
 	icon_legend.h \
@@ -65,7 +67,13 @@
 	quicksearch.h \
 	spell_entry.h \
 	sslcertwindow.h \
-	claws-marshal.h
+	claws-marshal.h \
+	gtkcmctree.h \
+	gtkcmclist.h \
+	gtkcmoptionmenu.h \
+	gtksctree.h \
+	gtkshruler.h \
+	gdkkeysyms-new.h
 
 AM_CPPFLAGS = \
 	-I$(srcdir)/../common \

Index: gtkvscrollbutton.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkvscrollbutton.c,v
retrieving revision 1.5.2.21
retrieving revision 1.5.2.21.2.1
diff -u -d -r1.5.2.21 -r1.5.2.21.2.1
--- gtkvscrollbutton.c	10 Apr 2011 08:07:07 -0000	1.5.2.21
+++ gtkvscrollbutton.c	29 Nov 2011 00:15:25 -0000	1.5.2.21.2.1
@@ -119,7 +119,7 @@
 				       GdkEventVisibility *event,
 				       gpointer data)
 {
-	gdk_window_set_cursor(widget->window, hand_cursor);
+	gdk_window_set_cursor(gtk_widget_get_window(widget), hand_cursor);
 	return FALSE;
 }
 
@@ -127,7 +127,7 @@
 				      GdkEventCrossing *event,
 				       gpointer data)
 {
-	gdk_window_set_cursor(widget->window, NULL);
+	gdk_window_set_cursor(gtk_widget_get_window(widget), NULL);
 	return FALSE;
 }
 
@@ -135,7 +135,7 @@
 				      GdkEventCrossing *event,
 				       gpointer data)
 {
-	gdk_window_set_cursor(widget->window, hand_cursor);
+	gdk_window_set_cursor(gtk_widget_get_window(widget), hand_cursor);
 	return FALSE;
 }
 
@@ -253,7 +253,7 @@
 					   GdkEventButton *event,
 					   GtkVScrollbutton *scrollbutton)
 {
-    if (!gtkut_widget_has_focus(widget))
+    if (!gtk_widget_has_focus(widget))
 	gtk_widget_grab_focus(widget);
 
     if (scrollbutton->button == 0) {
@@ -275,7 +275,7 @@
 					     GdkEventButton *event,
 					     GtkVScrollbutton *scrollbutton)
 {
-    if (!gtkut_widget_has_focus(widget))
+    if (!gtk_widget_has_focus(widget))
 	gtk_widget_grab_focus(widget);
 
     if (scrollbutton->button == event->button) {
@@ -290,34 +290,36 @@
 
 gboolean gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
 {
+    gfloat bound;
     gfloat new_value;
+    gfloat page_size;
+    gfloat value;
     gboolean return_val;
 
     cm_return_val_if_fail(scrollbutton != NULL, FALSE);
     cm_return_val_if_fail(GTK_IS_VSCROLLBUTTON(scrollbutton), FALSE);
 
-    new_value = scrollbutton->adjustment->value;
+    new_value = value = gtk_adjustment_get_value(scrollbutton->adjustment);
     return_val = TRUE;
 
     switch (scrollbutton->scroll_type) {
 
     case GTK_SCROLL_STEP_BACKWARD:
-	new_value -= scrollbutton->adjustment->step_increment;
-	if (new_value <= scrollbutton->adjustment->lower) {
-	    new_value = scrollbutton->adjustment->lower;
+	new_value = value - gtk_adjustment_get_step_increment(scrollbutton->adjustment);
+	bound = gtk_adjustment_get_lower(scrollbutton->adjustment);
+	if (new_value <= bound) {
+	    new_value = bound;
 	    return_val = FALSE;
 	    scrollbutton->timer = 0;
 	}
 	break;
 
     case GTK_SCROLL_STEP_FORWARD:
-	new_value += scrollbutton->adjustment->step_increment;
-	if (new_value >=
-	    (scrollbutton->adjustment->upper -
-	     scrollbutton->adjustment->page_size)) {
-	    new_value =
-		scrollbutton->adjustment->upper -
-		scrollbutton->adjustment->page_size;
+	new_value = value + gtk_adjustment_get_step_increment(scrollbutton->adjustment);
+	bound = gtk_adjustment_get_upper(scrollbutton->adjustment);
+	page_size = gtk_adjustment_get_page_size(scrollbutton->adjustment);
+	if (new_value >= (bound - page_size)) {
+	    new_value = bound - page_size;
 	    return_val = FALSE;
 	    scrollbutton->timer = 0;
 	}
@@ -328,8 +330,8 @@
     
     }
 
-    if (new_value != scrollbutton->adjustment->value) {
-	scrollbutton->adjustment->value = new_value;
+	if (new_value != value) {
+	gtk_adjustment_set_value(scrollbutton->adjustment, new_value);
 	g_signal_emit_by_name(G_OBJECT
 				(scrollbutton->adjustment),
 				"value_changed");
@@ -417,11 +419,14 @@
 static void gtk_vscrollbutton_set_sensitivity   (GtkAdjustment    *adjustment,
 						 GtkVScrollbutton *scrollbutton)
 {
-	if (!gtkut_widget_get_realized(GTK_WIDGET(scrollbutton))) return;
+	gfloat value;
+	if (!gtk_widget_get_realized(GTK_WIDGET(scrollbutton))) return;
 	if (scrollbutton->button != 0) return; /* not while something is pressed */
 	
+	value = gtk_adjustment_get_value(adjustment);
 	gtk_widget_set_sensitive(scrollbutton->upbutton, 
-				 (adjustment->value > adjustment->lower));
+				 (value > gtk_adjustment_get_lower(adjustment)));
 	gtk_widget_set_sensitive(scrollbutton->downbutton, 
-				 (adjustment->value <  (adjustment->upper - adjustment->page_size)));
+				 (value < (gtk_adjustment_get_upper(adjustment) -
+                           gtk_adjustment_get_page_size(adjustment))));
 }

Index: foldersort.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/foldersort.c,v
retrieving revision 1.1.2.21
retrieving revision 1.1.2.21.2.1
diff -u -d -r1.1.2.21 -r1.1.2.21.2.1
--- foldersort.c	24 Apr 2011 07:03:20 -0000	1.1.2.21
+++ foldersort.c	29 Nov 2011 00:15:24 -0000	1.1.2.21.2.1
@@ -123,7 +123,7 @@
 
 static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, FolderSortDialog *dialog)
 {
-	if (event && event->keyval == GDK_Escape)
+	if (event && event->keyval == GDK_KEY_Escape)
 		destroy_dialog(dialog);
 	return FALSE;
 }

Index: progressdialog.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/progressdialog.c,v
retrieving revision 1.1.4.27
retrieving revision 1.1.4.27.2.1
diff -u -d -r1.1.4.27 -r1.1.4.27.2.1
--- progressdialog.c	16 Feb 2011 07:16:21 -0000	1.1.4.27
+++ progressdialog.c	29 Nov 2011 00:15:25 -0000	1.1.4.27.2.1
@@ -48,6 +48,7 @@
 	ProgressDialog *progress;
 	GtkWidget *dialog;
 	GtkWidget *hbox;
+	GtkWidget *vbox;
 	GtkWidget *label;
 	GtkWidget *cancel_btn;
 	GtkWidget *progressbar;
@@ -67,11 +68,12 @@
 	gtk_widget_realize(dialog);
 
 	gtk_container_set_border_width
-		(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), 0);
-	gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 8);
+		(GTK_CONTAINER(gtk_dialog_get_action_area(GTK_DIALOG(dialog))), 0);
+	vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+	gtk_box_set_spacing(GTK_BOX(vbox), 8);
 
 	hbox = gtk_hbox_new(FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox,
+	gtk_box_pack_start(GTK_BOX(vbox), hbox,
 			   FALSE, FALSE, 8);
 	gtk_widget_show(hbox);
 
@@ -86,13 +88,13 @@
 	gtk_widget_grab_focus(cancel_btn);
 
 	progressbar = gtk_progress_bar_new();
-	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progressbar,
+	gtk_box_pack_start(GTK_BOX(vbox), progressbar,
 			   FALSE, FALSE, 0);
 	gtk_widget_show(progressbar);
 
 	scrolledwin = gtk_scrolled_window_new(NULL, NULL);
 	gtk_widget_show(scrolledwin);
-	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), scrolledwin,
+	gtk_box_pack_start(GTK_BOX(vbox), scrolledwin,
 			   TRUE, TRUE, 0);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
 				       GTK_POLICY_AUTOMATIC,

Index: pluginwindow.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/pluginwindow.c,v
retrieving revision 1.5.2.59
retrieving revision 1.5.2.59.2.1
diff -u -d -r1.5.2.59 -r1.5.2.59.2.1
--- pluginwindow.c	16 Feb 2011 07:16:21 -0000	1.5.2.59
+++ pluginwindow.c	29 Nov 2011 00:15:25 -0000	1.5.2.59.2.1
@@ -232,21 +232,21 @@
 {
 	if (event) {
 		switch (event->keyval) {
-			case GDK_Escape : 
-			case GDK_Return : 
-			case GDK_KP_Enter :
+			case GDK_KEY_Escape : 
+			case GDK_KEY_Return : 
+			case GDK_KEY_KP_Enter :
 				close_cb(NULL, pluginwindow);
 				break;
-			case GDK_Insert : 
-			case GDK_KP_Insert :
-			case GDK_KP_Add : 
-			case GDK_plus :
+			case GDK_KEY_Insert : 
+			case GDK_KEY_KP_Insert :
+			case GDK_KEY_KP_Add : 
+			case GDK_KEY_plus :
 				load_cb(NULL, pluginwindow);
 				break;
-			case GDK_Delete : 
-			case GDK_KP_Delete :
-			case GDK_KP_Subtract : 
-			case GDK_minus :
+			case GDK_KEY_Delete : 
+			case GDK_KEY_KP_Delete :
+			case GDK_KEY_KP_Subtract : 
+			case GDK_KEY_minus :
 				unload_cb(NULL, pluginwindow);
 				break;
 			default :
@@ -293,7 +293,6 @@
 	GtkWidget *vbox3;
 	GtkWidget *hbox_info;
 	static GdkGeometry geometry;
-	CLAWS_TIP_DECL();	
 
 	debug_print("Creating plugins window...\n");
 

Index: gtkutils.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkutils.h,v
retrieving revision 1.4.2.57
retrieving revision 1.4.2.57.2.1
diff -u -d -r1.4.2.57 -r1.4.2.57.2.1
--- gtkutils.h	29 Aug 2011 08:12:11 -0000	1.4.2.57
+++ gtkutils.h	29 Nov 2011 00:15:25 -0000	1.4.2.57.2.1
@@ -42,7 +42,13 @@
 #include "main.h"
 #endif
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 #include "gtkcmctree.h"
+#endif
+
+#ifndef GDK_KEY_Escape
+#include "gdkkeysyms-new.h"
+#endif
 
 #define GTK_EVENTS_FLUSH() \
 { \
@@ -92,6 +98,7 @@
 				   GtkWidget **button2, const gchar *label2, const gchar *text2,
 				   GtkWidget **button3, const gchar *label3, const gchar *text3);
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 void gtkut_ctree_node_move_if_on_the_edge
 					(GtkCMCTree	*ctree,
 					 GtkCMCTreeNode	*node,
@@ -113,6 +120,7 @@
 					 GtkCMCTreeNode 	*node);
 void gtkut_ctree_set_focus_row		(GtkCMCTree	*ctree,
 					 GtkCMCTreeNode	*node);
+#endif
 
 void gtkut_clist_set_focus_row		(GtkCMCList	*clist,
 					 gint		 row);
@@ -144,18 +152,6 @@
 void gtkut_widget_set_app_icon		(GtkWidget	*widget);
 void gtkut_widget_set_composer_icon	(GtkWidget	*widget);
 
-gboolean gtkut_widget_get_app_paintable	(GtkWidget	*widget);
-gboolean gtkut_widget_get_can_focus	(GtkWidget	*widget);
-gboolean gtkut_widget_get_has_window	(GtkWidget	*widget);
-gboolean gtkut_widget_get_mapped	(GtkWidget	*widget);
-gboolean gtkut_widget_get_realized	(GtkWidget	*widget);
-gboolean gtkut_widget_get_sensitive	(GtkWidget	*widget);
-GtkStateType gtkut_widget_get_state	(GtkWidget	*widget);
-gboolean gtkut_widget_get_visible	(GtkWidget	*widget);
-gboolean gtkut_widget_has_grab		(GtkWidget	*widget);
-gboolean gtkut_widget_has_focus		(GtkWidget	*widget);
-gboolean gtkut_widget_is_drawable	(GtkWidget	*widget);
-gboolean gtkut_widget_is_sensitive	(GtkWidget	*widget);
 void gtkut_widget_set_mapped            (GtkWidget *widget, gboolean mapped);
 void gtkut_widget_set_realized          (GtkWidget *widget, gboolean realized);
 void gtkut_widget_set_can_default       (GtkWidget *widget, gboolean can_default);
@@ -212,14 +208,15 @@
 
 GdkPixbuf *claws_load_pixbuf_fitting(GdkPixbuf *pixbuf, int box_width,
 				     int box_height);
+
+typedef void (*ClawsIOFunc)(gpointer data, gint source, GIOCondition condition);
 gint
 claws_input_add    (gint	      source,
-		    GdkInputCondition condition,
-		    GdkInputFunction  function,
+		    GIOCondition      condition,
+		    ClawsIOFunc       function,
 		    gpointer	      data,
 		    gboolean          is_sock);
-#if GTK_CHECK_VERSION(2,12,0)
-#define CLAWS_TIP_DECL() {}
+
 #define CLAWS_SET_TIP(widget,tip) { 					\
 	if (tip != NULL)						\
 		gtk_widget_set_tooltip_text(GTK_WIDGET(widget), tip); 	\
@@ -227,14 +224,39 @@
 		gtk_widget_set_has_tooltip(GTK_WIDGET(widget), FALSE);	\
 }
 
-#else
-#define CLAWS_TIP_DECL() \
-	GtkTooltips *tips = gtk_tooltips_new();
-
-#define CLAWS_SET_TIP(widget,tip) { 				\
-	gtk_tooltips_set_tip(GTK_TOOLTIPS(tips), widget, 	\
-			    tip, NULL);				\
+#if !GTK_CHECK_VERSION(2,22,0)
+#define gdk_drag_context_get_selected_action(x) ((x)->action)
+#define gdk_drag_context_get_actions(x) ((x)->actions)
+#define gtk_text_view_get_vadjustment(x) ((x)->vadjustment)
+#define gdk_drag_context_get_suggested_action(x) ((x)->suggested_action)
+#define gtk_button_get_event_window(x) ((x)->event_window)
+#endif
+#if !GTK_CHECK_VERSION(2,20,0)
+#define gtk_widget_get_requisition(x,r) (*(r) = (x)->requisition)
+#define gtk_statusbar_get_message_area(x) ((x)->label)
+#define gtk_widget_get_realized(x) (GTK_WIDGET_REALIZED(x))
+#define gtk_widget_get_mapped(x) (GTK_WIDGET_MAPPED(x))
+#endif
+#if !GTK_CHECK_VERSION(2,18,0)
+#define gtk_widget_get_allocation(x,a) (*(a) = (x)->allocation)
+#define gtk_widget_set_allocation(x,a) ((x)->allocation = *(a))
+#define gtk_widget_has_focus(x) (GTK_WIDGET_HAS_FOCUS(x))
+#define gtk_widget_get_can_focus(x) (GTK_WIDGET_CAN_FOCUS(x))
+#define gtk_widget_has_grab(x) (GTK_WIDGET_HAS_GRAB(x))
+#define gtk_widget_get_visible(x) (GTK_WIDGET_VISIBLE(x))
+#define gtk_widget_get_realized(x) (GTK_WIDGET_REALIZED(x))
+#define gtk_widget_is_sensitive(x) (GTK_WIDGET_IS_SENSITIVE(x))
+#define gtk_widget_get_sensitive(x) (GTK_WIDGET_SENSITIVE(x))
+#define gtk_widget_is_drawable(x) (GTK_WIDGET_DRAWABLE(x))
+#define gtk_widget_get_state(x) (GTK_WIDGET_STATE(x))
+#define gtk_widget_get_mapped(x) (GTK_WIDGET_MAPPED(x))
+#define gtk_widget_get_has_window(x) (!(GTK_WIDGET_NO_WINDOW(x)))
+#define gtk_widget_get_app_paintable(x) (GTK_WIDGET_APP_PAINTABLE(x))
+#define gtk_widget_set_window(x,w) {			\
+	if ((x)->window != w) {				\
+		(x)->window = w;			\
+		g_object_notify (G_OBJECT(x), "window");\
+	}						\
 }
-
 #endif
 #endif /* __GTKUTILS_H__ */

Index: menu.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/menu.c,v
retrieving revision 1.5.2.42
retrieving revision 1.5.2.42.2.1
diff -u -d -r1.5.2.42 -r1.5.2.42.2.1
--- menu.c	16 Feb 2011 07:16:21 -0000	1.5.2.42
+++ menu.c	29 Nov 2011 00:15:25 -0000	1.5.2.42.2.1
@@ -25,7 +25,9 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 #include "gtkcmoptionmenu.h"
+#endif
 #include "menu.h"
 #include "utils.h"
 #include "gtkutils.h"
@@ -123,10 +125,13 @@
 
 void menu_set_sensitive_all(GtkMenuShell *menu_shell, gboolean sensitive)
 {
+	GList *children = gtk_container_get_children(GTK_CONTAINER(menu_shell));
 	GList *cur;
 
-	for (cur = menu_shell->children; cur != NULL; cur = cur->next)
+	for (cur = children; cur != NULL; cur = cur->next)
 		gtk_widget_set_sensitive(GTK_WIDGET(cur->data), sensitive);
+
+	g_list_free(children);
 }
 
 void menu_button_position(GtkMenu *menu, gint *x, gint *y, gboolean *push_in,
@@ -135,7 +140,8 @@
         GtkWidget *widget;
         gint wheight;
         gint wx, wy;
-	GtkRequisition mreq;
+	GtkAllocation allocation;
+	GtkRequisition mreq, wreq;
 	GdkScreen *screen;
 	GdkRectangle monitor;
 	gint monitor_num;
@@ -145,10 +151,12 @@
 
 	widget = GTK_WIDGET(user_data);
 
-        gdk_window_get_origin(widget->window, x, y);
-        wheight = widget->requisition.height;
-        wx = widget->allocation.x;
-        wy = widget->allocation.y;
+        gdk_window_get_origin(gtk_widget_get_window(widget), x, y);
+        gtk_widget_get_requisition(widget, &wreq);
+        wheight = wreq.height;
+        gtk_widget_get_allocation(widget, &allocation);
+        wx = allocation.x;
+        wy = allocation.y;
         
 	gtk_widget_size_request(GTK_WIDGET(menu), &mreq);
 	screen = gtk_widget_get_screen (widget);
@@ -163,18 +171,21 @@
 		*y -= mreq.height;
 }
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 gint menu_find_option_menu_index(GtkCMOptionMenu *optmenu, gpointer data,
 				 GCompareFunc func)
 {
 	GtkWidget *menu;
 	GtkWidget *menuitem;
 	gpointer menu_data;
+	GList *children;
 	GList *cur;
 	gint n;
 
 	menu = gtk_cmoption_menu_get_menu(optmenu);
+	children = gtk_container_get_children(GTK_CONTAINER(GTK_MENU_SHELL(menu)));
 
-	for (cur = GTK_MENU_SHELL(menu)->children, n = 0;
+	for (cur = children, n = 0;
 	     cur != NULL; cur = cur->next, n++) {
 		menuitem = GTK_WIDGET(cur->data);
 		menu_data = g_object_get_data(G_OBJECT(menuitem),
@@ -186,5 +197,8 @@
 			return n;
 	}
 
+	g_list_free(children);
+
 	return -1;
 }
+#endif

Index: gtkutils.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkutils.c,v
retrieving revision 1.5.2.95
retrieving revision 1.5.2.95.2.1
diff -u -d -r1.5.2.95 -r1.5.2.95.2.1
--- gtkutils.c	29 Aug 2011 08:12:10 -0000	1.5.2.95
+++ gtkutils.c	29 Nov 2011 00:15:25 -0000	1.5.2.95.2.1
@@ -26,7 +26,9 @@
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
+#if !GTK_CHECK_VERSION(3, 0, 0)
 #include "gtk/gtksctree.h"
+#endif
 #include <stdlib.h>
 #include <stdarg.h>
 #include <sys/stat.h>
@@ -49,7 +51,9 @@
 #include "defs.h"
 #include "gtkutils.h"
 #include "utils.h"
+#if !GTK_CHECK_VERSION(3, 0, 0)
 #include "gtksctree.h"
+#endif
 #include "codeconv.h"
 #include "stock_pixmap.h"
 #include "menu.h"
@@ -84,7 +88,7 @@
 	gint size;
 
 	cm_return_if_fail(widget != NULL);
-	cm_return_if_fail(widget->style != NULL);
+	cm_return_if_fail(gtk_widget_get_style(widget) != NULL);
 
 	if (prefs_common.derive_from_normal_font || !SMALL_FONT) {
 		font_desc = pango_font_description_from_string(NORMAL_FONT);
@@ -528,6 +532,7 @@
 {
 	GtkTextBuffer *buffer;
 	GtkTextIter iter;
+	GtkTextMark *mark;
 
 	cm_return_if_fail(text != NULL);
 
@@ -535,7 +540,8 @@
 
 	gtk_text_buffer_get_iter_at_offset(buffer, &iter, pos);
 	gtk_text_buffer_place_cursor(buffer, &iter);
-	gtk_text_view_scroll_to_iter(text, &iter, 0.0, FALSE, 0.0, 0.0);
+	mark = gtk_text_buffer_create_mark(buffer, NULL, &iter, TRUE);
+	gtk_text_view_scroll_to_mark(text, mark, 0.0, FALSE, 0.0, 0.0);
 }
 
 gboolean gtkut_text_view_search_string(GtkTextView *text, const gchar *str,
@@ -605,19 +611,22 @@
 
 void gtkut_window_popup(GtkWidget *window)
 {
+	GdkWindow *gdkwin;
 	gint x, y, sx, sy, new_x, new_y;
 
+	gdkwin = gtk_widget_get_window(window);
+
 	cm_return_if_fail(window != NULL);
-	cm_return_if_fail(window->window != NULL);
+	cm_return_if_fail(gdkwin != NULL);
 
 	sx = gdk_screen_width();
 	sy = gdk_screen_height();
 
-	gdk_window_get_origin(window->window, &x, &y);
+	gdk_window_get_origin(gdkwin, &x, &y);
 	new_x = x % sx; if (new_x < 0) new_x = 0;
 	new_y = y % sy; if (new_y < 0) new_y = 0;
 	if (new_x != x || new_y != y)
-		gdk_window_move(window->window, new_x, new_y);
+		gdk_window_move(gdkwin, new_x, new_y);
 
 	gtk_window_set_skip_taskbar_hint(GTK_WINDOW(window), FALSE);
 	gtk_window_present_with_time(GTK_WINDOW(window), time(NULL));
@@ -625,17 +634,20 @@
 
 void gtkut_widget_get_uposition(GtkWidget *widget, gint *px, gint *py)
 {
+	GdkWindow *gdkwin;
 	gint x, y;
 	gint sx, sy;
 
+	gdkwin = gtk_widget_get_window(widget);
+
 	cm_return_if_fail(widget != NULL);
-	cm_return_if_fail(widget->window != NULL);
+	cm_return_if_fail(gdkwin != NULL);
 
 	sx = gdk_screen_width();
 	sy = gdk_screen_height();
 
 	/* gdk_window_get_root_origin ever return *rootwindow*'s position */
-	gdk_window_get_root_origin(widget->window, &x, &y);
+	gdk_window_get_root_origin(gdkwin, &x, &y);
 
 	x %= sx; if (x < 0) x = 0;
 	y %= sy; if (y < 0) y = 0;
@@ -645,8 +657,8 @@
 
 void gtkut_widget_draw_now(GtkWidget *widget)
 {
-	if (widget && gtkut_widget_get_visible(widget) && gtkut_widget_is_drawable(widget))
-		gdk_window_process_updates(widget->window, FALSE);
+	if (widget && gtk_widget_get_visible(widget) && gtk_widget_is_drawable(widget))
+		gdk_window_process_updates(gtk_widget_get_window(widget), FALSE);
 }
 
 static void gtkut_clist_bindings_add(GtkWidget *clist)
@@ -656,7 +668,7 @@
 	binding_set = gtk_binding_set_by_class
 		(GTK_CMCLIST_GET_CLASS(clist));
 
-	gtk_binding_entry_add_signal(binding_set, GDK_n, GDK_CONTROL_MASK,
+	gtk_binding_entry_add_signal(binding_set, GDK_KEY_n, GDK_CONTROL_MASK,
 				     "scroll_vertical", 2,
 				     G_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,
 				     G_TYPE_FLOAT, 0.0);
@@ -709,7 +721,7 @@
 	static GdkPixbuf *icon = NULL;
 	
 	cm_return_if_fail(widget != NULL);
-	cm_return_if_fail(widget->window != NULL);
+	cm_return_if_fail(gtk_widget_get_window(widget) != NULL);
 	if (!icon) {
 		stock_pixbuf_gdk(widget, STOCK_PIXMAP_CLAWS_MAIL_ICON, &icon);
 	}		
@@ -722,7 +734,7 @@
 	static GdkPixbuf *icon = NULL;
 	
 	cm_return_if_fail(widget != NULL);
-	cm_return_if_fail(widget->window != NULL);
+	cm_return_if_fail(gtk_widget_get_window(widget) != NULL);
 	if (!icon) {
 		stock_pixbuf_gdk(widget, STOCK_PIXMAP_MAIL_COMPOSE, &icon);
 	}		
@@ -868,7 +880,7 @@
 
 	for (c = child_list; c != NULL; c = g_list_next(c)) {
 		if (c->data && GTK_IS_WIDGET(c->data)) {
-			if (gtkut_widget_has_focus(GTK_WIDGET(c->data))) {
+			if (gtk_widget_has_focus(GTK_WIDGET(c->data))) {
 				result = GTK_WIDGET(c->data);
 				break;
 			}
@@ -1148,12 +1160,15 @@
 
 static void link_btn_enter(GtkButton *button, gpointer data)
 {
+	GdkWindow *gdkwin;
 	GtkWidget *window = (GtkWidget *)data;
 
+	gdkwin = gtk_widget_get_window(window);
+
 	if (!hand_cursor)
 		hand_cursor = gdk_cursor_new(GDK_HAND2);
-	if (window && window->window)
-		gdk_window_set_cursor(window->window, hand_cursor);
+	if (window && gdkwin)
+		gdk_window_set_cursor(gdkwin, hand_cursor);
 
 	gtk_button_set_relief(button, GTK_RELIEF_NONE);
 	gtk_widget_set_state(GTK_WIDGET(button), GTK_STATE_NORMAL);
@@ -1162,10 +1177,13 @@
 
 static void link_btn_leave(GtkButton *button, gpointer data)
 {
+	GdkWindow *gdkwin;
 	GtkWidget *window = (GtkWidget *)data;
 
-	if (window && window->window)
-		gdk_window_set_cursor(window->window, NULL);
+	gdkwin = gtk_widget_get_window(window);
+
+	if (window && gdkwin)
+		gdk_window_set_cursor(gdkwin, NULL);
 
 	gtk_button_set_relief(button, GTK_RELIEF_NONE);
 	gtk_widget_set_state(GTK_WIDGET(button), GTK_STATE_NORMAL);
@@ -1203,9 +1221,11 @@
 {
 	GtkWidget *btn;
 	GtkWidget *btn_label;
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	GdkColormap *cmap;
-	GdkColor uri_color[2] = {{0, 0, 0, 0xffff}, {0, 0xffff, 0, 0}};
 	gboolean success[2];
+#endif
+	GdkColor uri_color[2] = {{0, 0, 0, 0xffff}, {0, 0xffff, 0, 0}};
 	gchar *local_url = NULL;
 	if (!url)
 		return NULL;
@@ -1218,9 +1238,11 @@
 	btn = gtk_button_new_with_label(label?label:url);
 	gtk_button_set_relief(GTK_BUTTON(btn), GTK_RELIEF_NONE);
 	btn_label = gtk_bin_get_child(GTK_BIN((btn)));
-	cmap = gdk_drawable_get_colormap(window->window);
+#if !GTK_CHECK_VERSION(3, 0, 0)
+	cmap = gdk_drawable_get_colormap(gtk_widget_get_window(window));
 	gdk_colormap_alloc_colors(cmap, uri_color, 2, FALSE, TRUE, success);
 	if (success[0] == TRUE && success[1] == TRUE) {
+#endif
 		GtkStyle *style;
 		gtk_widget_ensure_style(btn_label);
 		style = gtk_style_copy
@@ -1229,8 +1251,10 @@
 		style->fg[GTK_STATE_ACTIVE]   = uri_color[1];
 		style->fg[GTK_STATE_PRELIGHT] = uri_color[0];
 		gtk_widget_set_style(btn_label, style);
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	} else
 		g_warning("about_create(): color allocation failed.\n");
+#endif
 
 	g_signal_connect(G_OBJECT(btn), "enter",
 			 G_CALLBACK(link_btn_enter), window);
@@ -1307,12 +1331,12 @@
 	}
 
 	for (i = step; i <= change_value; i += step) {
-		vadj->value = old_value + (up ? -i : i);
+		gtk_adjustment_set_value(vadj, old_value + (up ? -i : i));
 		g_signal_emit_by_name(G_OBJECT(vadj),
 				      "value_changed", 0);
 	}
 
-	vadj->value = last_value;
+	gtk_adjustment_set_value(vadj, last_value);
 	g_signal_emit_by_name(G_OBJECT(vadj), "value_changed", 0);
 
 	gtk_widget_queue_draw(widget);
@@ -1325,16 +1349,15 @@
 	gfloat old_value;
 	gfloat last_value;
 
+	page_incr = gtk_adjustment_get_page_increment(vadj);
 	if (prefs_common.scroll_halfpage)
-		page_incr = vadj->page_increment / 2;
-	else
-		page_incr = vadj->page_increment;
+		page_incr /= 2;
 
+	old_value = gtk_adjustment_get_value(vadj);
 	if (!up) {
-		upper = vadj->upper - vadj->page_size;
-		if (vadj->value < upper) {
-			old_value = vadj->value;
-			last_value = vadj->value + page_incr;
+		upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj);
+		if (old_value < upper) {
+			last_value = old_value + page_incr;
 			last_value = MIN(last_value, upper);
 
 			gtkutils_smooth_scroll_do(widget, vadj, old_value,
@@ -1343,9 +1366,8 @@
 		} else
 			return FALSE;
 	} else {
-		if (vadj->value > 0.0) {
-			old_value = vadj->value;
-			last_value = vadj->value - page_incr;
+		if (old_value > 0.0) {
+			last_value = old_value - page_incr;
 			last_value = MAX(last_value, 0.0);
 
 			gtkutils_smooth_scroll_do(widget, vadj, old_value,
@@ -1362,28 +1384,31 @@
 {
 	gfloat upper;
 	gfloat page_incr;
+	gfloat old_value;
 
 	if (prefs_common.enable_smooth_scroll)
 		return gtkutils_smooth_scroll_page(widget, vadj, up);
 
+	page_incr = gtk_adjustment_get_page_increment(vadj);
 	if (prefs_common.scroll_halfpage)
-		page_incr = vadj->page_increment / 2;
-	else
-		page_incr = vadj->page_increment;
+		page_incr /= 2;
 
+	old_value = gtk_adjustment_get_value(vadj);
 	if (!up) {
-		upper = vadj->upper - vadj->page_size;
-		if (vadj->value < upper) {
-			vadj->value += page_incr;
-			vadj->value = MIN(vadj->value, upper);
+		upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj);
+		if (old_value < upper) {
+			old_value += page_incr;
+			old_value = MIN(old_value, upper);
+			gtk_adjustment_set_value(vadj, old_value);
 			g_signal_emit_by_name(G_OBJECT(vadj),
 					      "value_changed", 0);
 		} else
 			return FALSE;
 	} else {
-		if (vadj->value > 0.0) {
-			vadj->value -= page_incr;
-			vadj->value = MAX(vadj->value, 0.0);
+		if (old_value > 0.0) {
+			old_value -= page_incr;
+			old_value = MAX(old_value, 0.0);
+			gtk_adjustment_set_value(vadj, old_value);
 			g_signal_emit_by_name(G_OBJECT(vadj),
 					      "value_changed", 0);
 		} else
@@ -1398,11 +1423,11 @@
 	gfloat old_value;
 	gfloat last_value;
 
+	old_value = gtk_adjustment_get_value(vadj);
 	if (!up) {
-		upper = vadj->upper - vadj->page_size;
-		if (vadj->value < upper) {
-			old_value = vadj->value;
-			last_value = vadj->value + vadj->step_increment;
+		upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj);
+		if (old_value < upper) {
+			last_value = old_value + gtk_adjustment_get_step_increment(vadj);
 			last_value = MIN(last_value, upper);
 
 			gtkutils_smooth_scroll_do(widget, vadj, old_value,
@@ -1410,9 +1435,8 @@
 						  prefs_common.scroll_step);
 		}
 	} else {
-		if (vadj->value > 0.0) {
-			old_value = vadj->value;
-			last_value = vadj->value - vadj->step_increment;
+		if (old_value > 0.0) {
+			last_value = old_value - gtk_adjustment_get_step_increment(vadj);
 			last_value = MAX(last_value, 0.0);
 
 			gtkutils_smooth_scroll_do(widget, vadj, old_value,
@@ -1425,24 +1449,28 @@
 void gtkutils_scroll_one_line(GtkWidget *widget, GtkAdjustment *vadj, gboolean up)
 {
 	gfloat upper;
+	gfloat old_value;
 
 	if (prefs_common.enable_smooth_scroll) {
 		gtkutils_smooth_scroll_one_line(widget, vadj, up);
 		return;
 	}
 
+	old_value = gtk_adjustment_get_value(vadj);
 	if (!up) {
-		upper = vadj->upper - vadj->page_size;
-		if (vadj->value < upper) {
-			vadj->value += vadj->step_increment;
-			vadj->value = MIN(vadj->value, upper);
+		upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj);
+		if (old_value < upper) {
+			old_value += gtk_adjustment_get_step_increment(vadj);
+			old_value = MIN(old_value, upper);
+			gtk_adjustment_set_value(vadj, old_value);
 			g_signal_emit_by_name(G_OBJECT(vadj),
 					      "value_changed", 0);
 		}
 	} else {
-		if (vadj->value > 0.0) {
-			vadj->value -= vadj->step_increment;
-			vadj->value = MAX(vadj->value, 0.0);
+		if (old_value > 0.0) {
+			old_value -= gtk_adjustment_get_step_increment(vadj);
+			old_value = MAX(old_value, 0.0);
+			gtk_adjustment_set_value(vadj, old_value);
 			g_signal_emit_by_name(G_OBJECT(vadj),
 					      "value_changed", 0);
 		}
@@ -1600,36 +1628,26 @@
 	return gui_manager;
 }
 
-#define READ_CONDITION (G_IO_IN | G_IO_HUP | G_IO_ERR)
-#define WRITE_CONDITION (G_IO_OUT | G_IO_ERR)
-#define EXCEPTION_CONDITION (G_IO_PRI)
 typedef struct _ClawsIOClosure ClawsIOClosure;
 
 struct _ClawsIOClosure
 {
-  GdkInputFunction function;
-  GdkInputCondition condition;
+  ClawsIOFunc function;
+  GIOCondition condition;
   GDestroyNotify notify;
   gpointer data;
 };
 
 static gboolean  
 claws_io_invoke (GIOChannel   *source,
-	       GIOCondition  condition,
-	       gpointer      data)
+	         GIOCondition  condition,
+	         gpointer      data)
 {
   ClawsIOClosure *closure = data;
-  GdkInputCondition gdk_cond = 0;
-
-  if (condition & READ_CONDITION)
-    gdk_cond |= GDK_INPUT_READ;
-  if (condition & WRITE_CONDITION)
-    gdk_cond |= GDK_INPUT_WRITE;
-  if (condition & EXCEPTION_CONDITION)
-    gdk_cond |= GDK_INPUT_EXCEPTION;
 
-  if (closure->condition & gdk_cond)
-    closure->function (closure->data, g_io_channel_unix_get_fd (source), gdk_cond);
+  if (closure->condition & condition)
+    closure->function (closure->data, g_io_channel_unix_get_fd (source),
+    		       condition);
 
   return TRUE;
 }
@@ -1647,28 +1665,20 @@
 
 gint
 claws_input_add    (gint	      source,
-		    GdkInputCondition condition,
-		    GdkInputFunction  function,
+		    GIOCondition      condition,
+		    ClawsIOFunc       function,
 		    gpointer	      data,
 		    gboolean	      is_sock)
 {
   guint result;
   ClawsIOClosure *closure = g_new (ClawsIOClosure, 1);
   GIOChannel *channel;
-  GIOCondition cond = 0;
 
   closure->function = function;
   closure->condition = condition;
   closure->notify = NULL;
   closure->data = data;
 
-  if (condition & GDK_INPUT_READ)
-    cond |= READ_CONDITION;
-  if (condition & GDK_INPUT_WRITE)
-    cond |= WRITE_CONDITION;
-  if (condition & GDK_INPUT_EXCEPTION)
-    cond |= EXCEPTION_CONDITION;
-
 #ifndef G_OS_WIN32
   channel = g_io_channel_unix_new (source);
 #else
@@ -1677,7 +1687,7 @@
   else
     channel = g_io_channel_win32_new_fd(source);
 #endif
-  result = g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, cond, 
+  result = g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, condition, 
 				claws_io_invoke,
 				closure, claws_io_destroy);
   g_io_channel_unref (channel);
@@ -1685,114 +1695,6 @@
   return result;
 }
 
-gboolean gtkut_widget_has_focus(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_has_focus(widget);
-#else
-	return GTK_WIDGET_HAS_FOCUS(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_can_focus(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_get_can_focus(widget);
-#else
-	return GTK_WIDGET_CAN_FOCUS(widget);
-#endif
-}
-
-gboolean gtkut_widget_has_grab(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_has_grab(widget);
-#else
-	return GTK_WIDGET_HAS_GRAB(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_visible(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_get_visible(widget);
-#else
-	return GTK_WIDGET_VISIBLE(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_realized(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,19,0)
-	return gtk_widget_get_realized(widget);
-#else
-	return GTK_WIDGET_REALIZED(widget);
-#endif
-}
-
-gboolean gtkut_widget_is_sensitive(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_is_sensitive(widget);
-#else
-	return GTK_WIDGET_IS_SENSITIVE(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_sensitive(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_get_sensitive(widget);
-#else
-	return GTK_WIDGET_SENSITIVE(widget);
-#endif
-}
-
-gboolean gtkut_widget_is_drawable(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_is_drawable(widget);
-#else
-	return GTK_WIDGET_DRAWABLE(widget);
-#endif
-}
-
-GtkStateType gtkut_widget_get_state(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_get_state(widget);
-#else
-	return GTK_WIDGET_STATE(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_mapped(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,19,0)
-	return gtk_widget_get_mapped(widget);
-#else
-	return GTK_WIDGET_MAPPED(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_has_window(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_get_has_window(widget);
-#else
-	return GTK_WIDGET_NO_WINDOW(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_app_paintable(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
-	return gtk_widget_get_app_paintable(widget);
-#else
-	return GTK_WIDGET_APP_PAINTABLE(widget);
-#endif
-}
-
 void gtkut_widget_set_mapped(GtkWidget *widget, gboolean mapped)
 {
 #if GTK_CHECK_VERSION(2,20,0)

Index: about.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/about.c,v
retrieving revision 1.4.2.79
retrieving revision 1.4.2.79.2.1
diff -u -d -r1.4.2.79 -r1.4.2.79.2.1
--- about.c	5 Jun 2011 05:51:46 -0000	1.4.2.79
+++ about.c	29 Nov 2011 00:15:24 -0000	1.4.2.79.2.1
@@ -768,7 +768,7 @@
 
 static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event)
 {
-	if (event && event->keyval == GDK_Escape)
+	if (event && event->keyval == GDK_KEY_Escape)
 		gtk_widget_hide(window);
 	return FALSE;
 }
@@ -847,7 +847,7 @@
 					GtkWidget *textview)
 {
 	about_textview_uri_update(textview, event->x, event->y);
-	gdk_window_get_pointer(widget->window, NULL, NULL, NULL);
+	gdk_window_get_pointer(gtk_widget_get_window(widget), NULL, NULL, NULL);
 
 	return FALSE;
 }

Index: description_window.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/description_window.c,v
retrieving revision 1.5.2.31
retrieving revision 1.5.2.31.2.1
diff -u -d -r1.5.2.31 -r1.5.2.31.2.1
--- description_window.c	6 Aug 2011 07:11:40 -0000	1.5.2.31
+++ description_window.c	29 Nov 2011 00:15:24 -0000	1.5.2.31.2.1
@@ -192,7 +192,7 @@
 				 	       GdkEventKey *event,
 					       gpointer data)
 {
-	if (event && event->keyval == GDK_Escape)
+	if (event && event->keyval == GDK_KEY_Escape)
 		description_window_destroy(widget, data);
 	return FALSE;
 }

Index: prefswindow.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/prefswindow.c,v
retrieving revision 1.12.2.56
retrieving revision 1.12.2.56.2.1
diff -u -d -r1.12.2.56 -r1.12.2.56.2.1
--- prefswindow.c	30 Aug 2011 20:25:58 -0000	1.12.2.56
+++ prefswindow.c	29 Nov 2011 00:15:25 -0000	1.12.2.56.2.1
@@ -222,11 +222,11 @@
 
 	if (event) {
 		switch (event->keyval) {
-			case GDK_Escape :
+			case GDK_KEY_Escape :
 				cancel_button_clicked(NULL, data);
 				break;
-			case GDK_Return : 
-			case GDK_KP_Enter :
+			case GDK_KEY_Return : 
+			case GDK_KEY_KP_Enter :
 				focused_child = gtkut_get_focused_child
 					(GTK_CONTAINER(data->notebook));
 				/* Press ok, if the focused child is not a text view
@@ -600,7 +600,7 @@
 #endif
 	adj = gtk_scrolled_window_get_vadjustment(
 			GTK_SCROLLED_WINDOW(prefswindow->scrolledwindow1));
-	gtk_adjustment_set_value(adj, adj->lower);
+	gtk_adjustment_set_value(adj, gtk_adjustment_get_lower(adj));
 	gtk_adjustment_changed(adj);
 }
 
@@ -686,6 +686,7 @@
 	PrefsTreeNode *prefsnode;
 	PrefsPage *page;
 	PrefsWindow *prefswindow = (PrefsWindow *) data;
+	gfloat lower;
 	gchar *labeltext;
 	gint pagenum, i;
 	GtkTreeIter iter;
@@ -730,11 +731,12 @@
 
 	adj = gtk_scrolled_window_get_vadjustment(
 			GTK_SCROLLED_WINDOW(page->widget));
-	gtk_adjustment_set_value(adj, adj->lower);
+	lower = gtk_adjustment_get_lower(adj);
+	gtk_adjustment_set_value(adj, lower);
 	gtk_adjustment_changed(adj);
 	adj = gtk_scrolled_window_get_hadjustment(
 			GTK_SCROLLED_WINDOW(page->widget));
-	gtk_adjustment_set_value(adj, adj->lower);
+	gtk_adjustment_set_value(adj, lower);
 	gtk_adjustment_changed(adj);
 
 #ifdef GENERIC_UMPC

Index: spell_entry.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/spell_entry.c,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.11.2.1
diff -u -d -r1.1.2.11 -r1.1.2.11.2.1
--- spell_entry.c	16 Feb 2011 07:16:22 -0000	1.1.2.11
+++ spell_entry.c	29 Nov 2011 00:15:25 -0000	1.1.2.11.2.1
@@ -45,9 +45,15 @@
 static void claws_spell_entry_init		(ClawsSpellEntry *entry);
 static void claws_spell_entry_editable_init	(GtkEditableClass *iface);
 static void claws_spell_entry_finalize		(GObject *object);
+#if !GTK_CHECK_VERSION(3, 0, 0)
 static void claws_spell_entry_destroy		(GtkObject *object);
 static gint claws_spell_entry_expose		(GtkWidget *widget,
 						 GdkEventExpose *event);
+#else
+static void claws_spell_entry_destroy		(GtkWidget *object);
+static gint claws_spell_entry_expose		(GtkWidget *widget,
+						 cairo_t *cr);
+#endif
 static gint claws_spell_entry_button_press	(GtkWidget *widget,
 						 GdkEventButton *event);
 static gboolean claws_spell_entry_popup_menu	(GtkWidget *widget,
@@ -76,7 +82,9 @@
 static void claws_spell_entry_class_init(ClawsSpellEntryClass *klass)
 {
 	GObjectClass	*g_object_class;
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	GtkObjectClass	*gtk_object_class;
+#endif
 	GtkWidgetClass	*widget_class;
 	
 	parent_class = g_type_class_peek_parent(klass);
@@ -84,12 +92,19 @@
 	g_object_class = G_OBJECT_CLASS(klass);
 	g_object_class->finalize = claws_spell_entry_finalize;
 	
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	gtk_object_class = GTK_OBJECT_CLASS(klass);
 	gtk_object_class->destroy = claws_spell_entry_destroy;
+#endif
 	
 	widget_class = GTK_WIDGET_CLASS(klass);
-	widget_class->expose_event = claws_spell_entry_expose;
 	widget_class->button_press_event = claws_spell_entry_button_press;
+#if !GTK_CHECK_VERSION(3, 0, 0)
+	widget_class->expose_event = claws_spell_entry_expose;
+#else
+	widget_class->draw = claws_spell_entry_expose;
+	widget_class->destroy = claws_spell_entry_destroy;
+#endif
 	
 	g_type_class_add_private(g_object_class,
 			sizeof(struct _ClawsSpellEntryPriv));
@@ -129,10 +144,17 @@
 	G_OBJECT_CLASS(parent_class)->finalize(object);
 }
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 static void claws_spell_entry_destroy(GtkObject *object)
 {
 	GTK_OBJECT_CLASS(parent_class)->destroy(object);
 }
+#else
+static void claws_spell_entry_destroy(GtkWidget *object)
+{
+	GTK_WIDGET_CLASS(parent_class)->destroy(object);
+}
+#endif
 
 GtkWidget *claws_spell_entry_new(void)
 {
@@ -428,7 +450,7 @@
 	layout = gtk_entry_get_layout(GTK_ENTRY(entry));
 	pango_layout_set_attributes(layout, entry->priv->attr_list);
 
-	if (gtkut_widget_get_realized(GTK_WIDGET(entry))) {
+	if (gtk_widget_get_realized(GTK_WIDGET(entry))) {
 		rect.x = 0; rect.y = 0;
 		rect.width  = GTK_WIDGET(entry)->allocation.width;
 		rect.height = GTK_WIDGET(entry)->allocation.height;
@@ -436,7 +458,11 @@
 	}
 }
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 static gint claws_spell_entry_expose(GtkWidget *widget, GdkEventExpose *event)
+#else
+static gint claws_spell_entry_expose(GtkWidget *widget, cairo_t *cr)
+#endif
 {
 	ClawsSpellEntry *entry = CLAWS_SPELL_ENTRY(widget);
 	GtkEntry *gtk_entry = GTK_ENTRY(widget);
@@ -447,7 +473,11 @@
 		pango_layout_set_attributes(layout, entry->priv->attr_list);
 	}
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	return GTK_WIDGET_CLASS(parent_class)->expose_event (widget, event);
+#else
+	return GTK_WIDGET_CLASS(parent_class)->draw (widget, cr);
+#endif
 }
 
 static gint claws_spell_entry_button_press(GtkWidget *widget, GdkEventButton *event)

Index: inputdialog.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/inputdialog.c,v
retrieving revision 1.2.2.42
retrieving revision 1.2.2.42.2.1
diff -u -d -r1.2.2.42 -r1.2.2.42.2.1
--- inputdialog.c	10 Apr 2011 17:19:05 -0000	1.2.2.42
+++ inputdialog.c	29 Nov 2011 00:15:25 -0000	1.2.2.42.2.1
@@ -85,7 +85,7 @@
 gchar *input_dialog(const gchar *title, const gchar *message,
 		    const gchar *default_string)
 {
-	if (dialog && gtkut_widget_get_visible(dialog)) return NULL;
+	if (dialog && gtk_widget_get_visible(dialog)) return NULL;
 
 	if (!dialog)
 		input_dialog_create(FALSE);
@@ -111,7 +111,7 @@
 gchar *input_dialog_with_invisible(const gchar *title, const gchar *message,
 				   const gchar *default_string)
 {
-	if (dialog && gtkut_widget_get_visible(dialog)) return NULL;
+	if (dialog && gtk_widget_get_visible(dialog)) return NULL;
 
 	if (!dialog)
 		input_dialog_create(TRUE);
@@ -137,7 +137,7 @@
 				   const gchar *default_string, const gchar *checkbtn_label,
 				   gboolean *checkbtn_state)
 {
-	if (dialog && gtkut_widget_get_visible(dialog)) return NULL;
+	if (dialog && gtk_widget_get_visible(dialog)) return NULL;
 
 	if (!dialog)
 		input_dialog_create(TRUE);
@@ -178,7 +178,7 @@
 			  const gchar *default_string, GList *list,
 			  gboolean *remember)
 {
-	if (dialog && gtkut_widget_get_visible(dialog)) return NULL;
+	if (dialog && gtk_widget_get_visible(dialog)) return NULL;
 
 	if (!dialog)
 		input_dialog_create(FALSE);
@@ -209,7 +209,7 @@
 				   const gchar  *checkbtn_label,
 				   gboolean *checkbtn_state)
 {
-	if (dialog && gtkut_widget_get_visible(dialog)) return NULL;
+	if (dialog && gtk_widget_get_visible(dialog)) return NULL;
 
 	if (!dialog)
 		input_dialog_create(FALSE);
@@ -320,11 +320,12 @@
 			 G_CALLBACK(key_pressed), NULL);
 	MANAGE_WINDOW_SIGNALS_CONNECT(dialog);
 
-	gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14);
+	vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+	gtk_box_set_spacing (GTK_BOX (vbox), 14);
 	hbox = gtk_hbox_new (FALSE, 12);
 	gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
 	gtk_widget_show (hbox);
-	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox,
+	gtk_box_pack_start (GTK_BOX (vbox), hbox,
 			    FALSE, FALSE, 0);
 
 	/* for title label */
@@ -353,7 +354,7 @@
 		gint size;
 
 		size = pango_font_description_get_size
-			(msg_title->style->font_desc);
+			(gtk_widget_get_style(msg_title)->font_desc);
 		font_desc = pango_font_description_new();
 		pango_font_description_set_weight
 			(font_desc, PANGO_WEIGHT_BOLD);
@@ -389,11 +390,11 @@
 				      &ok_button, GTK_STOCK_OK,
 				      NULL, NULL);
 
-	gtk_box_pack_end(GTK_BOX(GTK_DIALOG(dialog)->action_area),
+	gtk_box_pack_end(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),
 			 confirm_area, FALSE, FALSE, 0);
 	gtk_container_set_border_width(GTK_CONTAINER(confirm_area), 5);
 
-	gtk_widget_show_all(GTK_DIALOG(dialog)->vbox);
+	gtk_widget_show_all(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
 	
 	gtk_widget_hide(remember_checkbtn);
 
@@ -420,7 +421,7 @@
 {
 	gchar *str;
 
-	if (dialog && gtkut_widget_get_visible(dialog)) return NULL;
+	if (dialog && gtk_widget_get_visible(dialog)) return NULL;
 
 	if (!dialog)
 		input_dialog_create(FALSE);
@@ -525,10 +526,10 @@
 
 static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
 {
-	if (event && event->keyval == GDK_Escape) {
+	if (event && event->keyval == GDK_KEY_Escape) {
 		ack = FALSE;
 		fin = TRUE;
-	} else if (event && event->keyval == GDK_Return) {
+	} else if (event && event->keyval == GDK_KEY_Return) {
 		ack = TRUE;
 		fin = TRUE;
 		return TRUE; /* do not let Return pass - it

Index: logwindow.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/logwindow.c,v
retrieving revision 1.1.4.37
retrieving revision 1.1.4.37.2.1
diff -u -d -r1.1.4.37 -r1.1.4.37.2.1
--- logwindow.c	16 Feb 2011 07:16:20 -0000	1.1.4.37
+++ logwindow.c	29 Nov 2011 00:15:25 -0000	1.1.4.37.2.1
@@ -155,9 +155,11 @@
 void log_window_init(LogWindow *logwin)
 {
 	GtkTextBuffer *buffer;
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	GdkColormap *colormap;
-	GdkColor color[LOG_COLORS];
 	gboolean success[LOG_COLORS];
+#endif
+	GdkColor color[LOG_COLORS];
 	gint i;
 
 	gtkut_convert_int_to_gdk_color(prefs_common.log_msg_color, &color[0]);
@@ -178,7 +180,8 @@
 	logwin->status_nok_color = color[6];
 	logwin->status_skip_color = color[7];
 
-	colormap = gdk_drawable_get_colormap(logwin->window->window);
+#if !GTK_CHECK_VERSION(3, 0, 0)
+	colormap = gdk_drawable_get_colormap(gtk_widget_get_window(logwin->window));
 	gdk_colormap_alloc_colors(colormap, color, LOG_COLORS, FALSE, TRUE, success);
 
 	for (i = 0; i < LOG_COLORS; i++) {
@@ -195,6 +198,7 @@
 			break;
 		}
 	}
+#endif
 
 	buffer = logwin->buffer;
 	gtk_text_buffer_create_tag(buffer, "message",
@@ -364,10 +368,12 @@
 	       log_window_clip (logwindow, logwindow->clip_length);
 
 	if (!logwindow->hidden) {
-		GtkAdjustment *vadj = text->vadjustment;
-		gfloat upper = vadj->upper - vadj->page_size;
-		if (vadj->value == upper || 
-		    (upper - vadj->value < 16 && vadj->value < 8))
+		GtkAdjustment *vadj = gtk_text_view_get_vadjustment(text);
+		gfloat upper = gtk_adjustment_get_upper(vadj) -
+		    gtk_adjustment_get_page_size(vadj);
+		gfloat value = gtk_adjustment_get_value(vadj);
+		if (value == upper || 
+		    (upper - value < 16 && value < 8))
 			gtk_text_view_scroll_mark_onscreen(text, logwindow->end_mark);
 	}
 
@@ -382,9 +388,9 @@
 static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event,
 			LogWindow *logwin)
 {
-	if (event && event->keyval == GDK_Escape)
+	if (event && event->keyval == GDK_KEY_Escape)
 		gtk_widget_hide(logwin->window);
-	else if (event && event->keyval == GDK_Delete) 
+	else if (event && event->keyval == GDK_KEY_Delete) 
 		log_window_clear(NULL, logwin);
 
 	return FALSE;

Index: gtksctree.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtksctree.c,v
retrieving revision 1.1.4.60
retrieving revision 1.1.4.60.2.1
diff -u -d -r1.1.4.60 -r1.1.4.60.2.1
--- gtksctree.c	16 Feb 2011 07:16:20 -0000	1.1.4.60
+++ gtksctree.c	29 Nov 2011 00:15:25 -0000	1.1.4.60.2.1
@@ -28,11 +28,6 @@
 
 #include <stdlib.h>
 
-/* We know this file uses some deprecated stuff. */
-#undef G_DISABLE_DEPRECATED
-#undef GTK_DISABLE_DEPRECATED
-#undef GDK_DISABLE_DEPRECATED
-
 #include "gtksctree.h"
 #include "claws-marshal.h"
 #include "prefs_common.h"
[...1344 lines suppressed...]
+      if (gtk_widget_get_realized (GTK_WIDGET(ctree)))
 	gtk_style_detach (ctree_row->row.style);
       g_object_unref (ctree_row->row.style);
     }
@@ -2899,7 +1690,6 @@
   GtkCMCTreeNode *work;
   GtkRequisition requisition;
   gboolean visible;
-  gint level;
 
   cm_return_if_fail (GTK_IS_CMCTREE (ctree));
 
@@ -2911,7 +1701,6 @@
   GTK_CMCLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
 
   GTK_CMCTREE_ROW (node)->expanded = TRUE;
-  level = GTK_CMCTREE_ROW (node)->level;
 
   visible = gtk_cmctree_is_viewable (ctree, node);
   /* get cell width if tree_column is auto resized */

Index: quicksearch.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/quicksearch.c,v
retrieving revision 1.1.2.103
retrieving revision 1.1.2.103.2.1
diff -u -d -r1.1.2.103 -r1.1.2.103.2.1
--- quicksearch.c	12 Aug 2011 08:41:54 -0000	1.1.2.103
+++ quicksearch.c	29 Nov 2011 00:15:25 -0000	1.1.2.103.2.1
@@ -29,7 +29,9 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 #include "gtkcmoptionmenu.h"
+#endif
 #include "utils.h"
 #include "combobox.h"
 #include "menu.h"
@@ -57,7 +59,9 @@
 {
 	GtkWidget			*hbox_search;
 	GtkWidget			*search_type;
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	GtkWidget			*search_type_opt;
+#endif
 	GtkWidget			*search_string_entry;
 	GtkWidget			*search_condition_expression;
 	GtkWidget			*search_description;
@@ -113,6 +117,7 @@
 
 static void quicksearch_set_type(QuickSearch *quicksearch, gint type)
 {
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	gint index;
 	quicksearch->request->type = type;
 	if (quicksearch->gui == FALSE)
@@ -121,6 +126,7 @@
 					GINT_TO_POINTER(type),
 					NULL);
 	gtk_cmoption_menu_set_history(GTK_CMOPTION_MENU(quicksearch->search_type_opt), index);	
+#endif
 }
 
 static gchar *quicksearch_get_text(QuickSearch * quicksearch)
@@ -331,7 +337,7 @@
 static gboolean searchbar_pressed(GtkWidget *widget, GdkEventKey *event,
 			      	  QuickSearch *quicksearch)
 {
-	if (event && (event->keyval == GDK_Escape)) {
+	if (event && (event->keyval == GDK_KEY_Escape)) {
 		gchar *str;
 
 		quicksearch->in_typing = FALSE;
@@ -353,7 +359,7 @@
 		return TRUE;
 	}
 
-	if (event != NULL && (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter)) {
+	if (event != NULL && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) {
 		if (quicksearch->press_timeout_id != -1) {
 			g_source_remove(quicksearch->press_timeout_id);
 			quicksearch->press_timeout_id = -1;
@@ -366,7 +372,7 @@
 		return TRUE;
 	}
 
-	if (event && (event->keyval == GDK_Down || event->keyval == GDK_Up)) {
+	if (event && (event->keyval == GDK_KEY_Down || event->keyval == GDK_KEY_Up)) {
 		combobox_set_value_from_arrow_key(
 				GTK_COMBO_BOX(quicksearch->search_string_entry),
 				event->keyval);
@@ -679,7 +685,9 @@
 	QuickSearch *quicksearch;
 
 	GtkWidget *hbox_search;
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	GtkWidget *search_type_opt;
+#endif
 	GtkWidget *search_type;
 	GtkWidget *search_string_entry;
 	GtkWidget *search_hbox;
@@ -687,7 +695,6 @@
 	GtkWidget *clear_search;
 	GtkWidget *search_condition_expression;
 	GtkWidget *menuitem;
-	CLAWS_TIP_DECL();
 	GtkWidget *vbox;
 
 	quicksearch = quicksearch_new_nogui();
@@ -696,9 +703,11 @@
 	/* quick search */
 	hbox_search = gtk_hbox_new(FALSE, 0);
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	search_type_opt = gtk_cmoption_menu_new();
 	gtk_widget_show(search_type_opt);
 	gtk_box_pack_start(GTK_BOX(hbox_search), search_type_opt, FALSE, FALSE, 0);
+#endif
 
 	search_type = gtk_menu_new();
 	MENUITEM_ADD (search_type, menuitem,
@@ -777,9 +786,11 @@
 			 G_CALLBACK(searchtype_autorun_changed),
 			 quicksearch);
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	gtk_cmoption_menu_set_menu(GTK_CMOPTION_MENU(search_type_opt), search_type);
 
 	quicksearch->search_type_opt = search_type_opt;
+#endif
 	quicksearch_set_type(quicksearch, prefs_common.summary_quicksearch_type);
 
 	gtk_widget_show(search_type);
@@ -980,10 +991,16 @@
 
 static void quicksearch_set_active(QuickSearch *quicksearch, gboolean active)
 {
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	static GdkColor yellow;
 	static GdkColor red;
 	static GdkColor black;
 	static gboolean colors_initialised = FALSE;
+#else
+	static GdkColor yellow = { (guint32)0, (guint16)0xf5, (guint16)0xf6, (guint16)0xbe };
+	static GdkColor red = { (guint32)0, (guint16)0xff, (guint16)0x70, (guint16)0x70 };
+	static GdkColor black = { (guint32)0, (guint16)0x0, (guint16)0x0, (guint16)0x0 };
+#endif
 	gboolean error = FALSE;
 
 	
@@ -991,6 +1008,7 @@
 	if (quicksearch->gui == FALSE)
 		return;
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	if (!colors_initialised) {
 		gdk_color_parse("#f5f6be", &yellow);
 		gdk_color_parse("#000000", &black);
@@ -1002,6 +1020,7 @@
 		colors_initialised &= gdk_colormap_alloc_color(
 			gdk_colormap_get_system(), &red, FALSE, TRUE);
 	}
+#endif
 
 	if (active && 
 		(prefs_common.summary_quicksearch_type == QUICK_SEARCH_EXTENDED
@@ -1010,14 +1029,18 @@
 
 	if (active) {
 		gtk_widget_set_sensitive(quicksearch->clear_search, TRUE);
+#if !GTK_CHECK_VERSION(3, 0, 0)
 		if (colors_initialised) {
+#endif
 			gtk_widget_modify_base(
 				gtk_bin_get_child(GTK_BIN((quicksearch->search_string_entry))),
 				GTK_STATE_NORMAL, error ? &red : &yellow);
 			gtk_widget_modify_text(
 				gtk_bin_get_child(GTK_BIN((quicksearch->search_string_entry))),
 				GTK_STATE_NORMAL, &black);
+#if !GTK_CHECK_VERSION(3, 0, 0)
 		}
+#endif
 	} else {
 		gtk_widget_set_sensitive(quicksearch->clear_search, FALSE);
 		if (colors_initialised) {
@@ -1027,7 +1050,9 @@
 			gtk_widget_modify_text(
 				gtk_bin_get_child(GTK_BIN((quicksearch->search_string_entry))),
 				GTK_STATE_NORMAL, NULL);
+#if !GTK_CHECK_VERSION(3, 0, 0)
 		}
+#endif
 	}
 
 	if (!active) {

Index: combobox.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/combobox.c,v
retrieving revision 1.1.2.23
retrieving revision 1.1.2.23.2.1
diff -u -d -r1.1.2.23 -r1.1.2.23.2.1
--- combobox.c	10 Apr 2011 17:19:05 -0000	1.1.2.23
+++ combobox.c	29 Nov 2011 00:15:24 -0000	1.1.2.23.2.1
@@ -203,14 +203,14 @@
 	if (gtk_combo_box_get_active_iter(combobox, &iter)) {
 		/* if current text is in list, get prev or next one */
 
-		if (keyval == GDK_Up) {
+		if (keyval == GDK_KEY_Up) {
 			gchar *text = gtk_combo_box_get_active_text(combobox);
 			if (!text)
 				text = gtk_editable_get_chars(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(combobox))),0,-1);
 			valid = gtkut_tree_model_text_iter_prev(model, &iter, text);
 			g_free(text);
 		} else
-		if (keyval == GDK_Down)
+		if (keyval == GDK_KEY_Down)
 			valid = gtk_tree_model_iter_next(model, &iter);
 
 		if (valid)
@@ -219,10 +219,10 @@
 	} else {
 		/* current text is not in list, get first or next one */
 
-		if (keyval == GDK_Up)
+		if (keyval == GDK_KEY_Up)
 			valid = gtkut_tree_model_get_iter_last(model, &iter);
 		else
-		if (keyval == GDK_Down)
+		if (keyval == GDK_KEY_Down)
 			valid = gtk_tree_model_get_iter_first(model, &iter);
 
 		if (valid)

Index: icon_legend.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/icon_legend.c,v
retrieving revision 1.1.2.19
retrieving revision 1.1.2.19.2.1
diff -u -d -r1.1.2.19 -r1.1.2.19.2.1
--- icon_legend.c	16 Feb 2011 07:16:20 -0000	1.1.2.19
+++ icon_legend.c	29 Nov 2011 00:15:25 -0000	1.1.2.19.2.1
@@ -184,7 +184,7 @@
 
 static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event)
 {
-	if (event && event->keyval == GDK_Escape) {
+	if (event && event->keyval == GDK_KEY_Escape) {
 		legend_close();
 	}
 	return FALSE;

Index: gtkshruler.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkshruler.h,v
retrieving revision 1.1.4.9
retrieving revision 1.1.4.9.2.1
diff -u -d -r1.1.4.9 -r1.1.4.9.2.1
--- gtkshruler.h	10 Apr 2011 17:19:05 -0000	1.1.4.9
+++ gtkshruler.h	29 Nov 2011 00:15:25 -0000	1.1.4.9.2.1
@@ -1,58 +1,79 @@
-/* GTKSHRuler
- * Copyright (C) 2000-2011 Alfons Hoogervorst & The Claws Mail Team
+/* LIBGTK - The GTK Library
+ * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * This library is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 3 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __GTK_SHRULER_H__
 #define __GTK_SHRULER_H__
 
+#include "gtkunit.h"
 
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define GTK_SHRULER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), gtk_shruler_get_type (), GtkSHRuler))
-#define GTK_SHRULER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), gtk_shruler_get_type (), GtkSHRulerClass))
-#define GTK_IS_SHRULER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), gtk_shruler_get_type ()))
+G_BEGIN_DECLS
 
+#define GTK_TYPE_SHRULER            (gtk_shruler_get_type ())
+#define GTK_SHRULER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SHRULER, GtkSHRuler))
+#define GTK_SHRULER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SHRULER, GtkSHRulerClass))
+#define GTK_IS_SHRULER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SHRULER))
+#define GTK_IS_SHRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SHRULER))
+#define GTK_SHRULER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SHRULER, GtkSHRulerClass))
 
 typedef struct _GtkSHRuler        GtkSHRuler;
 typedef struct _GtkSHRulerClass   GtkSHRulerClass;
 
 struct _GtkSHRuler
 {
-	GtkHRuler ruler;
+  GtkWidget  parent_instance;
 };
 
 struct _GtkSHRulerClass
 {
- 	GtkHRulerClass parent_class;
+  GtkWidgetClass  parent_class;
+
+  /* Padding for future expansion */
+  void (*_gtk_reserved1) (void);
+  void (*_gtk_reserved2) (void);
+  void (*_gtk_reserved3) (void);
+  void (*_gtk_reserved4) (void);
 };
 
 
-GType      gtk_shruler_get_type (void);
-GtkWidget* gtk_shruler_new      (void);
+GType       gtk_shruler_get_type            (void) G_GNUC_CONST;
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+GtkWidget * gtk_shruler_new                 (GtkOrientation  orientation);
+
+void        gtk_shruler_add_track_widget    (GtkSHRuler      *ruler,
+                                            GtkWidget      *widget);
+void        gtk_shruler_remove_track_widget (GtkSHRuler      *ruler,
+                                            GtkWidget      *widget);
+
+void        gtk_shruler_set_unit            (GtkSHRuler      *ruler,
+                                            GtkCMUnit        unit);
+GtkCMUnit     gtk_shruler_get_unit            (GtkSHRuler      *ruler);
+void        gtk_shruler_set_position        (GtkSHRuler      *ruler,
+                                            gdouble         position);
+gdouble     gtk_shruler_get_position        (GtkSHRuler      *ruler);
+void        gtk_shruler_set_range           (GtkSHRuler      *ruler,
+                                            gdouble         lower,
+                                            gdouble         upper,
+                                            gdouble         max_size);
+void        gtk_shruler_get_range           (GtkSHRuler      *ruler,
+                                            gdouble        *lower,
+                                            gdouble        *upper,
+                                            gdouble        *max_size);
 
+G_END_DECLS
 
 #endif /* __GTK_SHRULER_H__ */

Index: colorlabel.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/colorlabel.c,v
retrieving revision 1.2.2.33
retrieving revision 1.2.2.33.2.1
diff -u -d -r1.2.2.33 -r1.2.2.33.2.1
--- colorlabel.c	10 Apr 2011 17:19:04 -0000	1.2.2.33
+++ colorlabel.c	29 Nov 2011 00:15:24 -0000	1.2.2.33.2.1
@@ -189,29 +189,41 @@
 }
 
 static gboolean colorlabel_drawing_area_expose_event_cb
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	(GtkWidget *widget, GdkEventExpose *expose, gpointer data)
+#else
+	(GtkWidget *widget, cairo_t *cr, gpointer data)
+#endif
 {
-	GdkDrawable *drawable = widget->window;
+#if !GTK_CHECK_VERSION(3, 0, 0)
+	cairo_t *cr;
+	GdkWindow *drawable = gtk_widget_get_window(widget);
+#endif
+	GtkAllocation allocation;
 	gulong c = (gulong) GPOINTER_TO_INT(data);
 	GdkColor color;
-	cairo_t *cr;
 
 	INTCOLOR_TO_GDKCOLOR(c, color)
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	gdk_colormap_alloc_color(gtk_widget_get_colormap(widget), &color, FALSE, TRUE);
-
 	cr = gdk_cairo_create(drawable);
+#endif
+	gtk_widget_get_allocation(widget, &allocation);
+
 	cairo_set_source_rgb(cr, 0., 0., 0.);
 	cairo_rectangle(cr, 0, 0,
-	    widget->allocation.width - 1,
-	    widget->allocation.height - 1);
+	    allocation.width - 1,
+	    allocation.height - 1);
 	cairo_stroke(cr);
 	gdk_cairo_set_source_color(cr, &color);
 	cairo_rectangle(cr, 1, 1,
-	    widget->allocation.width - 2,
-	    widget->allocation.height - 2);
+	    allocation.width - 2,
+	    allocation.height - 2);
 	cairo_fill(cr);
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cairo_destroy(cr);
+#endif
 	
 	return FALSE;
 }
@@ -229,11 +241,19 @@
 			 (CL(g) << (gulong)  8) | \
 			 (CL(b)))
 
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	g_signal_connect(G_OBJECT(widget), "expose_event", 
 			 G_CALLBACK
 			   	(colorlabel_drawing_area_expose_event_cb),
 			 GINT_TO_POINTER
 			   	((gint)CR(color.red, color.green, color.blue)));
+#else
+	g_signal_connect(G_OBJECT(widget), "draw", 
+			 G_CALLBACK
+			   	(colorlabel_drawing_area_expose_event_cb),
+			 GINT_TO_POINTER
+			   	((gint)CR(color.red, color.green, color.blue)));
+#endif
 
 	return widget;
 }
@@ -332,7 +352,7 @@
 	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 4);
 	if (color_index < 9) {
-		accel = gtk_accelerator_get_label(GDK_1+color_index, GDK_CONTROL_MASK);
+		accel = gtk_accelerator_get_label(GDK_KEY_1+color_index, GDK_CONTROL_MASK);
 		label = gtk_label_new(accel);
 		gtk_widget_show(label);
 		gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);

Index: gtkshruler.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/gtkshruler.c,v
retrieving revision 1.1.4.16
retrieving revision 1.1.4.16.2.1
diff -u -d -r1.1.4.16 -r1.1.4.16.2.1
--- gtkshruler.c	10 Apr 2011 17:19:05 -0000	1.1.4.16
+++ gtkshruler.c	29 Nov 2011 00:15:25 -0000	1.1.4.16.2.1
@@ -1,181 +1,1045 @@
-/* GtkSHRuler
- *
- *  Copyright (C) 2000-2011 Alfons Hoogervorst & The Claws Mail Team
+/* LIBGTK - The GTK Library
+ * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * This library is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
[...1141 lines suppressed...]
+
+  return layout;
+}
+
+static PangoLayout *
+gtk_shruler_get_layout (GtkWidget   *widget,
+                       const gchar *text)
+{
+  GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
+
+  if (priv->layout)
+    {
+      pango_layout_set_text (priv->layout, text, -1);
+      return priv->layout;
+    }
+
+  priv->layout = gtk_shruler_create_layout (widget, text);
+
+  return priv->layout;
 }

Index: gtkcmclist.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/gtkcmclist.c,v
retrieving revision 1.1.2.15
retrieving revision 1.1.2.15.2.1
diff -u -d -r1.1.2.15 -r1.1.2.15.2.1
--- gtkcmclist.c	20 Dec 2010 13:17:42 -0000	1.1.2.15
+++ gtkcmclist.c	29 Nov 2011 00:15:24 -0000	1.1.2.15.2.1
@@ -30,11 +30,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-/* We know this file uses some deprecated stuff. */
-#undef G_DISABLE_DEPRECATED
-#undef GTK_DISABLE_DEPRECATED
-#undef GDK_DISABLE_DEPRECATED
-
 #include <gtk/gtk.h>
 #include "claws-marshal.h"
 #include "gtkcmclist.h"
[...2378 lines suppressed...]
-      break;
-    case GTK_CMCLIST_DRAG_INTO:
-      gdk_draw_rectangle (clist->clist_window, clist->xor_gc, FALSE, 0, y,
-			  clist->clist_window_width - 1, clist->row_height);
-      break;
-    }
-}
-
 void
 gtk_cmclist_set_reorderable (GtkCMCList *clist, 
 			   gboolean  reorderable)
@@ -7877,7 +7729,7 @@
   if (button < MAX_BUTTON)
     {
       if (gdk_display_pointer_is_grabbed (gtk_widget_get_display (GTK_WIDGET (clist))) || 
-	  gtkut_widget_has_grab (GTK_WIDGET(clist)))
+	  gtk_widget_has_grab (GTK_WIDGET(clist)))
 	{
 	  remove_grab (clist);
 	  clist->drag_button = 0;

Index: gtkcmoptionmenu.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/gtkcmoptionmenu.c,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.6.2.1
diff -u -d -r1.1.2.6 -r1.1.2.6.2.1
--- gtkcmoptionmenu.c	10 Apr 2011 17:19:05 -0000	1.1.2.6
+++ gtkcmoptionmenu.c	29 Nov 2011 00:15:25 -0000	1.1.2.6.2.1
@@ -255,7 +255,7 @@
 				G_CALLBACK (gtk_cmoption_menu_calc_size),
 				option_menu);
 
-      if (GTK_WIDGET (option_menu)->parent)
+      if (gtk_widget_get_parent (GTK_WIDGET (option_menu)))
 	gtk_widget_queue_resize (GTK_WIDGET (option_menu));
 
       gtk_cmoption_menu_update_contents (option_menu);
@@ -271,7 +271,8 @@
 
   if (option_menu->menu)
     {
-      if (GTK_MENU_SHELL (option_menu->menu)->active)
+      if (option_menu->menu_item ==
+	gtk_menu_get_active (GTK_MENU (option_menu->menu)))
 	gtk_menu_shell_cancel (GTK_MENU_SHELL (option_menu->menu));
       
       gtk_menu_detach (GTK_MENU (option_menu->menu));
@@ -310,6 +311,8 @@
 gtk_cmoption_menu_get_history (GtkCMOptionMenu *option_menu)
 {
   GtkWidget *active_widget;
+  GList *list;
+  gint index;
   
   cm_return_val_if_fail (GTK_IS_CMOPTION_MENU (option_menu), -1);
 
@@ -318,8 +321,14 @@
       active_widget = gtk_menu_get_active (GTK_MENU (option_menu->menu));
 
       if (active_widget)
-	return g_list_index (GTK_MENU_SHELL (option_menu->menu)->children,
-                             active_widget);
+        {
+	list = gtk_container_get_children (GTK_CONTAINER
+		(GTK_MENU_SHELL (option_menu->menu)));
+	index = g_list_index (list, active_widget);
+	g_list_free (list);
+
+	return index;
+        }
       else
 	return -1;
     }
@@ -419,26 +428,32 @@
   GtkCMOptionMenu *option_menu = GTK_CMOPTION_MENU (widget);
   GtkCMOptionMenuProps props;
   gint tmp;
+  GtkWidget *child;
   GtkRequisition child_requisition = { 0, 0 };
+  GtkStyle *style;
+  gint border_width;
       
   gtk_cmoption_menu_get_props (option_menu, &props);
  
-  if (GTK_BIN (option_menu)->child && gtkut_widget_get_visible (GTK_BIN (option_menu)->child))
+  child = gtk_bin_get_child (GTK_BIN (option_menu));
+  if (child && gtk_widget_get_visible (child))
     {
-      gtk_widget_size_request (GTK_BIN (option_menu)->child, &child_requisition);
+      gtk_widget_size_request (child, &child_requisition);
 
       requisition->width += child_requisition.width;
       requisition->height += child_requisition.height;
     }
-  
-  requisition->width = ((GTK_CONTAINER (widget)->border_width +
-			 GTK_WIDGET (widget)->style->xthickness + props.focus_pad) * 2 +
+ 
+  border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
+  style = gtk_widget_get_style (widget);
+  requisition->width = ((border_width +
+			 style->xthickness + props.focus_pad) * 2 +
 			MAX (child_requisition.width, option_menu->width) +
  			props.indicator_size.width +
  			props.indicator_spacing.left + props.indicator_spacing.right +
 			CHILD_LEFT_SPACING + CHILD_RIGHT_SPACING + props.focus_width * 2);
-  requisition->height = ((GTK_CONTAINER (widget)->border_width +
-			  GTK_WIDGET (widget)->style->ythickness + props.focus_pad) * 2 +
+  requisition->height = ((border_width +
+			  style->ythickness + props.focus_pad) * 2 +
 			 MAX (child_requisition.height, option_menu->height) +
 			 CHILD_TOP_SPACING + CHILD_BOTTOM_SPACING + props.focus_width * 2);
 
@@ -452,28 +467,31 @@
 			       GtkAllocation *allocation)
 {
   GtkWidget *child;
+  GtkStyle *style;
   GtkButton *button = GTK_BUTTON (widget);
-  GtkAllocation child_allocation;
+  GtkAllocation child_allocation, widget_allocation;
   GtkCMOptionMenuProps props;
   gint border_width;
     
   gtk_cmoption_menu_get_props (GTK_CMOPTION_MENU (widget), &props);
-  border_width = GTK_CONTAINER (widget)->border_width;
+  border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
 
-  widget->allocation = *allocation;
-  if (gtkut_widget_get_realized (widget))
-    gdk_window_move_resize (button->event_window,
+  gtk_widget_set_allocation (widget, allocation);
+  if (gtk_widget_get_realized (widget))
+	gdk_window_move_resize (gtk_button_get_event_window (button),
 			    allocation->x + border_width, allocation->y + border_width,
 			    allocation->width - border_width * 2, allocation->height - border_width * 2);
 
-  child = GTK_BIN (widget)->child;
-  if (child && gtkut_widget_get_visible (child))
+  child = gtk_bin_get_child (GTK_BIN (widget));
+  if (child && gtk_widget_get_visible (child))
     {
-      gint xthickness = GTK_WIDGET (widget)->style->xthickness;
-      gint ythickness = GTK_WIDGET (widget)->style->ythickness;
+      style = gtk_widget_get_style (widget);
+      gint xthickness = style->xthickness;
+      gint ythickness = style->ythickness;
       
-      child_allocation.x = widget->allocation.x + border_width + xthickness + props.focus_width + props.focus_pad + CHILD_LEFT_SPACING;
-      child_allocation.y = widget->allocation.y + border_width + ythickness + props.focus_width + props.focus_pad + CHILD_TOP_SPACING;
+      gtk_widget_get_allocation (widget, &widget_allocation);
+      child_allocation.x = widget_allocation.x + border_width + xthickness + props.focus_width + props.focus_pad + CHILD_LEFT_SPACING;
+      child_allocation.y = widget_allocation.y + border_width + ythickness + props.focus_width + props.focus_pad + CHILD_TOP_SPACING;
       child_allocation.width = MAX (1, allocation->width - (border_width + xthickness + props.focus_width + props.focus_pad) * 2 -
 				    props.indicator_size.width - props.indicator_spacing.left - props.indicator_spacing.right -
 				    CHILD_LEFT_SPACING - CHILD_RIGHT_SPACING);
@@ -491,7 +509,10 @@
 gtk_cmoption_menu_paint (GtkWidget    *widget,
 		       GdkRectangle *area)
 {
+  GtkAllocation allocation;
+  GtkStyle *style;
   GdkRectangle button_area;
+  GdkWindow *window;
   GtkCMOptionMenuProps props;
   gint border_width;
   gint tab_x;
@@ -499,17 +520,18 @@
   cm_return_if_fail (GTK_IS_CMOPTION_MENU (widget));
   cm_return_if_fail (area != NULL);
 
-  if (gtkut_widget_is_drawable (widget))
+  if (gtk_widget_is_drawable (widget))
     {
-      border_width = GTK_CONTAINER (widget)->border_width;
+      gtk_widget_get_allocation (widget, &allocation);
+      border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
       gtk_cmoption_menu_get_props (GTK_CMOPTION_MENU (widget), &props);
 
-      button_area.x = widget->allocation.x + border_width;
-      button_area.y = widget->allocation.y + border_width;
-      button_area.width = widget->allocation.width - 2 * border_width;
-      button_area.height = widget->allocation.height - 2 * border_width;
+      button_area.x = allocation.x + border_width;
+      button_area.y = allocation.y + border_width;
+      button_area.width = allocation.width - 2 * border_width;
+      button_area.height = allocation.height - 2 * border_width;
 
-      if (!props.interior_focus && gtkut_widget_has_focus (widget))
+      if (!props.interior_focus && gtk_widget_has_focus (widget))
 	{
 	  button_area.x += props.focus_width + props.focus_pad;
 	  button_area.y += props.focus_width + props.focus_pad;
@@ -517,38 +539,40 @@
 	  button_area.height -= 2 * (props.focus_width + props.focus_pad);
 	}
       
-      gtk_paint_box (widget->style, widget->window,
-		     gtkut_widget_get_state (widget), GTK_SHADOW_OUT,
+      style = gtk_widget_get_style (widget);
+      window = gtk_widget_get_window (widget);
+      gtk_paint_box (style, window,
+		     gtk_widget_get_state (widget), GTK_SHADOW_OUT,
 		     area, widget, "optionmenu",
 		     button_area.x, button_area.y,
 		     button_area.width, button_area.height);
       
       if (gtk_widget_get_direction (GTK_WIDGET (widget)) == GTK_TEXT_DIR_RTL) 
 	tab_x = button_area.x + props.indicator_spacing.right + 
-	  widget->style->xthickness;
+	  style->xthickness;
       else
 	tab_x = button_area.x + button_area.width - 
 	  props.indicator_size.width - props.indicator_spacing.right -
-	  widget->style->xthickness;
+	  style->xthickness;
 
-      gtk_paint_tab (widget->style, widget->window,
-		     gtkut_widget_get_state (widget), GTK_SHADOW_OUT,
+      gtk_paint_tab (style, window,
+		     gtk_widget_get_state (widget), GTK_SHADOW_OUT,
 		     area, widget, "optionmenutab",
 		     tab_x,
 		     button_area.y + (button_area.height - props.indicator_size.height) / 2,
 		     props.indicator_size.width, props.indicator_size.height);
       
-      if (gtkut_widget_has_focus (widget))
+      if (gtk_widget_has_focus (widget))
 	{
 	  if (props.interior_focus)
 	    {
-	      button_area.x += widget->style->xthickness + props.focus_pad;
-	      button_area.y += widget->style->ythickness + props.focus_pad;
-	      button_area.width -= 2 * (widget->style->xthickness + props.focus_pad) +
+	      button_area.x += style->xthickness + props.focus_pad;
+	      button_area.y += style->ythickness + props.focus_pad;
+	      button_area.width -= 2 * (style->xthickness + props.focus_pad) +
 		      props.indicator_spacing.left +
 		      props.indicator_spacing.right +
 		      props.indicator_size.width;
-	      button_area.height -= 2 * (widget->style->ythickness + props.focus_pad);
+	      button_area.height -= 2 * (style->ythickness + props.focus_pad);
 	      if (gtk_widget_get_direction (GTK_WIDGET (widget)) == GTK_TEXT_DIR_RTL) 
 		button_area.x += props.indicator_spacing.left +
 		  props.indicator_spacing.right +
@@ -562,7 +586,7 @@
 	      button_area.height += 2 * (props.focus_width + props.focus_pad);
 	    }
 	    
-	  gtk_paint_focus (widget->style, widget->window, gtkut_widget_get_state (widget),
+	  gtk_paint_focus (style, window, gtk_widget_get_state (widget),
 			   area, widget, "button",
 			   button_area.x, 
 			   button_area.y, 
@@ -576,10 +600,11 @@
 gtk_cmoption_menu_expose (GtkWidget      *widget,
 			GdkEventExpose *event)
 {
+  GtkWidget *child;
   cm_return_val_if_fail (GTK_IS_CMOPTION_MENU (widget), FALSE);
   cm_return_val_if_fail (event != NULL, FALSE);
 
-  if (gtkut_widget_is_drawable (widget))
+  if (gtk_widget_is_drawable (widget))
     {
       gtk_cmoption_menu_paint (widget, &event->area);
 
@@ -618,9 +643,10 @@
       if (remove_child)
 	gtk_cmoption_menu_remove_contents (GTK_CMOPTION_MENU (widget));
 #else
-      if (GTK_BIN (widget)->child)
+      child = gtk_bin_get_child (GTK_BIN (widget));
+      if (child)
 	gtk_container_propagate_expose (GTK_CONTAINER (widget),
-					GTK_BIN (widget)->child,
+					child,
 					event);
 #endif /* 0 */
     }
@@ -670,8 +696,8 @@
 
   switch (event->keyval)
     {
-    case GDK_KP_Space:
-    case GDK_space:
+    case GDK_KEY_KP_Space:
+    case GDK_KEY_space:
       gtk_cmoption_menu_remove_contents (option_menu);
       gtk_menu_popup (GTK_MENU (option_menu->menu), NULL, NULL,
 		      gtk_cmoption_menu_position, option_menu,
@@ -708,12 +734,12 @@
 {
   if (option_menu->menu)
     {
-      GList *children = GTK_MENU_SHELL (option_menu->menu)->children;
+      GList *children = gtk_container_get_children (GTK_CONTAINER (GTK_MENU_SHELL (option_menu->menu)));
       gint index = 0;
 
       while (children)
 	{
-	  if (gtkut_widget_get_sensitive (children->data))
+	  if (gtk_widget_get_sensitive (children->data))
 	    {
 	      gtk_cmoption_menu_set_history (option_menu, index);
 	      return;
@@ -722,6 +748,8 @@
 	  children = children->next;
 	  index++;
 	}
+
+	g_list_free (children);
     }
 }
 
@@ -730,17 +758,17 @@
 				       GtkStateType    previous_state,
 				       GtkCMOptionMenu  *option_menu)
 {
-  GtkWidget *child = GTK_BIN (option_menu)->child;
+  GtkWidget *child = gtk_bin_get_child (GTK_BIN (option_menu));
 
-  if (child && gtkut_widget_get_sensitive (child) != gtkut_widget_is_sensitive (widget))
-    gtk_widget_set_sensitive (child, gtkut_widget_is_sensitive (widget));
+  if (child && gtk_widget_get_sensitive (child) != gtk_widget_is_sensitive (widget))
+    gtk_widget_set_sensitive (child, gtk_widget_is_sensitive (widget));
 }
 
 static void
 gtk_cmoption_menu_item_destroy_cb (GtkWidget     *widget,
 				 GtkCMOptionMenu *option_menu)
 {
-  GtkWidget *child = GTK_BIN (option_menu)->child;
+  GtkWidget *child = gtk_bin_get_child (GTK_BIN (option_menu));
 
   if (child)
     {
@@ -758,6 +786,7 @@
 {
   GtkWidget *child;
   GtkRequisition child_requisition;
+  GtkAllocation allocation;
 
   cm_return_if_fail (GTK_IS_CMOPTION_MENU (option_menu));
 
@@ -771,10 +800,10 @@
       if (option_menu->menu_item)
 	{
 	  g_object_ref (option_menu->menu_item);
-	  child = GTK_BIN (option_menu->menu_item)->child;
+	  child = gtk_bin_get_child (GTK_BIN (option_menu->menu_item));
 	  if (child)
 	    {
-	      if (!gtkut_widget_is_sensitive (option_menu->menu_item))
+	      if (!gtk_widget_is_sensitive (option_menu->menu_item))
 		gtk_widget_set_sensitive (child, FALSE);
 	      gtk_widget_reparent (child, GTK_WIDGET (option_menu));
 	    }
@@ -785,10 +814,11 @@
 			    G_CALLBACK (gtk_cmoption_menu_item_destroy_cb), option_menu);
 
 	  gtk_widget_size_request (child, &child_requisition);
+	  gtk_widget_get_allocation (GTK_WIDGET (option_menu), &allocation);
 	  gtk_widget_size_allocate (GTK_WIDGET (option_menu),
-				    &(GTK_WIDGET (option_menu)->allocation));
+				    &allocation);
 
-	  if (gtkut_widget_is_drawable (GTK_WIDGET(option_menu)))
+	  if (gtk_widget_is_drawable (GTK_WIDGET(option_menu)))
 	    gtk_widget_queue_draw (GTK_WIDGET (option_menu));
 	}
 
@@ -806,7 +836,7 @@
 
   if (option_menu->menu_item)
     {
-      child = GTK_BIN (option_menu)->child;
+      child = gtk_bin_get_child (GTK_BIN (option_menu));
   
       if (child)
 	{
@@ -843,15 +873,15 @@
 
   if (option_menu->menu)
     {
-      children = GTK_MENU_SHELL (option_menu->menu)->children;
+      children = gtk_container_get_children (GTK_CONTAINER (GTK_MENU_SHELL (option_menu->menu)));
       while (children)
 	{
 	  child = children->data;
 	  children = children->next;
 
-	  if (gtkut_widget_get_visible (child))
+	  if (gtk_widget_get_visible (child))
 	    {
-	      GtkWidget *inner = GTK_BIN (child)->child;
+	      GtkWidget *inner = gtk_bin_get_child (GTK_BIN (child));
 
 	      if (inner)
 		{
@@ -862,6 +892,8 @@
 		}
 	    }
 	}
+
+	g_list_free(children);
     }
 
   if (old_width != option_menu->width || old_height != option_menu->height)
@@ -880,7 +912,8 @@
   GtkWidget *child;
   GtkWidget *widget;
   GtkRequisition requisition;
-  GList *children;
+  GtkAllocation allocation;
+  GList *children, *cur;
   gint screen_width;
   gint menu_xpos;
   gint menu_ypos;
@@ -895,10 +928,11 @@
   menu_width = requisition.width;
 
   active = gtk_menu_get_active (GTK_MENU (option_menu->menu));
-  gdk_window_get_origin (widget->window, &menu_xpos, &menu_ypos);
+  gdk_window_get_origin (gtk_widget_get_window (widget), &menu_xpos, &menu_ypos);
 
-  menu_xpos += widget->allocation.x;
-  menu_ypos += widget->allocation.y + widget->allocation.height / 2 - 2;
+  gtk_widget_get_allocation (widget, &allocation);
+  menu_xpos += allocation.x;
+  menu_ypos += allocation.y + allocation.height / 2 - 2;
 
   if (active != NULL)
     {
@@ -906,25 +940,25 @@
       menu_ypos -= requisition.height / 2;
     }
 
-  children = GTK_MENU_SHELL (option_menu->menu)->children;
-  while (children)
+  children = gtk_container_get_children (GTK_CONTAINER (GTK_MENU_SHELL (option_menu->menu)));
+  for (cur = children; cur && cur->data; cur = cur->next)
     {
-      child = children->data;
+      child = cur->data;
 
       if (active == child)
 	break;
 
-      if (gtkut_widget_get_visible (child))
+      if (gtk_widget_get_visible (child))
 	{
 	  gtk_widget_get_child_requisition (child, &requisition);
 	  menu_ypos -= requisition.height;
 	}
-
-      children = children->next;
     }
 
+  g_list_free (children);
+
   if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
-    menu_xpos = menu_xpos + widget->allocation.width - menu_width;
+	menu_xpos = menu_xpos + allocation.width - menu_width;
 
   /* Clamp the position on screen */
   screen_width = gdk_screen_get_width (gtk_widget_get_screen (widget));
@@ -968,7 +1002,7 @@
   container = GTK_CONTAINER (widget);
 
   gtk_widget_hide (widget);
-  gtk_container_foreach (container, (GtkCallback) gtk_widget_hide_all, NULL);
+  gtk_container_foreach (container, (GtkCallback) gtk_widget_hide, NULL);
 }
 
 static gboolean
@@ -987,14 +1021,15 @@
   gint index;
   gint n_children;
   gint index_dir;
-  GList *l;
+  GList *l, *children;
   GtkMenuItem *item;
     
   index = gtk_cmoption_menu_get_history (option_menu);
 
   if (index != -1)
     {
-      n_children = g_list_length (GTK_MENU_SHELL (option_menu->menu)->children);
+      children = gtk_container_get_children (GTK_CONTAINER (GTK_MENU_SHELL (option_menu->menu)));
+      n_children = g_list_length (children);
       
       if (event->direction == GDK_SCROLL_UP)
 	index_dir = -1;
@@ -1011,10 +1046,10 @@
 	  if (index >= n_children)
 	    break;
 
-	  l = g_list_nth (GTK_MENU_SHELL (option_menu->menu)->children, index);
+	  l = g_list_nth (children, index);
 	  item = GTK_MENU_ITEM (l->data);
-	  if (gtkut_widget_get_visible (GTK_WIDGET(item)) && 
-	      gtkut_widget_is_sensitive (GTK_WIDGET(item)))
+	  if (gtk_widget_get_visible (GTK_WIDGET(item)) && 
+	      gtk_widget_is_sensitive (GTK_WIDGET(item)))
 	    {
 	      gtk_cmoption_menu_set_history (option_menu, index);
 	      gtk_menu_item_activate (GTK_MENU_ITEM (item));
@@ -1022,6 +1057,8 @@
 	    }
 	      
 	}
+      
+	g_list_free (children);
     }
 
   return TRUE;

Index: colorsel.c
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/colorsel.c,v
retrieving revision 1.1.4.15
retrieving revision 1.1.4.15.2.1
diff -u -d -r1.1.4.15 -r1.1.4.15.2.1
--- colorsel.c	16 Feb 2011 07:16:19 -0000	1.1.4.15
+++ colorsel.c	29 Nov 2011 00:15:24 -0000	1.1.4.15.2.1
@@ -40,11 +40,11 @@
 						GdkEventKey *event,
 						gpointer data)
 {
-	if (event && event->keyval == GDK_Escape) {
+	if (event && event->keyval == GDK_KEY_Escape) {
 		*((gint *) data) = 1;
 		gtk_main_quit();
 		return TRUE;
-	} else if (event && event->keyval == GDK_Return) {
+	} else if (event && event->keyval == GDK_KEY_Return) {
 		*((gint *) data) = 0;
 		gtk_main_quit();
 		return FALSE;
@@ -56,6 +56,7 @@
 {
 	GdkColor color;
 	GtkColorSelectionDialog *color_dialog;
+	GtkWidget *ok_button, *cancel_button;
 	gint result;
 
 	color_dialog = GTK_COLOR_SELECTION_DIALOG(gtk_color_selection_dialog_new(title));
@@ -63,10 +64,15 @@
 	gtk_window_set_resizable(GTK_WINDOW(color_dialog), FALSE);
 	manage_window_set_transient(GTK_WINDOW(color_dialog));
 
-	g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(color_dialog)->ok_button),
+	g_object_get(color_dialog,
+		"ok-button", &ok_button,
+		"cancel-button", &cancel_button,
+		NULL);
+
+	g_signal_connect(G_OBJECT(ok_button),
 			 "clicked", 
 			 G_CALLBACK(quote_colors_set_dialog_ok), &result);
-	g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(color_dialog)->cancel_button),
+	g_signal_connect(G_OBJECT(cancel_button),
 			 "clicked", 
 			 G_CALLBACK(quote_colors_set_dialog_cancel), &result);
 	g_signal_connect(G_OBJECT(color_dialog), "key_press_event",
@@ -74,14 +80,15 @@
 
 	/* preselect the previous color in the color selection dialog */
 	gtkut_convert_int_to_gdk_color(rgbvalue, &color);
-	gtk_color_selection_set_current_color
-		(GTK_COLOR_SELECTION(color_dialog->colorsel), &color);
+	gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(
+		gtk_color_selection_dialog_get_color_selection(color_dialog)), &color);
 
 	gtk_widget_show(GTK_WIDGET(color_dialog));
 	gtk_main();
 
 	if (result == 0) {
-		gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(color_dialog->colorsel), &color);
+		gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(
+			gtk_color_selection_dialog_get_color_selection(color_dialog)), &color);
 		rgbvalue = gtkut_convert_gdk_color_to_int(&color);
 	}
 

Index: gtkcmclist.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/gtkcmclist.h,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.6.6.1
diff -u -d -r1.1.2.6 -r1.1.2.6.6.1
--- gtkcmclist.h	2 Jan 2009 10:51:34 -0000	1.1.2.6
+++ gtkcmclist.h	29 Nov 2011 00:15:24 -0000	1.1.2.6.6.1
@@ -206,12 +206,7 @@
   GtkAdjustment *hadjustment;
   GtkAdjustment *vadjustment;
   
-  /* xor GC for the vertical drag line */
-  GdkGC *xor_gc;
-  
-  /* gc for drawing unselected cells */
-  GdkGC *fg_gc;
-  GdkGC *bg_gc;
+  gint dash_mode;
   
   /* cursor used to indicate dragging */
   GdkCursor *cursor_drag;
@@ -290,10 +285,6 @@
 				 GdkRectangle   *area,
 				 gint            row,
 				 GtkCMCListRow    *clist_row);
-  void   (*draw_drag_highlight) (GtkCMCList        *clist,
-				 GtkCMCListRow     *target_row,
-				 gint             target_row_number,
-				 GtkCMCListDragPos  drag_pos);
   void   (*clear)               (GtkCMCList       *clist);
   void   (*fake_unselect_all)   (GtkCMCList       *clist,
 				 gint            row);

Index: authors.h
===================================================================
RCS file: /home/claws-mail/claws/src/gtk/Attic/authors.h,v
retrieving revision 1.1.2.73
retrieving revision 1.1.2.73.2.1
diff -u -d -r1.1.2.73 -r1.1.2.73.2.1
--- authors.h	31 Aug 2011 16:54:53 -0000	1.1.2.73
+++ authors.h	29 Nov 2011 00:15:24 -0000	1.1.2.73.2.1
@@ -130,6 +130,7 @@
 "Marius Glauser",
 "Thierry Godefroy",
 "Alex Gorbachenko",
+"Bodo Graumann",
 "Yang Guilong",
 "Daniel Gustafson",
 "HIROSHIMA",
@@ -184,6 +185,7 @@
 "David Mehrmann",
 "Christian Mertes",
 "Bram Metsch",
+"Hanno Meyer-Thurow",
 "George Michaelson",
 "Florian Mickler",
 "Neill Miller",
@@ -205,6 +207,7 @@
 "Jens Oberender",
 "Ofer",
 "Ohmasa",
+"Paul Ollis",
 "Fredrik Olofssen",
 "Reza Pakdel",
 "Martin Pool",



More information about the Commits mailing list