forked from AuroraMiddleware/gtk
3b244c9f11
ImmIsIME() doesn't work (always returns TRUE) since Vista. Use ITfActiveLanguageProfileNotifySink to detect TSF changes, which are equal to IME changes for us. Also make sure that IMMultiContext re-loads the IM when keyboard layout changes, otherwise there's a subtle bug that could happen: * Run GTK application with non-IME layout (US, for example) * Focus on an editable widget (GtkEntry, for example) * IM Context is initialized to use the simple IM * Switch to an IME layout (such as Korean) * Start typing * Since IME module is not loaded yet, keypresses are handled by a default MS IME handler * Once IME commits a character, GDK will get a WM_KEYDOWN, which will trigger a GdkKeyEvent, which will be handled by an event filter in IM Context, which will finally re-evaluate its status and load IME, and only after that GTK will get to handle IME by itself - but by that point input would already be broken. To avoid this we can emit a dummy event (with Void keyval), which will cause IM Context to load the appropriate module immediately.
116 lines
2.4 KiB
Makefile
116 lines
2.4 KiB
Makefile
## Process this file with automake to produce Makefile.in
|
|
include $(top_srcdir)/Makefile.decl
|
|
|
|
libgdkincludedir = $(includedir)/gtk-3.0/gdk
|
|
libgdkwin32includedir = $(includedir)/gtk-3.0/gdk/win32
|
|
|
|
AM_CPPFLAGS = \
|
|
-DG_LOG_DOMAIN=\"Gdk\" \
|
|
-DG_LOG_USE_STRUCTURED=1 \
|
|
-DINSIDE_GDK_WIN32 \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/gdk \
|
|
-I$(top_builddir)/gdk \
|
|
$(GDK_HIDDEN_VISIBILITY_CFLAGS) \
|
|
$(GTK_DEBUG_FLAGS) \
|
|
$(GDK_DEP_CFLAGS) \
|
|
$(GDK_WIN32_EXTRA_CFLAGS) \
|
|
-DGDK_COMPILATION
|
|
|
|
if WIN32_GLES
|
|
AM_CPPFLAGS += "-DGDK_WIN32_ENABLE_EGL=1"
|
|
endif #WIN32_GLES
|
|
|
|
LDADDS = $(GDK_DEP_LIBS)
|
|
|
|
noinst_LTLIBRARIES = libgdk-win32.la
|
|
|
|
SUBDIRS=rc
|
|
|
|
EXTRA_DIST += \
|
|
bdfcursor.c \
|
|
makefile.msc
|
|
|
|
libgdk_win32_la_SOURCES = \
|
|
gdkcursor-win32.c \
|
|
gdkdevicemanager-win32.c \
|
|
gdkdevicemanager-win32.h \
|
|
gdkdevice-virtual.c \
|
|
gdkdevice-virtual.h \
|
|
gdkdevice-win32.c \
|
|
gdkdevice-win32.h \
|
|
gdkdevice-wintab.c \
|
|
gdkdevice-wintab.h \
|
|
gdkdisplay-win32.c \
|
|
gdkdisplay-win32.h \
|
|
gdkdisplaymanager-win32.c \
|
|
gdkdnd-win32.c \
|
|
gdkevents-win32.c \
|
|
gdkgeometry-win32.c \
|
|
gdkglcontext-win32.c \
|
|
gdkglcontext-win32.h \
|
|
gdkglobals-win32.c \
|
|
gdkkeys-win32.c \
|
|
gdkmain-win32.c \
|
|
gdkmonitor-win32.c \
|
|
gdkmonitor-win32.h \
|
|
gdkprivate-win32.h \
|
|
gdkproperty-win32.c \
|
|
gdkscreen-win32.c \
|
|
gdkselection-win32.c \
|
|
gdkselection-win32.h \
|
|
gdktestutils-win32.c \
|
|
gdkwin32cursor.h \
|
|
gdkwin32display.h \
|
|
gdkwin32displaymanager.h \
|
|
gdkwin32dnd.h \
|
|
gdkwin32dnd-private.h \
|
|
gdkwin32glcontext.h \
|
|
gdkwin32langnotification.c \
|
|
gdkwin32langnotification.h \
|
|
gdkwin32.h \
|
|
gdkwin32id.c \
|
|
gdkwin32keys.h \
|
|
gdkwin32monitor.h \
|
|
gdkwin32screen.h \
|
|
gdkwin32window.h \
|
|
gdkwindow-win32.c \
|
|
gdkwindow-win32.h \
|
|
pktdef.h \
|
|
wintab.h \
|
|
xcursors.h
|
|
|
|
libgdkinclude_HEADERS = \
|
|
gdkwin32.h
|
|
|
|
libgdkwin32include_HEADERS = \
|
|
gdkwin32cursor.h \
|
|
gdkwin32display.h \
|
|
gdkwin32displaymanager.h\
|
|
gdkwin32dnd.h \
|
|
gdkwin32glcontext.h \
|
|
gdkwin32keys.h \
|
|
gdkwin32misc.h \
|
|
gdkwin32monitor.h \
|
|
gdkwin32screen.h \
|
|
gdkwin32window.h
|
|
|
|
# ------------------- MSVC Build Items ----------------
|
|
MSVCPROJS = gdk3-win32
|
|
|
|
gdk3_win32_FILES = $(libgdk_win32_la_SOURCES)
|
|
gdk3_win32_EXCLUDES = dummy
|
|
gdk3_win32_HEADERS_DIR = $(libgdkwin32includedir)
|
|
|
|
gdk3_win32_HEADERS_INST = $(libgdkwin32include_HEADERS)
|
|
|
|
gdk3_win32_HEADERS_EXCLUDES = dummy
|
|
|
|
include $(top_srcdir)/build/Makefile.msvcproj
|
|
|
|
dist-hook: \
|
|
$(top_builddir)/build/win32/vs9/gdk3-win32.vcproj \
|
|
$(top_builddir)/build/win32/vs9/gdk3-win32.headers
|
|
|
|
-include $(top_srcdir)/git.mk
|