summaryrefslogtreecommitdiff
path: root/gdk/broadway
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-04-22 01:14:46 +0000
committerMatthias Clasen <mclasen@redhat.com>2019-05-28 20:25:14 +0000
commit712a5d4f257d4fc73cd64ec12d5f818a6377621f (patch)
treea9527e856f0b3e38e58af5d4acc479170468092a /gdk/broadway
parent93b8f2563d5d5c9aa16018ebc1533cbe1a408f87 (diff)
downloadgtk+-712a5d4f257d4fc73cd64ec12d5f818a6377621f.tar.gz
Get rid of GdkSurfaceImpl
We don't need the complicated wrapper system anymore, since client-side windows are gone. This commit moves all the vfuncs to GtkSurfaceClass, and changes the backends to just derive their surface implementation from GdkSurface.
Diffstat (limited to 'gdk/broadway')
-rw-r--r--gdk/broadway/gdkdevice-broadway.c4
-rw-r--r--gdk/broadway/gdkdisplay-broadway.c9
-rw-r--r--gdk/broadway/gdkdnd-broadway.c4
-rw-r--r--gdk/broadway/gdkeventsource.c2
-rw-r--r--gdk/broadway/gdkprivate-broadway.h12
-rw-r--r--gdk/broadway/gdksurface-broadway.c291
-rw-r--r--gdk/broadway/gdksurface-broadway.h25
7 files changed, 159 insertions, 188 deletions
diff --git a/gdk/broadway/gdkdevice-broadway.c b/gdk/broadway/gdkdevice-broadway.c
index 6b3621d7d8..801b021c56 100644
--- a/gdk/broadway/gdkdevice-broadway.c
+++ b/gdk/broadway/gdkdevice-broadway.c
@@ -20,7 +20,7 @@
#include "gdkdevice-broadway.h"
-#include "gdksurface.h"
+#include "gdksurfaceprivate.h"
#include "gdkprivate-broadway.h"
static gboolean gdk_broadway_device_get_history (GdkDevice *device,
@@ -251,7 +251,7 @@ gdk_broadway_device_grab (GdkDevice *device,
{
/* Device is a pointer */
return _gdk_broadway_server_grab_pointer (broadway_display->server,
- GDK_SURFACE_IMPL_BROADWAY (surface->impl)->id,
+ GDK_BROADWAY_SURFACE (surface)->id,
owner_events,
event_mask,
time_);
diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c
index e3ba560f88..c9ffa25d27 100644
--- a/gdk/broadway/gdkdisplay-broadway.c
+++ b/gdk/broadway/gdkdisplay-broadway.c
@@ -95,10 +95,10 @@ _gdk_broadway_display_size_changed (GdkDisplay *display,
toplevels = broadway_display->toplevels;
for (l = toplevels; l != NULL; l = l->next)
{
- GdkSurfaceImplBroadway *toplevel_impl = l->data;
+ GdkBroadwaySurface *toplevel = l->data;
- if (toplevel_impl->maximized)
- gdk_surface_move_resize (toplevel_impl->wrapper, 0, 0, msg->width, msg->height);
+ if (toplevel->maximized)
+ gdk_surface_move_resize (GDK_SURFACE (toplevel), 0, 0, msg->width, msg->height);
}
}
@@ -420,7 +420,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
object_class->dispose = gdk_broadway_display_dispose;
object_class->finalize = gdk_broadway_display_finalize;
- display_class->surface_type = GDK_TYPE_BROADWAY_SURFACE;
display_class->cairo_context_type = GDK_TYPE_BROADWAY_CAIRO_CONTEXT;
display_class->get_name = gdk_broadway_display_get_name;
@@ -435,7 +434,7 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
display_class->get_next_serial = gdk_broadway_display_get_next_serial;
display_class->notify_startup_complete = gdk_broadway_display_notify_startup_complete;
- display_class->create_surface_impl = _gdk_broadway_display_create_surface_impl;
+ display_class->create_surface = _gdk_broadway_display_create_surface;
display_class->get_keymap = _gdk_broadway_display_get_keymap;
display_class->text_property_to_utf8_list = _gdk_broadway_display_text_property_to_utf8_list;
display_class->utf8_to_string_target = _gdk_broadway_display_utf8_to_string_target;
diff --git a/gdk/broadway/gdkdnd-broadway.c b/gdk/broadway/gdkdnd-broadway.c
index 461998f339..67438adcfc 100644
--- a/gdk/broadway/gdkdnd-broadway.c
+++ b/gdk/broadway/gdkdnd-broadway.c
@@ -26,7 +26,7 @@
#include "gdkdragprivate.h"
-#include "gdkinternals.h"
+#include "gdksurfaceprivate.h"
#include "gdkproperty.h"
#include "gdkprivate-broadway.h"
#include "gdkinternals.h"
@@ -94,7 +94,7 @@ _gdk_broadway_surface_drag_begin (GdkSurface *surface,
GdkDrag *new_context;
g_return_val_if_fail (surface != NULL, NULL);
- g_return_val_if_fail (GDK_SURFACE_IS_BROADWAY (surface), NULL);
+ g_return_val_if_fail (GDK_IS_BROADWAY_SURFACE (surface), NULL);
new_context = g_object_new (GDK_TYPE_BROADWAY_DRAG,
"device", device,
diff --git a/gdk/broadway/gdkeventsource.c b/gdk/broadway/gdkeventsource.c
index f0672bd8c4..506740fa16 100644
--- a/gdk/broadway/gdkeventsource.c
+++ b/gdk/broadway/gdkeventsource.c
@@ -20,7 +20,7 @@
#include "gdkeventsource.h"
#include "gdkseat.h"
-#include "gdkinternals.h"
+#include "gdksurfaceprivate.h"
#include "gdkframeclockprivate.h"
#include <stdlib.h>
diff --git a/gdk/broadway/gdkprivate-broadway.h b/gdk/broadway/gdkprivate-broadway.h
index 5987c2c454..784947c00f 100644
--- a/gdk/broadway/gdkprivate-broadway.h
+++ b/gdk/broadway/gdkprivate-broadway.h
@@ -101,9 +101,13 @@ void _gdk_broadway_display_get_default_cursor_size (GdkDisplay *display,
void _gdk_broadway_display_get_maximal_cursor_size (GdkDisplay *display,
guint *width,
guint *height);
-void _gdk_broadway_display_create_surface_impl (GdkDisplay *display,
- GdkSurface *surface,
- GdkSurface *real_parent);
+GdkSurface * _gdk_broadway_display_create_surface (GdkDisplay *display,
+ GdkSurfaceType surface_type,
+ GdkSurface *parent,
+ int x,
+ int y,
+ int width,
+ int height);
gint _gdk_broadway_display_text_property_to_utf8_list (GdkDisplay *display,
GdkAtom encoding,
gint format,
@@ -125,6 +129,4 @@ void _gdk_broadway_surface_resize_surface (GdkSurface *surface);
void _gdk_broadway_cursor_update_theme (GdkCursor *cursor);
void _gdk_broadway_cursor_display_finalize (GdkDisplay *display);
-#define GDK_SURFACE_IS_BROADWAY(win) (GDK_IS_SURFACE_IMPL_BROADWAY (((GdkSurface *)win)->impl))
-
#endif /* __GDK_PRIVATE_BROADWAY_H__ */
diff --git a/gdk/broadway/gdksurface-broadway.c b/gdk/broadway/gdksurface-broadway.c
index dcb6a9eb42..67e8de7e4b 100644
--- a/gdk/broadway/gdksurface-broadway.c
+++ b/gdk/broadway/gdksurface-broadway.c
@@ -29,50 +29,26 @@
#include "gdkbroadwaydisplay.h"
#include "gdkdisplay.h"
-#include "gdksurface.h"
-#include "gdksurfaceimpl.h"
+#include "gdksurfaceprivate.h"
#include "gdkdisplay-broadway.h"
#include "gdkprivate-broadway.h"
#include "gdkinternals.h"
#include "gdkdeviceprivate.h"
#include "gdkeventsource.h"
-#include <gdk/gdktextureprivate.h>
-#include <gdk/gdkframeclockprivate.h>
+#include "gdktextureprivate.h"
+#include "gdkframeclockidleprivate.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
/* Forward declarations */
-static void gdk_surface_impl_broadway_finalize (GObject *object);
+static void gdk_broadway_surface_finalize (GObject *object);
#define SURFACE_IS_TOPLEVEL(surface) TRUE
-struct _GdkBroadwaySurface {
- GdkSurface parent;
-};
-
-struct _GdkBroadwaySurfaceClass {
- GdkSurfaceClass parent_class;
-};
-
G_DEFINE_TYPE (GdkBroadwaySurface, gdk_broadway_surface, GDK_TYPE_SURFACE)
-static void
-gdk_broadway_surface_class_init (GdkBroadwaySurfaceClass *broadway_surface_class)
-{
-}
-
-static void
-gdk_broadway_surface_init (GdkBroadwaySurface *broadway_surface)
-{
-}
-
-G_DEFINE_TYPE (GdkSurfaceImplBroadway,
- gdk_surface_impl_broadway,
- GDK_TYPE_SURFACE_IMPL)
-
-
/* We need to flush in an idle rather than AFTER_PAINT, as the clock
is frozen during e.g. surface resizes so the paint will not happen
and the surface resize request is never flushed. */
@@ -83,26 +59,23 @@ queue_flush (GdkSurface *surface)
}
static void
-gdk_surface_impl_broadway_init (GdkSurfaceImplBroadway *impl)
+gdk_broadway_surface_init (GdkBroadwaySurface *impl)
{
}
static void
-gdk_surface_impl_broadway_finalize (GObject *object)
+gdk_broadway_surface_finalize (GObject *object)
{
- GdkSurface *wrapper;
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkBroadwayDisplay *broadway_display;
- g_return_if_fail (GDK_IS_SURFACE_IMPL_BROADWAY (object));
-
- impl = GDK_SURFACE_IMPL_BROADWAY (object);
+ g_return_if_fail (GDK_IS_BROADWAY_SURFACE (object));
- wrapper = impl->wrapper;
+ impl = GDK_BROADWAY_SURFACE (object);
- _gdk_broadway_surface_grab_check_destroy (wrapper);
+ _gdk_broadway_surface_grab_check_destroy (GDK_SURFACE (impl));
- broadway_display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (impl->wrapper));
+ broadway_display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (GDK_SURFACE (impl)));
g_hash_table_remove (broadway_display->id_ht, GINT_TO_POINTER(impl->id));
@@ -111,7 +84,7 @@ gdk_surface_impl_broadway_finalize (GObject *object)
broadway_display->toplevels = g_list_remove (broadway_display->toplevels, impl);
- G_OBJECT_CLASS (gdk_surface_impl_broadway_parent_class)->finalize (object);
+ G_OBJECT_CLASS (gdk_broadway_surface_parent_class)->finalize (object);
}
static gboolean
@@ -124,10 +97,10 @@ thaw_clock_cb (GdkFrameClock *clock)
void
_gdk_broadway_roundtrip_notify (GdkSurface *surface,
- guint32 tag,
- gboolean local_reply)
+ guint32 tag,
+ gboolean local_reply)
{
- GdkSurfaceImplBroadway *impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ GdkBroadwaySurface *impl = GDK_BROADWAY_SURFACE (surface);
GdkFrameClock *clock = gdk_surface_get_frame_clock (surface);
GdkFrameTimings *timings;
@@ -160,10 +133,10 @@ _gdk_broadway_roundtrip_notify (GdkSurface *surface,
static void
on_frame_clock_after_paint (GdkFrameClock *clock,
- GdkSurface *surface)
+ GdkSurface *surface)
{
GdkDisplay *display = gdk_surface_get_display (surface);
- GdkSurfaceImplBroadway *impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ GdkBroadwaySurface *impl = GDK_BROADWAY_SURFACE (surface);
GdkBroadwayDisplay *broadway_display;
impl->pending_frame_counter = gdk_frame_clock_get_frame_counter (clock);
@@ -178,7 +151,7 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
static void
on_frame_clock_before_paint (GdkFrameClock *clock,
- GdkSurface *surface)
+ GdkSurface *surface)
{
GdkFrameTimings *timings = gdk_frame_clock_get_current_timings (clock);
gint64 presentation_time;
@@ -203,29 +176,46 @@ on_frame_clock_before_paint (GdkFrameClock *clock,
static void
connect_frame_clock (GdkSurface *surface)
{
- if (SURFACE_IS_TOPLEVEL (surface))
- {
- GdkFrameClock *frame_clock = gdk_surface_get_frame_clock (surface);
+ GdkFrameClock *frame_clock = gdk_surface_get_frame_clock (surface);
- g_signal_connect (frame_clock, "before-paint",
- G_CALLBACK (on_frame_clock_before_paint), surface);
- g_signal_connect (frame_clock, "after-paint",
- G_CALLBACK (on_frame_clock_after_paint), surface);
- }
+ g_signal_connect (frame_clock, "before-paint",
+ G_CALLBACK (on_frame_clock_before_paint), surface);
+ g_signal_connect (frame_clock, "after-paint",
+ G_CALLBACK (on_frame_clock_after_paint), surface);
}
-void
-_gdk_broadway_display_create_surface_impl (GdkDisplay *display,
- GdkSurface *surface,
- GdkSurface *real_parent)
+GdkSurface *
+_gdk_broadway_display_create_surface (GdkDisplay *display,
+ GdkSurfaceType surface_type,
+ GdkSurface *parent,
+ int x,
+ int y,
+ int width,
+ int height)
{
- GdkSurfaceImplBroadway *impl;
GdkBroadwayDisplay *broadway_display;
+ GdkFrameClock *frame_clock;
+ GdkSurface *surface;
+ GdkBroadwaySurface *impl;
+
+ frame_clock = _gdk_frame_clock_idle_new ();
+
+ surface = g_object_new (GDK_TYPE_BROADWAY_SURFACE,
+ "display", display,
+ "frame-clock", frame_clock,
+ NULL);
+
+ g_object_unref (frame_clock);
+
+ surface->surface_type = surface_type;
+ surface->x = x;
+ surface->y = y;
+ surface->width = width;
+ surface->height = height;
broadway_display = GDK_BROADWAY_DISPLAY (display);
- impl = g_object_new (GDK_TYPE_SURFACE_IMPL_BROADWAY, NULL);
- surface->impl = (GdkSurfaceImpl *)impl;
+ impl = GDK_BROADWAY_SURFACE (surface);
impl->id = _gdk_broadway_server_new_surface (broadway_display->server,
surface->x,
surface->y,
@@ -233,7 +223,6 @@ _gdk_broadway_display_create_surface_impl (GdkDisplay *display,
surface->height,
surface->surface_type == GDK_SURFACE_TEMP);
g_hash_table_insert (broadway_display->id_ht, GINT_TO_POINTER(impl->id), surface);
- impl->wrapper = surface;
g_assert (surface->surface_type == GDK_SURFACE_TOPLEVEL ||
surface->surface_type == GDK_SURFACE_TEMP);
@@ -241,15 +230,15 @@ _gdk_broadway_display_create_surface_impl (GdkDisplay *display,
broadway_display->toplevels = g_list_prepend (broadway_display->toplevels, impl);
connect_frame_clock (surface);
+
+ return surface;
}
static cairo_surface_t *
-gdk_surface_broadway_ref_cairo_surface (GdkSurface *surface)
+gdk_broadway_surface_ref_cairo_surface (GdkSurface *surface)
{
- GdkSurfaceImplBroadway *impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
-
- if (GDK_IS_SURFACE_IMPL_BROADWAY (surface) &&
- GDK_SURFACE_DESTROYED (impl->wrapper))
+ if (GDK_IS_BROADWAY_SURFACE (surface) &&
+ GDK_SURFACE_DESTROYED (surface))
return NULL;
return cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
@@ -257,14 +246,14 @@ gdk_surface_broadway_ref_cairo_surface (GdkSurface *surface)
static void
_gdk_broadway_surface_destroy (GdkSurface *surface,
- gboolean foreign_destroy)
+ gboolean foreign_destroy)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkBroadwayDisplay *broadway_display;
g_return_if_fail (GDK_IS_SURFACE (surface));
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
if (impl->node_data)
g_array_unref (impl->node_data);
@@ -282,15 +271,15 @@ _gdk_broadway_surface_destroy (GdkSurface *surface,
void
gdk_broadway_surface_set_nodes (GdkSurface *surface,
- GArray *nodes,
- GPtrArray *node_textures)
+ GArray *nodes,
+ GPtrArray *node_textures)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkBroadwayDisplay *broadway_display;
g_return_if_fail (GDK_IS_SURFACE (surface));
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
broadway_display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (surface));
@@ -321,13 +310,13 @@ gdk_broadway_surface_destroy_notify (GdkSurface *surface)
}
static void
-gdk_surface_broadway_show (GdkSurface *surface,
- gboolean already_mapped)
+gdk_broadway_surface_show (GdkSurface *surface,
+ gboolean already_mapped)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkBroadwayDisplay *broadway_display;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
impl->visible = TRUE;
/* FIXME: update state ? */
@@ -339,12 +328,12 @@ gdk_surface_broadway_show (GdkSurface *surface,
}
static void
-gdk_surface_broadway_hide (GdkSurface *surface)
+gdk_broadway_surface_hide (GdkSurface *surface)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkBroadwayDisplay *broadway_display;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
impl->visible = FALSE;
/* FIXME: update state ? */
@@ -361,20 +350,20 @@ gdk_surface_broadway_hide (GdkSurface *surface)
}
static void
-gdk_surface_broadway_withdraw (GdkSurface *surface)
+gdk_broadway_surface_withdraw (GdkSurface *surface)
{
- gdk_surface_broadway_hide (surface);
+ gdk_broadway_surface_hide (surface);
}
static void
-gdk_surface_broadway_move_resize (GdkSurface *surface,
+gdk_broadway_surface_move_resize (GdkSurface *surface,
gboolean with_move,
gint x,
gint y,
gint width,
gint height)
{
- GdkSurfaceImplBroadway *impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ GdkBroadwaySurface *impl = GDK_BROADWAY_SURFACE (surface);
GdkBroadwayDisplay *broadway_display;
gboolean size_changed;
@@ -418,19 +407,19 @@ gdk_surface_broadway_move_resize (GdkSurface *surface,
}
static void
-gdk_surface_broadway_raise (GdkSurface *surface)
+gdk_broadway_surface_raise (GdkSurface *surface)
{
}
static void
-gdk_surface_broadway_restack_toplevel (GdkSurface *surface,
+gdk_broadway_surface_restack_toplevel (GdkSurface *surface,
GdkSurface *sibling,
gboolean above)
{
}
static void
-gdk_surface_broadway_lower (GdkSurface *surface)
+gdk_broadway_surface_lower (GdkSurface *surface)
{
}
@@ -439,7 +428,7 @@ static void
gdk_broadway_surface_focus (GdkSurface *surface,
guint32 timestamp)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkBroadwayDisplay *broadway_display;
g_return_if_fail (GDK_IS_SURFACE (surface));
@@ -448,7 +437,7 @@ gdk_broadway_surface_focus (GdkSurface *surface,
!surface->accept_focus)
return;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
broadway_display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (surface));
_gdk_broadway_server_surface_focus (broadway_display->server,
impl->id);
@@ -473,26 +462,26 @@ gdk_broadway_surface_set_modal_hint (GdkSurface *surface,
}
static void
-gdk_broadway_surface_set_geometry_hints (GdkSurface *surface,
+gdk_broadway_surface_set_geometry_hints (GdkSurface *surface,
const GdkGeometry *geometry,
- GdkSurfaceHints geom_mask)
+ GdkSurfaceHints geom_mask)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
impl->geometry_hints = *geometry;
impl->geometry_hints_mask = geom_mask;
}
static void
-gdk_broadway_surface_set_title (GdkSurface *surface,
+gdk_broadway_surface_set_title (GdkSurface *surface,
const gchar *title)
{
}
static void
-gdk_broadway_surface_set_startup_id (GdkSurface *surface,
+gdk_broadway_surface_set_startup_id (GdkSurface *surface,
const gchar *startup_id)
{
}
@@ -502,66 +491,58 @@ gdk_broadway_surface_set_transient_for (GdkSurface *surface,
GdkSurface *parent)
{
GdkBroadwayDisplay *display;
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
int parent_id;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
parent_id = 0;
if (parent)
- parent_id = GDK_SURFACE_IMPL_BROADWAY (parent->impl)->id;
+ parent_id = GDK_BROADWAY_SURFACE (parent)->id;
impl->transient_for = parent_id;
- display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (impl->wrapper));
+ display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (surface));
_gdk_broadway_server_surface_set_transient_for (display->server, impl->id, impl->transient_for);
}
static void
-gdk_surface_broadway_get_geometry (GdkSurface *surface,
- gint *x,
- gint *y,
- gint *width,
- gint *height)
+gdk_broadway_surface_get_geometry (GdkSurface *surface,
+ gint *x,
+ gint *y,
+ gint *width,
+ gint *height)
{
- GdkSurfaceImplBroadway *impl;
-
g_return_if_fail (GDK_IS_SURFACE (surface));
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
-
/* TODO: These should really roundtrip to the client to get the current data */
if (x)
- *x = impl->wrapper->x;
+ *x = surface->x;
if (y)
- *y = impl->wrapper->y;
+ *y = surface->y;
if (width)
- *width = impl->wrapper->width;
+ *width = surface->width;
if (height)
- *height = impl->wrapper->height;
+ *height = surface->height;
}
static void
-gdk_surface_broadway_get_root_coords (GdkSurface *surface,
- gint x,
- gint y,
- gint *root_x,
- gint *root_y)
+gdk_broadway_surface_get_root_coords (GdkSurface *surface,
+ gint x,
+ gint y,
+ gint *root_x,
+ gint *root_y)
{
- GdkSurfaceImplBroadway *impl;
-
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
-
if (root_x)
- *root_x = x + impl->wrapper->x;
+ *root_x = x + surface->x;
if (root_y)
- *root_y = y + impl->wrapper->y;
+ *root_y = y + surface->y;
}
static void
-gdk_broadway_surface_get_frame_extents (GdkSurface *surface,
+gdk_broadway_surface_get_frame_extents (GdkSurface *surface,
GdkRectangle *rect)
{
g_return_if_fail (rect != NULL);
@@ -575,7 +556,7 @@ gdk_broadway_surface_get_frame_extents (GdkSurface *surface,
}
static gboolean
-gdk_surface_broadway_get_device_state (GdkSurface *surface,
+gdk_broadway_surface_get_device_state (GdkSurface *surface,
GdkDevice *device,
gdouble *x,
gdouble *y,
@@ -596,7 +577,7 @@ gdk_surface_broadway_get_device_state (GdkSurface *surface,
}
static void
-gdk_surface_broadway_input_shape_combine_region (GdkSurface *surface,
+gdk_broadway_surface_input_shape_combine_region (GdkSurface *surface,
const cairo_region_t *shape_region,
gint offset_x,
gint offset_y)
@@ -683,7 +664,7 @@ gdk_broadway_surface_unstick (GdkSurface *surface)
static void
gdk_broadway_surface_maximize (GdkSurface *surface)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
GdkDisplay *display;
GdkMonitor *monitor;
GdkRectangle geom;
@@ -692,7 +673,7 @@ gdk_broadway_surface_maximize (GdkSurface *surface)
!SURFACE_IS_TOPLEVEL (surface))
return;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
if (impl->maximized)
return;
@@ -718,13 +699,13 @@ gdk_broadway_surface_maximize (GdkSurface *surface)
static void
gdk_broadway_surface_unmaximize (GdkSurface *surface)
{
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
if (GDK_SURFACE_DESTROYED (surface) ||
!SURFACE_IS_TOPLEVEL (surface))
return;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
if (!impl->maximized)
return;
@@ -1188,9 +1169,9 @@ gdk_broadway_surface_begin_resize_drag (GdkSurface *surface,
guint32 timestamp)
{
MoveResizeData *mv_resize;
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
if (GDK_SURFACE_DESTROYED (surface) ||
!SURFACE_IS_TOPLEVEL (surface))
@@ -1207,8 +1188,8 @@ gdk_broadway_surface_begin_resize_drag (GdkSurface *surface,
mv_resize->is_resize = TRUE;
mv_resize->moveresize_button = button;
mv_resize->resize_edge = edge;
- mv_resize->moveresize_x = x + impl->wrapper->x;
- mv_resize->moveresize_y = y + impl->wrapper->y;
+ mv_resize->moveresize_x = x + surface->x;
+ mv_resize->moveresize_y = y + surface->y;
mv_resize->moveresize_surface = g_object_ref (surface);
mv_resize->moveresize_orig_width = gdk_surface_get_width (surface);
@@ -1231,9 +1212,9 @@ gdk_broadway_surface_begin_move_drag (GdkSurface *surface,
guint32 timestamp)
{
MoveResizeData *mv_resize;
- GdkSurfaceImplBroadway *impl;
+ GdkBroadwaySurface *impl;
- impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl);
+ impl = GDK_BROADWAY_SURFACE (surface);
if (GDK_SURFACE_DESTROYED (surface) ||
!SURFACE_IS_TOPLEVEL (surface))
@@ -1249,8 +1230,8 @@ gdk_broadway_surface_begin_move_drag (GdkSurface *surface,
mv_resize->is_resize = FALSE;
mv_resize->moveresize_button = button;
- mv_resize->moveresize_x = x + impl->wrapper->x;
- mv_resize->moveresize_y = y + impl->wrapper->y;
+ mv_resize->moveresize_x = x + surface->x;
+ mv_resize->moveresize_y = y + surface->y;
mv_resize->moveresize_surface = g_object_ref (surface);
mv_resize->moveresize_orig_width = gdk_surface_get_width (surface);
@@ -1296,25 +1277,25 @@ gdk_broadway_get_last_seen_time (GdkSurface *surface)
}
static void
-gdk_surface_impl_broadway_class_init (GdkSurfaceImplBroadwayClass *klass)
+gdk_broadway_surface_class_init (GdkBroadwaySurfaceClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GdkSurfaceImplClass *impl_class = GDK_SURFACE_IMPL_CLASS (klass);
-
- object_class->finalize = gdk_surface_impl_broadway_finalize;
-
- impl_class->ref_cairo_surface = gdk_surface_broadway_ref_cairo_surface;
- impl_class->show = gdk_surface_broadway_show;
- impl_class->hide = gdk_surface_broadway_hide;
- impl_class->withdraw = gdk_surface_broadway_withdraw;
- impl_class->raise = gdk_surface_broadway_raise;
- impl_class->lower = gdk_surface_broadway_lower;
- impl_class->restack_toplevel = gdk_surface_broadway_restack_toplevel;
- impl_class->move_resize = gdk_surface_broadway_move_resize;
- impl_class->get_geometry = gdk_surface_broadway_get_geometry;
- impl_class->get_root_coords = gdk_surface_broadway_get_root_coords;
- impl_class->get_device_state = gdk_surface_broadway_get_device_state;
- impl_class->input_shape_combine_region = gdk_surface_broadway_input_shape_combine_region;
+ GdkSurfaceClass *impl_class = GDK_SURFACE_CLASS (klass);
+
+ object_class->finalize = gdk_broadway_surface_finalize;
+
+ impl_class->ref_cairo_surface = gdk_broadway_surface_ref_cairo_surface;
+ impl_class->show = gdk_broadway_surface_show;
+ impl_class->hide = gdk_broadway_surface_hide;
+ impl_class->withdraw = gdk_broadway_surface_withdraw;
+ impl_class->raise = gdk_broadway_surface_raise;
+ impl_class->lower = gdk_broadway_surface_lower;
+ impl_class->restack_toplevel = gdk_broadway_surface_restack_toplevel;
+ impl_class->move_resize = gdk_broadway_surface_move_resize;
+ impl_class->get_geometry = gdk_broadway_surface_get_geometry;
+ impl_class->get_root_coords = gdk_broadway_surface_get_root_coords;
+ impl_class->get_device_state = gdk_broadway_surface_get_device_state;
+ impl_class->input_shape_combine_region = gdk_broadway_surface_input_shape_combine_region;
impl_class->destroy = _gdk_broadway_surface_destroy;
impl_class->beep = gdk_broadway_surface_beep;
diff --git a/gdk/broadway/gdksurface-broadway.h b/gdk/broadway/gdksurface-broadway.h
index 9be2da92df..a2c0b96cf7 100644
--- a/gdk/broadway/gdksurface-broadway.h
+++ b/gdk/broadway/gdksurface-broadway.h
@@ -25,28 +25,17 @@
#ifndef __GDK_SURFACE_BROADWAY_H__
#define __GDK_SURFACE_BROADWAY_H__
-#include <gdk/gdksurfaceimpl.h>
+#include <gdk/gdksurfaceprivate.h>
+#include "gdkbroadwaysurface.h"
G_BEGIN_DECLS
-typedef struct _GdkSurfaceImplBroadway GdkSurfaceImplBroadway;
-typedef struct _GdkSurfaceImplBroadwayClass GdkSurfaceImplBroadwayClass;
-
/* Surface implementation for Broadway
*/
-#define GDK_TYPE_SURFACE_IMPL_BROADWAY (gdk_surface_impl_broadway_get_type ())
-#define GDK_SURFACE_IMPL_BROADWAY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_SURFACE_IMPL_BROADWAY, GdkSurfaceImplBroadway))
-#define GDK_SURFACE_IMPL_BROADWAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_SURFACE_IMPL_BROADWAY, GdkSurfaceImplBroadwayClass))
-#define GDK_IS_SURFACE_IMPL_BROADWAY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_SURFACE_IMPL_BROADWAY))
-#define GDK_IS_SURFACE_IMPL_BROADWAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_SURFACE_IMPL_BROADWAY))
-#define GDK_SURFACE_IMPL_BROADWAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_SURFACE_IMPL_BROADWAY, GdkSurfaceImplBroadwayClass))
-
-struct _GdkSurfaceImplBroadway
+struct _GdkBroadwaySurface
{
- GdkSurfaceImpl parent_instance;
-
- GdkSurface *wrapper;
+ GdkSurface parent_instance;
GdkCursor *cursor;
@@ -73,12 +62,12 @@ struct _GdkSurfaceImplBroadway
GPtrArray *node_data_textures;
};
-struct _GdkSurfaceImplBroadwayClass
+struct _GdkBroadwaySurfaceClass
{
- GdkSurfaceImplClass parent_class;
+ GdkSurfaceClass parent_class;
};
-GType gdk_surface_impl_broadway_get_type (void);
+GType gdk_surface_broadway_get_type (void);
G_END_DECLS