[metacity] frame: always use the client window's visual



commit 5863176a2bd659c8d9a3d1c7b023a27c1a8c0aa5
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 03d4e66..5620467 100644
--- a/src/core/frame.c
+++ b/src/core/frame.c
@@ -56,11 +56,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;
@@ -85,52 +81,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]