]> Pileus Git - ~andy/gtk/blobdiff - tests/testgtk.c
themingengine: animate spinners again
[~andy/gtk] / tests / testgtk.c
index 61fa5a47a2f0722cf71bb46766a73e4cc9fd44fb..343b4bc52b2a266df459a6e33c8ca551da32656c 100644 (file)
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
@@ -430,14 +428,14 @@ pattern_set_bg (GtkWidget   *widget,
                GdkWindow   *child,
                gint         level)
 {
-  static const GdkColor colors[] = {
-    { 0, 0x4444, 0x4444, 0xffff },
-    { 0, 0x8888, 0x8888, 0xffff },
-    { 0, 0xaaaa, 0xaaaa, 0xffff }
+  static GdkRGBA colors[] = {
+    { 0.27, 0.27, 1.0, 1.0 },
+    { 0.53, 0.53, 1.0, 1.0},
+    { 0.67, 0.67, 1.0, 1.0 }
   };
     
   gdk_window_set_user_data (child, widget);
-  gdk_window_set_background (child, &colors[level]);
+  gdk_window_set_background_rgba (child, &colors[level]);
 }
 
 static void
@@ -1320,68 +1318,6 @@ create_toolbar (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-static GtkActionEntry make_toolbar_items[] = {
-    { NULL, NULL, "Horizontal", NULL, "Horizontal toolbar layout",
-      G_CALLBACK (set_toolbar_horizontal) },
-    { NULL, NULL, "Vertical", NULL, "Vertical toolbar layout",
-      G_CALLBACK (set_toolbar_vertical) },
-    { NULL },
-    { NULL, NULL, "Icons", NULL, "Only show toolbar icons",
-      G_CALLBACK (set_toolbar_icons) },
-    { NULL, NULL, "Text", NULL, "Only show toolbar text",
-      G_CALLBACK (set_toolbar_text) },
-    { NULL, NULL, "Both", NULL, "Show toolbar icons and text",
-      G_CALLBACK (set_toolbar_both) },
-    { NULL },
-    { NULL, NULL, "Woot", NULL, "Woot woot woot",
-      NULL },
-    { NULL, NULL, "Blah", NULL, "Blah blah blah",
-      NULL },
-    { NULL },
-    { NULL, NULL, "Enable", NULL, "Enable tooltips",
-      G_CALLBACK (set_toolbar_enable) },
-    { NULL, NULL, "Disable", NULL, "Disable tooltips",
-      G_CALLBACK (set_toolbar_disable) },
-    { NULL },
-    { NULL, NULL, "Hoo", NULL, "Hoo tooltip",
-      NULL },
-    { NULL, NULL, "Woo", NULL, "Woo tooltip",
-      NULL }
-};
-
-static GtkWidget*
-make_toolbar (GtkWidget *window)
-{
-  GtkWidget *toolbar;
-  guint i;
-
-  if (!gtk_widget_get_realized (window))
-    gtk_widget_realize (window);
-
-  toolbar = gtk_toolbar_new ();
-  for (i = 0; i < G_N_ELEMENTS (make_toolbar_items); i++)
-    {
-      GtkWidget *icon;
-      GtkToolItem *toolitem;
-
-      if (make_toolbar_items[i].label == NULL)
-        {
-          toolitem = gtk_separator_tool_item_new ();
-        }
-      else
-        {
-          icon  = new_pixbuf ("test.xpm", gtk_widget_get_window (window));
-          toolitem = gtk_tool_button_new (icon, make_toolbar_items[i].label);
-          gtk_tool_item_set_tooltip_text (toolitem, make_toolbar_items[i].tooltip);
-          if (make_toolbar_items[i].callback != NULL)
-            g_signal_connect (toolitem, "clicked",  make_toolbar_items[i].callback, toolbar);
-        }
-      gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
-    }
-
-  return toolbar;
-}
-
 /*
  * GtkStatusBar
  */
@@ -1564,128 +1500,6 @@ create_statusbar (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-/*
- * GtkHandleBox
- */
-
-static void
-handle_box_child_signal (GtkHandleBox *hb,
-                        GtkWidget    *child,
-                        const gchar  *action)
-{
-  printf ("%s: child <%s> %sed\n",
-         g_type_name (G_OBJECT_TYPE (hb)),
-         g_type_name (G_OBJECT_TYPE (child)),
-         action);
-}
-
-static void
-create_handle_box (GtkWidget *widget)
-{
-  static GtkWidget* window = NULL;
-  GtkWidget *handle_box;
-  GtkWidget *handle_box2;
-  GtkWidget *vbox;
-  GtkWidget *hbox;
-  GtkWidget *toolbar;
-  GtkWidget *label;
-  GtkWidget *separator;
-
-  if (!window)
-  {
-    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-    
-    gtk_window_set_screen (GTK_WINDOW (window),
-                          gtk_widget_get_screen (widget));
-    gtk_window_set_modal (GTK_WINDOW (window), FALSE);
-    gtk_window_set_title (GTK_WINDOW (window),
-                         "Handle Box Test");
-    gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
-    
-    g_signal_connect (window, "destroy",
-                     G_CALLBACK (gtk_widget_destroyed),
-                     &window);
-    
-    gtk_container_set_border_width (GTK_CONTAINER (window), 20);
-
-    vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-    gtk_container_add (GTK_CONTAINER (window), vbox);
-    gtk_widget_show (vbox);
-
-    label = gtk_label_new ("Above");
-    gtk_container_add (GTK_CONTAINER (vbox), label);
-    gtk_widget_show (label);
-
-    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
-    gtk_container_add (GTK_CONTAINER (vbox), separator);
-    gtk_widget_show (separator);
-    
-    hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
-    gtk_container_add (GTK_CONTAINER (vbox), hbox);
-    gtk_widget_show (hbox);
-
-    separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
-    gtk_container_add (GTK_CONTAINER (vbox), separator);
-    gtk_widget_show (separator);
-
-    label = gtk_label_new ("Below");
-    gtk_container_add (GTK_CONTAINER (vbox), label);
-    gtk_widget_show (label);
-
-    handle_box = gtk_handle_box_new ();
-    gtk_box_pack_start (GTK_BOX (hbox), handle_box, FALSE, FALSE, 0);
-    g_signal_connect (handle_box,
-                     "child_attached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "attached");
-    g_signal_connect (handle_box,
-                     "child_detached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "detached");
-    gtk_widget_show (handle_box);
-
-    toolbar = make_toolbar (window);
-    
-    gtk_container_add (GTK_CONTAINER (handle_box), toolbar);
-    gtk_widget_show (toolbar);
-
-    handle_box = gtk_handle_box_new ();
-    gtk_box_pack_start (GTK_BOX (hbox), handle_box, FALSE, FALSE, 0);
-    g_signal_connect (handle_box,
-                     "child_attached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "attached");
-    g_signal_connect (handle_box,
-                     "child_detached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "detached");
-    gtk_widget_show (handle_box);
-
-    handle_box2 = gtk_handle_box_new ();
-    gtk_container_add (GTK_CONTAINER (handle_box), handle_box2);
-    g_signal_connect (handle_box2,
-                     "child_attached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "attached");
-    g_signal_connect (handle_box2,
-                     "child_detached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "detached");
-    gtk_widget_show (handle_box2);
-
-    hbox = g_object_new (GTK_TYPE_BOX, "visible", 1, "parent", handle_box2, NULL);
-    label = gtk_label_new ("Fooo!");
-    gtk_container_add (GTK_CONTAINER (hbox), label);
-    gtk_widget_show (label);
-    g_object_new (GTK_TYPE_ARROW, "visible", 1, "parent", hbox, NULL);
-  }
-
-  if (!gtk_widget_get_visible (window))
-    gtk_widget_show (window);
-  else
-    gtk_widget_destroy (window);
-}
-
 /* 
  * Label Demo
  */
@@ -2305,11 +2119,11 @@ grippy_button_press (GtkWidget *area, GdkEventButton *event, GdkWindowEdge edge)
 {
   if (event->type == GDK_BUTTON_PRESS) 
     {
-      if (event->button == 1)
+      if (event->button == GDK_BUTTON_PRIMARY)
        gtk_window_begin_resize_drag (GTK_WINDOW (gtk_widget_get_toplevel (area)), edge,
                                      event->button, event->x_root, event->y_root,
                                      event->time);
-      else if (event->button == 2)
+      else if (event->button == GDK_BUTTON_MIDDLE)
        gtk_window_begin_move_drag (GTK_WINDOW (gtk_widget_get_toplevel (area)), 
                                    event->button, event->x_root, event->y_root,
                                    event->time);
@@ -2881,7 +2695,7 @@ create_image (GtkWidget *widget)
  */
 
 static GtkWidget*
-create_menu (GdkScreen *screen, gint depth, gint length, gboolean tearoff)
+create_menu (GdkScreen *screen, gint depth, gint length)
 {
   GtkWidget *menu;
   GtkWidget *menuitem;
@@ -2898,13 +2712,6 @@ create_menu (GdkScreen *screen, gint depth, gint length, gboolean tearoff)
 
   group = NULL;
 
-  if (tearoff)
-    {
-      menuitem = gtk_tearoff_menu_item_new ();
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
-      gtk_widget_show (menuitem);
-    }
-
   image = gtk_image_new_from_stock (GTK_STOCK_OPEN,
                                     GTK_ICON_SIZE_MENU);
   gtk_widget_show (image);
@@ -2931,14 +2738,14 @@ create_menu (GdkScreen *screen, gint depth, gint length, gboolean tearoff)
 
       if (i < 5)
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), 
-                                  create_menu (screen, depth - 1, 5,  TRUE));
+                                  create_menu (screen, depth - 1, 5));
     }
 
   return menu;
 }
 
 static GtkWidget*
-create_table_menu (GdkScreen *screen, gint cols, gint rows, gboolean tearoff)
+create_table_menu (GdkScreen *screen, gint cols, gint rows)
 {
   GtkWidget *menu;
   GtkWidget *menuitem;
@@ -2951,13 +2758,6 @@ create_table_menu (GdkScreen *screen, gint cols, gint rows, gboolean tearoff)
   gtk_menu_set_screen (GTK_MENU (menu), screen);
 
   j = 0;
-  if (tearoff)
-    {
-      menuitem = gtk_tearoff_menu_item_new ();
-      gtk_menu_attach (GTK_MENU (menu), menuitem, 0, cols, j, j + 1);
-      gtk_widget_show (menuitem);
-      j++;
-    }
   
   menuitem = gtk_menu_item_new_with_label ("items");
   gtk_menu_attach (GTK_MENU (menu), menuitem, 0, cols, j, j + 1);
@@ -3171,14 +2971,14 @@ create_menus (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0);
       gtk_widget_show (menubar);
       
-      menu = create_menu (screen, 2, 50, TRUE);
+      menu = create_menu (screen, 2, 50);
       
       menuitem = gtk_menu_item_new_with_label ("test\nline2");
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
 
-      menu = create_table_menu (screen, 2, 50, TRUE);
+      menu = create_table_menu (screen, 2, 50);
       
       menuitem = gtk_menu_item_new_with_label ("table");
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
@@ -3186,7 +2986,7 @@ create_menus (GtkWidget *widget)
       gtk_widget_show (menuitem);
       
       menuitem = gtk_menu_item_new_with_label ("foo");
-      gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 3, 5, TRUE));
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 3, 5));
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
 
@@ -3195,7 +2995,7 @@ create_menus (GtkWidget *widget)
       gtk_widget_show (image);
       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_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 4, 5));
       gtk_widget_set_hexpand (menuitem, TRUE);
       gtk_widget_set_halign (menuitem, GTK_ALIGN_END);
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
@@ -3205,7 +3005,7 @@ create_menus (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0);
       gtk_widget_show (menubar);
       
-      menu = create_menu (screen, 2, 10, TRUE);
+      menu = create_menu (screen, 2, 10);
       
       menuitem = gtk_menu_item_new_with_label ("Second menu bar");
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
@@ -3217,7 +3017,7 @@ create_menus (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
       gtk_widget_show (box2);
       
-      menu = create_menu (screen, 1, 5, FALSE);
+      menu = create_menu (screen, 1, 5);
       gtk_menu_set_accel_group (GTK_MENU (menu), accel_group);
 
       menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, accel_group);
@@ -3496,35 +3296,16 @@ static void
 cmw_color (GtkWidget *widget, GtkWidget *parent)
 {
     GtkWidget *csd;
-    GtkWidget *colorsel;
-    GtkWidget *ok_button, *cancel_button;
-
-    csd = gtk_color_selection_dialog_new ("This is a modal color selection dialog");
 
-    gtk_window_set_screen (GTK_WINDOW (csd), gtk_widget_get_screen (parent));
+    csd = gtk_color_chooser_dialog_new ("This is a modal color selection dialog", GTK_WINDOW (parent));
 
-    colorsel = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (csd));
-    gtk_color_selection_set_has_palette (GTK_COLOR_SELECTION (colorsel),
-                                         TRUE);
-    
     /* Set as modal */
     gtk_window_set_modal (GTK_WINDOW(csd),TRUE);
 
-    /* And mark it as a transient dialog */
-    gtk_window_set_transient_for (GTK_WINDOW (csd), GTK_WINDOW (parent));
-    
     g_signal_connect (csd, "destroy",
                      G_CALLBACK (cmw_destroy_cb), NULL);
-
-    g_object_get (csd,
-                  "ok-button", &ok_button,
-                  "cancel-button", &cancel_button,
-                  NULL);
-
-    g_signal_connect_swapped (ok_button,
-                            "clicked", G_CALLBACK (gtk_widget_destroy), csd);
-    g_signal_connect_swapped (cancel_button,
-                            "clicked", G_CALLBACK (gtk_widget_destroy), csd);
+    g_signal_connect (csd, "response",
+                      G_CALLBACK (gtk_widget_destroy), NULL);
     
     /* wait until destroy calls gtk_main_quit */
     gtk_widget_show (csd);    
@@ -3854,7 +3635,7 @@ entry_progress_timeout (gpointer data)
       gtk_entry_set_progress_fraction (GTK_ENTRY (data), fraction);
     }
 
-  return TRUE;
+  return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -4829,10 +4610,10 @@ cursor_event (GtkWidget          *widget,
              GtkSpinButton      *spinner)
 {
   if ((event->type == GDK_BUTTON_PRESS) &&
-      ((event->button.button == 1) ||
-       (event->button.button == 3)))
+      ((event->button.button == GDK_BUTTON_PRIMARY) ||
+       (event->button.button == GDK_BUTTON_SECONDARY)))
     {
-      gtk_spin_button_spin (spinner, event->button.button == 1 ?
+      gtk_spin_button_spin (spinner, event->button.button == GDK_BUTTON_PRIMARY ?
                            GTK_SPIN_STEP_FORWARD : GTK_SPIN_STEP_BACKWARD, 0);
       return TRUE;
     }
@@ -5009,55 +4790,6 @@ create_cursors (GtkWidget *widget)
  * GtkColorSelection
  */
 
-void
-color_selection_ok (GtkWidget               *w,
-                    GtkColorSelectionDialog *cs)
-{
-  GtkWidget *colorsel;
-  GdkColor color;
-
-  colorsel = gtk_color_selection_dialog_get_color_selection (cs);
-
-  gtk_color_selection_get_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-}
-
-void
-color_selection_changed (GtkWidget *w,
-                         GtkColorSelectionDialog *cs)
-{
-  GtkWidget *colorsel;
-  GdkColor color;
-
-  colorsel = gtk_color_selection_dialog_get_color_selection (cs);
-  gtk_color_selection_get_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-}
-
-#if 0 /* unused */
-static void
-opacity_toggled_cb (GtkWidget *w,
-                   GtkColorSelectionDialog *cs)
-{
-  GtkColorSelection *colorsel;
-
-  colorsel = GTK_COLOR_SELECTION (cs->colorsel);
-  gtk_color_selection_set_has_opacity_control (colorsel,
-                                              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)));
-}
-
-static void
-palette_toggled_cb (GtkWidget *w,
-                   GtkColorSelectionDialog *cs)
-{
-  GtkColorSelection *colorsel;
-
-  colorsel = GTK_COLOR_SELECTION (cs->colorsel);
-  gtk_color_selection_set_has_palette (colorsel,
-                                      gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)));
-}
-#endif
-
 void
 create_color_selection (GtkWidget *widget)
 {
@@ -5089,7 +4821,7 @@ create_color_selection (GtkWidget *widget)
       gtk_container_add (GTK_CONTAINER (hbox), label);
 
       picker = gtk_color_button_new ();
-      gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (picker), TRUE);
+      gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (picker), TRUE);
       gtk_container_add (GTK_CONTAINER (hbox), picker);
 
       button = gtk_button_new_with_mnemonic ("_Props");
@@ -6267,6 +5999,31 @@ create_notebook (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
+void
+create_settings (GtkWidget *widget)
+{
+  static GtkWidget *window = NULL;
+
+  if (!window)
+    {
+      window = create_prop_editor (G_OBJECT (gtk_settings_get_default ()), GTK_TYPE_SETTINGS);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                             gtk_widget_get_screen (widget));
+
+      gtk_widget_hide (window);
+      gtk_window_set_title (GTK_WINDOW (window), "GTK+ Settings");
+
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed),
+                        &window);
+    }
+
+  if (!gtk_widget_get_visible (window))
+    gtk_widget_show (window);
+  else
+    gtk_widget_destroy (window);
+}
+
 /*
  * GtkPanes
  */
@@ -6275,7 +6032,7 @@ void
 toggle_resize (GtkWidget *widget, GtkWidget *child)
 {
   GtkContainer *container = GTK_CONTAINER (gtk_widget_get_parent (child));
-  GValue value = { 0, };
+  GValue value = G_VALUE_INIT;
   g_value_init (&value, G_TYPE_BOOLEAN);
   gtk_container_child_get_property (container, child, "resize", &value);
   g_value_set_boolean (&value, !g_value_get_boolean (&value));
@@ -6286,7 +6043,7 @@ void
 toggle_shrink (GtkWidget *widget, GtkWidget *child)
 {
   GtkContainer *container = GTK_CONTAINER (gtk_widget_get_parent (child));
-  GValue value = { 0, };
+  GValue value = G_VALUE_INIT;
   g_value_init (&value, G_TYPE_BOOLEAN);
   gtk_container_child_get_property (container, child, "shrink", &value);
   g_value_set_boolean (&value, !g_value_get_boolean (&value));
@@ -6310,7 +6067,7 @@ create_pane_options (GtkPaned    *paned,
 {
   GtkWidget *child1, *child2;
   GtkWidget *frame;
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *label;
   GtkWidget *button;
   GtkWidget *check_button;
@@ -6321,23 +6078,20 @@ create_pane_options (GtkPaned    *paned,
   frame = gtk_frame_new (frame_label);
   gtk_container_set_border_width (GTK_CONTAINER (frame), 4);
   
-  table = gtk_table_new (4, 2, 4);
-  gtk_container_add (GTK_CONTAINER (frame), table);
+  grid = gtk_grid_new ();
+  gtk_container_add (GTK_CONTAINER (frame), grid);
   
   label = gtk_label_new (label1);
-  gtk_table_attach_defaults (GTK_TABLE (table), label,
-                            0, 1, 0, 1);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
   
   check_button = gtk_check_button_new_with_label ("Resize");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            0, 1, 1, 2);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 0, 1, 1, 1);
   g_signal_connect (check_button, "toggled",
                    G_CALLBACK (toggle_resize),
                     child1);
 
   check_button = gtk_check_button_new_with_label ("Shrink");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            0, 1, 2, 3);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 0, 2, 1, 1);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
   g_signal_connect (check_button, "toggled",
@@ -6345,12 +6099,10 @@ create_pane_options (GtkPaned    *paned,
                     child1);
 
   label = gtk_label_new (label2);
-  gtk_table_attach_defaults (GTK_TABLE (table), label,
-                            1, 2, 0, 1);
+  gtk_grid_attach (GTK_GRID (grid), label, 1, 0, 1, 1);
   
   check_button = gtk_check_button_new_with_label ("Resize");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            1, 2, 1, 2);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 1, 1, 1);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
   g_signal_connect (check_button, "toggled",
@@ -6358,8 +6110,7 @@ create_pane_options (GtkPaned    *paned,
                     child2);
 
   check_button = gtk_check_button_new_with_label ("Shrink");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            1, 2, 2, 3);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 2, 1, 1);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
   g_signal_connect (check_button, "toggled",
@@ -6367,8 +6118,7 @@ create_pane_options (GtkPaned    *paned,
                     child2);
 
   button = gtk_button_new_with_mnemonic ("_Properties");
-  gtk_table_attach_defaults (GTK_TABLE (table), button,
-                            0, 2, 3, 4);
+  gtk_grid_attach (GTK_GRID (grid), button, 0, 3, 2, 1);
   g_signal_connect (button, "clicked",
                    G_CALLBACK (paned_props_clicked),
                    paned);
@@ -6876,7 +6626,6 @@ shape_motion (GtkWidget      *widget,
 {
   gint xp, yp;
   CursorOffset * p;
-  GdkModifierType mask;
 
   p = g_object_get_data (G_OBJECT (widget), "cursor_offset");
 
@@ -6884,7 +6633,9 @@ shape_motion (GtkWidget      *widget,
    * Can't use event->x / event->y here 
    * because I need absolute coordinates.
    */
-  gdk_window_get_pointer (NULL, &xp, &yp, &mask);
+  gdk_window_get_device_position (gdk_screen_get_root_window (gtk_widget_get_screen (widget)),
+                                  gdk_event_get_device ((GdkEvent *) event),
+                                  &xp, &yp, NULL);
   gtk_window_move (GTK_WINDOW (widget), xp  - p->x, yp  - p->y);
 }
 
@@ -8526,8 +8277,9 @@ find_widget_at_pointer (GdkDevice *device)
 
  if (widget)
    {
-     gdk_window_get_pointer (gtk_widget_get_window (widget),
-                            &x, &y, NULL);
+     gdk_window_get_device_position (gtk_widget_get_window (widget),
+                                     device,
+                                    &x, &y, NULL);
      
      data.x = x;
      data.y = y;
@@ -9299,7 +9051,7 @@ idle_test (GtkWidget *label)
   sprintf (buffer, "count: %d", ++count);
   gtk_label_set_text (GTK_LABEL (label), buffer);
 
-  return TRUE;
+  return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -9895,7 +9647,6 @@ struct {
   { "flipping", create_flipping },
   { "focus", create_focus },
   { "font selection", create_font_selection },
-  { "handle box", create_handle_box },
   { "image", create_image },
   { "key lookup", create_key_lookup },
   { "labels", create_labels },
@@ -9918,6 +9669,7 @@ struct {
   { "rotated text", create_rotated_text },
   { "saved position", create_saved_position },
   { "scrolled windows", create_scrolled_windows },
+  { "settings", create_settings },
   { "shapes", create_shapes },
   { "size groups", create_size_groups },
   { "snapshot", create_snapshot },