Commit 07db0e38 authored by Alexander Larsson's avatar Alexander Larsson

[broadway] Make broadway build with new gdk-backend setup

Convert all global functions to vtable calls, etc.
parent 920e8b43
...@@ -55,11 +55,11 @@ MAINTAINERCLEANFILES = \ ...@@ -55,11 +55,11 @@ MAINTAINERCLEANFILES = \
## Copy .pc files to target-specific names ## Copy .pc files to target-specific names
gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc: gtk+-3.0.pc gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc gtk+-broadway-3.0.pc: gtk+-3.0.pc
rm -f $@ && \ rm -f $@ && \
cp gtk+-3.0.pc $@ cp gtk+-3.0.pc $@
gdk-x11-3.0.pc gdk-win32-3.0.pc gdk-quartz-3.0.pc: gdk-3.0.pc gdk-x11-3.0.pc gdk-win32-3.0.pc gdk-quartz-3.0.pc gdk-broadway-3.0.pc: gdk-3.0.pc
rm -f $@ && \ rm -f $@ && \
cp gdk-3.0.pc $@ cp gdk-3.0.pc $@
......
...@@ -352,6 +352,7 @@ fi ...@@ -352,6 +352,7 @@ fi
if test "x$enable_broadway_backend" == xyes; then if test "x$enable_broadway_backend" == xyes; then
GDK_BACKENDS="$GDK_BACKENDS broadway" GDK_BACKENDS="$GDK_BACKENDS broadway"
cairo_backends="$cairo_backends cairo"
GDK_WINDOWING="$GDK_WINDOWING GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_BROADWAY" #define GDK_WINDOWING_BROADWAY"
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lz" GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lz"
......
...@@ -37,6 +37,7 @@ broadway_built_sources = \ ...@@ -37,6 +37,7 @@ broadway_built_sources = \
libgdk_broadway_la_SOURCES = \ libgdk_broadway_la_SOURCES = \
${broadway_built_private_headers}\ ${broadway_built_private_headers}\
gdkapplaunchcontext-broadway.c \ gdkapplaunchcontext-broadway.c \
gdkbroadwaydisplaymanager.h \
gdkcursor-broadway.c \ gdkcursor-broadway.c \
gdkdevice-broadway.h \ gdkdevice-broadway.h \
gdkdevice-broadway.c \ gdkdevice-broadway.c \
...@@ -44,6 +45,7 @@ libgdk_broadway_la_SOURCES = \ ...@@ -44,6 +45,7 @@ libgdk_broadway_la_SOURCES = \
gdkdevicemanager-broadway.c \ gdkdevicemanager-broadway.c \
gdkdisplay-broadway.c \ gdkdisplay-broadway.c \
gdkdisplay-broadway.h \ gdkdisplay-broadway.h \
gdkdisplaymanager-broadway.c \
gdkdnd-broadway.c \ gdkdnd-broadway.c \
gdkeventsource.c \ gdkeventsource.c \
gdkeventsource.h \ gdkeventsource.h \
...@@ -56,7 +58,6 @@ libgdk_broadway_la_SOURCES = \ ...@@ -56,7 +58,6 @@ libgdk_broadway_la_SOURCES = \
gdkscreen-broadway.c \ gdkscreen-broadway.c \
gdkscreen-broadway.h \ gdkscreen-broadway.h \
gdkselection-broadway.c \ gdkselection-broadway.c \
gdkspawn-broadway.c \
gdktestutils-broadway.c \ gdktestutils-broadway.c \
gdkvisual-broadway.c \ gdkvisual-broadway.c \
gdkwindow-broadway.c \ gdkwindow-broadway.c \
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include "gdkintl.h" #include "gdkintl.h"
#include <glib.h> #include <glib.h>
#include <gio/gdesktopappinfo.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
......
/* GDK - The GIMP Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#if !defined (__GDKX_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdkx.h> can be included directly."
#endif
#ifndef __GDK_BROADWAY_CURSOR_H__
#define __GDK_BROADWAY_CURSOR_H__
#include <gdk/gdk.h>
G_BEGIN_DECLS
#define GDK_TYPE_BROADWAY_CURSOR (gdk_broadway_cursor_get_type ())
#define GDK_BROADWAY_CURSOR(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_CURSOR, GdkBroadwayCursor))
#define GDK_BROADWAY_CURSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_CURSOR, GdkBroadwayCursorClass))
#define GDK_IS_BROADWAY_CURSOR(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_CURSOR))
#define GDK_IS_BROADWAY_CURSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_CURSOR))
#define GDK_BROADWAY_CURSOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_CURSOR, GdkBroadwayCursorClass))
#ifdef GDK_COMPILATION
typedef struct _GdkBroadwayCursor GdkBroadwayCursor;
#else
typedef GdkCursor GdkBroadwayCursor;
#endif
typedef struct _GdkBroadwayCursorClass GdkBroadwayCursorClass;
GType gdk_broadway_cursor_get_type (void);
G_END_DECLS
#endif /* __GDK_BROADWAY_CURSOR_H__ */
/* gdkbroadwaydisplaymanager.h
*
* Copyright (C) 2005-2007 Imendio AB
* Copyright 2010 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#if !defined(__GDKBROADWAY_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdkbroadway.h> can be included directly."
#endif
#ifndef __GDK_BROADWAY_DISPLAY_MANAGER_H__
#define __GDK_BROADWAY_DISPLAY_MANAGER_H__
#include <gdk/gdk.h>
G_BEGIN_DECLS
#define GDK_TYPE_BROADWAY_DISPLAY_MANAGER (gdk_broadway_display_manager_get_type ())
#define GDK_BROADWAY_DISPLAY_MANAGER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_DISPLAY_MANAGER, GdkBroadwayDisplayManager))
#ifdef GDK_COMPILATION
typedef struct _GdkBroadwayDisplayManager GdkBroadwayDisplayManager;
#else
typedef GdkDisplayManager _GdkBroadwayDisplayManager;
#endif
typedef struct _GdkDisplayManagerClass GdkBroadwayDisplayManagerClass;
GType gdk_broadway_display_manager_get_type (void);
G_END_DECLS
#endif /* __GDK_BROADWAY_DISPLAY_MANAGER_H__ */
/* gdkbroadwayvisual.h
*
* Copyright (C) 2011 Alexander Larsson <alexl@redhat.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __GDK_BROADWAY_VISUAL_H__
#define __GDK_BROADWAY_VISUAL_H__
#include <gdk/gdk.h>
G_BEGIN_DECLS
#define GDK_TYPE_BROADWAY_VISUAL (gdk_broadway_visual_get_type ())
#define GDK_BROADWAY_VISUAL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_VISUAL, GdkBroadwayVisual))
#define GDK_BROADWAY_VISUAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_VISUAL, GdkBroadwayVisualClass))
#define GDK_IS_BROADWAY_VISUAL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_VISUAL))
#define GDK_IS_BROADWAY_VISUAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_VISUAL))
#define GDK_BROADWAY_VISUAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_VISUAL, GdkBroadwayVisualClass))
#ifdef GDK_COMPILATION
typedef struct _GdkBroadwayVisual GdkBroadwayVisual;
#else
typedef GdkVisual GdkBroadwayVisual;
#endif
typedef struct _GdkBroadwayVisualClass GdkBroadwayVisualClass;
GType gdk_broadway_visual_get_type (void);
G_END_DECLS
#endif /* __GDK_BROADWAY_VISUAL_H__ */
/* GDK - The GIMP Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __GDK_BROADWAY_WINDOW_H__
#define __GDK_BROADWAY_WINDOW_H__
#include <gdk/gdk.h>
G_BEGIN_DECLS
#define GDK_TYPE_BROADWAY_WINDOW (gdk_broadway_window_get_type ())
#define GDK_BROADWAY_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_WINDOW, GdkBroadwayWindow))
#define GDK_BROADWAY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_WINDOW, GdkBroadwayWindowClass))
#define GDK_IS_BROADWAY_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_WINDOW))
#define GDK_IS_BROADWAY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_WINDOW))
#define GDK_BROADWAY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_WINDOW, GdkBroadwayWindowClass))
#ifdef GDK_COMPILATION
typedef struct _GdkBroadwayWindow GdkBroadwayWindow;
#else
typedef GdkWindow GdkBroadwayWindow;
#endif
typedef struct _GdkBroadwayWindowClass GdkBroadwayWindowClass;
GType gdk_broadway_window_get_type (void);
G_END_DECLS
#endif /* __GDK_BROADWAY_WINDOW_H__ */
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixbuf.h>
#include "gdkcursor.h" #include "gdkcursor.h"
#include "gdkcursorprivate.h"
#include "gdkprivate-broadway.h" #include "gdkprivate-broadway.h"
#include "gdkdisplay-broadway.h" #include "gdkdisplay-broadway.h"
...@@ -38,69 +39,70 @@ ...@@ -38,69 +39,70 @@
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
struct _GdkBroadwayCursor
/* Called by gdk_display_broadway_finalize to flush any cached cursors
* for a dead display.
*/
void
_gdk_broadway_cursor_display_finalize (GdkDisplay *display)
{ {
} GdkCursor cursor;
};
GdkCursor* struct _GdkBroadwayCursorClass
gdk_cursor_new_for_display (GdkDisplay *display,
GdkCursorType cursor_type)
{ {
GdkCursorPrivate *private; GdkCursorClass cursor_class;
GdkCursor *cursor; };
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); /*** GdkBroadwayCursor ***/
private = g_new (GdkCursorPrivate, 1); G_DEFINE_TYPE (GdkBroadwayCursor, gdk_broadway_cursor, GDK_TYPE_CURSOR)
private->display = display;
cursor = (GdkCursor *) private; static GdkPixbuf* gdk_broadway_cursor_get_image (GdkCursor *cursor);
cursor->type = cursor_type;
cursor->ref_count = 1;
return cursor; static void
gdk_broadway_cursor_finalize (GObject *object)
{
G_OBJECT_CLASS (gdk_broadway_cursor_parent_class)->finalize (object);
} }
void static void
_gdk_cursor_destroy (GdkCursor *cursor) gdk_broadway_cursor_class_init (GdkBroadwayCursorClass *xcursor_class)
{ {
GdkCursorPrivate *private; GdkCursorClass *cursor_class = GDK_CURSOR_CLASS (xcursor_class);
GObjectClass *object_class = G_OBJECT_CLASS (xcursor_class);
g_return_if_fail (cursor != NULL); object_class->finalize = gdk_broadway_cursor_finalize;
g_return_if_fail (cursor->ref_count == 0);
private = (GdkCursorPrivate *) cursor;
g_free (private); cursor_class->get_image = gdk_broadway_cursor_get_image;
} }
static void
gdk_broadway_cursor_init (GdkBroadwayCursor *cursor)
{
}
/** /* Called by gdk_display_broadway_finalize to flush any cached cursors
* gdk_cursor_get_display: * for a dead display.
* @cursor: a #GdkCursor.
*
* Returns the display on which the #GdkCursor is defined.
*
* Returns: the #GdkDisplay associated to @cursor
*
* Since: 2.2
*/ */
void
_gdk_broadway_cursor_display_finalize (GdkDisplay *display)
{
}
GdkDisplay * GdkCursor*
gdk_cursor_get_display (GdkCursor *cursor) _gdk_broadway_display_get_cursor_for_type (GdkDisplay *display,
GdkCursorType cursor_type)
{ {
g_return_val_if_fail (cursor != NULL, NULL); GdkBroadwayCursor *private;
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
return ((GdkCursorPrivate *)cursor)->display; private = g_object_new (GDK_TYPE_BROADWAY_CURSOR,
"cursor-type", cursor_type,
"display", display,
NULL);
return GDK_CURSOR (private);
} }
GdkPixbuf* static GdkPixbuf*
gdk_cursor_get_image (GdkCursor *cursor) gdk_broadway_cursor_get_image (GdkCursor *cursor)
{ {
g_return_val_if_fail (cursor != NULL, NULL); g_return_val_if_fail (cursor != NULL, NULL);
...@@ -114,48 +116,39 @@ _gdk_broadway_cursor_update_theme (GdkCursor *cursor) ...@@ -114,48 +116,39 @@ _gdk_broadway_cursor_update_theme (GdkCursor *cursor)
} }
GdkCursor * GdkCursor *
gdk_cursor_new_from_pixbuf (GdkDisplay *display, _gdk_broadway_display_get_cursor_for_pixbuf (GdkDisplay *display,
GdkPixbuf *pixbuf, GdkPixbuf *pixbuf,
gint x, gint x,
gint y) gint y)
{ {
GdkCursorPrivate *private; GdkBroadwayCursor *private;
GdkCursor *cursor; GdkCursor *cursor;
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); private = g_object_new (GDK_TYPE_BROADWAY_CURSOR,
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); "cursor-type", GDK_CURSOR_IS_PIXMAP,
"display", display,
private = g_new (GdkCursorPrivate, 1); NULL);
private->display = display;
cursor = (GdkCursor *) private; cursor = (GdkCursor *) private;
cursor->type = GDK_CURSOR_IS_PIXMAP;
cursor->ref_count = 1;
return cursor; return cursor;
} }
GdkCursor* GdkCursor*
gdk_cursor_new_from_name (GdkDisplay *display, _gdk_broadway_display_get_cursor_for_name (GdkDisplay *display,
const gchar *name) const gchar *name)
{ {
GdkCursorPrivate *private; GdkBroadwayCursor *private;
GdkCursor *cursor;
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
private = g_new (GdkCursorPrivate, 1);
private->display = display;
cursor = (GdkCursor *) private; private = g_object_new (GDK_TYPE_BROADWAY_CURSOR,
cursor->type = GDK_CURSOR_IS_PIXMAP; "cursor-type", GDK_CURSOR_IS_PIXMAP,
cursor->ref_count = 1; "display", display,
NULL);
return cursor; return GDK_CURSOR (private);
} }
gboolean gboolean
gdk_display_supports_cursor_alpha (GdkDisplay *display) _gdk_broadway_display_supports_cursor_alpha (GdkDisplay *display)
{ {
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE); g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
...@@ -163,23 +156,25 @@ gdk_display_supports_cursor_alpha (GdkDisplay *display) ...@@ -163,23 +156,25 @@ gdk_display_supports_cursor_alpha (GdkDisplay *display)
} }
gboolean gboolean
gdk_display_supports_cursor_color (GdkDisplay *display) _gdk_broadway_display_supports_cursor_color (GdkDisplay *display)
{ {
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE); g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
return TRUE; return TRUE;
} }
guint void
gdk_display_get_default_cursor_size (GdkDisplay *display) _gdk_broadway_display_get_default_cursor_size (GdkDisplay *display,
guint *width,
guint *height)
{ {
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE); g_return_if_fail (GDK_IS_DISPLAY (display));
return 20; *width = *height = 20;
} }
void void
gdk_display_get_maximal_cursor_size (GdkDisplay *display, _gdk_broadway_display_get_maximal_cursor_size (GdkDisplay *display,
guint *width, guint *width,
guint *height) guint *height)
{ {
......
...@@ -24,24 +24,24 @@ ...@@ -24,24 +24,24 @@
#include "gdkwindow.h" #include "gdkwindow.h"
#include "gdkprivate-broadway.h" #include "gdkprivate-broadway.h"
static gboolean gdk_device_core_get_history (GdkDevice *device, static gboolean gdk_broadway_device_get_history (GdkDevice *device,
GdkWindow *window, GdkWindow *window,
guint32 start, guint32 start,
guint32 stop, guint32 stop,
GdkTimeCoord ***events, GdkTimeCoord ***events,
gint *n_events); gint *n_events);
static void gdk_device_core_get_state (GdkDevice *device, static void gdk_broadway_device_get_state (GdkDevice *device,
GdkWindow *window, GdkWindow *window,
gdouble *axes, gdouble *axes,
GdkModifierType *mask); GdkModifierType *mask);
static void gdk_device_core_set_window_cursor (GdkDevice *device, static void gdk_broadway_device_set_window_cursor (GdkDevice *device,
GdkWindow *window, GdkWindow *window,
GdkCursor *cursor); GdkCursor *cursor);
static void gdk_device_core_warp (GdkDevice *device, static void gdk_broadway_device_warp (GdkDevice *device,
GdkScreen *screen, GdkScreen *screen,
gint x, gint x,
gint y); gint y);
static gboolean gdk_device_core_query_state (GdkDevice *device, static gboolean gdk_broadway_device_query_state (GdkDevice *device,
GdkWindow *window, GdkWindow *window,
GdkWindow **root_window, GdkWindow **root_window,
GdkWindow **child_window, GdkWindow **child_window,
...@@ -50,45 +50,45 @@ static gboolean gdk_device_core_query_state (GdkDevice *device, ...@@ -50,45 +50,45 @@ static gboolean gdk_device_core_query_state (GdkDevice *device,
gint *win_x, gint *win_x,
gint *win_y, gint *win_y,
GdkModifierType *mask); GdkModifierType *mask);
static GdkGrabStatus gdk_device_core_grab (GdkDevice *device, static GdkGrabStatus gdk_broadway_device_grab (GdkDevice *device,
GdkWindow *window, GdkWindow *window,
gboolean owner_events, gboolean owner_events,
GdkEventMask event_mask, GdkEventMask event_mask,
GdkWindow *confine_to, GdkWindow *confine_to,
GdkCursor *cursor, GdkCursor *cursor,
guint32 time_); guint32 time_);
static void gdk_device_core_ungrab (GdkDevice *device, static void gdk_broadway_device_ungrab (GdkDevice *device,
guint32 time_); guint32 time_);
static GdkWindow * gdk_device_core_window_at_position (GdkDevice *device, static GdkWindow * gdk_broadway_device_window_at_position (GdkDevice *device,
gint *win_x, gint *win_x,
gint *win_y, gint *win_y,
GdkModifierType *mask, GdkModifierType *mask,
gboolean get_toplevel); gboolean get_toplevel);
static void gdk_device_core_select_window_events (GdkDevice *device, static void gdk_broadway_device_select_window_events (GdkDevice *device,
GdkWindow *window, GdkWindow *window,
GdkEventMask event_mask); GdkEventMask event_mask);
G_DEFINE_TYPE (GdkDeviceCore, gdk_device_core, GDK_TYPE_DEVICE) G_DEFINE_TYPE (GdkBroadwayDevice, gdk_broadway_device, GDK_TYPE_DEVICE)