[libgda/gtk3] Adaptations to GTK3 API changes



commit f7a1ee9d36981bf92e0c8d20032baa782b571432
Author: Vivien Malerba <malerba gnome-db org>
Date:   Thu Oct 7 22:13:07 2010 +0200

    Adaptations to GTK3 API changes

 control-center/cc-gray-bar.c                       |   40 ++-------
 control-center/dsn-properties-dialog.c             |    1 -
 control-center/gdaui-login-dialog.c                |    1 -
 doc/C/tmpl/gda-repetitive-statement.sgml           |    1 -
 .../data-entries/gdaui-data-cell-renderer-bin.c    |   35 ++++-----
 .../gdaui-data-cell-renderer-boolean.c             |   33 ++++----
 .../data-entries/gdaui-data-cell-renderer-combo.c  |   36 ++++-----
 .../data-entries/gdaui-data-cell-renderer-info.c   |   70 ++++++++--------
 .../gdaui-data-cell-renderer-textual.c             |   33 ++++----
 .../data-entries/gdaui-data-cell-renderer-util.c   |    6 +-
 .../data-entries/gdaui-data-cell-renderer-util.h   |    2 +-
 .../plugins/gdaui-data-cell-renderer-password.c    |   33 ++++----
 .../plugins/gdaui-data-cell-renderer-pict.c        |   33 ++++----
 libgda-ui/data-entries/widget-embedder.c           |   86 ++++++++------------
 libgda-ui/gdaui-raw-form.c                         |    7 +-
 libgda-ui/gdaui-raw-grid.c                         |    7 +-
 libgda-ui/internal/utility.c                       |   24 ------
 tools/browser/auth-dialog.c                        |    3 +-
 .../data-manager/data-manager-perspective.c        |    2 +-
 tools/browser/login-dialog.c                       |    3 +-
 tools/browser/query-exec/query-exec-perspective.c  |    2 +-
 .../schema-browser/schema-browser-perspective.c    |    2 +-
 22 files changed, 183 insertions(+), 277 deletions(-)
---
diff --git a/control-center/cc-gray-bar.c b/control-center/cc-gray-bar.c
index 4b5bf30..0c5e3cd 100644
--- a/control-center/cc-gray-bar.c
+++ b/control-center/cc-gray-bar.c
@@ -42,8 +42,8 @@ static void cc_gray_bar_allocate     (GtkWidget           *widget,
 				      GtkAllocation       *allocation);
 static void cc_gray_bar_paint        (GtkWidget           *widget,
 				      GdkRectangle        *area);
-static gint cc_gray_bar_expose       (GtkWidget           *widget,
-				      GdkEventExpose      *event);
+static gboolean cc_gray_bar_draw     (GtkWidget           *widget,
+				      cairo_t             *cr);
 static void cc_gray_bar_style_set    (GtkWidget           *w,
 				      GtkStyle            *previous_style);
 static void cc_gray_bar_set_property (GObject *object,
@@ -88,7 +88,6 @@ cc_gray_bar_realize (GtkWidget *widget)
 	attributes.window_type = GDK_WINDOW_CHILD;
 	attributes.wclass = GDK_INPUT_OUTPUT;
 	attributes.visual = gtk_widget_get_visual (widget);
-	attributes.colormap = gtk_widget_get_colormap (widget);
 	attributes.event_mask = gtk_widget_get_events (widget)
 		| GDK_BUTTON_MOTION_MASK
 		| GDK_BUTTON_PRESS_MASK
@@ -97,7 +96,7 @@ cc_gray_bar_realize (GtkWidget *widget)
 		| GDK_ENTER_NOTIFY_MASK
 		| GDK_LEAVE_NOTIFY_MASK;
 
-	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
 	GdkWindow *win;
 	win = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
@@ -187,49 +186,28 @@ cc_gray_bar_style_set (GtkWidget *w, GtkStyle *previous_style)
 	GTK_WIDGET_CLASS (parent_class)->style_set (w, previous_style);
 }
 
-static void
-cc_gray_bar_paint (GtkWidget *widget, GdkRectangle *area)
+static gboolean
+cc_gray_bar_draw (GtkWidget *widget, cairo_t *cr)
 {
 	gboolean paintable;
 
 	paintable = gtk_widget_get_app_paintable (widget);
 	if (!paintable) {
 		GtkStyle *style;
-		GdkWindow *win;
 		GtkAllocation alloc;
 		GtkStateType state;
 
 		style = gtk_widget_get_style (widget);
 		state = gtk_widget_get_state (widget);
-		win = gtk_widget_get_window (widget);
 		gtk_widget_get_allocation (widget, &alloc);
-		gtk_paint_flat_box (style, win,
+		gtk_paint_flat_box (style, cr,
 				    state, GTK_SHADOW_NONE,
-				    area, widget, "gnomedbgraybar",
+				    widget, "gnomedbgraybar",
 				    1, 1,
 				    alloc.width - 2,
 				    alloc.height - 2);
 	}
-}
-
-static gboolean
-cc_gray_bar_expose (GtkWidget *widget, GdkEventExpose *event)
-{
-	gboolean drawable;
-	g_return_val_if_fail (widget != NULL, FALSE);
-	g_return_val_if_fail (CC_IS_GRAY_BAR (widget), FALSE);
-	g_return_val_if_fail (event != NULL, FALSE);
-
-	if (event->count > 0)
-		return FALSE;
-	drawable = gtk_widget_is_drawable (widget);
-	if (drawable) {
-		cc_gray_bar_paint (widget, &event->area);
-
-		(* GTK_WIDGET_CLASS (parent_class)->expose_event) (widget, event);
-	}
-
-	return FALSE;
+	return (* GTK_WIDGET_CLASS (parent_class)->draw) (widget, cr);
 }
 
 static void
@@ -256,7 +234,7 @@ cc_gray_bar_class_init (CcGrayBarClass *klass)
 	widget_class->realize       = cc_gray_bar_realize;
 	widget_class->size_request  = cc_gray_bar_size_request;
 	widget_class->size_allocate = cc_gray_bar_allocate;
-	widget_class->expose_event  = cc_gray_bar_expose;
+	widget_class->draw          = cc_gray_bar_draw;
 	widget_class->show_all      = cc_gray_bar_show_all;
 
 	/* add class properties */
diff --git a/control-center/dsn-properties-dialog.c b/control-center/dsn-properties-dialog.c
index f3c94f5..fe272a3 100644
--- a/control-center/dsn-properties-dialog.c
+++ b/control-center/dsn-properties-dialog.c
@@ -113,7 +113,6 @@ dsn_properties_dialog (GtkWindow *parent, const gchar *dsn)
 					      GTK_STOCK_REVERT_TO_SAVED, REVERT_BUTTON,
 					      GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
 					      NULL);
-	gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
 	gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 	gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), TEST_BUTTON, pinfo ? TRUE : FALSE);
 	gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), BROWSE_BUTTON, pinfo ? TRUE : FALSE);
diff --git a/control-center/gdaui-login-dialog.c b/control-center/gdaui-login-dialog.c
index 8966308..7c1edd0 100644
--- a/control-center/gdaui-login-dialog.c
+++ b/control-center/gdaui-login-dialog.c
@@ -112,7 +112,6 @@ gdaui_login_dialog_init (GdauiLoginDialog *dialog, G_GNUC_UNUSED GdauiLoginDialo
 
 	gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
         gtk_box_set_spacing (GTK_BOX (dcontents), 12);
-        gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
         gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 
 	hbox = gtk_hbox_new (FALSE, 12);
diff --git a/doc/C/tmpl/gda-repetitive-statement.sgml b/doc/C/tmpl/gda-repetitive-statement.sgml
index d03af70..d51925a 100644
--- a/doc/C/tmpl/gda-repetitive-statement.sgml
+++ b/doc/C/tmpl/gda-repetitive-statement.sgml
@@ -30,7 +30,6 @@ Execute the same statement several times with different values
 
 </para>
 
- parent_instance: 
 
 <!-- ##### FUNCTION gda_repetitive_statement_new ##### -->
 <para>
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c
index 088aaee..39be074 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c
@@ -41,15 +41,14 @@ static void gdaui_data_cell_renderer_bin_class_init (GdauiDataCellRendererBinCla
 static void gdaui_data_cell_renderer_bin_dispose    (GObject *object);
 static void gdaui_data_cell_renderer_bin_finalize   (GObject *object);
 static void gdaui_data_cell_renderer_bin_render     (GtkCellRenderer            *cell,
-						     GdkWindow                  *window,
+						     cairo_t                    *cr,
 						     GtkWidget                  *widget,
-						     GdkRectangle               *background_area,
-						     GdkRectangle               *cell_area,
-						     GdkRectangle               *expose_area,
+						     const GdkRectangle         *background_area,
+						     const GdkRectangle         *cell_area,
 						     GtkCellRendererState        flags);
 static void gdaui_data_cell_renderer_bin_get_size   (GtkCellRenderer            *cell,
 						     GtkWidget                  *widget,
-						     GdkRectangle               *cell_area,
+						     const GdkRectangle         *cell_area,
 						     gint                       *x_offset,
 						     gint                       *y_offset,
 						     gint                       *width,
@@ -58,8 +57,8 @@ static gboolean gdaui_data_cell_renderer_bin_activate  (GtkCellRenderer
 							GdkEvent                   *event,
 							GtkWidget                  *widget,
 							const gchar                *path,
-							GdkRectangle               *background_area,
-							GdkRectangle               *cell_area,
+							const GdkRectangle         *background_area,
+							const GdkRectangle         *cell_area,
 							GtkCellRendererState        flags);
 
 enum {
@@ -346,7 +345,7 @@ gdaui_data_cell_renderer_bin_new (GdaDataHandler *dh, GType type)
 static void
 gdaui_data_cell_renderer_bin_get_size (GtkCellRenderer *cell,
 				       GtkWidget       *widget,
-				       GdkRectangle    *cell_area,
+				       const GdkRectangle *cell_area,
 				       gint            *x_offset,
 				       gint            *y_offset,
 				       gint            *width,
@@ -359,17 +358,16 @@ gdaui_data_cell_renderer_bin_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_bin_render (GtkCellRenderer      *cell,
-				     GdkWindow            *window,
+				     cairo_t              *cr,
 				     GtkWidget            *widget,
-				     GdkRectangle         *background_area,
-				     GdkRectangle         *cell_area,
-				     GdkRectangle         *expose_area,
+				     const GdkRectangle   *background_area,
+				     const GdkRectangle   *cell_area,
 				     GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererBin *datacell = (GdauiDataCellRendererBin*) cell;
 	GtkCellRendererClass *pixbuf_class = g_type_class_peek (GTK_TYPE_CELL_RENDERER_PIXBUF);
 
-	(pixbuf_class->render) (cell, window, widget, background_area, cell_area, expose_area, flags);
+	(pixbuf_class->render) (cell, cr, widget, background_area, cell_area, flags);
 	
 	if (datacell->priv->to_be_deleted) {
 		GtkStyle *style;
@@ -379,8 +377,7 @@ gdaui_data_cell_renderer_bin_render (GtkCellRenderer      *cell,
 		g_object_get ((GObject*) cell, "xpad", &xpad, NULL);
 
 		gtk_paint_hline (style,
-				 window, GTK_STATE_SELECTED,
-				 cell_area, 
+				 cr, GTK_STATE_SELECTED,
 				 widget,
 				 "hline",
 				 cell_area->x + xpad, cell_area->x + cell_area->width - xpad,
@@ -388,7 +385,7 @@ gdaui_data_cell_renderer_bin_render (GtkCellRenderer      *cell,
 		g_object_unref (style);
 	}
 	if (datacell->priv->invalid)
-		gdaui_data_cell_renderer_draw_invalid_area (window, cell_area);
+		gdaui_data_cell_renderer_draw_invalid_area (cr, cell_area);
 }
 
 static void
@@ -439,9 +436,9 @@ gdaui_data_cell_renderer_bin_activate  (GtkCellRenderer            *cell,
 					GdkEvent                   *event,
 					GtkWidget                  *widget,
 					const gchar                *path,
-					G_GNUC_UNUSED GdkRectangle               *background_area,
-					GdkRectangle               *cell_area,
-					G_GNUC_UNUSED GtkCellRendererState        flags)
+					G_GNUC_UNUSED const GdkRectangle *background_area,
+					const GdkRectangle         *cell_area,
+					G_GNUC_UNUSED GtkCellRendererState flags)
 {
 	GdauiDataCellRendererBin *bincell;
 	GtkTreeModel *model;
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c
index af26411..12ba3ff 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c
@@ -40,15 +40,14 @@ static void gdaui_data_cell_renderer_boolean_class_init (GdauiDataCellRendererBo
 static void gdaui_data_cell_renderer_boolean_dispose    (GObject *object);
 static void gdaui_data_cell_renderer_boolean_finalize   (GObject *object);
 static void gdaui_data_cell_renderer_boolean_render     (GtkCellRenderer            *cell,
-							 GdkWindow                  *window,
+							 cairo_t                    *cr,
 							 GtkWidget                  *widget,
-							 GdkRectangle               *background_area,
-							 GdkRectangle               *cell_area,
-							 GdkRectangle               *expose_area,
+							 const GdkRectangle         *background_area,
+							 const GdkRectangle         *cell_area,
 							 GtkCellRendererState        flags);
 static void gdaui_data_cell_renderer_boolean_get_size   (GtkCellRenderer            *cell,
 							 GtkWidget                  *widget,
-							 GdkRectangle               *cell_area,
+							 const GdkRectangle         *cell_area,
 							 gint                       *x_offset,
 							 gint                       *y_offset,
 							 gint                       *width,
@@ -57,8 +56,8 @@ static gboolean gdaui_data_cell_renderer_boolean_activate  (GtkCellRenderer
 							    GdkEvent                   *event,
 							    GtkWidget                  *widget,
 							    const gchar                *path,
-							    GdkRectangle               *background_area,
-							    GdkRectangle               *cell_area,
+							    const GdkRectangle         *background_area,
+							    const GdkRectangle         *cell_area,
 							    GtkCellRendererState        flags);
 
 enum {
@@ -353,7 +352,7 @@ gdaui_data_cell_renderer_boolean_new (GdaDataHandler *dh, GType type)
 static void
 gdaui_data_cell_renderer_boolean_get_size (GtkCellRenderer *cell,
 					   GtkWidget       *widget,
-					   GdkRectangle    *cell_area,
+					   const GdkRectangle *cell_area,
 					   gint            *x_offset,
 					   gint            *y_offset,
 					   gint            *width,
@@ -366,17 +365,16 @@ gdaui_data_cell_renderer_boolean_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_boolean_render (GtkCellRenderer      *cell,
-					 GdkWindow            *window,
+					 cairo_t              *cr,
 					 GtkWidget            *widget,
-					 GdkRectangle         *background_area,
-					 GdkRectangle         *cell_area,
-					 GdkRectangle         *expose_area,
+					 const GdkRectangle   *background_area,
+					 const GdkRectangle   *cell_area,
 					 GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererBoolean *datacell = GDAUI_DATA_CELL_RENDERER_BOOLEAN (cell);
 	GtkCellRendererClass *toggle_class = g_type_class_peek (GTK_TYPE_CELL_RENDERER_TOGGLE);
 
-	(toggle_class->render) (cell, window, widget, background_area, cell_area, expose_area, flags);
+	(toggle_class->render) (cell, cr, widget, background_area, cell_area, flags);
 
 	if (datacell->priv->to_be_deleted) {
 		GtkStyle *style;
@@ -384,8 +382,7 @@ gdaui_data_cell_renderer_boolean_render (GtkCellRenderer      *cell,
 
 		g_object_get (G_OBJECT(widget), "style", &style, "xpad", &xpad, NULL);
 		gtk_paint_hline (style,
-				 window, GTK_STATE_SELECTED,
-				 cell_area,
+				 cr, GTK_STATE_SELECTED,
 				 widget,
 				 "hline",
 				 cell_area->x + xpad, cell_area->x + cell_area->width - xpad,
@@ -393,7 +390,7 @@ gdaui_data_cell_renderer_boolean_render (GtkCellRenderer      *cell,
 
 	}
 	if (datacell->priv->invalid)
-		gdaui_data_cell_renderer_draw_invalid_area (window, cell_area);
+		gdaui_data_cell_renderer_draw_invalid_area (cr, cell_area);
 }
 
 static gboolean
@@ -401,8 +398,8 @@ gdaui_data_cell_renderer_boolean_activate  (GtkCellRenderer            *cell,
 					    GdkEvent                   *event,
 					    GtkWidget                  *widget,
 					    const gchar                *path,
-					    GdkRectangle               *background_area,
-					    GdkRectangle               *cell_area,
+					    const GdkRectangle         *background_area,
+					    const GdkRectangle         *cell_area,
 					    GtkCellRendererState        flags)
 {
 	gboolean editable;
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-combo.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-combo.c
index 1bb04b2..6e2231a 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-combo.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-combo.c
@@ -47,25 +47,24 @@ static void gdaui_data_cell_renderer_combo_set_property  (GObject *object,
 							  GParamSpec *pspec);
 static void gdaui_data_cell_renderer_combo_get_size   (GtkCellRenderer          *cell,
 						       GtkWidget                *widget,
-						       GdkRectangle             *cell_area,
+						       const GdkRectangle       *cell_area,
 						       gint                     *x_offset,
 						       gint                     *y_offset,
 						       gint                     *width,
 						       gint                     *height);
 static void gdaui_data_cell_renderer_combo_render     (GtkCellRenderer          *cell,
-						       GdkWindow                *window,
+						       cairo_t                  *cr,
 						       GtkWidget                *widget,
-						       GdkRectangle             *background_area,
-						       GdkRectangle             *cell_area,
-						       GdkRectangle             *expose_area,
+						       const GdkRectangle       *background_area,
+						       const GdkRectangle       *cell_area,
 						       GtkCellRendererState      flags);
 
 static GtkCellEditable *gdaui_data_cell_renderer_combo_start_editing (GtkCellRenderer     *cell,
 								      GdkEvent            *event,
 								      GtkWidget           *widget,
 								      const gchar         *path,
-								      GdkRectangle        *background_area,
-								      GdkRectangle        *cell_area,
+								      const GdkRectangle  *background_area,
+								      const GdkRectangle  *cell_area,
 								      GtkCellRendererState flags);
 
 enum {
@@ -458,7 +457,7 @@ gdaui_data_cell_renderer_combo_new (GdauiSet *paramlist, GdauiSetSource *source)
 static void
 gdaui_data_cell_renderer_combo_get_size (GtkCellRenderer *cell,
 					 GtkWidget       *widget,
-					 GdkRectangle    *cell_area,
+					 const GdkRectangle *cell_area,
 					 gint            *x_offset,
 					 gint            *y_offset,
 					 gint            *width,
@@ -490,11 +489,10 @@ gdaui_data_cell_renderer_combo_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_combo_render (GtkCellRenderer      *cell,
-				       GdkWindow            *window,
+				       cairo_t              *cr,
 				       GtkWidget            *widget,
-				       GdkRectangle         *background_area,
-				       GdkRectangle         *cell_area,
-				       GdkRectangle         *expose_area,
+				       const GdkRectangle   *background_area,
+				       const GdkRectangle   *cell_area,
 				       GtkCellRendererState  flags)
 	
 {
@@ -503,7 +501,7 @@ gdaui_data_cell_renderer_combo_render (GtkCellRenderer      *cell,
 
 	/* render the text as for the GtkCellRendererText */
 	GtkCellRendererClass *text_class = g_type_class_peek (GTK_TYPE_CELL_RENDERER_TEXT);
-	(text_class->render) (cell, window, widget, background_area, cell_area, expose_area, flags);
+	(text_class->render) (cell, cr, widget, background_area, cell_area, flags);
 
 	/* render the popdown menu symbol */
 	if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)	{
@@ -533,8 +531,7 @@ gdaui_data_cell_renderer_combo_render (GtkCellRenderer      *cell,
 		g_object_get ((GObject*) cell, "xpad", &xpad, "ypad", &ypad, NULL);
 		
 		gtk_paint_expander (style,
-				    window, state,
-				    cell_area, 
+				    cr, state,
 				    widget,
 				    "expander",
 				    cell_area->x + cell_area->width - xpad - expander_size/2.,
@@ -551,8 +548,7 @@ gdaui_data_cell_renderer_combo_render (GtkCellRenderer      *cell,
 		g_object_get ((GObject*) cell, "xpad", &xpad, NULL);
 
 		gtk_paint_hline (style,
-				 window, GTK_STATE_SELECTED,
-				 cell_area, 
+				 cr, GTK_STATE_SELECTED,
 				 widget,
 				 "hline",
 				 cell_area->x + xpad, cell_area->x + cell_area->width - xpad,
@@ -561,7 +557,7 @@ gdaui_data_cell_renderer_combo_render (GtkCellRenderer      *cell,
 	}
 
 	if (combocell->priv->invalid)
-		gdaui_data_cell_renderer_draw_invalid_area (window, cell_area);
+		gdaui_data_cell_renderer_draw_invalid_area (cr, cell_area);
 }
 
 static void gdaui_data_cell_renderer_combo_editing_done (GtkCellEditable *combo, GdauiDataCellRendererCombo *datacell);
@@ -573,8 +569,8 @@ gdaui_data_cell_renderer_combo_start_editing (GtkCellRenderer     *cell,
 					      G_GNUC_UNUSED GdkEvent            *event,
 					      G_GNUC_UNUSED GtkWidget           *widget,
 					      const gchar         *path,
-					      G_GNUC_UNUSED GdkRectangle        *background_area,
-					      G_GNUC_UNUSED GdkRectangle        *cell_area,
+					      G_GNUC_UNUSED const GdkRectangle        *background_area,
+					      G_GNUC_UNUSED const GdkRectangle        *cell_area,
 					      G_GNUC_UNUSED GtkCellRendererState flags)
 {
 	GdauiDataCellRendererCombo *datacell;
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-info.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-info.c
index 9943583..fdb6cbc 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-info.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-info.c
@@ -42,25 +42,24 @@ static void gdaui_data_cell_renderer_info_dispose    (GObject *object);
 static void gdaui_data_cell_renderer_info_finalize   (GObject *object);
 
 static void gdaui_data_cell_renderer_info_get_size   (GtkCellRenderer            *cell,
-							 GtkWidget                  *widget,
-							 GdkRectangle               *cell_area,
-							 gint                       *x_offset,
-							 gint                       *y_offset,
-							 gint                       *width,
-							 gint                       *height);
+						      GtkWidget                  *widget,
+						      const GdkRectangle         *cell_area,
+						      gint                       *x_offset,
+						      gint                       *y_offset,
+						      gint                       *width,
+						      gint                       *height);
 static void gdaui_data_cell_renderer_info_render     (GtkCellRenderer            *cell,
-							 GdkWindow                  *window,
-							 GtkWidget                  *widget,
-							 GdkRectangle               *background_area,
-							 GdkRectangle               *cell_area,
-							 GdkRectangle               *expose_area,
-							 GtkCellRendererState        flags);
+						      cairo_t                    *cr,
+						      GtkWidget                  *widget,
+						      const GdkRectangle         *background_area,
+						      const GdkRectangle         *cell_area,
+						      GtkCellRendererState        flags);
 static gboolean gdaui_data_cell_renderer_info_activate  (GtkCellRenderer            *cell,
 							    GdkEvent                   *event,
 							    GtkWidget                  *widget,
 							    const gchar                *path,
-							    GdkRectangle               *background_area,
-							    GdkRectangle               *cell_area,
+							    const GdkRectangle         *background_area,
+							    const GdkRectangle         *cell_area,
 							    GtkCellRendererState        flags);
 
 
@@ -327,12 +326,12 @@ gdaui_data_cell_renderer_info_new (GdauiDataStore *store,
 
 static void
 gdaui_data_cell_renderer_info_get_size (GtkCellRenderer *cell,
-					   G_GNUC_UNUSED GtkWidget       *widget,
-					   GdkRectangle    *cell_area,
-					   gint            *x_offset,
-					   gint            *y_offset,
-					   gint            *width,
-					   gint            *height)
+					G_GNUC_UNUSED GtkWidget *widget,
+					const GdkRectangle *cell_area,
+					gint            *x_offset,
+					gint            *y_offset,
+					gint            *width,
+					gint            *height)
 {
 	gint calc_width;
 	gint calc_height;
@@ -367,12 +366,11 @@ gdaui_data_cell_renderer_info_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_info_render (GtkCellRenderer      *cell,
-					 GdkWindow            *window,
-					 GtkWidget            *widget,
-					 G_GNUC_UNUSED GdkRectangle         *background_area,
-					 GdkRectangle         *cell_area,
-					 G_GNUC_UNUSED GdkRectangle         *expose_area,
-					 G_GNUC_UNUSED GtkCellRendererState  flags)
+				      cairo_t              *cr,
+				      GtkWidget            *widget,
+				      G_GNUC_UNUSED const GdkRectangle *background_area,
+				      const GdkRectangle   *cell_area,
+				      G_GNUC_UNUSED GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererInfo *cellinfo = (GdauiDataCellRendererInfo *) cell;
 	gint width, height;
@@ -417,7 +415,7 @@ gdaui_data_cell_renderer_info_render (GtkCellRenderer      *cell,
 	style->bg[GTK_STATE_NORMAL] = *normal;
 	style->bg[GTK_STATE_ACTIVE] = *normal;
 	style->bg[GTK_STATE_PRELIGHT] = *prelight;
-	style = gtk_style_attach (style, window); /* Note that we must use the return value, because this function is documented as sometimes returning a new object. */
+
 	gdaui_data_cell_renderer_info_get_size (cell, widget, cell_area,
 						&x_offset, &y_offset,
 						&width, &height);
@@ -433,13 +431,13 @@ gdaui_data_cell_renderer_info_render (GtkCellRenderer      *cell,
 	state = GTK_STATE_NORMAL;
 
 	gtk_paint_box (style,
-		       window,
+		       cr,
 		       state, GTK_SHADOW_NONE,
-		       cell_area, widget, "cellcheck",
+		       widget, "cellcheck",
 		       cell_area->x + x_offset + xpad,
 		       cell_area->y + y_offset + ypad,
 		       width - 1, height - 1);
-	gtk_style_detach (style);
+
 	g_object_unref (G_OBJECT (style));
 }
 
@@ -447,12 +445,12 @@ gdaui_data_cell_renderer_info_render (GtkCellRenderer      *cell,
 static void mitem_activated_cb (GtkWidget *mitem, GdauiDataCellRendererInfo *cellinfo);
 static gint
 gdaui_data_cell_renderer_info_activate (GtkCellRenderer      *cell,
-					   G_GNUC_UNUSED GdkEvent             *event,
-					   G_GNUC_UNUSED GtkWidget            *widget,
-					   const gchar          *path,
-					   G_GNUC_UNUSED GdkRectangle         *background_area,
-					   G_GNUC_UNUSED GdkRectangle         *cell_area,
-					   G_GNUC_UNUSED GtkCellRendererState  flags)
+					G_GNUC_UNUSED GdkEvent             *event,
+					G_GNUC_UNUSED GtkWidget            *widget,
+					const gchar          *path,
+					G_GNUC_UNUSED const GdkRectangle *background_area,
+					G_GNUC_UNUSED const GdkRectangle *cell_area,
+					G_GNUC_UNUSED GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererInfo *cellinfo;
 	gchar *tmp;
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c
index a7805e2..7f18bfd 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c
@@ -54,25 +54,24 @@ static void gdaui_data_cell_renderer_textual_set_property  (GObject *object,
 							    GParamSpec *pspec);
 static void gdaui_data_cell_renderer_textual_get_size   (GtkCellRenderer          *cell,
 							 GtkWidget                *widget,
-							 GdkRectangle             *cell_area,
+							 const GdkRectangle       *cell_area,
 							 gint                     *x_offset,
 							 gint                     *y_offset,
 							 gint                     *width,
 							 gint                     *height);
 static void gdaui_data_cell_renderer_textual_render     (GtkCellRenderer          *cell,
-							 GdkWindow                *window,
+							 cairo_t                  *cr,
 							 GtkWidget                *widget,
-							 GdkRectangle             *background_area,
-							 GdkRectangle             *cell_area,
-							 GdkRectangle             *expose_area,
+							 const GdkRectangle       *background_area,
+							 const GdkRectangle       *cell_area,
 							 GtkCellRendererState      flags);
 
 static GtkCellEditable *gdaui_data_cell_renderer_textual_start_editing (GtkCellRenderer      *cell,
 									GdkEvent             *event,
 									GtkWidget            *widget,
 									const gchar          *path,
-									GdkRectangle         *background_area,
-									GdkRectangle         *cell_area,
+									const GdkRectangle   *background_area,
+									const GdkRectangle   *cell_area,
 									GtkCellRendererState  flags);
 
 enum {
@@ -587,7 +586,7 @@ gdaui_data_cell_renderer_textual_new (GdaDataHandler *dh, GType type, const gcha
 static void
 gdaui_data_cell_renderer_textual_get_size (GtkCellRenderer *cell,
 					   GtkWidget       *widget,
-					   GdkRectangle    *cell_area,
+					   const GdkRectangle *cell_area,
 					   gint            *x_offset,
 					   gint            *y_offset,
 					   gint            *width,
@@ -599,17 +598,16 @@ gdaui_data_cell_renderer_textual_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_textual_render (GtkCellRenderer      *cell,
-					 GdkWindow            *window,
+					 cairo_t              *cr,
 					 GtkWidget            *widget,
-					 GdkRectangle         *background_area,
-					 GdkRectangle         *cell_area,
-					 GdkRectangle         *expose_area,
+					 const GdkRectangle   *background_area,
+					 const GdkRectangle   *cell_area,
 					 GtkCellRendererState  flags)
 
 {
 	GdauiDataCellRendererTextual *datacell = (GdauiDataCellRendererTextual*) cell;
 	GtkCellRendererClass *text_class = g_type_class_peek (GTK_TYPE_CELL_RENDERER_TEXT);
-	(text_class->render) (cell, window, widget, background_area, cell_area, expose_area, flags);
+	(text_class->render) (cell, cr, widget, background_area, cell_area, flags);
 
 	if (datacell->priv->to_be_deleted) {
 		GtkStyle *style;
@@ -619,8 +617,7 @@ gdaui_data_cell_renderer_textual_render (GtkCellRenderer      *cell,
 		g_object_get ((GObject*) cell, "xpad", &xpad, NULL);
 
 		gtk_paint_hline (style,
-				 window, GTK_STATE_SELECTED,
-				 cell_area,
+				 cr, GTK_STATE_SELECTED,
 				 widget,
 				 "hline",
 				 cell_area->x + xpad, cell_area->x + cell_area->width - xpad,
@@ -628,7 +625,7 @@ gdaui_data_cell_renderer_textual_render (GtkCellRenderer      *cell,
 		g_object_unref (style);
 	}
 	if (datacell->priv->invalid)
-		gdaui_data_cell_renderer_draw_invalid_area (window, cell_area);
+		gdaui_data_cell_renderer_draw_invalid_area (cr, cell_area);
 }
 
 static void
@@ -678,8 +675,8 @@ gdaui_data_cell_renderer_textual_start_editing (GtkCellRenderer      *cell,
 						G_GNUC_UNUSED GdkEvent             *event,
 						G_GNUC_UNUSED GtkWidget            *widget,
 						const gchar          *path,
-						G_GNUC_UNUSED GdkRectangle         *background_area,
-						G_GNUC_UNUSED GdkRectangle         *cell_area,
+						G_GNUC_UNUSED const GdkRectangle *background_area,
+						G_GNUC_UNUSED const GdkRectangle *cell_area,
 						G_GNUC_UNUSED GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererTextual *datacell;
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-util.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-util.c
index 29ac45b..14e0823 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-util.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-util.c
@@ -20,10 +20,8 @@
 #include "gdaui-data-cell-renderer-util.h"
 
 void
-gdaui_data_cell_renderer_draw_invalid_area (GdkWindow *window, GdkRectangle *cell_area)
+gdaui_data_cell_renderer_draw_invalid_area (cairo_t *cr, const GdkRectangle *cell_area)
 {
-	cairo_t *cr;
-	cr = gdk_cairo_create (window);
 	cairo_set_source_rgba (cr, .5, .5, .5, .4);
 	cairo_rectangle (cr, cell_area->x, cell_area->y, cell_area->width,  cell_area->height);
 	cairo_clip (cr);
@@ -32,6 +30,4 @@ gdaui_data_cell_renderer_draw_invalid_area (GdkWindow *window, GdkRectangle *cel
 	cairo_rectangle (cr, cell_area->x, cell_area->y,
 			 cell_area->width, cell_area->height);
 	cairo_fill (cr);
-	
-	cairo_destroy (cr);
 }
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-util.h b/libgda-ui/data-entries/gdaui-data-cell-renderer-util.h
index 5723e25..bf21e10 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-util.h
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-util.h
@@ -22,6 +22,6 @@
 
 #include <gtk/gtk.h>
 
-void gdaui_data_cell_renderer_draw_invalid_area (GdkWindow *window, GdkRectangle *cell_area);
+void gdaui_data_cell_renderer_draw_invalid_area (cairo_t *cr, const GdkRectangle *cell_area);
 
 #endif
diff --git a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c
index 18d3e72..092438c 100644
--- a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c
+++ b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c
@@ -43,25 +43,24 @@ static void gdaui_data_cell_renderer_password_set_property  (GObject *object,
 							     GParamSpec *pspec);
 static void gdaui_data_cell_renderer_password_get_size   (GtkCellRenderer          *cell,
 							  GtkWidget                *widget,
-							  GdkRectangle             *cell_area,
+							  const GdkRectangle       *cell_area,
 							  gint                     *x_offset,
 							  gint                     *y_offset,
 							  gint                     *width,
 							  gint                     *height);
 static void gdaui_data_cell_renderer_password_render     (GtkCellRenderer          *cell,
-							  GdkWindow                *window,
+							  cairo_t                  *cr,
 							  GtkWidget                *widget,
-							  GdkRectangle             *background_area,
-							  GdkRectangle             *cell_area,
-							  GdkRectangle             *expose_area,
+							  const GdkRectangle       *background_area,
+							  const GdkRectangle       *cell_area,
 							  GtkCellRendererState      flags);
 
 static GtkCellEditable *gdaui_data_cell_renderer_password_start_editing (GtkCellRenderer      *cell,
 									 GdkEvent             *event,
 									 GtkWidget            *widget,
 									 const gchar          *path,
-									 GdkRectangle         *background_area,
-									 GdkRectangle         *cell_area,
+									 const GdkRectangle   *background_area,
+									 const GdkRectangle   *cell_area,
 									 GtkCellRendererState  flags);
 
 enum {
@@ -363,7 +362,7 @@ gdaui_data_cell_renderer_password_new (GdaDataHandler *dh, GType type, const gch
 static void
 gdaui_data_cell_renderer_password_get_size (GtkCellRenderer *cell,
 					    GtkWidget       *widget,
-					    GdkRectangle    *cell_area,
+					    const GdkRectangle *cell_area,
 					    gint            *x_offset,
 					    gint            *y_offset,
 					    gint            *width,
@@ -375,17 +374,16 @@ gdaui_data_cell_renderer_password_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_password_render (GtkCellRenderer      *cell,
-					  GdkWindow            *window,
+					  cairo_t              *cr,
 					  GtkWidget            *widget,
-					  GdkRectangle         *background_area,
-					  GdkRectangle         *cell_area,
-					  GdkRectangle         *expose_area,
+					  const GdkRectangle   *background_area,
+					  const GdkRectangle   *cell_area,
 					  GtkCellRendererState  flags)
 
 {
 	GdauiDataCellRendererPassword *datacell = GDAUI_DATA_CELL_RENDERER_PASSWORD (cell);
 	GtkCellRendererClass *text_class = g_type_class_peek (GTK_TYPE_CELL_RENDERER_TEXT);
-	(text_class->render) (cell, window, widget, background_area, cell_area, expose_area, flags);
+	(text_class->render) (cell, cr, widget, background_area, cell_area, flags);
 
 	if (datacell->priv->to_be_deleted) {
 		GtkStyle *style;
@@ -395,8 +393,7 @@ gdaui_data_cell_renderer_password_render (GtkCellRenderer      *cell,
 		g_object_get ((GObject*) cell, "xpad", &xpad, NULL);
 
 		gtk_paint_hline (style,
-				 window, GTK_STATE_SELECTED,
-				 cell_area,
+				 cr, GTK_STATE_SELECTED,
 				 widget,
 				 "hline",
 				 cell_area->x + xpad, cell_area->x + cell_area->width - xpad,
@@ -404,7 +401,7 @@ gdaui_data_cell_renderer_password_render (GtkCellRenderer      *cell,
 		g_object_unref (style);
 	}
 	if (datacell->priv->invalid)
-		gdaui_data_cell_renderer_draw_invalid_area (window, cell_area);
+		gdaui_data_cell_renderer_draw_invalid_area (cr, cell_area);
 }
 
 static void
@@ -454,8 +451,8 @@ gdaui_data_cell_renderer_password_start_editing (GtkCellRenderer      *cell,
 						 G_GNUC_UNUSED GdkEvent             *event,
 						 G_GNUC_UNUSED GtkWidget            *widget,
 						 const gchar          *path,
-						 G_GNUC_UNUSED GdkRectangle         *background_area,
-						 G_GNUC_UNUSED GdkRectangle         *cell_area,
+						 G_GNUC_UNUSED const GdkRectangle   *background_area,
+						 G_GNUC_UNUSED const GdkRectangle   *cell_area,
 						 G_GNUC_UNUSED GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererPassword *datacell;
diff --git a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c
index 1493f4b..a524bdb 100644
--- a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c
+++ b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c
@@ -41,15 +41,14 @@ static void gdaui_data_cell_renderer_pict_dispose       (GObject *object);
 static void gdaui_data_cell_renderer_pict_init       (GdauiDataCellRendererPict      *celltext);
 static void gdaui_data_cell_renderer_pict_class_init (GdauiDataCellRendererPictClass *class);
 static void gdaui_data_cell_renderer_pict_render     (GtkCellRenderer            *cell,
-						      GdkWindow                  *window,
+						      cairo_t                    *cr,
 						      GtkWidget                  *widget,
-						      GdkRectangle               *background_area,
-						      GdkRectangle               *cell_area,
-						      GdkRectangle               *expose_area,
+						      const GdkRectangle         *background_area,
+						      const GdkRectangle         *cell_area,
 						      GtkCellRendererState        flags);
 static void gdaui_data_cell_renderer_pict_get_size   (GtkCellRenderer            *cell,
 						      GtkWidget                  *widget,
-						      GdkRectangle               *cell_area,
+						      const GdkRectangle        *cell_area,
 						      gint                       *x_offset,
 						      gint                       *y_offset,
 						      gint                       *width,
@@ -58,8 +57,8 @@ static gboolean gdaui_data_cell_renderer_pict_activate  (GtkCellRenderer
 							 GdkEvent                   *event,
 							 GtkWidget                  *widget,
 							 const gchar                *path,
-							 GdkRectangle               *background_area,
-							 GdkRectangle               *cell_area,
+							 const GdkRectangle         *background_area,
+							 const GdkRectangle         *cell_area,
 							 GtkCellRendererState        flags);
 
 /* get a pointer to the parents to be able to call their destructor */
@@ -379,7 +378,7 @@ gdaui_data_cell_renderer_pict_new (GdaDataHandler *dh, GType type, const gchar *
 static void
 gdaui_data_cell_renderer_pict_get_size (GtkCellRenderer *cell,
 					GtkWidget       *widget,
-					GdkRectangle    *cell_area,
+					const GdkRectangle *cell_area,
 					gint            *x_offset,
 					gint            *y_offset,
 					gint            *width,
@@ -394,17 +393,16 @@ gdaui_data_cell_renderer_pict_get_size (GtkCellRenderer *cell,
 
 static void
 gdaui_data_cell_renderer_pict_render (GtkCellRenderer      *cell,
-				      GdkWindow            *window,
+				      cairo_t              *cr,
 				      GtkWidget            *widget,
-				      GdkRectangle         *background_area,
-				      GdkRectangle         *cell_area,
-				      GdkRectangle         *expose_area,
+				      const GdkRectangle   *background_area,
+				      const GdkRectangle   *cell_area,
 				      GtkCellRendererState  flags)
 {
 	GdauiDataCellRendererPict *datacell = GDAUI_DATA_CELL_RENDERER_PICT (cell);
 	GtkCellRendererClass *pixbuf_class = g_type_class_peek (GTK_TYPE_CELL_RENDERER_PIXBUF);
 
-	(pixbuf_class->render) (cell, window, widget, background_area, cell_area, expose_area, flags);
+	(pixbuf_class->render) (cell, cr, widget, background_area, cell_area, flags);
 
 	if (datacell->priv->to_be_deleted) {
 		GtkStyle *style;
@@ -414,8 +412,7 @@ gdaui_data_cell_renderer_pict_render (GtkCellRenderer      *cell,
 		g_object_get ((GObject*) cell, "xpad", &xpad, NULL);
 
 		gtk_paint_hline (style,
-				 window, GTK_STATE_SELECTED,
-				 cell_area,
+				 cr, GTK_STATE_SELECTED,
 				 widget,
 				 "hline",
 				 cell_area->x + xpad, cell_area->x + cell_area->width - xpad,
@@ -423,7 +420,7 @@ gdaui_data_cell_renderer_pict_render (GtkCellRenderer      *cell,
 		g_object_unref (style);
 	}
 	if (datacell->priv->invalid)
-		gdaui_data_cell_renderer_draw_invalid_area (window, cell_area);
+		gdaui_data_cell_renderer_draw_invalid_area (cr, cell_area);
 }
 
 static void
@@ -443,8 +440,8 @@ gdaui_data_cell_renderer_pict_activate  (GtkCellRenderer            *cell,
 					 G_GNUC_UNUSED GdkEvent                   *event,
 					 GtkWidget                  *widget,
 					 const gchar                *path,
-					 G_GNUC_UNUSED GdkRectangle               *background_area,
-					 G_GNUC_UNUSED GdkRectangle               *cell_area,
+					 G_GNUC_UNUSED const GdkRectangle *background_area,
+					 G_GNUC_UNUSED const GdkRectangle *cell_area,
 					 G_GNUC_UNUSED GtkCellRendererState        flags)
 {
 	GdauiDataCellRendererPict *pictcell;
diff --git a/libgda-ui/data-entries/widget-embedder.c b/libgda-ui/data-entries/widget-embedder.c
index a578734..a08442e 100644
--- a/libgda-ui/data-entries/widget-embedder.c
+++ b/libgda-ui/data-entries/widget-embedder.c
@@ -26,9 +26,8 @@ static void     widget_embedder_size_allocate (GtkWidget       *widget,
                                                GtkAllocation   *allocation);
 static gboolean widget_embedder_damage        (GtkWidget       *widget,
                                                GdkEventExpose  *event);
-static gboolean widget_embedder_expose        (GtkWidget       *widget,
-                                               GdkEventExpose  *offscreen);
-
+static gboolean widget_embedder_draw          (GtkWidget       *widget,
+					       cairo_t         *cr);
 static void     widget_embedder_add           (GtkContainer    *container,
                                                GtkWidget       *child);
 static void     widget_embedder_remove        (GtkContainer    *container,
@@ -73,7 +72,7 @@ widget_embedder_class_init (WidgetEmbedderClass *klass)
 	widget_class->unrealize = widget_embedder_unrealize;
 	widget_class->size_request = widget_embedder_size_request;
 	widget_class->size_allocate = widget_embedder_size_allocate;
-	widget_class->expose_event = widget_embedder_expose;
+	widget_class->draw = widget_embedder_draw;
 
 	g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET),
 					 WIDGET_EMBEDDER_TYPE,
@@ -172,10 +171,9 @@ widget_embedder_realize (GtkWidget *widget)
 		| GDK_LEAVE_NOTIFY_MASK;
 
 	attributes.visual = gtk_widget_get_visual (widget);
-	attributes.colormap = gtk_widget_get_colormap (widget);
 	attributes.wclass = GDK_INPUT_OUTPUT;
 
-	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
 	GdkWindow *win;
 	win = gdk_window_new (gtk_widget_get_parent_window (widget),
@@ -361,57 +359,43 @@ widget_embedder_damage (GtkWidget      *widget,
 }
 
 static gboolean
-widget_embedder_expose (GtkWidget      *widget,
-                        GdkEventExpose *event)
+widget_embedder_draw (GtkWidget *widget, cairo_t *cr)
 {
 	WidgetEmbedder *bin = WIDGET_EMBEDDER (widget);
-	gint width, height;
+	GdkWindow *window;
 
-	if (gtk_widget_is_drawable (widget)) {
-		GdkWindow *win;
-		win = gtk_widget_get_window (widget);
-		if (event->window == win) {
-			GdkPixmap *pixmap;
-			cairo_t *cr;
-
-			if (bin->child && gtk_widget_get_visible (bin->child)) {
-				GtkAllocation child_area;
-				pixmap = gdk_offscreen_window_get_pixmap (bin->offscreen_window);
-
-				gtk_widget_get_allocation (bin->child, &child_area);
-				cr = gdk_cairo_create (win);
-				
-				/* clip */
-				gdk_drawable_get_size (pixmap, &width, &height);
-				cairo_rectangle (cr, 0, 0, width, height);
-				cairo_clip (cr);
-
-				/* paint */
-				gdk_cairo_set_source_pixmap (cr, pixmap, 0, 0);
-				cairo_paint (cr);
-
-				if (! bin->valid) {
-					cairo_set_source_rgba (cr, .8, .1, .1, .2);
-					cairo_rectangle (cr, child_area.x, child_area.y,
-							 child_area.width, child_area.height);
-					cairo_fill (cr);
-				}
-				cairo_destroy (cr);
+	window = gtk_widget_get_window (widget);
+	if (gtk_cairo_should_draw_window (cr, window)) {
+		cairo_surface_t *surface;
+		GtkAllocation child_area;
+		
+		if (bin->child && gtk_widget_get_visible (bin->child)) {
+			surface = gdk_offscreen_window_get_surface (bin->offscreen_window);
+			gtk_widget_get_allocation (bin->child, &child_area);
+			cairo_set_source_surface (cr, surface, 0, 0);
+			cairo_paint (cr);
+
+			if (! bin->valid) {
+				cairo_set_source_rgba (cr, .8, .1, .1, .2);
+				cairo_rectangle (cr, child_area.x, child_area.y,
+						 child_area.width, child_area.height);
+				cairo_fill (cr);
 			}
 		}
-		else if (event->window == bin->offscreen_window) {
-			gtk_paint_flat_box (gtk_widget_get_style (widget), event->window,
-					    GTK_STATE_NORMAL, GTK_SHADOW_NONE,
-					    &event->area, widget, "blah",
-					    0, 0, -1, -1);
-			
-			if (bin->child)
-				gtk_container_propagate_expose (GTK_CONTAINER (widget),
-								bin->child,
-								event);
-		}
 	}
-
+	if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) {
+		gtk_paint_flat_box (gtk_widget_get_style (widget), cr,
+				    GTK_STATE_NORMAL, GTK_SHADOW_NONE,
+				    widget, "blah",
+				    0, 0,
+				    gdk_window_get_width (bin->offscreen_window),
+				    gdk_window_get_height (bin->offscreen_window));
+
+		if (bin->child)
+			gtk_container_propagate_draw (GTK_CONTAINER (widget),
+						      bin->child,
+						      cr);
+	}
 	return FALSE;
 }
 
diff --git a/libgda-ui/gdaui-raw-form.c b/libgda-ui/gdaui-raw-form.c
index 6b3e24c..a75cfff 100644
--- a/libgda-ui/gdaui-raw-form.c
+++ b/libgda-ui/gdaui-raw-form.c
@@ -784,16 +784,15 @@ filter_position_func (GtkWidget *widget,
 	GdkRectangle monitor;
 
 	window = gtk_widget_get_window (widget);
-	screen = gdk_drawable_get_screen (window);
+	screen = gdk_window_get_screen (window);
 	monitor_num = gdk_screen_get_monitor_at_window (screen, window);
 	gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
 
 	gtk_widget_realize (search_dialog);
 
 	gdk_window_get_origin (window, &tree_x, &tree_y);
-	gdk_drawable_get_size (window,
-			       &tree_width,
-			       &tree_height);
+	tree_width = gdk_window_get_width (window);
+	tree_height = gdk_window_get_height (window);
 	gtk_widget_size_request (search_dialog, &requisition);
 
 	if (tree_x + tree_width > gdk_screen_get_width (screen))
diff --git a/libgda-ui/gdaui-raw-grid.c b/libgda-ui/gdaui-raw-grid.c
index 9990f53..0e945b7 100644
--- a/libgda-ui/gdaui-raw-grid.c
+++ b/libgda-ui/gdaui-raw-grid.c
@@ -1505,7 +1505,7 @@ filter_position_func (GtkWidget *widget,
 	GdkRectangle monitor;
 
 	window = gtk_widget_get_window (widget);
-	screen = gdk_drawable_get_screen (window);
+	screen = gdk_window_get_screen (window);
 
 	monitor_num = gdk_screen_get_monitor_at_window (screen, window);
 	gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
@@ -1513,9 +1513,8 @@ filter_position_func (GtkWidget *widget,
 	gtk_widget_realize (search_dialog);
 
 	gdk_window_get_origin (window, &tree_x, &tree_y);
-	gdk_drawable_get_size (window,
-			       &tree_width,
-			       &tree_height);
+	tree_width = gdk_window_get_width (window);
+	tree_height = gdk_window_get_height (window);
 	gtk_widget_size_request (search_dialog, &requisition);
 
 	if (tree_x + tree_width > gdk_screen_get_width (screen))
diff --git a/libgda-ui/internal/utility.c b/libgda-ui/internal/utility.c
index 5c1a5b7..290db14 100644
--- a/libgda-ui/internal/utility.c
+++ b/libgda-ui/internal/utility.c
@@ -142,54 +142,30 @@ GdkColor **_gdaui_utility_entry_build_info_colors_array ()
 	/* Green color */
 	color = g_new0 (GdkColor, 1);
 	gdk_color_parse (GDAUI_COLOR_NORMAL_NULL, color);
-	if (!gdk_colormap_alloc_color (gtk_widget_get_default_colormap (), color, FALSE, TRUE)) {
-		g_free (color);
-		color = NULL;
-	}
 	colors[0] = color;
 	
 	color = g_new0 (GdkColor, 1);
 	gdk_color_parse (GDAUI_COLOR_PRELIGHT_NULL, color);
-	if (!gdk_colormap_alloc_color (gtk_widget_get_default_colormap (), color, FALSE, TRUE)) {
-		g_free (color);
-		color = NULL;
-	}
 	colors[1] = color;
 	
 	
 	/* Blue color */
 	color = g_new0 (GdkColor, 1);
 	gdk_color_parse (GDAUI_COLOR_NORMAL_DEFAULT, color);
-	if (!gdk_colormap_alloc_color (gtk_widget_get_default_colormap (), color, FALSE, TRUE)) {
-		g_free (color);
-		color = NULL;
-	}
 	colors[2] = color;
 	
 	color = g_new0 (GdkColor, 1);
 	gdk_color_parse (GDAUI_COLOR_PRELIGHT_DEFAULT, color);
-	if (!gdk_colormap_alloc_color (gtk_widget_get_default_colormap (), color, FALSE, TRUE)) {
-		g_free (color);
-		color = NULL;
-	}
 	colors[3] = color;
 	
 	
 	/* Red color */
 	color = g_new0 (GdkColor, 1);
 	gdk_color_parse (GDAUI_COLOR_NORMAL_INVALID, color);
-	if (!gdk_colormap_alloc_color (gtk_widget_get_default_colormap (), color, FALSE, TRUE)) {
-		g_free (color);
-		color = NULL;
-	}
 	colors[4] = color;
 	
 	color = g_new0 (GdkColor, 1);
 	gdk_color_parse (GDAUI_COLOR_PRELIGHT_INVALID, color);
-	if (!gdk_colormap_alloc_color (gtk_widget_get_default_colormap (), color, FALSE, TRUE)) {
-		g_free (color);
-		color = NULL;
-	}
 	colors[5] = color;
 
 	return colors;
diff --git a/tools/browser/auth-dialog.c b/tools/browser/auth-dialog.c
index 7447001..828362c 100644
--- a/tools/browser/auth-dialog.c
+++ b/tools/browser/auth-dialog.c
@@ -278,8 +278,7 @@ auth_dialog_new (GtkWindow *parent)
 	return (AuthDialog*) g_object_new (AUTH_TYPE_DIALOG, "title", _("Authentication"),
 					   "transient-for", parent,
 					   "resizable", FALSE,
-					   "border-width", 10, 
-					   "has-separator", FALSE, NULL);
+					   "border-width", 10, NULL);
 }
 
 /*
diff --git a/tools/browser/data-manager/data-manager-perspective.c b/tools/browser/data-manager/data-manager-perspective.c
index 22c6739..bfd2770 100644
--- a/tools/browser/data-manager/data-manager-perspective.c
+++ b/tools/browser/data-manager/data-manager-perspective.c
@@ -193,7 +193,7 @@ data_manager_perspective_new (BrowserWindow *bwin)
         gtk_notebook_append_page (GTK_NOTEBOOK (nb), page, tlabel);
 
         gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (nb), page, TRUE);
-        gtk_notebook_set_group (GTK_NOTEBOOK (nb), bcnc + 0x02); /* add 0x01 to differentiate it from SchemaBrowser */
+        gtk_notebook_set_group_name (GTK_NOTEBOOK (nb), "data-manager");
         gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (perspective->priv->notebook), page,
                                          TRUE);
 
diff --git a/tools/browser/login-dialog.c b/tools/browser/login-dialog.c
index fe5cf46..22f9f58 100644
--- a/tools/browser/login-dialog.c
+++ b/tools/browser/login-dialog.c
@@ -188,8 +188,7 @@ login_dialog_new (GtkWindow *parent)
 {
 	return (LoginDialog*) g_object_new (LOGIN_TYPE_DIALOG, "title", _("Connection opening"),
 					    "transient-for", parent,
-					    "resizable", FALSE,
-					    "has-separator", FALSE, NULL);
+					    "resizable", FALSE, NULL);
 }
 
 /**
diff --git a/tools/browser/query-exec/query-exec-perspective.c b/tools/browser/query-exec/query-exec-perspective.c
index d8d8388..b7a5a2d 100644
--- a/tools/browser/query-exec/query-exec-perspective.c
+++ b/tools/browser/query-exec/query-exec-perspective.c
@@ -195,7 +195,7 @@ query_exec_perspective_new (BrowserWindow *bwin)
 	gtk_notebook_append_page (GTK_NOTEBOOK (nb), page, tlabel);
 
 	gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (nb), page, TRUE);
-	gtk_notebook_set_group (GTK_NOTEBOOK (nb), bcnc + 0x01); /* add 0x01 to differentiate it from SchemaBrowser */
+	gtk_notebook_set_group_name (GTK_NOTEBOOK (nb), "query-exec");
 	gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (perspective->priv->notebook), page,
 					 TRUE);
 
diff --git a/tools/browser/schema-browser/schema-browser-perspective.c b/tools/browser/schema-browser/schema-browser-perspective.c
index 62e4ccb..6880af6 100644
--- a/tools/browser/schema-browser/schema-browser-perspective.c
+++ b/tools/browser/schema-browser/schema-browser-perspective.c
@@ -167,7 +167,7 @@ schema_browser_perspective_new (BrowserWindow *bwin)
 				  browser_make_tab_label_with_stock (_("Index"), GTK_STOCK_ABOUT, FALSE,
 								     NULL));
 	gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (nb), wid, TRUE);
-	gtk_notebook_set_group (GTK_NOTEBOOK (nb), bcnc);
+	gtk_notebook_set_group_name (GTK_NOTEBOOK (nb), "schema-browser");
 
 	gtk_notebook_set_menu_label (GTK_NOTEBOOK (nb), wid,
 				     browser_make_tab_label_with_stock (_("Index"), GTK_STOCK_ABOUT, FALSE,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]