Commit 1d838f58 authored by Hans Breuer's avatar Hans Breuer

win32: gdk3 resurrection

There are sure regressions but basic stuff seems to be working
again after all the API breakage done with comments like
"Win32 and Quartz need to be ported still."
parent fc122305
......@@ -350,13 +350,16 @@ gdk_visual_get_type G_GNUC_CONST
gdk_visual_get_visual_type
gdk_visual_type_get_type G_GNUC_CONST
#ifdef GDK_WINDOWING_WIN32
gdk_win32_drawable_get_handle
gdk_win32_handle_table_lookup
gdk_win32_icon_to_pixbuf_libgtk_only
gdk_win32_pixbuf_to_hicon_libgtk_only
gdk_win32_selection_add_targets
gdk_win32_set_modal_dialog_libgtk_only
gdk_win32_window_is_win32
gdk_win32_window_get_handle
gdk_win32_display_get_type
gdk_win32_window_foreign_new_for_display
gdk_win32_window_lookup_for_display
#endif
gdk_window_add_filter
gdk_window_at_pointer
......@@ -429,7 +432,9 @@ gdk_window_hide
gdk_window_hints_get_type G_GNUC_CONST
gdk_window_iconify
gdk_window_impl_get_type G_GNUC_CONST
#ifdef GDK_WINDOWING_X11
gdk_window_impl_x11_get_type G_GNUC_CONST
#endif
gdk_window_input_shape_combine_region
gdk_window_invalidate_maybe_recurse
gdk_window_invalidate_rect
......@@ -508,6 +513,7 @@ gdk_window_unstick
gdk_window_withdraw
gdk_wm_decoration_get_type G_GNUC_CONST
gdk_wm_function_get_type G_GNUC_CONST
#ifdef GDK_WINDOWING_X11
gdk_x11_app_launch_context_get_type
gdk_x11_atom_to_xatom
gdk_x11_atom_to_xatom_for_display
......@@ -570,3 +576,4 @@ gdk_x11_window_move_to_current_desktop
gdk_x11_window_set_user_time
gdk_x11_xatom_to_atom
gdk_x11_xatom_to_atom_for_display
#endif
......@@ -44,6 +44,9 @@
#include "quartz/gdkquartzdisplaymanager.h"
#endif
#ifdef GDK_WINDOWING_WIN32
#include "win32/gdkwin32.h"
#endif
/**
* SECTION:gdkdisplaymanager
......@@ -194,6 +197,11 @@ gdk_display_manager_get (void)
if (backend == NULL || strcmp (backend, "quartz") == 0)
manager = g_object_new (gdk_quartz_display_manager_get_type (), NULL);
else
#endif
#ifdef GDK_WINDOWING_WIN32
if (backend == NULL || strcmp (backend, "win32") == 0)
manager = g_object_new (gdk_win32_display_manager_get_type (), NULL);
else
#endif
if (backend != NULL)
g_error ("Unsupported GDK backend: %s", backend);
......
......@@ -19,8 +19,7 @@ WTKIT = $(TOP)\wtkit126
# Nothing much configurable below
# overwrite version?
GTK_VER=2.0
GDK_PIXBUF_VER=$(GTK_VER)
GTK_VER=3.0
!IFNDEF PERL
PERL = perl
......@@ -28,20 +27,19 @@ PERL = perl
INCLUDES = -FImsvc_recommended_pragmas.h \
-I . -I .. \
$(GLIB_CFLAGS) $(PANGO_CFLAGS) $(CAIRO_CFLAGS) -I ../gdk-pixbuf \
$(GLIB_CFLAGS) $(PANGO_CFLAGS) $(CAIRO_CFLAGS) $(GDK_PIXBUF_CFLAGS) \
DEFINES = \
-DHAVE_CONFIG_H -DGDK_ENABLE_BROKEN \
-DHAVE_CONFIG_H \
-DGDK_VERSION=\"$(GTK_VER)\" \
-DG_LOG_DOMAIN=\"Gdk\" \
-DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\"
EXTRALIBS = \
$(WTKIT)\lib\i386\wntab32x.lib \
$(GLIB_LIBS) \
..\gdk-pixbuf\gdk_pixbuf-$(GDK_PIXBUF_VER).lib \
$(PANGOWIN32_LIBS) $(PANGOCAIRO_LIBS) $(INTL_LIBS) $(CAIRO_LIBS) \
$(PANGOCAIRO_LIBS)
$(GLIB_LIBS) $(GDK_PIXBUF_LIBS) \
$(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) \
$(PANGOWIN32_LIBS) $(PANGOCAIRO_LIBS) $(INTL_LIBS)
gdk-win32-backend :
cd win32
......@@ -57,8 +55,8 @@ all: \
gdkmarshalers.c \
gdk-win32-backend \
libgdk-win32-$(GTK_VER)-0.dll \
testgdk.exe \
gdk-win32-$(GTK_VER)s.lib \
# testgdk.exe \
# gdk-win32-$(GTK_VER)s.lib \
# gdk-x11-$(GTK_VER).dll \
gdk_OBJECTS = \
......@@ -67,15 +65,14 @@ gdk_OBJECTS = \
gdkcairo.obj \
gdkcolor.obj \
gdkcursor.obj \
gdkdevice.obj \
gdkdevicemanager.obj \
gdkdisplay.obj \
gdkdisplaymanager.obj \
gdkdnd.obj \
gdkdraw.obj \
gdkenumtypes.obj \
gdkevents.obj \
gdkgc.obj \
gdkglobals.obj \
gdkwindowimpl.obj \
gdkkeynames.obj \
gdkkeys.obj \
gdkkeyuni.obj \
......@@ -83,31 +80,43 @@ gdk_OBJECTS = \
gdkoffscreenwindow.obj \
gdkpango.obj \
gdkpixbuf-drawable.obj \
gdkpixbuf-render.obj \
gdkrectangle.obj \
gdkrgba.obj \
gdkscreen.obj \
gdkselection.obj \
gdkvisual.obj \
gdkwindow.obj
gdk_public_h_sources = \
gdk.h \
gdkcolor.h \
gdkcursor.h \
gdkdnd.h \
gdkdrawable.h \
gdkevents.h \
gdkgc.h \
gdkkeysyms.h \
gdkinput.h \
gdkkeys.h \
gdkpango.h \
gdkpixbuf.h \
gdkproperty.h \
gdkselection.h \
gdktypes.h \
gdkvisual.h \
gdkwindow.h \
gdkwindow.obj \
gdkwindowimpl.obj \
gdk_public_h_sources = \
gdk.h \
gdkapplaunchcontext.h \
gdkcairo.h \
gdkcolor.h \
gdkcursor.h \
gdkdevice.h \
gdkdevicemanager.h \
gdkdisplay.h \
gdkdisplaymanager.h \
gdkdnd.h \
gdkevents.h \
gdkkeys.h \
gdkkeysyms.h \
gdkkeysyms-compat.h \
gdkmain.h \
gdkpango.h \
gdkpixbuf.h \
gdkprivate.h \
gdkproperty.h \
gdkrectangle.h \
gdkrgba.h \
gdkscreen.h \
gdkselection.h \
gdktestutils.h \
gdkthreads.h \
gdktypes.h \
gdkvisual.h \
gdkwindow.h
# private marshalers
gdkmarshalers.h : gdkmarshalers.list
......@@ -136,6 +145,7 @@ gdk.def: gdk.symbols
-DG_GNUC_CONST= \
gdk.symbols >> gdk.def
# /force /verbose:lib
libgdk-win32-$(GTK_VER)-0.dll : $(gdk_OBJECTS) gdk.def win32\gdk-win32.lib
$(CC) $(CFLAGS) -LD -Fe$@ $(gdk_OBJECTS) win32\gdk-win32.lib $(EXTRALIBS) \
gdi32.lib user32.lib imm32.lib shell32.lib ole32.lib uuid.lib win32\gdk.res \
......
......@@ -24,6 +24,7 @@
#include "gdkscreen.h"
#include "gdkcursor.h"
#include "gdkprivate-win32.h"
#include "gdkwin32cursor.h"
#ifdef __MINGW32__
#include <w32api.h>
......@@ -135,25 +136,47 @@ hcursor_from_type (GdkCursorType cursor_type)
return rv;
}
struct _GdkWin32CursorClass
{
GdkCursorClass cursor_class;
};
G_DEFINE_TYPE (GdkWin32Cursor, gdk_win32_cursor, GDK_TYPE_CURSOR)
static void
_gdk_win32_cursor_finalize (GObject *object)
{
GdkWin32Cursor *private = GDK_WIN32_CURSOR (object);
if (GetCursor () == private->hcursor)
SetCursor (NULL);
if (!DestroyCursor (private->hcursor))
WIN32_API_FAILED ("DestroyCursor");
G_OBJECT_CLASS (gdk_win32_cursor_parent_class)->finalize (object);
}
static GdkCursor*
cursor_new_from_hcursor (HCURSOR hcursor,
GdkCursorType cursor_type)
{
GdkCursorPrivate *private;
GdkWin32Cursor *private;
GdkCursor *cursor;
private = g_new (GdkCursorPrivate, 1);
private = g_object_new (GDK_TYPE_WIN32_CURSOR,
"cursor-type", cursor_type,
"display", _gdk_display,
NULL);
private->hcursor = hcursor;
cursor = (GdkCursor*) private;
cursor->type = cursor_type;
cursor->ref_count = 1;
return cursor;
}
GdkCursor*
gdk_cursor_new_for_display (GdkDisplay *display,
GdkCursorType cursor_type)
_gdk_win32_display_get_cursor_for_type (GdkDisplay *display,
GdkCursorType cursor_type)
{
HCURSOR hcursor;
......@@ -206,8 +229,8 @@ static struct {
};
GdkCursor*
gdk_cursor_new_from_name (GdkDisplay *display,
const gchar *name)
_gdk_win32_display_get_cursor_for_name (GdkDisplay *display,
const gchar *name)
{
HCURSOR hcursor = NULL;
int i;
......@@ -229,26 +252,6 @@ gdk_cursor_new_from_name (GdkDisplay *display,
return NULL;
}
void
_gdk_cursor_destroy (GdkCursor *cursor)
{
GdkCursorPrivate *private;
g_return_if_fail (cursor != NULL);
private = (GdkCursorPrivate *) cursor;
GDK_NOTE (CURSOR, g_print ("_gdk_cursor_destroy: %p\n",
(cursor->type == GDK_CURSOR_IS_PIXMAP) ? private->hcursor : 0));
if (GetCursor () == private->hcursor)
SetCursor (NULL);
if (!DestroyCursor (private->hcursor))
WIN32_API_FAILED ("DestroyCursor");
g_free (private);
}
GdkPixbuf *
gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon)
{
......@@ -425,19 +428,19 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon)
return pixbuf;
}
GdkPixbuf*
gdk_cursor_get_image (GdkCursor *cursor)
static GdkPixbuf *
_gdk_win32_cursor_get_image (GdkCursor *cursor)
{
g_return_val_if_fail (cursor != NULL, NULL);
return gdk_win32_icon_to_pixbuf_libgtk_only (((GdkCursorPrivate *) cursor)->hcursor);
return gdk_win32_icon_to_pixbuf_libgtk_only (((GdkWin32Cursor *) cursor)->hcursor);
}
GdkCursor *
gdk_cursor_new_from_pixbuf (GdkDisplay *display,
GdkPixbuf *pixbuf,
gint x,
gint y)
_gdk_win32_display_get_cursor_for_pixbuf (GdkDisplay *display,
GdkPixbuf *pixbuf,
gint x,
gint y)
{
HCURSOR hcursor;
......@@ -452,8 +455,8 @@ gdk_cursor_new_from_pixbuf (GdkDisplay *display,
return cursor_new_from_hcursor (hcursor, GDK_CURSOR_IS_PIXMAP);
}
gboolean
gdk_display_supports_cursor_alpha (GdkDisplay *display)
gboolean
_gdk_win32_display_supports_cursor_alpha (GdkDisplay *display)
{
g_return_val_if_fail (display == _gdk_display, FALSE);
......@@ -461,25 +464,30 @@ gdk_display_supports_cursor_alpha (GdkDisplay *display)
}
gboolean
gdk_display_supports_cursor_color (GdkDisplay *display)
_gdk_win32_display_supports_cursor_color (GdkDisplay *display)
{
g_return_val_if_fail (display == _gdk_display, FALSE);
return TRUE;
}
guint
gdk_display_get_default_cursor_size (GdkDisplay *display)
void
_gdk_win32_display_get_default_cursor_size (GdkDisplay *display,
guint *width,
guint *height)
{
g_return_val_if_fail (display == _gdk_display, 0);
return MIN (GetSystemMetrics (SM_CXCURSOR), GetSystemMetrics (SM_CYCURSOR));
g_return_if_fail (display == _gdk_display);
if (width)
*width = GetSystemMetrics (SM_CXCURSOR);
if (height)
*height = GetSystemMetrics (SM_CYCURSOR);
}
void
gdk_display_get_maximal_cursor_size (GdkDisplay *display,
guint *width,
guint *height)
_gdk_win32_display_get_maximal_cursor_size (GdkDisplay *display,
guint *width,
guint *height)
{
g_return_if_fail (display == _gdk_display);
......@@ -812,3 +820,18 @@ gdk_win32_pixbuf_to_hicon_libgtk_only (GdkPixbuf *pixbuf)
{
return _gdk_win32_pixbuf_to_hicon (pixbuf);
}
static void
gdk_win32_cursor_init (GdkWin32Cursor *cursor)
{
}
static void
gdk_win32_cursor_class_init(GdkWin32CursorClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GdkCursorClass *cursor_class = GDK_CURSOR_CLASS (klass);
object_class->finalize = _gdk_win32_cursor_finalize;
cursor_class->get_image = _gdk_win32_cursor_get_image;
}
......@@ -24,6 +24,7 @@
#include <windowsx.h>
#include <objbase.h>
#include "gdkdisplayprivate.h"
#include "gdkdevice-win32.h"
#include "gdkwin32.h"
......@@ -134,14 +135,14 @@ gdk_device_win32_set_window_cursor (GdkDevice *device,
GdkWindow *window,
GdkCursor *cursor)
{
GdkCursorPrivate *cursor_private;
GdkWindowObject *parent_window;
GdkWin32Cursor *cursor_private;
GdkWindow *parent_window;
GdkWindowImplWin32 *impl;
HCURSOR hcursor;
HCURSOR hprevcursor;
impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
cursor_private = (GdkCursorPrivate*) cursor;
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
cursor_private = (GdkWin32Cursor*) cursor;
hprevcursor = impl->hcursor;
......@@ -164,13 +165,11 @@ gdk_device_win32_set_window_cursor (GdkDevice *device,
* first ancestor that has cursor defined, and if so, set
* new cursor.
*/
GdkWindowObject *curr_window_obj = GDK_WINDOW_OBJECT (curr_window);
while (curr_window_obj &&
!GDK_WINDOW_IMPL_WIN32 (curr_window_obj->impl)->hcursor)
while (curr_window && curr_window->impl &&
!GDK_WINDOW_IMPL_WIN32 (curr_window->impl)->hcursor)
{
curr_window_obj = curr_window_obj->parent;
if (curr_window_obj == GDK_WINDOW_OBJECT (window))
curr_window = curr_window->parent;
if (curr_window == GDK_WINDOW (window))
{
SetCursor (hcursor);
break;
......@@ -188,7 +187,7 @@ gdk_device_win32_set_window_cursor (GdkDevice *device,
{
/* Look for a suitable cursor to use instead */
hcursor = NULL;
parent_window = GDK_WINDOW_OBJECT (window)->parent;
parent_window = GDK_WINDOW (window)->parent;
while (hcursor == NULL)
{
......@@ -329,12 +328,19 @@ static void
gdk_device_win32_ungrab (GdkDevice *device,
guint32 time_)
{
GdkDeviceGrabInfo *info;
GdkDisplay *display;
display = gdk_device_get_display (device);
info = _gdk_display_get_last_device_grab (display, device);
if (info)
info->serial_end = 0;
if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
ReleaseCapture ();
_gdk_display_device_grab_update (display, device, NULL, 0);
}
static GdkWindow *
......
......@@ -372,7 +372,7 @@ _gdk_input_check_extension_events (GdkDevice *device)
for (l = input_windows; l; l = l->next)
{
GdkWindowObject *window_private;
GdkWindow *window_private;
GdkEventMask event_mask = 0;
window_private = l->data;
......
......@@ -29,6 +29,8 @@
#include "gdkdeviceprivate.h"
#include "gdkdevice-win32.h"
#include "gdkdevice-wintab.h"
#include "gdkwin32.h"
#include "gdkdisplayprivate.h"
#include <windows.h>
#include <wintab.h>
......@@ -860,7 +862,6 @@ _gdk_input_other_event (GdkEvent *event,
GdkWindow *window)
{
GdkDisplay *display;
GdkWindowObject *obj;
GdkDeviceWintab *device = NULL;
GdkDeviceGrabInfo *last_grab;
GdkEventMask masktest;
......@@ -900,8 +901,6 @@ _gdk_input_other_event (GdkEvent *event,
return FALSE;
}
obj = GDK_WINDOW_OBJECT (window);
switch (msg->message)
{
case WT_PACKET:
......@@ -928,7 +927,6 @@ _gdk_input_other_event (GdkEvent *event,
g_object_unref (window);
window = g_object_ref (last_grab->window);
obj = GDK_WINDOW_OBJECT (window);
}
if (window == _gdk_root)
......@@ -1006,12 +1004,12 @@ _gdk_input_other_event (GdkEvent *event,
{
GDK_NOTE (EVENTS_OR_INPUT, g_print ("... not selected\n"));
if (obj->parent == GDK_WINDOW_OBJECT (_gdk_root))
if (window->parent == GDK_WINDOW (_gdk_root))
return FALSE;
/* It is not good to propagate the extended events up to the parent
* if this window wants normal (not extended) motion/button events */
if (obj->event_mask & masktest)
if (window->event_mask & masktest)
{
GDK_NOTE (EVENTS_OR_INPUT,
g_print ("... wants ordinary event, ignoring this\n"));
......@@ -1022,8 +1020,7 @@ _gdk_input_other_event (GdkEvent *event,
pt.y = y;
ClientToScreen (GDK_WINDOW_HWND (window), &pt);
g_object_unref (window);
window = (GdkWindow *) obj->parent;
obj = GDK_WINDOW_OBJECT (window);
window = window->parent;
g_object_ref (window);
ScreenToClient (GDK_WINDOW_HWND (window), &pt);
x = pt.x;
......
......@@ -20,7 +20,7 @@
#ifndef __GDK_DEVICE_MANAGER_WIN32_H__
#define __GDK_DEVICE_MANAGER_WIN32_H__
#include <gdk/gdkdevicemanager.h>
#include <gdk/gdkdevicemanagerprivate.h>
G_BEGIN_DECLS
......
......@@ -21,6 +21,10 @@
#include "config.h"
#include "gdk.h"
#include "gdkprivate-win32.h"
#include "gdkdisplayprivate.h"
#include "gdkwin32display.h"
#include "gdkwin32screen.h"
#include "gdkwin32window.h"
#define HAVE_MONITOR_INFO
......@@ -36,8 +40,8 @@ _gdk_windowing_set_default_display (GdkDisplay *display)
g_assert (display == NULL || _gdk_display == display);
}
gulong
_gdk_windowing_window_get_next_serial (GdkDisplay *display)
static gulong
gdk_win32_display_get_next_serial (GdkDisplay *display)
{
return 0;
}
......@@ -179,7 +183,7 @@ _gdk_monitor_init (void)
}
GdkDisplay *
gdk_display_open (const gchar *display_name)
_gdk_win32_display_open (const gchar *display_name)
{
GDK_NOTE (MISC, g_print ("gdk_display_open: %s\n", (display_name ? display_name : "NULL")));
......@@ -199,8 +203,8 @@ gdk_display_open (const gchar *display_name)
return NULL;
}
_gdk_display = g_object_new (GDK_TYPE_DISPLAY, NULL);
_gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL);
_gdk_display = g_object_new (GDK_TYPE_WIN32_DISPLAY, NULL);
_gdk_screen = g_object_new (GDK_TYPE_WIN32_SCREEN, NULL);
_gdk_monitor_init ();
_gdk_visual_init ();
......@@ -220,8 +224,20 @@ gdk_display_open (const gchar *display_name)
return _gdk_display;
}
G_CONST_RETURN gchar *
gdk_display_get_name (GdkDisplay *display)
struct _GdkWin32Display
{
GdkDisplay display;
};
struct _GdkWin32DisplayClass
{
GdkDisplayClass display_class;
};
G_DEFINE_TYPE (GdkWin32Display, gdk_win32_display, GDK_TYPE_DISPLAY)
static G_CONST_RETURN gchar *
gdk_win32_display_get_name (GdkDisplay *display)
{
HDESK hdesk = GetThreadDesktop (GetCurrentThreadId ());
char dummy;
......@@ -277,24 +293,24 @@ gdk_display_get_name (GdkDisplay *display)
window_station_name,
desktop_name);
GDK_NOTE (MISC, g_print ("gdk_display_get_name: %s\n", display_name));
GDK_NOTE (MISC, g_print ("gdk_win32_display_get_name: %s\n", display_name));
display_name_cache = display_name;
return display_name_cache;
}
gint
gdk_display_get_n_screens (GdkDisplay *display)
static gint
gdk_win32_display_get_n_screens (GdkDisplay *display)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), 0);
return 1;
}
GdkScreen *
gdk_display_get_screen (GdkDisplay *display,
gint screen_num)
static GdkScreen *
gdk_win32_display_get_screen (GdkDisplay *display,
gint screen_num)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
g_return_val_if_fail (screen_num == 0, NULL);
......@@ -302,16 +318,16 @@ gdk_display_get_screen (GdkDisplay *display,
return _gdk_screen;
}
GdkScreen *
gdk_display_get_default_screen (GdkDisplay *display)
static GdkScreen *
gdk_win32_display_get_default_screen (GdkDisplay *display)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
return _gdk_screen;
}
GdkWindow *
gdk_display_get_default_group (GdkDisplay *display)
static GdkWindow *
gdk_win32_display_get_default_group (GdkDisplay *display)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
......@@ -320,30 +336,30 @@ gdk_display_get_default_group (GdkDisplay *display)
return NULL;
}
gboolean
gdk_display_supports_selection_notification (GdkDisplay *display)
static gboolean
gdk_win32_display_supports_selection_notification (GdkDisplay *display)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
return FALSE;
}
gboolean
gdk_display_request_selection_notification (GdkDisplay *display,
static gboolean
gdk_win32_display_request_selection_notification (GdkDisplay *display,
GdkAtom selection)
{
return FALSE;
}
gboolean
gdk_display_supports_clipboard_persistence (GdkDisplay *display)
static gboolean
gdk_win32_display_supports_clipboard_persistence (GdkDisplay *display)
{
return FALSE;
}
void
gdk_display_store_clipboard (GdkDisplay *display,
static void
gdk_win32_display_store_clipboard (GdkDisplay *display,
GdkWindow *clipboard_window,
guint32 time_,
const GdkAtom *targets,
......@@ -351,16 +367,16 @@ gdk_display_store_clipboard (GdkDisplay *display,
{
}
gboolean
gdk_display_supports_shapes (GdkDisplay *display)
static gboolean
gdk_win32_display_supports_shapes (GdkDisplay *display)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
return TRUE;
}
gboolean
gdk_display_supports_input_shapes (GdkDisplay *display)
static gboolean
gdk_win32_display_supports_input_shapes (GdkDisplay *display)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
......@@ -371,8 +387,142 @@ gdk_display_supports_input_shapes (GdkDisplay *display)
return FALSE;
}
gboolean
gdk_display_supports_composite (GdkDisplay *display)
static gboolean
gdk_win32_display_supports_composite (GdkDisplay *display)
{
return FALSE;
}
static void
gdk_win32_display_beep (GdkDisplay *display)
{
g_return_if_fail (display == gdk_display_get_default());
if (!MessageBeep (-1))
Beep(1000, 50);
}
static void
gdk_win32_display_flush (GdkDisplay * display)
{
g_return_if_fail (display == _gdk_display);
GdiFlush ();
}
static void
gdk_win32_display_dispose (GObject *object)
{
}
static void
gdk_win32_display_finalize (GObject *object)
{
}
static void