[metacity/wip/test-3-18: 7/8] frame: always use the client window's visual



commit dab0fcb1991f7aecc32df2ae857783bb646c1ddd
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Thu Apr 14 19:58:13 2016 +0300

    frame: always use the client window's visual

 src/core/frame.c |   46 ++++------------------------------------------
 1 files changed, 4 insertions(+), 42 deletions(-)
---
diff --git a/src/core/frame.c b/src/core/frame.c
index 4542f63..7d94c09 100644
--- a/src/core/frame.c
+++ b/src/core/frame.c
@@ -93,11 +93,7 @@ void
 meta_window_ensure_frame (MetaWindow *window)
 {
   MetaFrame *frame;
-  MetaScreen *screen;
   XSetWindowAttributes attrs;
-  XVisualInfo visual_info;
-  Visual *visual;
-  int status;
 
   if (window->frame)
     return;
@@ -122,52 +118,18 @@ meta_window_ensure_frame (MetaWindow *window)
   frame->is_flashing = FALSE;
   frame->borders_cached = FALSE;
 
-  meta_verbose ("Framing window %s: visual %s default, depth %d default depth %d\n",
-                window->desc,
-                XVisualIDFromVisual (window->xvisual) ==
-                XVisualIDFromVisual (window->screen->default_xvisual) ?
-                "is" : "is not",
-                window->depth, window->screen->default_depth);
   meta_verbose ("Frame geometry %d,%d  %dx%d\n",
                 frame->rect.x, frame->rect.y,
                 frame->rect.width, frame->rect.height);
 
-  /* Default depth/visual handles clients with weird visuals; they can
-   * always be children of the root depth/visual obviously, but
-   * e.g. DRI games can't be children of a parent that has the same
-   * visual as the client. NULL means default visual.
-   *
-   * We look for an ARGB visual if we can find one, otherwise use
-   * the default of NULL.
-   */
-
-  screen = meta_window_get_screen (window);
-  status = XMatchVisualInfo (window->display->xdisplay,
-                             XScreenNumberOfScreen (screen->xscreen),
-                             32, TrueColor,
-                             &visual_info);
-
-  if (!status)
-    {
-      /* Special case for depth 32 windows (assumed to be ARGB),
-       * we use the window's visual. Otherwise we just use the system visual.
-       */
-      if (window->depth == 32)
-        visual = window->xvisual;
-      else
-        visual = NULL;
-    }
-  else
-    visual = visual_info.visual;
-
   frame->xwindow = meta_ui_create_frame_window (window->screen->ui,
                                                 window->display->xdisplay,
-                                                visual,
+                                                window->xvisual,
                                                 frame->rect.x,
                                                 frame->rect.y,
-                                               frame->rect.width,
-                                               frame->rect.height,
-                                               frame->window->screen->number);
+                                                frame->rect.width,
+                                                frame->rect.height,
+                                                frame->window->screen->number);
 
   meta_verbose ("Frame for %s is 0x%lx\n", frame->window->desc, frame->xwindow);
   attrs.event_mask = EVENT_MASK;


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