mirror of
https://github.com/brl/mutter.git
synced 2025-02-15 12:54:10 +00:00
![Jonas Ådahl](/assets/img/avatar_default.png)
In the native backend, the MetaRenderer manages the view by creating one per CRTC, but until now the MetaStageX11 managed the view for the X11 backend. This caused some issues as it meant meta_renderer_get_views() not returning anything, and that the view of the X11 screen not being a MetaRendererView, while in the other backends, all views are. Fix this by moving the view management responsibility to MetaRendererX11Cm, and have MetaStageX11 only operate on it via meta_renderer_x11_cm_*() API. The MetaRendererX11Cm takes care of making sure the view is always added to the list in the renderer, and turning X11 screen sizes into "layouts" etc. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1251
45 lines
1.7 KiB
C
45 lines
1.7 KiB
C
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
|
|
/*
|
|
* Copyright (C) 2016 Red Hat
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
* 02111-1307, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef META_RENDERER_X11_CM_H
|
|
#define META_RENDERER_X11_CM_H
|
|
|
|
#include "backends/x11/meta-renderer-x11.h"
|
|
|
|
#define META_TYPE_RENDERER_X11_CM (meta_renderer_x11_cm_get_type ())
|
|
G_DECLARE_FINAL_TYPE (MetaRendererX11Cm, meta_renderer_x11_cm,
|
|
META, RENDERER_X11_CM,
|
|
MetaRendererX11)
|
|
|
|
void meta_renderer_x11_cm_ensure_screen_view (MetaRendererX11Cm *renderer_x11_cm,
|
|
int width,
|
|
int height);
|
|
|
|
void meta_renderer_x11_cm_resize (MetaRendererX11Cm *renderer_x11_cm,
|
|
int width,
|
|
int height);
|
|
|
|
void meta_renderer_x11_cm_set_onscreen (MetaRendererX11Cm *renderer_x11_cm,
|
|
CoglOnscreen *onscreen);
|
|
|
|
#endif /* META_RENDERER_X11_CM_H */
|