]> Pileus Git - ~andy/gtk/blobdiff - tests/testgtk.c
Make tracker search engine less verbose
[~andy/gtk] / tests / testgtk.c
index 76d68387f7b68876c719bc2fc43f73cec53bc5df..d5c7427f7aca444f5c34668bfa4b7c2b20d2ae5c 100644 (file)
@@ -525,11 +525,11 @@ create_pattern (GtkWidget   *widget,
 #define PATTERN_SIZE (1 << 18)
 
 static void
-pattern_hadj_changed (GtkAdjustment *adj,
+pattern_hadj_changed (GtkAdjustment *adjustment,
                      GtkWidget     *darea)
 {
-  gint *old_value = g_object_get_data (G_OBJECT (adj), "old-value");
-  gint new_value = adj->value;
+  gint *old_value = g_object_get_data (G_OBJECT (adjustment), "old-value");
+  gint new_value = gtk_adjustment_get_value (adjustment);
 
   if (gtk_widget_get_realized (darea))
     {
@@ -540,11 +540,11 @@ pattern_hadj_changed (GtkAdjustment *adj,
 }
 
 static void
-pattern_vadj_changed (GtkAdjustment *adj,
+pattern_vadj_changed (GtkAdjustment *adjustment,
                      GtkWidget *darea)
 {
-  gint *old_value = g_object_get_data (G_OBJECT (adj), "old-value");
-  gint new_value = adj->value;
+  gint *old_value = g_object_get_data (G_OBJECT (adjustment), "old-value");
+  gint new_value = gtk_adjustment_get_value (adjustment);
 
   if (gtk_widget_get_realized (darea))
     {
@@ -572,8 +572,8 @@ create_big_windows (GtkWidget *widget)
   GtkWidget *content_area;
   GtkWidget *darea, *table, *scrollbar;
   GtkWidget *eventbox;
-  GtkAdjustment *hadj;
-  GtkAdjustment *vadj;
+  GtkAdjustment *hadjustment;
+  GtkAdjustment *vadjustment;
   static gint current_x;
   static gint current_y;
  
@@ -608,15 +608,15 @@ create_big_windows (GtkWidget *widget)
 
       darea = gtk_drawing_area_new ();
 
-      hadj = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
-      g_signal_connect (hadj, "value_changed",
+      hadjustment = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
+      g_signal_connect (hadjustment, "value_changed",
                        G_CALLBACK (pattern_hadj_changed), darea);
-      g_object_set_data (G_OBJECT (hadj), "old-value", &current_x);
+      g_object_set_data (G_OBJECT (hadjustment), "old-value", &current_x);
 
-      vadj = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
-      g_signal_connect (vadj, "value_changed",
+      vadjustment = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
+      g_signal_connect (vadjustment, "value_changed",
                        G_CALLBACK (pattern_vadj_changed), darea);
-      g_object_set_data (G_OBJECT (vadj), "old-value", &current_y);
+      g_object_set_data (G_OBJECT (vadjustment), "old-value", &current_y);
       
       g_signal_connect (darea, "realize",
                         G_CALLBACK (pattern_realize),
@@ -630,13 +630,13 @@ create_big_windows (GtkWidget *widget)
 
       gtk_container_add (GTK_CONTAINER (eventbox), darea);
 
-      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadj);
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);
       gtk_table_attach (GTK_TABLE (table), scrollbar,
                        0, 1,                  1, 2,
                        GTK_FILL | GTK_EXPAND, GTK_FILL,
                        0,                     0);
 
-      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, vadj);
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, vadjustment);
       gtk_table_attach (GTK_TABLE (table), scrollbar,
                        1, 2,                  0, 1,
                        GTK_FILL,              GTK_EXPAND | GTK_FILL,
@@ -2426,6 +2426,8 @@ grippy_draw (GtkWidget *area, cairo_t *cr, GdkWindowEdge edge)
     case GDK_WINDOW_EDGE_SOUTH_EAST:
       sides = GTK_JUNCTION_CORNER_BOTTOMRIGHT;
       break;
+    default:
+      g_assert_not_reached();
     }
 
   context = gtk_widget_get_style_context (area);
@@ -2630,7 +2632,8 @@ create_saved_position (GtkWidget *widget)
       gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
       vbox =
-       g_object_new (gtk_vbox_get_type (),
+       g_object_new (GTK_TYPE_BOX,
+                      "orientation", GTK_ORIENTATION_VERTICAL,
                        "GtkBox::homogeneous", FALSE,
                        "GtkBox::spacing", 5,
                        "GtkContainer::border_width", 10,
@@ -2833,7 +2836,8 @@ create_tooltips (GtkWidget *widget)
       gtk_widget_set_tooltip_text (toggle, "Toggle TipsQuery view.");
 
       box3 =
-       g_object_new (gtk_vbox_get_type (),
+       g_object_new (GTK_TYPE_BOX,
+                      "orientation", GTK_ORIENTATION_VERTICAL,
                        "homogeneous", FALSE,
                        "spacing", 5,
                        "border_width", 5,
@@ -3267,7 +3271,8 @@ create_menus (GtkWidget *widget)
       menuitem = gtk_image_menu_item_new_with_label ("Help");
       gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image);
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 4, 5, TRUE));
-      gtk_menu_item_set_right_justified (GTK_MENU_ITEM (menuitem), TRUE);
+      gtk_widget_set_hexpand (menuitem, TRUE);
+      gtk_widget_set_halign (menuitem, GTK_ALIGN_END);
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
       
@@ -4613,7 +4618,7 @@ create_spins (GtkWidget *widget)
   GtkWidget *button;
   GtkWidget *label;
   GtkWidget *val_label;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
 
   if (!window)
     {
@@ -4650,8 +4655,8 @@ create_spins (GtkWidget *widget)
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0, 0, 1410, 30, 60, 0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      adjustment = gtk_adjustment_new (0, 0, 1410, 30, 60, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_editable_set_editable (GTK_EDITABLE (spinner), FALSE);
       g_signal_connect (spinner,
                        "output",
@@ -4668,9 +4673,9 @@ create_spins (GtkWidget *widget)
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (1.0, 1.0, 12.0, 1.0,
+      adjustment = gtk_adjustment_new (1.0, 1.0, 12.0, 1.0,
                                                  5.0, 0.0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spinner),
                                         GTK_UPDATE_IF_VALID);
       g_signal_connect (spinner,
@@ -4692,8 +4697,8 @@ create_spins (GtkWidget *widget)
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0, 0, 255, 1, 16, 0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      adjustment = gtk_adjustment_new (0, 0, 255, 1, 16, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_editable_set_editable (GTK_EDITABLE (spinner), TRUE);
       g_signal_connect (spinner,
                        "input",
@@ -4724,9 +4729,9 @@ create_spins (GtkWidget *widget)
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0.0, -10000.0, 10000.0,
+      adjustment = gtk_adjustment_new (0.0, -10000.0, 10000.0,
                                                  0.5, 100.0, 0.0);
-      spinner1 = gtk_spin_button_new (adj, 1.0, 2);
+      spinner1 = gtk_spin_button_new (adjustment, 1.0, 2);
       gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner1), TRUE);
       gtk_box_pack_start (GTK_BOX (vbox2), spinner1, FALSE, TRUE, 0);
 
@@ -4737,9 +4742,9 @@ create_spins (GtkWidget *widget)
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (2, 1, 15, 1, 1, 0);
-      spinner2 = gtk_spin_button_new (adj, 0.0, 0);
-      g_signal_connect (adj, "value_changed",
+      adjustment = gtk_adjustment_new (2, 1, 15, 1, 1, 0);
+      spinner2 = gtk_spin_button_new (adjustment, 0.0, 0);
+      g_signal_connect (adjustment, "value_changed",
                        G_CALLBACK (change_digits),
                        spinner2);
       gtk_box_pack_start (GTK_BOX (vbox2), spinner2, FALSE, TRUE, 0);
@@ -4827,7 +4832,7 @@ cursor_draw (GtkWidget *widget,
 {
   int width, height;
   GtkStyleContext *context;
-  GdkRGBA *bg;
+  GdkRGBA bg;
 
   width = gtk_widget_get_allocated_width (widget);
   height = gtk_widget_get_allocated_height (widget);
@@ -4841,9 +4846,8 @@ cursor_draw (GtkWidget *widget,
   cairo_fill (cr);
 
   context = gtk_widget_get_style_context (widget);
-  gtk_style_context_get (context, 0, "background-color", &bg, NULL);
-  gdk_cairo_set_source_rgba (cr, bg);
-  gdk_rgba_free (bg);
+  gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg);
+  gdk_cairo_set_source_rgba (cr, &bg);
   cairo_rectangle (cr, width / 3, height / 3, width / 3, height / 3);
   cairo_fill (cr);
 
@@ -4880,7 +4884,7 @@ set_cursor (GtkWidget *spinner,
   cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), c);
   gdk_window_set_cursor (gtk_widget_get_window (widget),
                          cursor);
-  gdk_cursor_unref (cursor);
+  g_object_unref (cursor);
 }
 
 static gint
@@ -4937,7 +4941,7 @@ create_cursors (GtkWidget *widget)
   GtkWidget *button;
   GtkWidget *label;
   GtkWidget *any;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
   GtkWidget *entry;
   GtkWidget *size;  
 
@@ -4958,7 +4962,8 @@ create_cursors (GtkWidget *widget)
       gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
       vbox =
-       g_object_new (gtk_vbox_get_type (),
+       g_object_new (GTK_TYPE_BOX,
+                      "orientation", GTK_ORIENTATION_VERTICAL,
                        "GtkBox::homogeneous", FALSE,
                        "GtkBox::spacing", 5,
                        "GtkContainer::border_width", 10,
@@ -4997,11 +5002,11 @@ create_cursors (GtkWidget *widget)
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0,
+      adjustment = gtk_adjustment_new (0,
                                 0, 152,
                                 2,
                                 10, 0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 0);
 
       frame =
@@ -5867,15 +5872,12 @@ create_range_controls (GtkWidget *widget)
 
       scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
       gtk_widget_set_size_request (GTK_WIDGET (scale), 150, -1);
-      gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DELAYED);
       gtk_scale_set_digits (GTK_SCALE (scale), 1);
       gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
       gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
       gtk_widget_show (scale);
 
       scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
-      gtk_range_set_update_policy (GTK_RANGE (scrollbar), 
-                                  GTK_UPDATE_CONTINUOUS);
       gtk_box_pack_start (GTK_BOX (box2), scrollbar, TRUE, TRUE, 0);
       gtk_widget_show (scrollbar);
 
@@ -6935,23 +6937,27 @@ shape_pressed (GtkWidget *widget, GdkEventButton *event)
   p->y = (int) event->y;
 
   gtk_grab_add (widget);
-  gdk_pointer_grab (gtk_widget_get_window (widget), TRUE,
-                   GDK_BUTTON_RELEASE_MASK |
-                   GDK_BUTTON_MOTION_MASK |
-                   GDK_POINTER_MOTION_HINT_MASK,
-                   NULL, NULL, 0);
+  gdk_device_grab (gdk_event_get_device ((GdkEvent*)event),
+                   gtk_widget_get_window (widget),
+                   GDK_OWNERSHIP_NONE,
+                   TRUE,
+                   GDK_BUTTON_RELEASE_MASK |
+                   GDK_BUTTON_MOTION_MASK |
+                   GDK_POINTER_MOTION_HINT_MASK,
+                   NULL,
+                   event->time);
 }
 
 static void
-shape_released (GtkWidget *widget)
+shape_released (GtkWidget      *widget,
+                GdkEventButton *event)
 {
   gtk_grab_remove (widget);
-  gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
-                             GDK_CURRENT_TIME);
+  gdk_device_ungrab (gdk_event_get_device ((GdkEvent*)event), event->time);
 }
 
 static void
-shape_motion (GtkWidget      *widget, 
+shape_motion (GtkWidget      *widget,
              GdkEventMotion *event)
 {
   gint xp, yp;
@@ -7921,7 +7927,7 @@ window_controls (GtkWidget *window)
   GtkWidget *vbox;
   GtkWidget *button;
   GtkWidget *spin;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
   GtkWidget *entry;
   GtkWidget *om;
   gint i;
@@ -7955,15 +7961,15 @@ window_controls (GtkWidget *window)
                    G_CALLBACK (configure_event_callback),
                    label);
 
-  adj = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
-  spin = gtk_spin_button_new (adj, 0, 0);
+  adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
+  spin = gtk_spin_button_new (adjustment, 0, 0);
 
   gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, FALSE, 0);
 
   g_object_set_data (G_OBJECT (control_window), "spin1", spin);
 
-  adj = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
-  spin = gtk_spin_button_new (adj, 0, 0);
+  adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
+  spin = gtk_spin_button_new (adjustment, 0, 0);
 
   gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, FALSE, 0);
 
@@ -8230,8 +8236,11 @@ static void
 destroy_progress (GtkWidget     *widget,
                  ProgressData **pdata)
 {
-  g_source_remove ((*pdata)->timer);
-  (*pdata)->timer = 0;
+  if ((*pdata)->timer)
+    {
+      g_source_remove ((*pdata)->timer);
+      (*pdata)->timer = 0;
+    }
   (*pdata)->window = NULL;
   g_free (*pdata);
   *pdata = NULL;
@@ -8288,6 +8297,24 @@ toggle_activity_mode (GtkWidget *widget, ProgressData *pdata)
   pdata->activity = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 }
 
+static void
+toggle_running (GtkWidget *widget, ProgressData *pdata)
+{
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
+    {
+      if (pdata->timer == 0)
+        pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata);
+    }
+  else
+    {
+      if (pdata->timer != 0)
+        {
+          g_source_remove (pdata->timer);
+          pdata->timer = 0;
+        }
+    }
+}
+
 static void
 entry_changed (GtkWidget *widget, ProgressData *pdata)
 {
@@ -8366,7 +8393,6 @@ create_progress_bar (GtkWidget *widget)
                                       PANGO_ELLIPSIZE_MIDDLE);
 
       gtk_container_add (GTK_CONTAINER (align), pdata->pbar);
-      pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata);
 
       align = gtk_alignment_new (0.5, 0.5, 0, 0);
       gtk_box_pack_start (GTK_BOX (vbox2), align, FALSE, FALSE, 5);
@@ -8402,16 +8428,25 @@ create_progress_bar (GtkWidget *widget)
                        5, 5);
       gtk_box_pack_start (GTK_BOX (hbox), pdata->omenu1, TRUE, TRUE, 0);
       
+      check = gtk_check_button_new_with_label ("Running");
+      g_signal_connect (check, "toggled",
+                       G_CALLBACK (toggle_running),
+                       pdata);
+      gtk_table_attach (GTK_TABLE (tab), check, 0, 2, 1, 2,
+                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
+                       5, 5);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
+
       check = gtk_check_button_new_with_label ("Show text");
       g_signal_connect (check, "clicked",
                        G_CALLBACK (toggle_show_text),
                        pdata);
-      gtk_table_attach (GTK_TABLE (tab), check, 0, 1, 1, 2,
+      gtk_table_attach (GTK_TABLE (tab), check, 0, 1, 2, 3,
                        GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
                        5, 5);
 
       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-      gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 1, 2,
+      gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 2, 3,
                        GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
                        5, 5);
 
@@ -8572,14 +8607,14 @@ find_widget (GtkWidget *widget, FindWidgetData *data)
 }
 
 static GtkWidget *
-find_widget_at_pointer (GdkDisplay *display)
+find_widget_at_pointer (GdkDevice *device)
 {
   GtkWidget *widget = NULL;
   GdkWindow *pointer_window;
   gint x, y;
   FindWidgetData data;
  
- pointer_window = gdk_display_get_window_at_pointer (display, NULL, NULL);
+ pointer_window = gdk_device_get_window_at_position (device, NULL, NULL);
  
  if (pointer_window)
    {
@@ -8626,7 +8661,7 @@ destroy_properties (GtkWidget             *widget,
 
   if (data->cursor)
     {
-      gdk_cursor_unref (data->cursor);
+      g_object_unref (data->cursor);
       data->cursor = NULL;
     }
 
@@ -8640,22 +8675,21 @@ destroy_properties (GtkWidget             *widget,
 }
 
 static gint
-property_query_event (GtkWidget               *widget,
-                     GdkEvent         *event,
-                     struct PropertiesData *data)
+property_query_event (GtkWidget             *widget,
+                      GdkEvent              *event,
+                      struct PropertiesData *data)
 {
   GtkWidget *res_widget = NULL;
 
   if (!data->in_query)
     return FALSE;
-  
+
   if (event->type == GDK_BUTTON_RELEASE)
     {
       gtk_grab_remove (widget);
-      gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
-                                 GDK_CURRENT_TIME);
-      
-      res_widget = find_widget_at_pointer (gtk_widget_get_display (widget));
+      gdk_device_ungrab (gdk_event_get_device (event), GDK_CURRENT_TIME);
+
+      res_widget = find_widget_at_pointer (gdk_event_get_device (event));
       if (res_widget)
        {
          g_object_set_data (G_OBJECT (res_widget), "prop-editor-screen",
@@ -8674,23 +8708,27 @@ query_properties (GtkButton *button,
                  struct PropertiesData *data)
 {
   GtkWidget *widget = GTK_WIDGET (button);
-  gint failure;
+  GdkDisplay *display;
+  GdkDeviceManager *device_manager;
+  GdkDevice *device;
 
   g_signal_connect (button, "event",
                    G_CALLBACK (property_query_event), data);
 
+  display = gtk_widget_get_display (widget);
 
   if (!data->cursor)
-    data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
-                                              GDK_TARGET);
-
-  failure = gdk_pointer_grab (gtk_widget_get_window (widget),
-                             TRUE,
-                             GDK_BUTTON_RELEASE_MASK,
-                             NULL,
-                             data->cursor,
-                             GDK_CURRENT_TIME);
-
+    data->cursor = gdk_cursor_new_for_display (display, GDK_TARGET);
+
+  device_manager = gdk_display_get_device_manager (display);
+  device = gdk_device_manager_get_client_pointer (device_manager);
+  gdk_device_grab (device,
+                   gtk_widget_get_window (widget),
+                   GDK_OWNERSHIP_NONE,
+                   TRUE,
+                   GDK_BUTTON_RELEASE_MASK,
+                   data->cursor,
+                   GDK_CURRENT_TIME);
   gtk_grab_add (widget);
 
   data->in_query = TRUE;
@@ -8763,7 +8801,7 @@ destroy_snapshot_data (GtkWidget             *widget,
   
   if (data->cursor)
     {
-      gdk_cursor_unref (data->cursor);
+      g_object_unref (data->cursor);
       data->cursor = NULL;
     }
 
@@ -8789,10 +8827,10 @@ snapshot_widget_event (GtkWidget               *widget,
   if (event->type == GDK_BUTTON_RELEASE)
     {
       gtk_grab_remove (widget);
-      gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
-                                 GDK_CURRENT_TIME);
+      gdk_device_ungrab (gdk_event_get_device (event),
+                        GDK_CURRENT_TIME);
       
-      res_widget = find_widget_at_pointer (gtk_widget_get_display (widget));
+      res_widget = find_widget_at_pointer (gdk_event_get_device (event));
       if (data->is_toplevel && res_widget)
        res_widget = gtk_widget_get_toplevel (res_widget);
       if (res_widget)
@@ -8836,10 +8874,14 @@ snapshot_widget (GtkButton *button,
                 struct SnapshotData *data)
 {
   GtkWidget *widget = GTK_WIDGET (button);
-  gint failure;
+  GdkDevice *device;
 
-  g_signal_connect (button, "event",
-                   G_CALLBACK (snapshot_widget_event), data);
+  device = gtk_get_current_event_device ();
+  if (device == NULL)
+    return;
+
+  if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
+    device = gdk_device_get_associated_device (device);
 
   data->is_toplevel = widget == data->toplevel_button;
 
@@ -8847,12 +8889,16 @@ snapshot_widget (GtkButton *button,
     data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
                                               GDK_TARGET);
 
-  failure = gdk_pointer_grab (gtk_widget_get_window (widget),
-                             TRUE,
-                             GDK_BUTTON_RELEASE_MASK,
-                             NULL,
-                             data->cursor,
-                             GDK_CURRENT_TIME);
+  gdk_device_grab (device,
+                   gtk_widget_get_window (widget),
+                   GDK_OWNERSHIP_APPLICATION,
+                  TRUE,
+                  GDK_BUTTON_RELEASE_MASK,
+                  data->cursor,
+                  GDK_CURRENT_TIME);
+
+  g_signal_connect (button, "event",
+                   G_CALLBACK (snapshot_widget_event), data);
 
   gtk_grab_add (widget);
 
@@ -8917,19 +8963,19 @@ create_snapshot (GtkWidget *widget)
 
 void
 selection_test_received (GtkWidget        *tree_view,
-                         GtkSelectionData *data)
+                         GtkSelectionData *selection_data)
 {
   GtkTreeModel *model;
   GtkListStore *store;
   GdkAtom *atoms;
   int i, l;
 
-  if (data->length < 0)
+  if (gtk_selection_data_get_length (selection_data) < 0)
     {
       g_print ("Selection retrieval failed\n");
       return;
     }
-  if (data->type != GDK_SELECTION_TYPE_ATOM)
+  if (gtk_selection_data_get_data_type (selection_data) != GDK_SELECTION_TYPE_ATOM)
     {
       g_print ("Selection \"TARGETS\" was not returned as atoms!\n");
       return;
@@ -8943,9 +8989,9 @@ selection_test_received (GtkWidget        *tree_view,
 
   /* Add new items to list */
 
-  atoms = (GdkAtom *)data->data;
+  gtk_selection_data_get_targets (selection_data,
+                                  &atoms, &l);
 
-  l = data->length / sizeof (GdkAtom);
   for (i = 0; i < l; i++)
     {
       char *name;
@@ -9065,7 +9111,7 @@ static int scroll_test_pos = 0.0;
 static gint
 scroll_test_draw (GtkWidget     *widget,
                   cairo_t       *cr,
-                  GtkAdjustment *adj)
+                  GtkAdjustment *adjustment)
 {
   gint i,j;
   gint imin, imax, jmin, jmax;
@@ -9076,13 +9122,13 @@ scroll_test_draw (GtkWidget     *widget,
   imin = (clip.x) / 10;
   imax = (clip.x + clip.width + 9) / 10;
 
-  jmin = ((int)adj->value + clip.y) / 10;
-  jmax = ((int)adj->value + clip.y + clip.height + 9) / 10;
+  jmin = ((int)gtk_adjustment_get_value (adjustment) + clip.y) / 10;
+  jmax = ((int)gtk_adjustment_get_value (adjustment) + clip.y + clip.height + 9) / 10;
 
   for (i=imin; i<imax; i++)
     for (j=jmin; j<jmax; j++)
       if ((i+j) % 2)
-       cairo_rectangle (cr, 10*i, 10*j - (int)adj->value, 1+i%10, 1+j%10);
+       cairo_rectangle (cr, 10*i, 10*j - (int)gtk_adjustment_get_value (adjustment), 1+i%10, 1+j%10);
 
   cairo_fill (cr);
 
@@ -9091,38 +9137,41 @@ scroll_test_draw (GtkWidget     *widget,
 
 static gint
 scroll_test_scroll (GtkWidget *widget, GdkEventScroll *event,
-                   GtkAdjustment *adj)
+                   GtkAdjustment *adjustment)
 {
-  gdouble new_value = adj->value + ((event->direction == GDK_SCROLL_UP) ?
-                                   -adj->page_increment / 2:
-                                   adj->page_increment / 2);
-  new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
-  gtk_adjustment_set_value (adj, new_value);  
+  gdouble new_value = gtk_adjustment_get_value (adjustment) + ((event->direction == GDK_SCROLL_UP) ?
+                                   -gtk_adjustment_get_page_increment (adjustment) / 2:
+                                   gtk_adjustment_get_page_increment (adjustment) / 2);
+  new_value = CLAMP (new_value, gtk_adjustment_get_lower (adjustment), gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_page_size (adjustment));
+  gtk_adjustment_set_value (adjustment, new_value);  
   
   return TRUE;
 }
 
 static void
 scroll_test_configure (GtkWidget *widget, GdkEventConfigure *event,
-                      GtkAdjustment *adj)
+                      GtkAdjustment *adjustment)
 {
   GtkAllocation allocation;
 
   gtk_widget_get_allocation (widget, &allocation);
-  adj->page_increment = 0.9 * allocation.height;
-  adj->page_size = allocation.height;
-
-  g_signal_emit_by_name (adj, "changed");
+  gtk_adjustment_configure (adjustment,
+                            gtk_adjustment_get_value (adjustment),
+                            gtk_adjustment_get_lower (adjustment),
+                            gtk_adjustment_get_upper (adjustment),
+                            0.1 * allocation.height,
+                            0.9 * allocation.height,
+                            allocation.height);
 }
 
 static void
-scroll_test_adjustment_changed (GtkAdjustment *adj, GtkWidget *widget)
+scroll_test_adjustment_changed (GtkAdjustment *adjustment, GtkWidget *widget)
 {
   GdkWindow *window;
   gint dy;
 
-  dy = scroll_test_pos - (int)adj->value;
-  scroll_test_pos = adj->value;
+  dy = scroll_test_pos - (int)gtk_adjustment_get_value (adjustment);
+  scroll_test_pos = gtk_adjustment_get_value (adjustment);
 
   if (!gtk_widget_is_drawable (widget))
     return;
@@ -9142,7 +9191,7 @@ create_scroll_test (GtkWidget *widget)
   GtkWidget *drawing_area;
   GtkWidget *scrollbar;
   GtkWidget *button;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
   GdkGeometry geometry;
   GdkWindowHints geometry_mask;
 
@@ -9174,21 +9223,21 @@ create_scroll_test (GtkWidget *widget)
 
       gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK | GDK_SCROLL_MASK);
 
-      adj = gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0);
+      adjustment = gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0);
       scroll_test_pos = 0.0;
 
-      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, adj);
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, adjustment);
       gtk_box_pack_start (GTK_BOX (hbox), scrollbar, FALSE, FALSE, 0);
       gtk_widget_show (scrollbar);
 
       g_signal_connect (drawing_area, "draw",
-                       G_CALLBACK (scroll_test_draw), adj);
+                       G_CALLBACK (scroll_test_draw), adjustment);
       g_signal_connect (drawing_area, "configure_event",
-                       G_CALLBACK (scroll_test_configure), adj);
+                       G_CALLBACK (scroll_test_configure), adjustment);
       g_signal_connect (drawing_area, "scroll_event",
-                       G_CALLBACK (scroll_test_scroll), adj);
+                       G_CALLBACK (scroll_test_scroll), adjustment);
       
-      g_signal_connect (adj, "value_changed",
+      g_signal_connect (adjustment, "value_changed",
                        G_CALLBACK (scroll_test_adjustment_changed),
                        drawing_area);
       
@@ -9515,26 +9564,6 @@ create_idle_test (GtkWidget *widget)
  * rc file test
  */
 
-void
-reload_all_rc_files (void)
-{
-  static GdkAtom atom_rcfiles = GDK_NONE;
-
-  GdkEvent *send_event = gdk_event_new (GDK_CLIENT_EVENT);
-  int i;
-  
-  if (!atom_rcfiles)
-    atom_rcfiles = gdk_atom_intern("_GTK_READ_RCFILES", FALSE);
-
-  for(i = 0; i < 5; i++)
-    send_event->client.data.l[i] = 0;
-  send_event->client.data_format = 32;
-  send_event->client.message_type = atom_rcfiles;
-  gdk_event_send_clientmessage_toall (send_event);
-
-  gdk_event_free (send_event);
-}
-
 void
 create_rc_file (GtkWidget *widget)
 {
@@ -9588,12 +9617,6 @@ create_rc_file (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0);
       gtk_widget_grab_default (button);
 
-      button = gtk_button_new_with_label ("Reload All");
-      g_signal_connect (button, "clicked",
-                       G_CALLBACK (reload_all_rc_files), NULL);
-      gtk_widget_set_can_default (button, TRUE);
-      gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0);
-
       button = gtk_button_new_with_label ("Close");
       g_signal_connect_swapped (button, "clicked",
                                G_CALLBACK (gtk_widget_destroy),
@@ -10110,12 +10133,8 @@ create_main_window (void)
 static void
 test_init (void)
 {
-  if (g_file_test ("../gdk-pixbuf/libpixbufloader-pnm.la",
-                  G_FILE_TEST_EXISTS))
-    {
-      g_setenv ("GDK_PIXBUF_MODULE_FILE", "../gdk-pixbuf/loaders.cache", TRUE);
-      g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
-    }
+  if (g_file_test ("../modules/input/immodules.cache", G_FILE_TEST_EXISTS))
+    g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
 }
 
 static char *