mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 00:20:42 -05:00
x11: Use subclassing macros for CursorRendererX11
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3520>
This commit is contained in:
parent
d90a938c17
commit
4f96b43222
@ -30,20 +30,20 @@
|
||||
#include "backends/meta-stage-private.h"
|
||||
#include "backends/x11/meta-backend-x11.h"
|
||||
|
||||
struct _MetaCursorRendererX11Private
|
||||
struct _MetaCursorRendererX11
|
||||
{
|
||||
MetaCursorRenderer parent_instance;
|
||||
|
||||
gboolean server_cursor_visible;
|
||||
};
|
||||
typedef struct _MetaCursorRendererX11Private MetaCursorRendererX11Private;
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (MetaCursorRendererX11, meta_cursor_renderer_x11, META_TYPE_CURSOR_RENDERER);
|
||||
G_DEFINE_FINAL_TYPE (MetaCursorRendererX11, meta_cursor_renderer_x11, META_TYPE_CURSOR_RENDERER);
|
||||
|
||||
static gboolean
|
||||
meta_cursor_renderer_x11_update_cursor (MetaCursorRenderer *renderer,
|
||||
MetaCursorSprite *cursor_sprite)
|
||||
{
|
||||
MetaCursorRendererX11 *x11 = META_CURSOR_RENDERER_X11 (renderer);
|
||||
MetaCursorRendererX11Private *priv = meta_cursor_renderer_x11_get_instance_private (x11);
|
||||
MetaBackend *backend = meta_cursor_renderer_get_backend (renderer);
|
||||
MetaBackendX11 *backend_x11 = META_BACKEND_X11 (backend);
|
||||
Window xwindow = meta_backend_x11_get_xwindow (backend_x11);
|
||||
@ -78,20 +78,20 @@ meta_cursor_renderer_x11_update_cursor (MetaCursorRenderer *renderer,
|
||||
}
|
||||
}
|
||||
|
||||
if (has_server_cursor != priv->server_cursor_visible)
|
||||
if (has_server_cursor != x11->server_cursor_visible)
|
||||
{
|
||||
if (has_server_cursor)
|
||||
XFixesShowCursor (xdisplay, xwindow);
|
||||
else
|
||||
XFixesHideCursor (xdisplay, xwindow);
|
||||
|
||||
priv->server_cursor_visible = has_server_cursor;
|
||||
x11->server_cursor_visible = has_server_cursor;
|
||||
}
|
||||
|
||||
if (cursor_sprite)
|
||||
meta_cursor_sprite_realize_texture (cursor_sprite);
|
||||
|
||||
return !priv->server_cursor_visible;
|
||||
return !x11->server_cursor_visible;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -105,8 +105,6 @@ meta_cursor_renderer_x11_class_init (MetaCursorRendererX11Class *klass)
|
||||
static void
|
||||
meta_cursor_renderer_x11_init (MetaCursorRendererX11 *x11)
|
||||
{
|
||||
MetaCursorRendererX11Private *priv = meta_cursor_renderer_x11_get_instance_private (x11);
|
||||
|
||||
/* XFixes has no way to retrieve the current cursor visibility. */
|
||||
priv->server_cursor_visible = TRUE;
|
||||
x11->server_cursor_visible = TRUE;
|
||||
}
|
||||
|
@ -25,23 +25,10 @@
|
||||
#include "backends/meta-cursor-renderer.h"
|
||||
|
||||
#define META_TYPE_CURSOR_RENDERER_X11 (meta_cursor_renderer_x11_get_type ())
|
||||
#define META_CURSOR_RENDERER_X11(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_CURSOR_RENDERER_X11, MetaCursorRendererX11))
|
||||
#define META_CURSOR_RENDERER_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_CURSOR_RENDERER_X11, MetaCursorRendererX11Class))
|
||||
#define META_IS_CURSOR_RENDERER_X11(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_CURSOR_RENDERER_X11))
|
||||
#define META_IS_CURSOR_RENDERER_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_CURSOR_RENDERER_X11))
|
||||
#define META_CURSOR_RENDERER_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_CURSOR_RENDERER_X11, MetaCursorRendererX11Class))
|
||||
|
||||
typedef struct _MetaCursorRendererX11 MetaCursorRendererX11;
|
||||
typedef struct _MetaCursorRendererX11Class MetaCursorRendererX11Class;
|
||||
|
||||
struct _MetaCursorRendererX11
|
||||
{
|
||||
MetaCursorRenderer parent;
|
||||
};
|
||||
|
||||
struct _MetaCursorRendererX11Class
|
||||
{
|
||||
MetaCursorRendererClass parent_class;
|
||||
};
|
||||
|
||||
GType meta_cursor_renderer_x11_get_type (void) G_GNUC_CONST;
|
||||
G_DECLARE_FINAL_TYPE (MetaCursorRendererX11,
|
||||
meta_cursor_renderer_x11,
|
||||
META, CURSOR_RENDERER_X11,
|
||||
MetaCursorRenderer)
|
||||
|
Loading…
Reference in New Issue
Block a user