[gtk+/wip/otte/gtk4: 33/127] API: Remove gdk_window_set_composited()



commit cfacd1bcf4ad8132c3dfb31c665ca1c99e8432b8
Author: Benjamin Otte <otte redhat com>
Date:   Sun Oct 2 03:02:10 2016 +0200

    API: Remove gdk_window_set_composited()
    
    And the related call gdk_display_supports_composite().

 gdk/broadway/gdkdisplay-broadway.c |    7 --
 gdk/broadway/gdkwindow-broadway.c  |    7 --
 gdk/gdkdisplay.c                   |   25 -------
 gdk/gdkdisplay.h                   |    2 -
 gdk/gdkdisplayprivate.h            |    1 -
 gdk/gdkinternals.h                 |    1 -
 gdk/gdkoffscreenwindow.c           |    1 -
 gdk/gdkwindow.c                    |  141 +-----------------------------------
 gdk/gdkwindowimpl.h                |    2 -
 gdk/mir/gdkmirdisplay.c            |    8 --
 gdk/mir/gdkmirwindowimpl.c         |    8 --
 gdk/quartz/gdkdisplay-quartz.c     |    9 ---
 gdk/wayland/gdkdisplay-wayland.c   |    7 --
 gdk/wayland/gdkwindow-wayland.c    |    7 --
 gdk/win32/gdkdisplay-win32.c       |    7 --
 gdk/win32/gdkwindow-win32.c        |    1 -
 gdk/x11/gdkdisplay-x11.c           |   44 -----------
 gdk/x11/gdkwindow-x11.c            |   31 --------
 gtk/gtkwidget.c                    |    4 -
 tests/testgtk.c                    |  121 -------------------------------
 20 files changed, 4 insertions(+), 430 deletions(-)
---
diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c
index 54a1fa8..f6d4aa1 100644
--- a/gdk/broadway/gdkdisplay-broadway.c
+++ b/gdk/broadway/gdkdisplay-broadway.c
@@ -259,12 +259,6 @@ gdk_broadway_display_supports_input_shapes (GdkDisplay *display)
   return FALSE;
 }
 
-static gboolean
-gdk_broadway_display_supports_composite (GdkDisplay *display)
-{
-  return FALSE;
-}
-
 static gulong
 gdk_broadway_display_get_next_serial (GdkDisplay *display)
 {
@@ -341,7 +335,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
   display_class->store_clipboard = gdk_broadway_display_store_clipboard;
   display_class->supports_shapes = gdk_broadway_display_supports_shapes;
   display_class->supports_input_shapes = gdk_broadway_display_supports_input_shapes;
-  display_class->supports_composite = gdk_broadway_display_supports_composite;
   display_class->get_cursor_for_type = _gdk_broadway_display_get_cursor_for_type;
   display_class->get_cursor_for_name = _gdk_broadway_display_get_cursor_for_name;
   display_class->get_cursor_for_surface = _gdk_broadway_display_get_cursor_for_surface;
diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c
index e6b878f..2cc6b15 100644
--- a/gdk/broadway/gdkwindow-broadway.c
+++ b/gdk/broadway/gdkwindow-broadway.c
@@ -1523,12 +1523,6 @@ gdk_broadway_window_set_opacity (GdkWindow *window,
     opacity = 1;
 }
 
-static void
-gdk_broadway_window_set_composited (GdkWindow *window,
-                                   gboolean   composited)
-{
-}
-
 void
 _gdk_broadway_display_before_process_all_updates (GdkDisplay *display)
 {
@@ -1618,7 +1612,6 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
   impl_class->begin_resize_drag = gdk_broadway_window_begin_resize_drag;
   impl_class->begin_move_drag = gdk_broadway_window_begin_move_drag;
   impl_class->set_opacity = gdk_broadway_window_set_opacity;
-  impl_class->set_composited = gdk_broadway_window_set_composited;
   impl_class->destroy_notify = gdk_broadway_window_destroy_notify;
   impl_class->register_dnd = _gdk_broadway_window_register_dnd;
   impl_class->drag_begin = _gdk_broadway_window_drag_begin;
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index e7f0463..53b9179 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -1863,31 +1863,6 @@ gdk_display_supports_input_shapes (GdkDisplay *display)
 }
 
 /**
- * gdk_display_supports_composite:
- * @display: a #GdkDisplay
- *
- * Returns %TRUE if gdk_window_set_composited() can be used
- * to redirect drawing on the window using compositing.
- *
- * Currently this only works on X11 with XComposite and
- * XDamage extensions available.
- *
- * Returns: %TRUE if windows may be composited.
- *
- * Since: 2.12
- *
- * Deprecated: 3.16: Compositing is an outdated technology that
- *   only ever worked on X11.
- */
-gboolean
-gdk_display_supports_composite (GdkDisplay *display)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
-
-  return GDK_DISPLAY_GET_CLASS (display)->supports_composite (display);
-}
-
-/**
  * gdk_display_list_devices:
  * @display: a #GdkDisplay
  *
diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h
index 557113d..d74cf3a 100644
--- a/gdk/gdkdisplay.h
+++ b/gdk/gdkdisplay.h
@@ -161,8 +161,6 @@ GDK_AVAILABLE_IN_ALL
 gboolean gdk_display_supports_shapes           (GdkDisplay    *display);
 GDK_AVAILABLE_IN_ALL
 gboolean gdk_display_supports_input_shapes     (GdkDisplay    *display);
-GDK_DEPRECATED_IN_3_16
-gboolean gdk_display_supports_composite        (GdkDisplay    *display);
 GDK_AVAILABLE_IN_ALL
 void     gdk_display_notify_startup_complete   (GdkDisplay    *display,
                                                 const gchar   *startup_id);
diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
index 4b5a009..fea52aa 100644
--- a/gdk/gdkdisplayprivate.h
+++ b/gdk/gdkdisplayprivate.h
@@ -151,7 +151,6 @@ struct _GdkDisplayClass
                                                                  GdkAtom     selection);
   gboolean                   (*supports_shapes)       (GdkDisplay *display);
   gboolean                   (*supports_input_shapes) (GdkDisplay *display);
-  gboolean                   (*supports_composite)    (GdkDisplay *display);
   gboolean                   (*supports_cursor_alpha) (GdkDisplay *display);
   gboolean                   (*supports_cursor_color) (GdkDisplay *display);
 
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index 8949dae..67212ff 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -328,7 +328,6 @@ struct _GdkWindow
   guint input_only : 1;
   guint pass_through : 1;
   guint modal_hint : 1;
-  guint composited : 1;
   guint has_alpha_background : 1;
 
   guint destroyed : 2;
diff --git a/gdk/gdkoffscreenwindow.c b/gdk/gdkoffscreenwindow.c
index 2caf0af..8c01e9f 100644
--- a/gdk/gdkoffscreenwindow.c
+++ b/gdk/gdkoffscreenwindow.c
@@ -758,7 +758,6 @@ gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
   impl_class->enable_synchronized_configure = gdk_offscreen_window_do_nothing;
   impl_class->configure_finished = NULL;
   impl_class->set_opacity = gdk_offscreen_window_set_opacity;
-  impl_class->set_composited = NULL;
   impl_class->destroy_notify = NULL;
   impl_class->register_dnd = gdk_offscreen_window_do_nothing;
   impl_class->drag_begin = NULL;
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index a2fb1aa..0c3a0c8 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -69,15 +69,6 @@
  * and so on; a #GtkWindow may contain many #GdkWindows. For example,
  * each #GtkButton has a #GdkWindow associated with it.
  *
- * # Composited Windows # {#COMPOSITED-WINDOWS}
- *
- * Normally, the windowing system takes care of rendering the contents
- * of a child window onto its parent window. This mechanism can be
- * intercepted by calling gdk_window_set_composited() on the child
- * window. For a “composited” window it is the
- * responsibility of the application to render the window contents at
- * the right spot.
- *
  * # Offscreen Windows # {#OFFSCREEN-WINDOWS}
  *
  * Offscreen windows are more general than composited windows, since
@@ -701,7 +692,7 @@ remove_sibling_overlapped_area (GdkWindow *window,
       if (sibling == window)
        break;
 
-      if (!GDK_WINDOW_IS_MAPPED (sibling) || sibling->input_only || sibling->composited)
+      if (!GDK_WINDOW_IS_MAPPED (sibling) || sibling->input_only)
        continue;
 
       /* Ignore offscreen children, as they don't draw in their parent and
@@ -763,7 +754,7 @@ remove_child_area (GdkWindow *window,
       if (cairo_region_is_empty (region))
        break;
 
-      if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only || child->composited)
+      if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only)
        continue;
 
       /* Ignore offscreen children, as they don't draw in their parent and
@@ -2975,9 +2966,7 @@ gdk_window_begin_paint_internal (GdkWindow            *window,
 static void
 gdk_window_end_paint_internal (GdkWindow *window)
 {
-  GdkWindow *composited;
   GdkWindowImplClass *impl_class;
-  GdkRectangle clip_box = { 0, };
   cairo_t *cr;
 
   if (GDK_WINDOW_DESTROYED (window) ||
@@ -2999,8 +2988,6 @@ gdk_window_end_paint_internal (GdkWindow *window)
     {
       cairo_surface_t *surface;
 
-      cairo_region_get_extents (window->current_paint.region, &clip_box);
-
       if (window->current_paint.use_gl)
         {
           cairo_region_t *opaque_region = cairo_region_copy (window->current_paint.region);
@@ -3046,29 +3033,6 @@ gdk_window_end_paint_internal (GdkWindow *window)
     }
 
   gdk_window_free_current_paint (window);
-
-  /* find a composited window in our hierarchy to signal its
-   * parent to redraw, calculating the clip box as we go...
-   *
-   * stop if parent becomes NULL since then we'd have nowhere
-   * to draw (ie: 'composited' will always be non-NULL here).
-   */
-  for (composited = window;
-       composited->parent;
-       composited = composited->parent)
-    {
-      clip_box.x += composited->x;
-      clip_box.y += composited->y;
-      clip_box.width = MIN (clip_box.width, composited->parent->width - clip_box.x);
-      clip_box.height = MIN (clip_box.height, composited->parent->height - clip_box.y);
-
-      if (composited->composited)
-       {
-         gdk_window_invalidate_rect (GDK_WINDOW (composited->parent),
-                                     &clip_box, FALSE);
-         break;
-       }
-    }
 }
 
 /**
@@ -3844,7 +3808,7 @@ _gdk_window_process_updates_recurse_helper (GdkWindow *window,
     {
       child = l->data;
 
-      if (child->destroyed || !GDK_WINDOW_IS_MAPPED (child) || child->input_only || child->composited)
+      if (child->destroyed || !GDK_WINDOW_IS_MAPPED (child) || child->input_only)
         continue;
 
       /* Ignore offscreen children, as they don't draw in their parent and
@@ -7293,102 +7257,6 @@ gdk_window_set_static_gravities (GdkWindow *window,
 }
 
 /**
- * gdk_window_get_composited:
- * @window: a #GdkWindow
- *
- * Determines whether @window is composited.
- *
- * See gdk_window_set_composited().
- *
- * Returns: %TRUE if the window is composited.
- *
- * Since: 2.22
- *
- * Deprecated: 3.16: Compositing is an outdated technology that
- *   only ever worked on X11.
- **/
-gboolean
-gdk_window_get_composited (GdkWindow *window)
-{
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-
-  return window->composited;
-}
-
-/**
- * gdk_window_set_composited:
- * @window: a #GdkWindow
- * @composited: %TRUE to set the window as composited
- *
- * Sets a #GdkWindow as composited, or unsets it. Composited
- * windows do not automatically have their contents drawn to
- * the screen. Drawing is redirected to an offscreen buffer
- * and an expose event is emitted on the parent of the composited
- * window. It is the responsibility of the parent’s expose handler
- * to manually merge the off-screen content onto the screen in
- * whatever way it sees fit.
- *
- * It only makes sense for child windows to be composited; see
- * gdk_window_set_opacity() if you need translucent toplevel
- * windows.
- *
- * An additional effect of this call is that the area of this
- * window is no longer clipped from regions marked for
- * invalidation on its parent. Draws done on the parent
- * window are also no longer clipped by the child.
- *
- * This call is only supported on some systems (currently,
- * only X11 with new enough Xcomposite and Xdamage extensions).
- * You must call gdk_display_supports_composite() to check if
- * setting a window as composited is supported before
- * attempting to do so.
- *
- * Since: 2.12
- *
- * Deprecated: 3.16: Compositing is an outdated technology that
- *   only ever worked on X11.
- */
-void
-gdk_window_set_composited (GdkWindow *window,
-                          gboolean   composited)
-{
-  GdkDisplay *display;
-  GdkWindowImplClass *impl_class;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  composited = composited != FALSE;
-
-  if (window->composited == composited)
-    return;
-
-  if (composited)
-    gdk_window_ensure_native (window);
-
-  display = gdk_window_get_display (window);
-
-  impl_class = GDK_WINDOW_IMPL_GET_CLASS (window->impl);
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  if (composited && (!gdk_display_supports_composite (display) || !impl_class->set_composited))
-    {
-      g_warning ("gdk_window_set_composited called but "
-                 "compositing is not supported");
-      return;
-    }
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  impl_class->set_composited (window, composited);
-
-  recompute_visible_regions (window, FALSE);
-
-  if (GDK_WINDOW_IS_MAPPED (window))
-    gdk_window_invalidate_in_parent (window);
-
-  window->composited = composited;
-}
-
-/**
  * gdk_window_get_modal_hint:
  * @window: A toplevel #GdkWindow.
  *
@@ -11250,8 +11118,7 @@ gdk_window_configure_finished (GdkWindow *window)
  *
  * For child windows this function only works for non-native windows.
  *
- * For setting up per-pixel alpha topelevels, see gdk_screen_get_rgba_visual(),
- * and for non-toplevels, see gdk_window_set_composited().
+ * For setting up per-pixel alpha topelevels, see gdk_screen_get_rgba_visual().
  *
  * Support for non-toplevel windows was added in 3.8.
  *
diff --git a/gdk/gdkwindowimpl.h b/gdk/gdkwindowimpl.h
index c724723..a6555b1 100644
--- a/gdk/gdkwindowimpl.h
+++ b/gdk/gdkwindowimpl.h
@@ -238,8 +238,6 @@ struct _GdkWindowImplClass
   void         (* configure_finished)   (GdkWindow *window);
   void         (* set_opacity)          (GdkWindow *window,
                                         gdouble    opacity);
-  void         (* set_composited)       (GdkWindow *window,
-                                         gboolean   composited);
   void         (* destroy_notify)       (GdkWindow *window);
   GdkDragProtocol (* get_drag_protocol) (GdkWindow *window,
                                          GdkWindow **target);
diff --git a/gdk/mir/gdkmirdisplay.c b/gdk/mir/gdkmirdisplay.c
index eea892c..0a44b7d 100644
--- a/gdk/mir/gdkmirdisplay.c
+++ b/gdk/mir/gdkmirdisplay.c
@@ -267,13 +267,6 @@ gdk_mir_display_supports_input_shapes (GdkDisplay *display)
 }
 
 static gboolean
-gdk_mir_display_supports_composite (GdkDisplay *display)
-{
-  //g_printerr ("gdk_mir_display_supports_composite\n");
-  return FALSE;
-}
-
-static gboolean
 gdk_mir_display_supports_clipboard_persistence (GdkDisplay *display)
 {
   //g_printerr ("gdk_mir_display_supports_clipboard_persistence\n");
@@ -733,7 +726,6 @@ gdk_mir_display_class_init (GdkMirDisplayClass *klass)
   display_class->get_default_group = gdk_mir_display_get_default_group;
   display_class->supports_shapes = gdk_mir_display_supports_shapes;
   display_class->supports_input_shapes = gdk_mir_display_supports_input_shapes;
-  display_class->supports_composite = gdk_mir_display_supports_composite;
   display_class->supports_clipboard_persistence = gdk_mir_display_supports_clipboard_persistence;
   display_class->supports_cursor_alpha = gdk_mir_display_supports_cursor_alpha;
   display_class->supports_cursor_color = gdk_mir_display_supports_cursor_color;
diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c
index a7be39c..8b161ba 100644
--- a/gdk/mir/gdkmirwindowimpl.c
+++ b/gdk/mir/gdkmirwindowimpl.c
@@ -1396,13 +1396,6 @@ gdk_mir_window_impl_set_opacity (GdkWindow *window,
 }
 
 static void
-gdk_mir_window_impl_set_composited (GdkWindow *window,
-                                    gboolean   composited)
-{
-  //g_printerr ("gdk_mir_window_impl_set_composited window=%p\n", window);
-}
-
-static void
 gdk_mir_window_impl_destroy_notify (GdkWindow *window)
 {
   //g_printerr ("gdk_mir_window_impl_destroy_notify window=%p\n", window);
@@ -1877,7 +1870,6 @@ gdk_mir_window_impl_class_init (GdkMirWindowImplClass *klass)
   impl_class->enable_synchronized_configure = gdk_mir_window_impl_enable_synchronized_configure;
   impl_class->configure_finished = gdk_mir_window_impl_configure_finished;
   impl_class->set_opacity = gdk_mir_window_impl_set_opacity;
-  impl_class->set_composited = gdk_mir_window_impl_set_composited;
   impl_class->destroy_notify = gdk_mir_window_impl_destroy_notify;
   impl_class->get_drag_protocol = gdk_mir_window_impl_get_drag_protocol;
   impl_class->register_dnd = gdk_mir_window_impl_register_dnd;
diff --git a/gdk/quartz/gdkdisplay-quartz.c b/gdk/quartz/gdkdisplay-quartz.c
index 2bea570..63fa0f8 100644
--- a/gdk/quartz/gdkdisplay-quartz.c
+++ b/gdk/quartz/gdkdisplay-quartz.c
@@ -175,14 +175,6 @@ gdk_quartz_display_store_clipboard (GdkDisplay    *display,
   /* FIXME: Implement */
 }
 
-
-static gboolean
-gdk_quartz_display_supports_composite (GdkDisplay *display)
-{
-  /* FIXME: Implement */
-  return FALSE;
-}
-
 static gulong
 gdk_quartz_display_get_next_serial (GdkDisplay *display)
 {
@@ -245,7 +237,6 @@ gdk_quartz_display_class_init (GdkQuartzDisplayClass *class)
   display_class->store_clipboard = gdk_quartz_display_store_clipboard;
   display_class->supports_shapes = gdk_quartz_display_supports_shapes;
   display_class->supports_input_shapes = gdk_quartz_display_supports_input_shapes;
-  display_class->supports_composite = gdk_quartz_display_supports_composite;
   display_class->get_cursor_for_type = _gdk_quartz_display_get_cursor_for_type;
   display_class->get_cursor_for_name = _gdk_quartz_display_get_cursor_for_name;
   display_class->get_cursor_for_surface = _gdk_quartz_display_get_cursor_for_surface;
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index cddb2de..e9970e6 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -772,12 +772,6 @@ gdk_wayland_display_supports_input_shapes (GdkDisplay *display)
   return TRUE;
 }
 
-static gboolean
-gdk_wayland_display_supports_composite (GdkDisplay *display)
-{
-  return FALSE;
-}
-
 static void
 gdk_wayland_display_before_process_all_updates (GdkDisplay *display)
 {
@@ -923,7 +917,6 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class)
   display_class->store_clipboard = gdk_wayland_display_store_clipboard;
   display_class->supports_shapes = gdk_wayland_display_supports_shapes;
   display_class->supports_input_shapes = gdk_wayland_display_supports_input_shapes;
-  display_class->supports_composite = gdk_wayland_display_supports_composite;
   display_class->get_app_launch_context = _gdk_wayland_display_get_app_launch_context;
   display_class->get_default_cursor_size = _gdk_wayland_display_get_default_cursor_size;
   display_class->get_maximal_cursor_size = _gdk_wayland_display_get_maximal_cursor_size;
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 5b0df23..bc4698e 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -3446,12 +3446,6 @@ gdk_wayland_window_set_opacity (GdkWindow *window,
 }
 
 static void
-gdk_wayland_window_set_composited (GdkWindow *window,
-                                   gboolean   composited)
-{
-}
-
-static void
 gdk_wayland_window_destroy_notify (GdkWindow *window)
 {
   if (!GDK_WINDOW_DESTROYED (window))
@@ -3685,7 +3679,6 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
   impl_class->begin_resize_drag = gdk_wayland_window_begin_resize_drag;
   impl_class->begin_move_drag = gdk_wayland_window_begin_move_drag;
   impl_class->set_opacity = gdk_wayland_window_set_opacity;
-  impl_class->set_composited = gdk_wayland_window_set_composited;
   impl_class->destroy_notify = gdk_wayland_window_destroy_notify;
   impl_class->get_drag_protocol = _gdk_wayland_window_get_drag_protocol;
   impl_class->register_dnd = _gdk_wayland_window_register_dnd;
diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c
index 1b25d18..3eba020 100644
--- a/gdk/win32/gdkdisplay-win32.c
+++ b/gdk/win32/gdkdisplay-win32.c
@@ -743,12 +743,6 @@ gdk_win32_display_supports_input_shapes (GdkDisplay *display)
   return TRUE;
 }
 
-static gboolean
-gdk_win32_display_supports_composite (GdkDisplay *display)
-{
-  return FALSE;
-}
-
 static void
 gdk_win32_display_beep (GdkDisplay *display)
 {
@@ -906,7 +900,6 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
   display_class->store_clipboard = gdk_win32_display_store_clipboard;
   display_class->supports_shapes = gdk_win32_display_supports_shapes;
   display_class->supports_input_shapes = gdk_win32_display_supports_input_shapes;
-  display_class->supports_composite = gdk_win32_display_supports_composite;
 
   //? display_class->get_app_launch_context = _gdk_win32_display_get_app_launch_context;
   display_class->get_cursor_for_type = _gdk_win32_display_get_cursor_for_type;
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index bfd0140..6a5a7dc 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -5992,7 +5992,6 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
   impl_class->begin_resize_drag = gdk_win32_window_begin_resize_drag;
   impl_class->begin_move_drag = gdk_win32_window_begin_move_drag;
   impl_class->set_opacity = gdk_win32_window_set_opacity;
-  //impl_class->set_composited = gdk_win32_window_set_composited;
   impl_class->destroy_notify = gdk_win32_window_destroy_notify;
   impl_class->get_drag_protocol = _gdk_win32_window_get_drag_protocol;
   impl_class->register_dnd = _gdk_win32_window_register_dnd;
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index ad65e29..e4b9975 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -1014,39 +1014,6 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
        }
       else
 #endif
-#if defined(HAVE_XCOMPOSITE) && defined (HAVE_XDAMAGE) && defined (HAVE_XFIXES)
-      if (display_x11->have_xdamage && window && window->composited &&
-         xevent->type == display_x11->xdamage_event_base + XDamageNotify &&
-         ((XDamageNotifyEvent *) xevent)->damage == window_impl->damage)
-       {
-         XDamageNotifyEvent *damage_event = (XDamageNotifyEvent *) xevent;
-         XserverRegion repair;
-         GdkRectangle rect;
-          int x2, y2;
-
-         rect.x = window->x + damage_event->area.x / window_impl->window_scale;
-         rect.y = window->y + damage_event->area.y / window_impl->window_scale;
-
-          x2 = (rect.x * window_impl->window_scale + damage_event->area.width + window_impl->window_scale 
-1) / window_impl->window_scale;
-          y2 = (rect.y * window_impl->window_scale + damage_event->area.height + window_impl->window_scale 
-1) / window_impl->window_scale;
-         rect.width = x2 - rect.x;
-         rect.height = y2 - rect.y;
-
-         repair = XFixesCreateRegion (display_x11->xdisplay,
-                                      &damage_event->area, 1);
-         XDamageSubtract (display_x11->xdisplay,
-                          window_impl->damage,
-                          repair, None);
-         XFixesDestroyRegion (display_x11->xdisplay, repair);
-
-          if (window->parent != NULL)
-           _gdk_x11_window_process_expose (window->parent,
-                                           damage_event->serial, &rect);
-
-         return_val = TRUE;
-       }
-      else
-#endif
 #ifdef HAVE_XKB
       if (xevent->type == display_x11->xkb_event_type)
        {
@@ -2447,16 +2414,6 @@ gdk_x11_display_set_startup_notification_id (GdkDisplay  *display,
     }
 }
 
-static gboolean
-gdk_x11_display_supports_composite (GdkDisplay *display)
-{
-  GdkX11Display *x11_display = GDK_X11_DISPLAY (display);
-
-  return x11_display->have_xcomposite &&
-        x11_display->have_xdamage &&
-        x11_display->have_xfixes;
-}
-
 /**
  * gdk_x11_register_standard_event_type:
  * @display: (type GdkX11Display): a #GdkDisplay
@@ -2968,7 +2925,6 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
   display_class->store_clipboard = gdk_x11_display_store_clipboard;
   display_class->supports_shapes = gdk_x11_display_supports_shapes;
   display_class->supports_input_shapes = gdk_x11_display_supports_input_shapes;
-  display_class->supports_composite = gdk_x11_display_supports_composite;
   display_class->get_app_launch_context = _gdk_x11_display_get_app_launch_context;
   display_class->get_cursor_for_type = _gdk_x11_display_get_cursor_for_type;
   display_class->get_cursor_for_name = _gdk_x11_display_get_cursor_for_name;
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index a954c46..41ee462 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -5422,36 +5422,6 @@ gdk_x11_window_set_opacity (GdkWindow *window,
                     (guchar *) &cardinal, 1);
 }
 
-static void
-gdk_x11_window_set_composited (GdkWindow *window,
-                               gboolean   composited)
-{
-#if defined(HAVE_XCOMPOSITE) && defined(HAVE_XDAMAGE) && defined (HAVE_XFIXES)
-  GdkWindowImplX11 *impl;
-  GdkDisplay *display;
-  Display *dpy;
-  Window xid;
-
-  impl = GDK_WINDOW_IMPL_X11 (window->impl);
-
-  display = gdk_window_get_display (window);
-  dpy = GDK_DISPLAY_XDISPLAY (display);
-  xid = GDK_WINDOW_XID (window);
-
-  if (composited)
-    {
-      XCompositeRedirectWindow (dpy, xid, CompositeRedirectManual);
-      impl->damage = XDamageCreate (dpy, xid, XDamageReportBoundingBox);
-    }
-  else
-    {
-      XCompositeUnredirectWindow (dpy, xid, CompositeRedirectManual);
-      XDamageDestroy (dpy, impl->damage);
-      impl->damage = None;
-    }
-#endif
-}
-
 void
 _gdk_x11_display_before_process_all_updates (GdkDisplay *display)
 {
@@ -5763,7 +5733,6 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
   impl_class->begin_resize_drag = gdk_x11_window_begin_resize_drag;
   impl_class->begin_move_drag = gdk_x11_window_begin_move_drag;
   impl_class->set_opacity = gdk_x11_window_set_opacity;
-  impl_class->set_composited = gdk_x11_window_set_composited;
   impl_class->destroy_notify = gdk_x11_window_destroy_notify;
   impl_class->get_drag_protocol = gdk_x11_window_get_drag_protocol;
   impl_class->register_dnd = _gdk_x11_window_register_dnd;
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index cea479e..f461146 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -9975,10 +9975,6 @@ gtk_widget_propagate_screen_changed_recurse (GtkWidget *widget,
  * drawn correctly. On X11 this function returns whether a
  * compositing manager is running for @widget’s screen.
  *
- * Please note that the semantics of this call will change
- * in the future if used on a widget that has a composited
- * window in its hierarchy (as set by gdk_window_set_composited()).
- *
  * Returns: %TRUE if the widget can rely on its alpha
  * channel being drawn correctly.
  *
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 7a4b7ca..9b8149a 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -315,126 +315,6 @@ create_alpha_window (GtkWidget *widget)
 }
 
 /*
- * Composited non-toplevel window
- */
-
-/* The draw event handler for the event box.
- *
- * This function simply draws a transparency onto a widget on the area
- * for which it receives expose events.  This is intended to give the
- * event box a "transparent" background.
- *
- * In order for this to work properly, the widget must have an RGBA
- * colourmap.  The widget should also be set as app-paintable since it
- * doesn't make sense for GTK to draw a background if we are drawing it
- * (and because GTK might actually replace our transparency with its
- * default background colour).
- */
-static gboolean
-transparent_draw (GtkWidget *widget,
-                  cairo_t   *cr)
-{
-  cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
-  cairo_paint (cr);
-
-  return FALSE;
-}
-
-/* The expose event handler for the window.
- *
- * This function performs the actual compositing of the event box onto
- * the already-existing background of the window at 50% normal opacity.
- *
- * In this case we do not want app-paintable to be set on the widget
- * since we want it to draw its own (red) background.  Because of this,
- * however, we must ensure that we use g_signal_register_after so that
- * this handler is called after the red has been drawn.  If it was
- * called before then GTK would just blindly paint over our work.
- */
-static gboolean
-window_draw (GtkWidget *widget,
-             cairo_t   *cr)
-{
-  GtkAllocation allocation;
-  GtkWidget *child;
-
-  /* put a red background on the window */
-  cairo_set_source_rgb (cr, 1, 0, 0);
-  cairo_paint (cr);
-
-  /* get our child (in this case, the event box) */ 
-  child = gtk_bin_get_child (GTK_BIN (widget));
-
-  gtk_widget_get_allocation (child, &allocation);
-
-  /* the source data is the (composited) event box */
-  gdk_cairo_set_source_window (cr, gtk_widget_get_window (child),
-                               allocation.x,
-                               allocation.y);
-
-  /* composite, with a 50% opacity */
-  cairo_paint_with_alpha (cr, 0.5);
-
-  return FALSE;
-}
-
-void
-create_composited_window (GtkWidget *widget)
-{
-  static GtkWidget *window;
-
-  if (!window)
-    {
-      GtkWidget *event, *button;
-
-      /* make the widgets */
-      button = gtk_button_new_with_label ("A Button");
-      event = gtk_event_box_new ();
-      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
-      g_signal_connect (window, "destroy",
-                        G_CALLBACK (gtk_widget_destroyed),
-                        &window);
-
-      /* set our event box to have a fully-transparent background
-       * drawn on it.  currently there is no way to simply tell gtk
-       * that "transparency" is the background colour for a widget.
-       */
-      gtk_widget_set_app_paintable (GTK_WIDGET (event), TRUE);
-      g_signal_connect (event, "draw",
-                        G_CALLBACK (transparent_draw), NULL);
-
-      /* put them inside one another */
-      gtk_container_set_border_width (GTK_CONTAINER (window), 10);
-      gtk_container_add (GTK_CONTAINER (window), event);
-      gtk_container_add (GTK_CONTAINER (event), button);
-
-      /* realise and show everything */
-      gtk_widget_realize (button);
-
-      /* set the event box GdkWindow to be composited.
-       * obviously must be performed after event box is realised.
-       */
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-      gdk_window_set_composited (gtk_widget_get_window (event),
-                                 TRUE);
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-      /* set up the compositing handler.
-       * note that we do _after so that the normal (red) background is drawn
-       * by gtk before our compositing occurs.
-       */
-      g_signal_connect_after (window, "draw",
-                              G_CALLBACK (window_draw), NULL);
-    }
-
-  if (!gtk_widget_get_visible (window))
-    gtk_widget_show_all (window);
-  else
-    gtk_widget_destroy (window);
-}
-
-/*
  * Big windows and guffaw scrolling
  */
 
@@ -9428,7 +9308,6 @@ struct {
   { "buttons", create_buttons },
   { "check buttons", create_check_buttons },
   { "color selection", create_color_selection },
-  { "composited window", create_composited_window },
   { "cursors", create_cursors },
   { "dialog", create_dialog },
   { "display", create_display_screen, TRUE },


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