New upstream version 3.24.30
This commit is contained in:
commit
cc6b7040ea
6
INSTALL
6
INSTALL
@ -4,7 +4,7 @@ Prerequisites
|
||||
GTK+ requires the following packages:
|
||||
|
||||
- The GLib, Pango, GdkPixbuf, ATK and cairo libraries, available at
|
||||
the same location as GTK+. GTK+ 3.24.29 requires at least
|
||||
the same location as GTK+. GTK+ 3.24.30 requires at least
|
||||
GLib 2.57.2, Pango 1.41.0,
|
||||
GdkPixbuf 2.30.0, ATK 2.32.0
|
||||
and cairo 1.14.0.
|
||||
@ -22,8 +22,8 @@ GTK+ requires the following packages:
|
||||
Simple install procedure
|
||||
========================
|
||||
|
||||
% tar xf gtk+-3.24.29.tar.xz # unpack the sources
|
||||
% cd gtk+-3.24.29 # change to the toplevel directory
|
||||
% tar xf gtk+-3.24.30.tar.xz # unpack the sources
|
||||
% cd gtk+-3.24.30 # change to the toplevel directory
|
||||
% ./configure # run the `configure' script
|
||||
% make # build GTK+
|
||||
[ Become root if necessary ]
|
||||
|
@ -216,8 +216,8 @@ am__DIST_COMMON = $(srcdir)/INSTALL.in $(srcdir)/Makefile.in \
|
||||
$(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \
|
||||
ChangeLog INSTALL NEWS README build-aux/compile \
|
||||
build-aux/config.guess build-aux/config.rpath \
|
||||
build-aux/config.sub build-aux/depcomp build-aux/install-sh \
|
||||
build-aux/ltmain.sh build-aux/missing
|
||||
build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \
|
||||
build-aux/missing
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
@ -399,8 +399,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -449,8 +447,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
55
NEWS
55
NEWS
@ -1,3 +1,58 @@
|
||||
Overview of Changes in GTK+ 3.24.30
|
||||
===================================
|
||||
|
||||
* Input:
|
||||
- Ignore NoSymbol key events (happens with some XKB options)
|
||||
- Fix incomplete reset in some cases
|
||||
|
||||
* GtkEmojiChooser:
|
||||
- Update data from CLDR 39
|
||||
- Support translated keywords for multiple languages
|
||||
- Allow inserting multiple Emoji with Ctrl
|
||||
- Match keywords for search
|
||||
- Fix a memory leak
|
||||
|
||||
* GtkFileChooser:
|
||||
- Accessibility improvements
|
||||
|
||||
* GtkTreeView
|
||||
- Fix an accessibility-related memory leak
|
||||
- Fix assertion failures in some cases
|
||||
|
||||
* Printing:
|
||||
- Remove the Google Cloud Print backend, since the
|
||||
service was shut down
|
||||
|
||||
* Wayland:
|
||||
- Work with pointer-gestures v1 protocol
|
||||
|
||||
* Win32:
|
||||
- Fix using GL with Mesa drivers
|
||||
- Add support for Windows Pointer Input stack
|
||||
|
||||
* MacOS:
|
||||
- Fix a crash with Drag-and-Drop
|
||||
|
||||
* Translation updates:
|
||||
Belarusian
|
||||
Brazilian Portuguese
|
||||
British English
|
||||
Catalan
|
||||
Indonesian
|
||||
Lithuanian
|
||||
Nepali
|
||||
Norwegian Bokmål
|
||||
Occitan
|
||||
Portuguese
|
||||
Romanian
|
||||
Russian
|
||||
Serbian
|
||||
Slovenian
|
||||
Spanish
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.24.29
|
||||
===================================
|
||||
|
||||
|
2
README
2
README
@ -1,7 +1,7 @@
|
||||
General Information
|
||||
===================
|
||||
|
||||
This is GTK+ version 3.24.29. GTK+ is a multi-platform toolkit for
|
||||
This is GTK+ version 3.24.30. GTK+ is a multi-platform toolkit for
|
||||
creating graphical user interfaces. Offering a complete set of widgets,
|
||||
GTK+ is suitable for projects ranging from small one-off projects to
|
||||
complete application suites.
|
||||
|
77
README.win32
77
README.win32
@ -15,6 +15,8 @@ the same compiler is used for at least GDK-Pixbuf, Pango, atk and glib
|
||||
so that crashes and errors caused by different CRTs can be avoided. Currently
|
||||
building with Visual Studio 2008 or later is supported, either via Visual Studio
|
||||
project files or via the Meson build system, as described in the below sections.
|
||||
For Visual Studio 2008, 2010, a special setup making use of the Windows 8.0 SDK
|
||||
is required, see at the bottom of this document for guidance.
|
||||
Interchanging between Visual Studio 2015, 2017 and 2019 builds should be fine
|
||||
as they use the same CRT (UCRT) DLLs.
|
||||
|
||||
@ -286,6 +288,73 @@ If you are building with Visual Studio 2008, note the following items as well:
|
||||
- The more modern visual style for the print dialog is not applied for Visual
|
||||
Studio 2008 builds. Any solutions to this is really appreciated.
|
||||
|
||||
Support for pre-2012 Visual Studio
|
||||
==================================
|
||||
|
||||
This release of GTK+ requires at least the Windows 8.0 SDK in order to be built
|
||||
successfully using Visual Studio, which means that building with Visual Studio
|
||||
2008 or 2010 is possible only with a special setup and must be done in the
|
||||
command line with Ninja. Please see
|
||||
https://devblogs.microsoft.com/cppblog/using-the-windows-software-development-kit-sdk-for-windows-8-consumer-preview-with-visual-studio-2010/
|
||||
for references; basically, assuming that your Windows 8.0 SDK is installed in
|
||||
`C:\Program Files (x86)\Windows Kits\8.0` (`$(WIN8SDKDIR)` in short), you need
|
||||
to ensure the following before invoking Meson to configure the build:
|
||||
|
||||
- Your `%INCLUDE%` must not include the Windows 7.0/7.1 SDK include directories,
|
||||
and `$(WIN8SDKDIR)\include\um`, `$(WIN8SDKDIR)\include\um\share` and
|
||||
`$(WIN8SDKDIR)\include\winrt` (in this order) must be before your stock
|
||||
Visual Studio 2008/2010 header directories. If you have the DirectX SDK installed,
|
||||
you should remove its include directory from your `%INCLUDE%` as well.
|
||||
- You must replace the Windows 7.0/7.1 SDK library directory in `%LIB%` with the
|
||||
Windows 8.0 SDK library directory, i.e. `$(WIN8SDKDIR)\lib\win8\um\[x86|x64]`.
|
||||
If you have the DirectX SDK installed, you should remove its library directory
|
||||
from your `%INCLUDE%` as well.
|
||||
- You must replace the Windows 7.0/7.1 SDK tools directory from your `%PATH%` with
|
||||
the Windows 8.0 SDK tools directory, i.e. `$(WIN8SDKDIR)\bin\[x86|x64]`.
|
||||
If you have the DirectX SDK installed, you should remove its utility directory
|
||||
from your `%PATH%` as well.
|
||||
|
||||
The Windows 8.0 SDK headers may contain an `roapi.h` that cannot be used under plain
|
||||
C, so to remedy that, change the following lines (around lines 55-57):
|
||||
|
||||
// RegisterActivationFactory/RevokeActivationFactory registration cookie
|
||||
typedef struct {} *RO_REGISTRATION_COOKIE;
|
||||
// RegisterActivationFactory/DllGetActivationFactory callback
|
||||
|
||||
to
|
||||
|
||||
// RegisterActivationFactory/RevokeActivationFactory registration cookie
|
||||
#ifdef __cplusplus
|
||||
typedef struct {} *RO_REGISTRATION_COOKIE;
|
||||
#else
|
||||
typedef struct _RO_REGISTRATION_COOKIE *RO_REGISTRATION_COOKIE; /* make this header includable in C files */
|
||||
#endif
|
||||
// RegisterActivationFactory/DllGetActivationFactory callback
|
||||
|
||||
This follows what is done in the Windows 8.1 SDK, which contains an `roapi.h`
|
||||
that is usable under plain C. Please note that you might need to copy that file
|
||||
into a location that is in your `%INCLUDE%` which precedes the include path for the
|
||||
Windows 8.0 SDK headers, if you do not have administrative privileges.
|
||||
|
||||
Visual Studio 2008 hacks
|
||||
========================
|
||||
|
||||
- You need to run the following lines from your build directory, to embed the
|
||||
manifests that are generated during the build, assuming the built binaries
|
||||
are installed to `$(PREFIX)`, after a successful build/installation:
|
||||
|
||||
```cmd
|
||||
> for /r %f in (*.dll.manifest) do if exist $(PREFIX)\bin\%~nf mt /manifest %f (PREFIX)\bin\%~nf;2
|
||||
> for /r %f in (*.exe.manifest) do if exist $(PREFIX)\bin\%~nf mt /manifest %f (PREFIX)\bin\%~nf;1
|
||||
```
|
||||
|
||||
|
||||
- If building for amd64/x86_64/x64, sometimes the compilation of sources may seem to hang, which
|
||||
is caused by an optimization issue in the 2008 x64 compiler. You need to use Task Manager to
|
||||
remove all running instances of `cl.exe`, which will cause the build process to terminate. Update
|
||||
the build flags of the sources that hang on compilation by changing its `"/O2"` flag to `"/O1"`
|
||||
in `build.ninja`, and retry the build, where things should continue to build normally.
|
||||
|
||||
Using GTK+ on Win32
|
||||
===================
|
||||
|
||||
@ -302,13 +371,5 @@ cases, but not in general. Sorry. If you have all GTK+ and GDK calls
|
||||
in the same thread, it might work. Otherwise, probably not at
|
||||
all. Possible ways to fix this are being investigated.
|
||||
|
||||
Wintab
|
||||
======
|
||||
|
||||
The tablet support uses the Wintab API. The Wintab development kit is
|
||||
no longer required. The wintab.h header file is bundled with GTK+
|
||||
sources. Unfortunately it seems that only Wacom tablets come with
|
||||
support for the Wintab API nowadays.
|
||||
|
||||
--Tor Lillqvist <tml@iki.fi>, <tml@novell.com>
|
||||
--Updated by Fan, Chun-wei <fanc999@yahoo.com.tw>
|
||||
|
@ -268,7 +268,7 @@
|
||||
#define PACKAGE_NAME "gtk+"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "gtk+ 3.24.29"
|
||||
#define PACKAGE_STRING "gtk+ 3.24.30"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "gtk+"
|
||||
@ -277,7 +277,7 @@
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "3.24.29"
|
||||
#define PACKAGE_VERSION "3.24.30"
|
||||
|
||||
/* Use NSBundle functions to determine load paths for libraries, translations,
|
||||
etc. */
|
||||
|
253
configure
vendored
253
configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for gtk+ 3.24.29.
|
||||
# Generated by GNU Autoconf 2.69 for gtk+ 3.24.30.
|
||||
#
|
||||
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B>.
|
||||
#
|
||||
@ -591,8 +591,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='gtk+'
|
||||
PACKAGE_TARNAME='gtk+'
|
||||
PACKAGE_VERSION='3.24.29'
|
||||
PACKAGE_STRING='gtk+ 3.24.29'
|
||||
PACKAGE_VERSION='3.24.30'
|
||||
PACKAGE_STRING='gtk+ 3.24.30'
|
||||
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -697,12 +697,6 @@ GSETTINGS_DISABLE_SCHEMAS_COMPILE
|
||||
GTK_PRINT_BACKENDS
|
||||
TEST_PRINT_BACKEND_FALSE
|
||||
TEST_PRINT_BACKEND_TRUE
|
||||
JSON_GLIB_LIBS
|
||||
JSON_GLIB_CFLAGS
|
||||
REST_LIBS
|
||||
REST_CFLAGS
|
||||
HAVE_CLOUDPRINT_FALSE
|
||||
HAVE_CLOUDPRINT_TRUE
|
||||
HAVE_TRACKER3_FALSE
|
||||
HAVE_TRACKER3_TRUE
|
||||
TRACKER3_LIBS
|
||||
@ -1069,7 +1063,6 @@ enable_win32_gles
|
||||
enable_cups
|
||||
enable_papi
|
||||
enable_tracker3
|
||||
enable_cloudprint
|
||||
enable_test_print_backend
|
||||
enable_schemas_compile
|
||||
enable_introspection
|
||||
@ -1128,10 +1121,6 @@ GTK_FONT_CHOOSER_WIDGET_CFLAGS
|
||||
GTK_FONT_CHOOSER_WIDGET_LIBS
|
||||
TRACKER3_CFLAGS
|
||||
TRACKER3_LIBS
|
||||
REST_CFLAGS
|
||||
REST_LIBS
|
||||
JSON_GLIB_CFLAGS
|
||||
JSON_GLIB_LIBS
|
||||
GLIB_COMPILE_SCHEMAS
|
||||
COLORD_CFLAGS
|
||||
COLORD_LIBS
|
||||
@ -1688,7 +1677,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures gtk+ 3.24.29 to adapt to many kinds of systems.
|
||||
\`configure' configures gtk+ 3.24.30 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1763,7 +1752,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of gtk+ 3.24.29:";;
|
||||
short | recursive ) echo "Configuration of gtk+ 3.24.30:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1819,7 +1808,6 @@ Optional Features:
|
||||
--disable-cups disable cups print backend
|
||||
--disable-papi disable papi print backend
|
||||
--enable-tracker3 enable tracker3 search engine
|
||||
--disable-cloudprint disable cloudprint print backend
|
||||
--enable-test-print-backend
|
||||
build test print backend
|
||||
--disable-schemas-compile
|
||||
@ -1929,12 +1917,6 @@ Some influential environment variables:
|
||||
C compiler flags for TRACKER3, overriding pkg-config
|
||||
TRACKER3_LIBS
|
||||
linker flags for TRACKER3, overriding pkg-config
|
||||
REST_CFLAGS C compiler flags for REST, overriding pkg-config
|
||||
REST_LIBS linker flags for REST, overriding pkg-config
|
||||
JSON_GLIB_CFLAGS
|
||||
C compiler flags for JSON_GLIB, overriding pkg-config
|
||||
JSON_GLIB_LIBS
|
||||
linker flags for JSON_GLIB, overriding pkg-config
|
||||
GLIB_COMPILE_SCHEMAS
|
||||
value of glib_compile_schemas for gio-2.0, overriding pkg-config
|
||||
COLORD_CFLAGS
|
||||
@ -2012,7 +1994,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
gtk+ configure 3.24.29
|
||||
gtk+ configure 3.24.30
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2842,7 +2824,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by gtk+ $as_me 3.24.29, which was
|
||||
It was created by gtk+ $as_me 3.24.30, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -3835,7 +3817,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='gtk+'
|
||||
VERSION='3.24.29'
|
||||
VERSION='3.24.30'
|
||||
|
||||
|
||||
# Some tools Automake needs.
|
||||
@ -4115,10 +4097,10 @@ AM_BACKSLASH='\'
|
||||
|
||||
GTK_MAJOR_VERSION=3
|
||||
GTK_MINOR_VERSION=24
|
||||
GTK_MICRO_VERSION=29
|
||||
GTK_INTERFACE_AGE=25
|
||||
GTK_BINARY_AGE=2429
|
||||
GTK_VERSION=3.24.29
|
||||
GTK_MICRO_VERSION=30
|
||||
GTK_INTERFACE_AGE=26
|
||||
GTK_BINARY_AGE=2430
|
||||
GTK_VERSION=3.24.30
|
||||
GTK_API_VERSION=3.0
|
||||
GTK_BINARY_VERSION=3.0.0
|
||||
|
||||
@ -4140,7 +4122,7 @@ GTK_BINARY_VERSION=3.0.0
|
||||
|
||||
|
||||
|
||||
LT_VERSION_INFO="2404:25:2404"
|
||||
LT_VERSION_INFO="2404:26:2404"
|
||||
LT_CURRENT_MINUS_AGE=0
|
||||
|
||||
|
||||
@ -21071,7 +21053,7 @@ Usage: $0 [OPTIONS]
|
||||
Report bugs to <bug-libtool@gnu.org>."
|
||||
|
||||
lt_cl_version="\
|
||||
gtk+ config.lt 3.24.29
|
||||
gtk+ config.lt 3.24.30
|
||||
configured by $0, generated by GNU Autoconf 2.69.
|
||||
|
||||
Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
@ -27813,195 +27795,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
# Checks to see if we should compile with cloudprint backend for GTK+
|
||||
#
|
||||
|
||||
# Check whether --enable-cloudprint was given.
|
||||
if test "${enable_cloudprint+set}" = set; then :
|
||||
enableval=$enable_cloudprint;
|
||||
else
|
||||
enable_cloudprint=auto
|
||||
fi
|
||||
|
||||
|
||||
if test "x$enable_cloudprint" = "xno"; then
|
||||
if false; then
|
||||
HAVE_CLOUDPRINT_TRUE=
|
||||
HAVE_CLOUDPRINT_FALSE='#'
|
||||
else
|
||||
HAVE_CLOUDPRINT_TRUE='#'
|
||||
HAVE_CLOUDPRINT_FALSE=
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for REST" >&5
|
||||
$as_echo_n "checking for REST... " >&6; }
|
||||
|
||||
if test -n "$REST_CFLAGS"; then
|
||||
pkg_cv_REST_CFLAGS="$REST_CFLAGS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"rest-0.7\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "rest-0.7") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_REST_CFLAGS=`$PKG_CONFIG --cflags "rest-0.7" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
if test -n "$REST_LIBS"; then
|
||||
pkg_cv_REST_LIBS="$REST_LIBS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"rest-0.7\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "rest-0.7") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_REST_LIBS=`$PKG_CONFIG --libs "rest-0.7" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
REST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "rest-0.7" 2>&1`
|
||||
else
|
||||
REST_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "rest-0.7" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$REST_PKG_ERRORS" >&5
|
||||
|
||||
have_rest=no
|
||||
elif test $pkg_failed = untried; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
have_rest=no
|
||||
else
|
||||
REST_CFLAGS=$pkg_cv_REST_CFLAGS
|
||||
REST_LIBS=$pkg_cv_REST_LIBS
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
have_rest=yes
|
||||
fi
|
||||
|
||||
pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JSON_GLIB" >&5
|
||||
$as_echo_n "checking for JSON_GLIB... " >&6; }
|
||||
|
||||
if test -n "$JSON_GLIB_CFLAGS"; then
|
||||
pkg_cv_JSON_GLIB_CFLAGS="$JSON_GLIB_CFLAGS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "json-glib-1.0") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_JSON_GLIB_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
if test -n "$JSON_GLIB_LIBS"; then
|
||||
pkg_cv_JSON_GLIB_LIBS="$JSON_GLIB_LIBS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "json-glib-1.0") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_JSON_GLIB_LIBS=`$PKG_CONFIG --libs "json-glib-1.0" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
JSON_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "json-glib-1.0" 2>&1`
|
||||
else
|
||||
JSON_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "json-glib-1.0" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$JSON_GLIB_PKG_ERRORS" >&5
|
||||
|
||||
have_json_glib=no
|
||||
elif test $pkg_failed = untried; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
have_json_glib=no
|
||||
else
|
||||
JSON_GLIB_CFLAGS=$pkg_cv_JSON_GLIB_CFLAGS
|
||||
JSON_GLIB_LIBS=$pkg_cv_JSON_GLIB_LIBS
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
have_json_glib=yes
|
||||
fi
|
||||
if test "x$have_rest" = "xyes" -a "x$have_json_glib" = "xyes"; then
|
||||
PRINT_BACKENDS="$PRINT_BACKENDS cloudprint"
|
||||
have_cloudprint=yes
|
||||
fi
|
||||
if test "x$have_cloudprint" = "xyes"; then
|
||||
HAVE_CLOUDPRINT_TRUE=
|
||||
HAVE_CLOUDPRINT_FALSE='#'
|
||||
else
|
||||
HAVE_CLOUDPRINT_TRUE='#'
|
||||
HAVE_CLOUDPRINT_FALSE=
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$enable_cloudprint" = "xyes" -a "x$have_rest" = "xno"; then
|
||||
as_fn_error $? "
|
||||
*** rest not found.
|
||||
" "$LINENO" 5
|
||||
fi
|
||||
|
||||
if test "x$enable_cloudprint" = "xyes" -a "x$have_json_glib" = "xno"; then
|
||||
as_fn_error $? "
|
||||
*** json-glib not found.
|
||||
" "$LINENO" 5
|
||||
fi
|
||||
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS $GDK_DEP_CFLAGS"
|
||||
|
||||
@ -28085,9 +27878,6 @@ fi
|
||||
if test "$have_papi" != "yes" -a "$have_cups" != "yes"; then
|
||||
GTK_PRINT_BACKENDS="$GTK_PRINT_BACKENDS,lpr"
|
||||
fi
|
||||
if test "$have_cloudprint" = "yes"; then
|
||||
GTK_PRINT_BACKENDS="$GTK_PRINT_BACKENDS,cloudprint"
|
||||
fi
|
||||
|
||||
|
||||
################################################################
|
||||
@ -29422,7 +29212,7 @@ else
|
||||
fi
|
||||
|
||||
|
||||
ac_config_files="$ac_config_files README INSTALL config.h.win32 gtk-zip.sh Makefile gdk-3.0.pc gtk+-3.0.pc gtk+-unix-print-3.0.pc gail-3.0.pc m4macros/Makefile po/Makefile.in po-properties/Makefile.in demos/Makefile demos/gtk-demo/Makefile demos/gtk-demo/geninclude.pl demos/widget-factory/Makefile demos/icon-browser/Makefile examples/Makefile examples/bp/Makefile examples/application1/Makefile examples/application2/Makefile examples/application3/Makefile examples/application4/Makefile examples/application5/Makefile examples/application6/Makefile examples/application7/Makefile examples/application8/Makefile examples/application9/Makefile examples/application10/Makefile tests/Makefile tests/visuals/Makefile testsuite/Makefile testsuite/a11y/Makefile testsuite/a11y/state/Makefile testsuite/css/Makefile testsuite/css/parser/Makefile testsuite/css/nodes/Makefile testsuite/css/style/Makefile testsuite/gdk/Makefile testsuite/gtk/Makefile testsuite/reftests/Makefile testsuite/tools/Makefile docs/Makefile docs/reference/Makefile docs/reference/gdk/Makefile docs/reference/gdk/version.xml docs/reference/gtk/Makefile docs/reference/gtk/gtk3.types docs/reference/gtk/version.xml docs/reference/gtk/getting_started.xml docs/reference/libgail-util/Makefile docs/reference/libgail-util/version.xml docs/tools/Makefile win32/Makefile win32/config-msvc.mak win32/vs9/Makefile win32/vs9/gtk3-version-paths.vsprops win32/vs10/Makefile win32/vs10/gtk3-version-paths.props win32/vs11/Makefile win32/vs12/Makefile win32/vs14/Makefile win32/vs15/Makefile win32/vs16/Makefile gdk/Makefile gdk/broadway/Makefile gdk/x11/Makefile gdk/win32/Makefile gdk/win32/rc/Makefile gdk/win32/rc/gdk.rc gdk/quartz/Makefile gdk/wayland/Makefile gdk/gdkversionmacros.h gtk/Makefile gtk/makefile.msc gtk/gtkversion.h gtk/gtk-win32.rc.body gtk/libgtk3.manifest libgail-util/Makefile modules/Makefile modules/input/Makefile modules/printbackends/Makefile modules/printbackends/cups/Makefile modules/printbackends/cloudprint/Makefile modules/printbackends/lpr/Makefile modules/printbackends/file/Makefile modules/printbackends/papi/Makefile modules/printbackends/test/Makefile"
|
||||
ac_config_files="$ac_config_files README INSTALL config.h.win32 gtk-zip.sh Makefile gdk-3.0.pc gtk+-3.0.pc gtk+-unix-print-3.0.pc gail-3.0.pc m4macros/Makefile po/Makefile.in po-properties/Makefile.in demos/Makefile demos/gtk-demo/Makefile demos/gtk-demo/geninclude.pl demos/widget-factory/Makefile demos/icon-browser/Makefile examples/Makefile examples/bp/Makefile examples/application1/Makefile examples/application2/Makefile examples/application3/Makefile examples/application4/Makefile examples/application5/Makefile examples/application6/Makefile examples/application7/Makefile examples/application8/Makefile examples/application9/Makefile examples/application10/Makefile tests/Makefile tests/visuals/Makefile testsuite/Makefile testsuite/a11y/Makefile testsuite/a11y/state/Makefile testsuite/css/Makefile testsuite/css/parser/Makefile testsuite/css/nodes/Makefile testsuite/css/style/Makefile testsuite/gdk/Makefile testsuite/gtk/Makefile testsuite/reftests/Makefile testsuite/tools/Makefile docs/Makefile docs/reference/Makefile docs/reference/gdk/Makefile docs/reference/gdk/version.xml docs/reference/gtk/Makefile docs/reference/gtk/gtk3.types docs/reference/gtk/version.xml docs/reference/gtk/getting_started.xml docs/reference/libgail-util/Makefile docs/reference/libgail-util/version.xml docs/tools/Makefile win32/Makefile win32/config-msvc.mak win32/vs9/Makefile win32/vs9/gtk3-version-paths.vsprops win32/vs10/Makefile win32/vs10/gtk3-version-paths.props win32/vs11/Makefile win32/vs12/Makefile win32/vs14/Makefile win32/vs15/Makefile win32/vs16/Makefile gdk/Makefile gdk/broadway/Makefile gdk/x11/Makefile gdk/win32/Makefile gdk/win32/rc/Makefile gdk/win32/rc/gdk.rc gdk/quartz/Makefile gdk/wayland/Makefile gdk/gdkversionmacros.h gtk/Makefile gtk/makefile.msc gtk/gtkversion.h gtk/gtk-win32.rc.body gtk/libgtk3.manifest libgail-util/Makefile modules/Makefile modules/input/Makefile modules/printbackends/Makefile modules/printbackends/cups/Makefile modules/printbackends/lpr/Makefile modules/printbackends/file/Makefile modules/printbackends/papi/Makefile modules/printbackends/test/Makefile"
|
||||
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
@ -29766,14 +29556,6 @@ if test -z "${HAVE_TRACKER3_TRUE}" && test -z "${HAVE_TRACKER3_FALSE}"; then
|
||||
as_fn_error $? "conditional \"HAVE_TRACKER3\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${HAVE_CLOUDPRINT_TRUE}" && test -z "${HAVE_CLOUDPRINT_FALSE}"; then
|
||||
as_fn_error $? "conditional \"HAVE_CLOUDPRINT\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${HAVE_CLOUDPRINT_TRUE}" && test -z "${HAVE_CLOUDPRINT_FALSE}"; then
|
||||
as_fn_error $? "conditional \"HAVE_CLOUDPRINT\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
if test -z "${TEST_PRINT_BACKEND_TRUE}" && test -z "${TEST_PRINT_BACKEND_FALSE}"; then
|
||||
as_fn_error $? "conditional \"TEST_PRINT_BACKEND\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
@ -30227,7 +30009,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by gtk+ $as_me 3.24.29, which was
|
||||
This file was extended by gtk+ $as_me 3.24.30, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -30293,7 +30075,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
gtk+ config.status 3.24.29
|
||||
gtk+ config.status 3.24.30
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
@ -30904,7 +30686,6 @@ do
|
||||
"modules/input/Makefile") CONFIG_FILES="$CONFIG_FILES modules/input/Makefile" ;;
|
||||
"modules/printbackends/Makefile") CONFIG_FILES="$CONFIG_FILES modules/printbackends/Makefile" ;;
|
||||
"modules/printbackends/cups/Makefile") CONFIG_FILES="$CONFIG_FILES modules/printbackends/cups/Makefile" ;;
|
||||
"modules/printbackends/cloudprint/Makefile") CONFIG_FILES="$CONFIG_FILES modules/printbackends/cloudprint/Makefile" ;;
|
||||
"modules/printbackends/lpr/Makefile") CONFIG_FILES="$CONFIG_FILES modules/printbackends/lpr/Makefile" ;;
|
||||
"modules/printbackends/file/Makefile") CONFIG_FILES="$CONFIG_FILES modules/printbackends/file/Makefile" ;;
|
||||
"modules/printbackends/papi/Makefile") CONFIG_FILES="$CONFIG_FILES modules/printbackends/papi/Makefile" ;;
|
||||
|
40
configure.ac
40
configure.ac
@ -10,8 +10,8 @@
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [24])
|
||||
m4_define([gtk_micro_version], [29])
|
||||
m4_define([gtk_interface_age], [25])
|
||||
m4_define([gtk_micro_version], [30])
|
||||
m4_define([gtk_interface_age], [26])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
m4_define([gtk_version],
|
||||
@ -1576,38 +1576,6 @@ fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_TRACKER3, test "x$have_tracker3" = "xyes")
|
||||
|
||||
# Checks to see if we should compile with cloudprint backend for GTK+
|
||||
#
|
||||
|
||||
AC_ARG_ENABLE(cloudprint,
|
||||
[AS_HELP_STRING([--disable-cloudprint],
|
||||
[disable cloudprint print backend])],,
|
||||
[enable_cloudprint=auto])
|
||||
|
||||
if test "x$enable_cloudprint" = "xno"; then
|
||||
AM_CONDITIONAL(HAVE_CLOUDPRINT, false)
|
||||
else
|
||||
PKG_CHECK_MODULES(REST, [rest-0.7], have_rest=yes, have_rest=no)
|
||||
PKG_CHECK_MODULES(JSON_GLIB, [json-glib-1.0], have_json_glib=yes, have_json_glib=no)
|
||||
if test "x$have_rest" = "xyes" -a "x$have_json_glib" = "xyes"; then
|
||||
PRINT_BACKENDS="$PRINT_BACKENDS cloudprint"
|
||||
have_cloudprint=yes
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_CLOUDPRINT, test "x$have_cloudprint" = "xyes")
|
||||
fi
|
||||
|
||||
if test "x$enable_cloudprint" = "xyes" -a "x$have_rest" = "xno"; then
|
||||
AC_MSG_ERROR([
|
||||
*** rest not found.
|
||||
])
|
||||
fi
|
||||
|
||||
if test "x$enable_cloudprint" = "xyes" -a "x$have_json_glib" = "xno"; then
|
||||
AC_MSG_ERROR([
|
||||
*** json-glib not found.
|
||||
])
|
||||
fi
|
||||
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS $GDK_DEP_CFLAGS"
|
||||
|
||||
@ -1650,9 +1618,6 @@ fi
|
||||
if test "$have_papi" != "yes" -a "$have_cups" != "yes"; then
|
||||
GTK_PRINT_BACKENDS="$GTK_PRINT_BACKENDS,lpr"
|
||||
fi
|
||||
if test "$have_cloudprint" = "yes"; then
|
||||
GTK_PRINT_BACKENDS="$GTK_PRINT_BACKENDS,cloudprint"
|
||||
fi
|
||||
AC_SUBST(GTK_PRINT_BACKENDS)
|
||||
|
||||
################################################################
|
||||
@ -1994,7 +1959,6 @@ modules/Makefile
|
||||
modules/input/Makefile
|
||||
modules/printbackends/Makefile
|
||||
modules/printbackends/cups/Makefile
|
||||
modules/printbackends/cloudprint/Makefile
|
||||
modules/printbackends/lpr/Makefile
|
||||
modules/printbackends/file/Makefile
|
||||
modules/printbackends/papi/Makefile
|
||||
|
@ -330,8 +330,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -380,8 +378,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -494,8 +494,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -544,8 +542,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -388,8 +388,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -438,8 +436,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -366,8 +366,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -416,8 +414,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -330,8 +330,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -380,8 +378,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -330,8 +330,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -380,8 +378,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -293,8 +293,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -343,8 +341,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div>
|
||||
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GDK 3 Reference Manual</p></th></tr></table></div>
|
||||
<div><p class="releaseinfo">
|
||||
This document is for the GDK 3 library, version 3.24.29
|
||||
This document is for the GDK 3 library, version 3.24.30
|
||||
|
||||
The latest versions can be found online at
|
||||
<a class="ulink" href="https://developer.gnome.org/gdk3/" target="_top">https://developer.gnome.org/gdk3/</a>.
|
||||
|
@ -1 +1 @@
|
||||
3.24.29
|
||||
3.24.30
|
||||
|
@ -325,8 +325,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -375,8 +373,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: broadwayd
|
||||
.\" Author: Alexander Larsson
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk-builder-tool
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk-encode-symbolic-svg
|
||||
.\" Author: Alexander Larsson
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk-launch
|
||||
.\" Author: Tomáš Bžatek <tbzatek@redhat.com>
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk-query-immodules-3.0
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk-query-settings
|
||||
.\" Author: Timm Bäder
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk-update-icon-cache
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk3-demo-application
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk3-demo
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk3-icon-browser
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" Title: gtk3-widget-factory
|
||||
.\" Author: Matthias Clasen
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 04/22/2021
|
||||
.\" Date: 07/08/2021
|
||||
.\" Manual: User Commands
|
||||
.\" Source: GTK+
|
||||
.\" Language: English
|
||||
|
@ -1963,7 +1963,7 @@ dialog. Available print backends depend on the GTK+ installation,
|
||||
and may include "file", "cups", "lpr" or "papi".</p>
|
||||
<p>Owner: GtkSettings</p>
|
||||
<p>Flags: Read / Write</p>
|
||||
<p>Default value: "file,lpr"</p>
|
||||
<p>Default value: "file,cups"</p>
|
||||
<p class="since">Since: 2.10</p>
|
||||
</div>
|
||||
<hr>
|
||||
|
@ -397,7 +397,7 @@ against at application run time.</p>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
<a name="GTK-MICRO-VERSION:CAPS"></a><h3>GTK_MICRO_VERSION</h3>
|
||||
<pre class="programlisting">#define GTK_MICRO_VERSION (29)
|
||||
<pre class="programlisting">#define GTK_MICRO_VERSION (30)
|
||||
</pre>
|
||||
<p>Like <a class="link" href="gtk3-Feature-Test-Macros.html#gtk-get-micro-version" title="gtk_get_micro_version ()"><code class="function">gtk_get_micro_version()</code></a>, but from the headers used at
|
||||
application compile time, rather than from the library linked
|
||||
@ -406,7 +406,7 @@ against at application run time.</p>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
<a name="GTK-BINARY-AGE:CAPS"></a><h3>GTK_BINARY_AGE</h3>
|
||||
<pre class="programlisting">#define GTK_BINARY_AGE (2429)
|
||||
<pre class="programlisting">#define GTK_BINARY_AGE (2430)
|
||||
</pre>
|
||||
<p>Like <a class="link" href="gtk3-Feature-Test-Macros.html#gtk-get-binary-age" title="gtk_get_binary_age ()"><code class="function">gtk_get_binary_age()</code></a>, but from the headers used at
|
||||
application compile time, rather than from the library linked
|
||||
@ -415,7 +415,7 @@ against at application run time.</p>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
<a name="GTK-INTERFACE-AGE:CAPS"></a><h3>GTK_INTERFACE_AGE</h3>
|
||||
<pre class="programlisting">#define GTK_INTERFACE_AGE (25)
|
||||
<pre class="programlisting">#define GTK_INTERFACE_AGE (26)
|
||||
</pre>
|
||||
<p>Like <a class="link" href="gtk3-Feature-Test-Macros.html#gtk-get-interface-age" title="gtk_get_interface_age ()"><code class="function">gtk_get_interface_age()</code></a>, but from the headers used at
|
||||
application compile time, rather than from the library linked
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div>
|
||||
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GTK+ 3 Reference Manual</p></th></tr></table></div>
|
||||
<div><p class="releaseinfo">
|
||||
This document is for the GTK+ 3 library, version 3.24.29
|
||||
This document is for the GTK+ 3 library, version 3.24.30
|
||||
.
|
||||
The latest versions can be found online at
|
||||
<a class="ulink" href="https://developer.gnome.org/gtk3/" target="_top">https://developer.gnome.org/gtk3/</a>.
|
||||
|
@ -1 +1 @@
|
||||
3.24.29
|
||||
3.24.30
|
||||
|
@ -293,8 +293,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -343,8 +341,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div>
|
||||
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GAIL Reference Manual</p></th></tr></table></div>
|
||||
<div><p class="releaseinfo">
|
||||
Version 3.24.29
|
||||
Version 3.24.30
|
||||
|
||||
The latest version of this documentation can be found on-line at
|
||||
<a class="ulink" href="http://developer.gnome.org/gail-libgail-util/unstable/" target="_top">http://developer.gnome.org/gail-libgail-util/unstable/</a>.
|
||||
|
@ -1 +1 @@
|
||||
3.24.29
|
||||
3.24.30
|
||||
|
@ -328,8 +328,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -378,8 +376,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -422,8 +422,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -472,8 +470,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -330,8 +330,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -380,8 +378,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -334,8 +334,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -384,8 +382,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -332,8 +332,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -382,8 +380,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -332,8 +332,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -382,8 +380,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -332,8 +332,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -382,8 +380,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -332,8 +332,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -382,8 +380,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -334,8 +334,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -384,8 +382,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -334,8 +334,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -384,8 +382,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -334,8 +334,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -384,8 +382,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -334,8 +334,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -384,8 +382,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -325,8 +325,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -375,8 +373,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -548,8 +548,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -598,8 +596,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -418,8 +418,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -468,8 +466,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
34
gdk/gdkgl.c
34
gdk/gdkgl.c
@ -370,7 +370,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
paint_data = gdk_gl_context_get_paint_data (paint_context);
|
||||
|
||||
if (paint_data->tmp_framebuffer == 0)
|
||||
glGenFramebuffersEXT (1, &paint_data->tmp_framebuffer);
|
||||
glGenFramebuffers (1, &paint_data->tmp_framebuffer);
|
||||
|
||||
if (source_type == GL_RENDERBUFFER)
|
||||
{
|
||||
@ -423,10 +423,10 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
/* Create a framebuffer with the source renderbuffer and
|
||||
make it the current target for reads */
|
||||
framebuffer = paint_data->tmp_framebuffer;
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
|
||||
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_RENDERBUFFER_EXT, source);
|
||||
glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, 0);
|
||||
glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
|
||||
glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
|
||||
GL_RENDERBUFFER, source);
|
||||
glBindFramebuffer (GL_DRAW_FRAMEBUFFER, 0);
|
||||
|
||||
/* Translate to impl coords */
|
||||
cairo_region_translate (clip_region, dx, dy);
|
||||
@ -481,11 +481,11 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
{
|
||||
int clipped_src_x = x + (dest.x - dx * window_scale);
|
||||
int clipped_src_y = y + (height - dest.height - (dest.y - dy * window_scale));
|
||||
glBlitFramebufferEXT(clipped_src_x, clipped_src_y,
|
||||
(clipped_src_x + dest.width), (clipped_src_y + dest.height),
|
||||
dest.x, FLIP_Y(dest.y + dest.height),
|
||||
dest.x + dest.width, FLIP_Y(dest.y),
|
||||
GL_COLOR_BUFFER_BIT, GL_NEAREST);
|
||||
glBlitFramebuffer (clipped_src_x, clipped_src_y,
|
||||
(clipped_src_x + dest.width), (clipped_src_y + dest.height),
|
||||
dest.x, FLIP_Y(dest.y + dest.height),
|
||||
dest.x + dest.width, FLIP_Y(dest.y),
|
||||
GL_COLOR_BUFFER_BIT, GL_NEAREST);
|
||||
if (impl_window->current_paint.flushed_region)
|
||||
{
|
||||
cairo_rectangle_int_t flushed_rect;
|
||||
@ -505,7 +505,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
|
||||
glDisable (GL_SCISSOR_TEST);
|
||||
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
|
||||
glBindFramebuffer (GL_FRAMEBUFFER, 0);
|
||||
|
||||
#undef FLIP_Y
|
||||
|
||||
@ -671,19 +671,19 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
cairo_surface_set_device_scale (image, buffer_scale, buffer_scale);
|
||||
|
||||
framebuffer = paint_data->tmp_framebuffer;
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
|
||||
glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
|
||||
|
||||
if (source_type == GL_RENDERBUFFER)
|
||||
{
|
||||
/* Create a framebuffer with the source renderbuffer and
|
||||
make it the current target for reads */
|
||||
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_RENDERBUFFER_EXT, source);
|
||||
glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
|
||||
GL_RENDERBUFFER, source);
|
||||
}
|
||||
else
|
||||
{
|
||||
glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_TEXTURE_2D, source, 0);
|
||||
glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
|
||||
GL_TEXTURE_2D, source, 0);
|
||||
}
|
||||
|
||||
glPixelStorei (GL_PACK_ALIGNMENT, 4);
|
||||
@ -699,7 +699,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
|
||||
glPixelStorei (GL_PACK_ROW_LENGTH, 0);
|
||||
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
|
||||
glBindFramebuffer (GL_FRAMEBUFFER, 0);
|
||||
|
||||
cairo_surface_mark_dirty (image);
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
#define GDK_MAJOR_VERSION (3)
|
||||
#define GDK_MINOR_VERSION (24)
|
||||
#define GDK_MICRO_VERSION (29)
|
||||
#define GDK_MICRO_VERSION (30)
|
||||
|
||||
#ifndef _GDK_EXTERN
|
||||
#define _GDK_EXTERN extern
|
||||
|
@ -803,8 +803,7 @@ update_context_from_dragging_info (id <NSDraggingInfo> sender)
|
||||
|
||||
gdk_event_free (event);
|
||||
|
||||
g_object_unref (_gdk_quartz_drag_source_context);
|
||||
_gdk_quartz_drag_source_context = NULL;
|
||||
_gdk_quartz_drag_source_context_destroy_gtk_only ();
|
||||
}
|
||||
|
||||
#ifdef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
|
@ -380,8 +380,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -430,8 +428,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -59,6 +59,14 @@ _gdk_quartz_window_drag_begin (GdkWindow *window,
|
||||
return _gdk_quartz_drag_source_context;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_quartz_drag_source_context_destroy_gtk_only ()
|
||||
{
|
||||
if (_gdk_quartz_drag_source_context)
|
||||
g_object_unref (_gdk_quartz_drag_source_context);
|
||||
_gdk_quartz_drag_source_context = NULL;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_quartz_drag_context_drag_motion (GdkDragContext *context,
|
||||
GdkWindow *dest_window,
|
||||
|
@ -79,14 +79,10 @@ typedef enum {
|
||||
#define GDK_QUARTZ_EVENT_TABLET_PROXIMITY NSEventTypeTabletProximity
|
||||
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY NSEventSubtypeTabletProximity
|
||||
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT NSEventSubtypeTabletPoint
|
||||
#elif MAC_OS_X_VERSION_MIN_REQUIRED >= 10120
|
||||
#else
|
||||
#define GDK_QUARTZ_EVENT_TABLET_PROXIMITY NSTabletProximity
|
||||
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY NSTabletProximityEventSubtype
|
||||
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT NSTabletPointEventSubtype
|
||||
#else
|
||||
#define GDK_QUARTZ_EVENT_TABLET_PROXIMITY kEventTabletProximity
|
||||
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY NSTabletProximityEventSubtype
|
||||
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT kCGEventMouseSubtypeTabletPoint
|
||||
#endif
|
||||
|
||||
void _gdk_quartz_events_update_focus_window (GdkWindow *new_window,
|
||||
|
@ -51,6 +51,9 @@ id gdk_quartz_drag_context_get_dragging_info_libgtk_only (GdkDragContext
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkDragContext *gdk_quartz_drag_source_context_libgtk_only (void);
|
||||
|
||||
GDK_AVAILABLE_IN_3_24
|
||||
void _gdk_quartz_drag_source_context_destroy_gtk_only ();
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_QUARTZ_DRAG_CONTEXT_H__ */
|
||||
|
@ -2228,7 +2228,7 @@ _gdk_quartz_window_set_collection_behavior (NSWindow *nswindow,
|
||||
GdkWindowTypeHint hint)
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 10110
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
|
||||
#define GDK_QUARTZ_ALLOWS_TILING NSWindowCollectionBehaviorFullScreenAllowsTiling
|
||||
#define GDK_QUARTZ_DISALLOWS_TILING NSWindowCollectionBehaviorFullScreenDisallowsTiling
|
||||
#else
|
||||
|
@ -393,8 +393,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -443,8 +441,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -460,12 +460,12 @@ gdk_registry_handle_global (void *data,
|
||||
display_wayland->subcompositor =
|
||||
wl_registry_bind (display_wayland->wl_registry, id, &wl_subcompositor_interface, 1);
|
||||
}
|
||||
else if (strcmp (interface, "zwp_pointer_gestures_v1") == 0 &&
|
||||
version == GDK_ZWP_POINTER_GESTURES_V1_VERSION)
|
||||
else if (strcmp (interface, "zwp_pointer_gestures_v1") == 0)
|
||||
{
|
||||
display_wayland->pointer_gestures =
|
||||
wl_registry_bind (display_wayland->wl_registry,
|
||||
id, &zwp_pointer_gestures_v1_interface, version);
|
||||
id, &zwp_pointer_gestures_v1_interface,
|
||||
MIN (version, GDK_ZWP_POINTER_GESTURES_V1_VERSION));
|
||||
}
|
||||
else if (strcmp (interface, "gtk_primary_selection_device_manager") == 0)
|
||||
{
|
||||
|
@ -1638,7 +1638,21 @@ output_handle_geometry (void *data,
|
||||
|
||||
monitor->x = x;
|
||||
monitor->y = y;
|
||||
gdk_monitor_set_physical_size (GDK_MONITOR (monitor), physical_width, physical_height);
|
||||
|
||||
switch (transform)
|
||||
{
|
||||
case WL_OUTPUT_TRANSFORM_90:
|
||||
case WL_OUTPUT_TRANSFORM_270:
|
||||
case WL_OUTPUT_TRANSFORM_FLIPPED_90:
|
||||
case WL_OUTPUT_TRANSFORM_FLIPPED_270:
|
||||
gdk_monitor_set_physical_size (GDK_MONITOR (monitor),
|
||||
physical_height, physical_width);
|
||||
break;
|
||||
default:
|
||||
gdk_monitor_set_physical_size (GDK_MONITOR (monitor),
|
||||
physical_width, physical_height);
|
||||
}
|
||||
|
||||
gdk_monitor_set_subpixel_layout (GDK_MONITOR (monitor), subpixel);
|
||||
gdk_monitor_set_manufacturer (GDK_MONITOR (monitor), make);
|
||||
gdk_monitor_set_model (GDK_MONITOR (monitor), model);
|
||||
|
@ -21,7 +21,10 @@ if WIN32_GLES
|
||||
AM_CPPFLAGS += "-DGDK_WIN32_ENABLE_EGL=1"
|
||||
endif #WIN32_GLES
|
||||
|
||||
LDADDS = $(GDK_DEP_LIBS)
|
||||
libgdk_win32_DEP_LIBS = \
|
||||
hid.lib
|
||||
|
||||
LDADDS = $(libgdk_win32_DEP_LIBS) $(GDK_DEP_LIBS)
|
||||
|
||||
noinst_LTLIBRARIES = libgdk-win32.la
|
||||
|
||||
@ -40,6 +43,8 @@ libgdk_win32_la_SOURCES = \
|
||||
gdkdevice-virtual.h \
|
||||
gdkdevice-win32.c \
|
||||
gdkdevice-win32.h \
|
||||
gdkdevice-winpointer.c \
|
||||
gdkdevice-winpointer.h \
|
||||
gdkdevice-wintab.c \
|
||||
gdkdevice-wintab.h \
|
||||
gdkdisplay-win32.c \
|
||||
|
@ -146,13 +146,13 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||
libgdk_win32_la_LIBADD =
|
||||
am_libgdk_win32_la_OBJECTS = gdkcursor-win32.lo \
|
||||
gdkdevicemanager-win32.lo gdkdevice-virtual.lo \
|
||||
gdkdevice-win32.lo gdkdevice-wintab.lo gdkdisplay-win32.lo \
|
||||
gdkdisplaymanager-win32.lo gdkdnd-win32.lo gdkevents-win32.lo \
|
||||
gdkgeometry-win32.lo gdkglcontext-win32.lo gdkglobals-win32.lo \
|
||||
gdkkeys-win32.lo gdkmain-win32.lo gdkmonitor-win32.lo \
|
||||
gdkproperty-win32.lo gdkscreen-win32.lo gdkselection-win32.lo \
|
||||
gdktestutils-win32.lo gdkwin32langnotification.lo \
|
||||
gdkwin32id.lo gdkwindow-win32.lo
|
||||
gdkdevice-win32.lo gdkdevice-winpointer.lo gdkdevice-wintab.lo \
|
||||
gdkdisplay-win32.lo gdkdisplaymanager-win32.lo gdkdnd-win32.lo \
|
||||
gdkevents-win32.lo gdkgeometry-win32.lo gdkglcontext-win32.lo \
|
||||
gdkglobals-win32.lo gdkkeys-win32.lo gdkmain-win32.lo \
|
||||
gdkmonitor-win32.lo gdkproperty-win32.lo gdkscreen-win32.lo \
|
||||
gdkselection-win32.lo gdktestutils-win32.lo \
|
||||
gdkwin32langnotification.lo gdkwin32id.lo gdkwindow-win32.lo
|
||||
libgdk_win32_la_OBJECTS = $(am_libgdk_win32_la_OBJECTS)
|
||||
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
@ -176,6 +176,7 @@ am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/gdkcursor-win32.Plo \
|
||||
./$(DEPDIR)/gdkdevice-virtual.Plo \
|
||||
./$(DEPDIR)/gdkdevice-win32.Plo \
|
||||
./$(DEPDIR)/gdkdevice-winpointer.Plo \
|
||||
./$(DEPDIR)/gdkdevice-wintab.Plo \
|
||||
./$(DEPDIR)/gdkdevicemanager-win32.Plo \
|
||||
./$(DEPDIR)/gdkdisplay-win32.Plo \
|
||||
@ -451,8 +452,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -501,8 +500,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@ -627,7 +624,10 @@ AM_CPPFLAGS = -DG_LOG_DOMAIN=\"Gdk\" -DG_LOG_USE_STRUCTURED=1 \
|
||||
-I$(top_builddir)/gdk $(GDK_HIDDEN_VISIBILITY_CFLAGS) \
|
||||
$(GTK_DEBUG_FLAGS) $(GDK_DEP_CFLAGS) $(GDK_WIN32_EXTRA_CFLAGS) \
|
||||
-DGDK_COMPILATION $(am__append_1)
|
||||
LDADDS = $(GDK_DEP_LIBS)
|
||||
libgdk_win32_DEP_LIBS = \
|
||||
hid.lib
|
||||
|
||||
LDADDS = $(libgdk_win32_DEP_LIBS) $(GDK_DEP_LIBS)
|
||||
noinst_LTLIBRARIES = libgdk-win32.la
|
||||
SUBDIRS = rc
|
||||
libgdk_win32_la_SOURCES = \
|
||||
@ -638,6 +638,8 @@ libgdk_win32_la_SOURCES = \
|
||||
gdkdevice-virtual.h \
|
||||
gdkdevice-win32.c \
|
||||
gdkdevice-win32.h \
|
||||
gdkdevice-winpointer.c \
|
||||
gdkdevice-winpointer.h \
|
||||
gdkdevice-wintab.c \
|
||||
gdkdevice-wintab.h \
|
||||
gdkdisplay-win32.c \
|
||||
@ -773,6 +775,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkcursor-win32.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkdevice-virtual.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkdevice-win32.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkdevice-winpointer.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkdevice-wintab.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkdevicemanager-win32.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkdisplay-win32.Plo@am__quote@ # am--include-marker
|
||||
@ -1079,6 +1082,7 @@ distclean: distclean-recursive
|
||||
-rm -f ./$(DEPDIR)/gdkcursor-win32.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-virtual.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-win32.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-winpointer.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-wintab.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevicemanager-win32.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdisplay-win32.Plo
|
||||
@ -1147,6 +1151,7 @@ maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f ./$(DEPDIR)/gdkcursor-win32.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-virtual.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-win32.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-winpointer.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevice-wintab.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdevicemanager-win32.Plo
|
||||
-rm -f ./$(DEPDIR)/gdkdisplay-win32.Plo
|
||||
|
@ -117,7 +117,7 @@ gdk_device_win32_query_state (GdkDevice *device,
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
|
||||
hwnd = GDK_WINDOW_HWND (window);
|
||||
GetCursorPos (&point);
|
||||
_gdk_win32_get_cursor_pos (&point);
|
||||
|
||||
if (root_x)
|
||||
*root_x = point.x / impl->window_scale;
|
||||
@ -215,7 +215,7 @@ _gdk_device_win32_window_at_position (GdkDevice *device,
|
||||
HWND hwnd;
|
||||
RECT rect;
|
||||
|
||||
if (!GetCursorPos (&screen_pt))
|
||||
if (!_gdk_win32_get_cursor_pos (&screen_pt))
|
||||
return NULL;
|
||||
|
||||
hwnd = WindowFromPoint (screen_pt);
|
||||
|
321
gdk/win32/gdkdevice-winpointer.c
Normal file
321
gdk/win32/gdkdevice-winpointer.c
Normal file
@ -0,0 +1,321 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 2020 the GTK team
|
||||
*
|
||||
* 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <gdk/gdkwindow.h>
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include "gdkwin32.h"
|
||||
#include "gdkdevice-winpointer.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkDeviceWinpointer, gdk_device_winpointer, GDK_TYPE_DEVICE)
|
||||
|
||||
static GdkModifierType
|
||||
get_keyboard_mask (void)
|
||||
{
|
||||
GdkModifierType mask;
|
||||
BYTE kbd[256];
|
||||
|
||||
GetKeyboardState (kbd);
|
||||
mask = 0;
|
||||
if (kbd[VK_SHIFT] & 0x80)
|
||||
mask |= GDK_SHIFT_MASK;
|
||||
if (kbd[VK_CAPITAL] & 0x80)
|
||||
mask |= GDK_LOCK_MASK;
|
||||
if (kbd[VK_CONTROL] & 0x80)
|
||||
mask |= GDK_CONTROL_MASK;
|
||||
if (kbd[VK_MENU] & 0x80)
|
||||
mask |= GDK_MOD1_MASK;
|
||||
|
||||
return mask;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_device_winpointer_get_history (GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
guint32 start,
|
||||
guint32 stop,
|
||||
GdkTimeCoord ***events,
|
||||
gint *n_events)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_get_state (GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
gdouble *axes,
|
||||
GdkModifierType *mask)
|
||||
{
|
||||
GdkDeviceWinpointer *device_winpointer = GDK_DEVICE_WINPOINTER (device);
|
||||
|
||||
if (mask)
|
||||
{
|
||||
*mask = get_keyboard_mask ();
|
||||
*mask |= device_winpointer->last_button_mask;
|
||||
}
|
||||
|
||||
if (axes)
|
||||
{
|
||||
gsize size = sizeof (double) * device_winpointer->num_axes;
|
||||
memcpy (axes, device_winpointer->last_axis_data, size);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_set_window_cursor (GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
GdkCursor *cursor)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_warp (GdkDevice *device,
|
||||
GdkScreen *screen,
|
||||
gdouble x,
|
||||
gdouble y)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_query_state (GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
GdkWindow **root_window,
|
||||
GdkWindow **child_window,
|
||||
gdouble *root_x,
|
||||
gdouble *root_y,
|
||||
gdouble *win_x,
|
||||
gdouble *win_y,
|
||||
GdkModifierType *mask)
|
||||
{
|
||||
GdkDeviceWinpointer *device_winpointer = GDK_DEVICE_WINPOINTER (device);
|
||||
GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
GdkScreen *screen = gdk_window_get_screen (window);
|
||||
HWND hwnd = GDK_WINDOW_HWND (window);
|
||||
HWND hwndc = NULL;
|
||||
POINT point;
|
||||
|
||||
_gdk_win32_get_cursor_pos (&point);
|
||||
|
||||
if (root_x)
|
||||
*root_x = point.x / impl->window_scale;
|
||||
|
||||
if (root_y)
|
||||
*root_y = point.y / impl->window_scale;
|
||||
|
||||
ScreenToClient (hwnd, &point);
|
||||
|
||||
if (win_x)
|
||||
*win_x = point.x / impl->window_scale;
|
||||
|
||||
if (win_y)
|
||||
*win_y = point.y / impl->window_scale;
|
||||
|
||||
if (window == gdk_screen_get_root_window (screen))
|
||||
{
|
||||
if (win_x)
|
||||
*win_x += _gdk_offset_x;
|
||||
|
||||
if (win_y)
|
||||
*win_y += _gdk_offset_y;
|
||||
|
||||
if (root_x)
|
||||
*root_x += _gdk_offset_x;
|
||||
|
||||
if (root_y)
|
||||
*root_y += _gdk_offset_y;
|
||||
}
|
||||
|
||||
if (child_window)
|
||||
{
|
||||
if (window == gdk_screen_get_root_window (screen))
|
||||
{
|
||||
/* Always use WindowFromPoint when searching from the root window.
|
||||
* Only WindowFromPoint is able to look through transparent
|
||||
* layered windows.
|
||||
*/
|
||||
hwndc = GetAncestor (WindowFromPoint (point), GA_ROOT);
|
||||
}
|
||||
else
|
||||
{
|
||||
hwndc = ChildWindowFromPoint (hwnd, point);
|
||||
}
|
||||
|
||||
if (hwndc && hwndc != hwnd)
|
||||
*child_window = gdk_win32_handle_table_lookup (hwndc);
|
||||
else
|
||||
*child_window = NULL; /* Direct child unknown to gdk */
|
||||
}
|
||||
|
||||
if (root_window)
|
||||
*root_window = gdk_screen_get_root_window (screen);
|
||||
|
||||
if (mask)
|
||||
{
|
||||
*mask = get_keyboard_mask ();
|
||||
*mask |= device_winpointer->last_button_mask;
|
||||
}
|
||||
}
|
||||
|
||||
static GdkGrabStatus
|
||||
gdk_device_winpointer_grab (GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
gboolean owner_events,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindow *confine_to,
|
||||
GdkCursor *cursor,
|
||||
guint32 time_)
|
||||
{
|
||||
return GDK_GRAB_SUCCESS;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_ungrab (GdkDevice *device,
|
||||
guint32 time_)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
screen_to_client (HWND hwnd, POINT screen_pt, POINT *client_pt)
|
||||
{
|
||||
*client_pt = screen_pt;
|
||||
ScreenToClient (hwnd, client_pt);
|
||||
}
|
||||
|
||||
GdkWindow *
|
||||
_gdk_device_winpointer_window_at_position (GdkDevice *device,
|
||||
gdouble *win_x,
|
||||
gdouble *win_y,
|
||||
GdkModifierType *mask,
|
||||
gboolean get_toplevel)
|
||||
{
|
||||
GdkDeviceWinpointer *device_winpointer = GDK_DEVICE_WINPOINTER (device);
|
||||
GdkWindow *window = NULL;
|
||||
GdkWindowImplWin32 *impl = NULL;
|
||||
POINT screen_pt, client_pt;
|
||||
HWND hwnd;
|
||||
RECT rect;
|
||||
|
||||
if (!_gdk_win32_get_cursor_pos (&screen_pt))
|
||||
return NULL;
|
||||
|
||||
hwnd = WindowFromPoint (screen_pt);
|
||||
|
||||
if (get_toplevel)
|
||||
{
|
||||
/* Use WindowFromPoint instead of ChildWindowFromPoint(Ex).
|
||||
* Only WindowFromPoint is able to look through transparent
|
||||
* layered windows.
|
||||
*/
|
||||
hwnd = GetAncestor (hwnd, GA_ROOT);
|
||||
}
|
||||
|
||||
/* Verify that we're really inside the client area of the window */
|
||||
GetClientRect (hwnd, &rect);
|
||||
screen_to_client (hwnd, screen_pt, &client_pt);
|
||||
if (!PtInRect (&rect, client_pt))
|
||||
hwnd = NULL;
|
||||
|
||||
if (!get_toplevel && hwnd == NULL)
|
||||
{
|
||||
/* If we didn't hit any window, return the root window */
|
||||
/* note that the root window ain't a toplevel window */
|
||||
window = gdk_get_default_root_window ();
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
|
||||
if (win_x)
|
||||
*win_x = (screen_pt.x + _gdk_offset_x) / impl->window_scale;
|
||||
if (win_y)
|
||||
*win_y = (screen_pt.y + _gdk_offset_y) / impl->window_scale;
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
window = gdk_win32_handle_table_lookup (hwnd);
|
||||
|
||||
if (window && (win_x || win_y))
|
||||
{
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
|
||||
if (win_x)
|
||||
*win_x = client_pt.x / impl->window_scale;
|
||||
if (win_y)
|
||||
*win_y = client_pt.y / impl->window_scale;
|
||||
}
|
||||
|
||||
if (mask)
|
||||
{
|
||||
*mask = get_keyboard_mask ();
|
||||
*mask |= device_winpointer->last_button_mask;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_select_window_events (GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
GdkEventMask event_mask)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_init (GdkDeviceWinpointer *device_winpointer)
|
||||
{
|
||||
device_winpointer->device_handle = NULL;
|
||||
device_winpointer->start_cursor_id = 0;
|
||||
device_winpointer->end_cursor_id = 0;
|
||||
|
||||
device_winpointer->origin_x = 0;
|
||||
device_winpointer->origin_y = 0;
|
||||
device_winpointer->scale_x = 0.0;
|
||||
device_winpointer->scale_y = 0.0;
|
||||
|
||||
device_winpointer->last_axis_data = NULL;
|
||||
device_winpointer->num_axes = 0;
|
||||
device_winpointer->last_button_mask = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_finalize (GObject *object)
|
||||
{
|
||||
GdkDeviceWinpointer *device_winpointer = GDK_DEVICE_WINPOINTER (object);
|
||||
|
||||
g_free (device_winpointer->last_axis_data);
|
||||
|
||||
G_OBJECT_CLASS (gdk_device_winpointer_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_winpointer_class_init (GdkDeviceWinpointerClass *klass)
|
||||
{
|
||||
GdkDeviceClass *device_class = GDK_DEVICE_CLASS (klass);
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->finalize = gdk_device_winpointer_finalize;
|
||||
device_class->get_history = gdk_device_winpointer_get_history;
|
||||
device_class->get_state = gdk_device_winpointer_get_state;
|
||||
device_class->set_window_cursor = gdk_device_winpointer_set_window_cursor;
|
||||
device_class->warp = gdk_device_winpointer_warp;
|
||||
device_class->query_state = gdk_device_winpointer_query_state;
|
||||
device_class->grab = gdk_device_winpointer_grab;
|
||||
device_class->ungrab = gdk_device_winpointer_ungrab;
|
||||
device_class->window_at_position = _gdk_device_winpointer_window_at_position;
|
||||
device_class->select_window_events = gdk_device_winpointer_select_window_events;
|
||||
}
|
64
gdk/win32/gdkdevice-winpointer.h
Normal file
64
gdk/win32/gdkdevice-winpointer.h
Normal file
@ -0,0 +1,64 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 2020 the GTK team
|
||||
*
|
||||
* 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_DEVICE_WINPOINTER_H__
|
||||
#define __GDK_DEVICE_WINPOINTER_H__
|
||||
|
||||
#include <gdk/gdkdeviceprivate.h>
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_DEVICE_WINPOINTER (gdk_device_winpointer_get_type ())
|
||||
#define GDK_DEVICE_WINPOINTER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_DEVICE_WINPOINTER, GdkDeviceWinpointer))
|
||||
#define GDK_DEVICE_WINPOINTER_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GDK_TYPE_DEVICE_WINPOINTER, GdkDeviceWinpointerClass))
|
||||
#define GDK_IS_DEVICE_WINPOINTER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_DEVICE_WINPOINTER))
|
||||
#define GDK_IS_DEVICE_WINPOINTER_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GDK_TYPE_DEVICE_WINPOINTER))
|
||||
#define GDK_DEVICE_WINPOINTER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDK_TYPE_DEVICE_WINPOINTER, GdkDeviceWinpointerClass))
|
||||
|
||||
typedef struct _GdkDeviceWinpointer GdkDeviceWinpointer;
|
||||
typedef struct _GdkDeviceWinpointerClass GdkDeviceWinpointerClass;
|
||||
|
||||
struct _GdkDeviceWinpointer
|
||||
{
|
||||
GdkDevice parent_instance;
|
||||
|
||||
HANDLE device_handle;
|
||||
UINT32 start_cursor_id;
|
||||
UINT32 end_cursor_id;
|
||||
|
||||
int origin_x;
|
||||
int origin_y;
|
||||
double scale_x;
|
||||
double scale_y;
|
||||
|
||||
double *last_axis_data;
|
||||
unsigned num_axes;
|
||||
GdkModifierType last_button_mask;
|
||||
};
|
||||
|
||||
struct _GdkDeviceWinpointerClass
|
||||
{
|
||||
GdkDeviceClass parent_class;
|
||||
};
|
||||
|
||||
GType gdk_device_winpointer_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_DEVICE_WINPOINTER_H__ */
|
@ -128,7 +128,7 @@ gdk_device_wintab_query_state (GdkDevice *device,
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
|
||||
hwnd = GDK_WINDOW_HWND (window);
|
||||
GetCursorPos (&point);
|
||||
_gdk_win32_get_cursor_pos (&point);
|
||||
|
||||
if (root_x)
|
||||
*root_x = point.x / impl->window_scale;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -41,6 +41,8 @@ struct _GdkDeviceManagerWin32
|
||||
/* Fake slave devices */
|
||||
GdkDevice *system_pointer;
|
||||
GdkDevice *system_keyboard;
|
||||
|
||||
GList *winpointer_devices;
|
||||
GList *wintab_devices;
|
||||
|
||||
/* Bumped up every time a wintab device enters the proximity
|
||||
@ -57,11 +59,31 @@ struct _GdkDeviceManagerWin32Class
|
||||
|
||||
GType gdk_device_manager_win32_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void _gdk_input_set_tablet_active (void);
|
||||
gboolean gdk_input_other_event (GdkDisplay *display,
|
||||
GdkEvent *event,
|
||||
MSG *msg,
|
||||
GdkWindow *window);
|
||||
typedef void
|
||||
(*crossing_cb_t)(GdkDisplay *display,
|
||||
GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
POINT *screen_pt,
|
||||
guint32 time_);
|
||||
|
||||
void gdk_winpointer_initialize_window (GdkWindow *window);
|
||||
gboolean gdk_winpointer_should_forward_message (MSG *msg);
|
||||
void gdk_winpointer_input_events (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
crossing_cb_t crossing_cb,
|
||||
MSG *msg);
|
||||
gboolean gdk_winpointer_get_message_info (GdkDisplay *display,
|
||||
MSG *msg,
|
||||
GdkDevice **device,
|
||||
guint32 *time_);
|
||||
void gdk_winpointer_interaction_ended (MSG *msg);
|
||||
void gdk_winpointer_finalize_window (GdkWindow *window);
|
||||
|
||||
void _gdk_wintab_set_tablet_active (void);
|
||||
gboolean gdk_wintab_input_events (GdkDisplay *display,
|
||||
GdkEvent *event,
|
||||
MSG *msg,
|
||||
GdkWindow *window);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@ -54,6 +54,7 @@
|
||||
#include "gdkglcontext-win32.h"
|
||||
#include "gdkdevicemanager-win32.h"
|
||||
#include "gdkdeviceprivate.h"
|
||||
#include "gdkdevice-virtual.h"
|
||||
#include "gdkdevice-wintab.h"
|
||||
#include "gdkwin32dnd.h"
|
||||
#include "gdkdisplay-win32.h"
|
||||
@ -61,6 +62,8 @@
|
||||
#include "gdkdndprivate.h"
|
||||
|
||||
#include <windowsx.h>
|
||||
#include <tpcshrd.h>
|
||||
#include "winpointer.h"
|
||||
|
||||
#ifdef G_WITH_CYGWIN
|
||||
#include <fcntl.h>
|
||||
@ -153,6 +156,10 @@ static int both_shift_pressed[2]; /* to store keycodes for shift keys */
|
||||
static HHOOK keyboard_hook = NULL;
|
||||
static UINT aerosnap_message;
|
||||
|
||||
static gboolean pen_touch_input;
|
||||
static POINT pen_touch_cursor_position;
|
||||
static LONG last_digitizer_time;
|
||||
|
||||
static void
|
||||
track_mouse_event (DWORD dwFlags,
|
||||
HWND hwnd)
|
||||
@ -187,6 +194,18 @@ _gdk_win32_get_next_tick (gulong suggested_tick)
|
||||
return cur_tick = suggested_tick;
|
||||
}
|
||||
|
||||
BOOL
|
||||
_gdk_win32_get_cursor_pos (LPPOINT lpPoint)
|
||||
{
|
||||
if (pen_touch_input)
|
||||
{
|
||||
*lpPoint = pen_touch_cursor_position;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return GetCursorPos (lpPoint);
|
||||
}
|
||||
|
||||
static void
|
||||
generate_focus_event (GdkDeviceManager *device_manager,
|
||||
GdkWindow *window,
|
||||
@ -228,6 +247,7 @@ generate_grab_broken_event (GdkDeviceManager *device_manager,
|
||||
{
|
||||
device = GDK_DEVICE_MANAGER_WIN32 (device_manager)->core_pointer;
|
||||
source_device = GDK_DEVICE_MANAGER_WIN32 (device_manager)->system_pointer;
|
||||
_gdk_device_virtual_set_active (device, source_device);
|
||||
}
|
||||
|
||||
event->grab_broken.window = window;
|
||||
@ -1237,6 +1257,7 @@ do_show_window (GdkWindow *window, gboolean hide_window)
|
||||
|
||||
static void
|
||||
send_crossing_event (GdkDisplay *display,
|
||||
GdkDevice *source_device,
|
||||
GdkWindow *window,
|
||||
GdkEventType type,
|
||||
GdkCrossingMode mode,
|
||||
@ -1271,7 +1292,7 @@ send_crossing_event (GdkDisplay *display,
|
||||
event = gdk_event_new (type);
|
||||
event->crossing.window = window;
|
||||
event->crossing.subwindow = subwindow;
|
||||
event->crossing.time = _gdk_win32_get_next_tick (time_);
|
||||
event->crossing.time = time_;
|
||||
event->crossing.x = pt.x / impl->window_scale;
|
||||
event->crossing.y = pt.y / impl->window_scale;
|
||||
event->crossing.x_root = (screen_pt->x + _gdk_offset_x) / impl->window_scale;
|
||||
@ -1283,9 +1304,11 @@ send_crossing_event (GdkDisplay *display,
|
||||
event->crossing.focus = FALSE;
|
||||
event->crossing.state = mask;
|
||||
gdk_event_set_device (event, device_manager->core_pointer);
|
||||
gdk_event_set_source_device (event, device_manager->system_pointer);
|
||||
gdk_event_set_source_device (event, source_device);
|
||||
gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
|
||||
|
||||
_gdk_device_virtual_set_active (device_manager->core_pointer, source_device);
|
||||
|
||||
_gdk_win32_append_event (event);
|
||||
}
|
||||
|
||||
@ -1336,6 +1359,7 @@ find_common_ancestor (GdkWindow *win1,
|
||||
|
||||
void
|
||||
synthesize_crossing_events (GdkDisplay *display,
|
||||
GdkDevice *source_device,
|
||||
GdkWindow *src,
|
||||
GdkWindow *dest,
|
||||
GdkCrossingMode mode,
|
||||
@ -1370,6 +1394,7 @@ synthesize_crossing_events (GdkDisplay *display,
|
||||
else
|
||||
notify_type = GDK_NOTIFY_ANCESTOR;
|
||||
send_crossing_event (display,
|
||||
source_device,
|
||||
a, GDK_LEAVE_NOTIFY,
|
||||
mode,
|
||||
notify_type,
|
||||
@ -1389,6 +1414,7 @@ synthesize_crossing_events (GdkDisplay *display,
|
||||
while (win != c && win->window_type != GDK_WINDOW_ROOT)
|
||||
{
|
||||
send_crossing_event (display,
|
||||
source_device,
|
||||
win, GDK_LEAVE_NOTIFY,
|
||||
mode,
|
||||
notify_type,
|
||||
@ -1431,6 +1457,7 @@ synthesize_crossing_events (GdkDisplay *display,
|
||||
next = b;
|
||||
|
||||
send_crossing_event (display,
|
||||
source_device,
|
||||
win, GDK_ENTER_NOTIFY,
|
||||
mode,
|
||||
notify_type,
|
||||
@ -1450,6 +1477,7 @@ synthesize_crossing_events (GdkDisplay *display,
|
||||
notify_type = GDK_NOTIFY_INFERIOR;
|
||||
|
||||
send_crossing_event (display,
|
||||
source_device,
|
||||
b, GDK_ENTER_NOTIFY,
|
||||
mode,
|
||||
notify_type,
|
||||
@ -1459,6 +1487,27 @@ synthesize_crossing_events (GdkDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
make_crossing_event (GdkDisplay *display,
|
||||
GdkDevice *device,
|
||||
GdkWindow *window,
|
||||
POINT *screen_pt,
|
||||
guint32 time_)
|
||||
{
|
||||
GDK_NOTE (EVENTS, g_print (" mouse_window %p -> %p",
|
||||
mouse_window ? GDK_WINDOW_HWND (mouse_window) : NULL,
|
||||
window ? GDK_WINDOW_HWND (window) : NULL));
|
||||
synthesize_crossing_events (display,
|
||||
device,
|
||||
mouse_window, window,
|
||||
GDK_CROSSING_NORMAL,
|
||||
screen_pt,
|
||||
0, /* TODO: Set right mask */
|
||||
time_,
|
||||
FALSE);
|
||||
g_set_object (&mouse_window, window);
|
||||
}
|
||||
|
||||
/* The check_extended flag controls whether to check if the windows want
|
||||
* events from extended input devices and if the message should be skipped
|
||||
* because an extended input device is active
|
||||
@ -1861,6 +1910,8 @@ generate_button_event (GdkEventType type,
|
||||
gdk_event_set_source_device (event, device_manager->system_pointer);
|
||||
gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
|
||||
|
||||
_gdk_device_virtual_set_active (device_manager->core_pointer, device_manager->system_pointer);
|
||||
|
||||
_gdk_win32_append_event (event);
|
||||
}
|
||||
|
||||
@ -2104,6 +2155,8 @@ gdk_event_translate (MSG *msg,
|
||||
GdkDeviceGrabInfo *pointer_grab = NULL;
|
||||
GdkWindow *grab_window = NULL;
|
||||
|
||||
crossing_cb_t crossing_cb = NULL;
|
||||
|
||||
gint button;
|
||||
GdkAtom target;
|
||||
|
||||
@ -2600,6 +2653,8 @@ gdk_event_translate (MSG *msg,
|
||||
g_print (" (%d,%d)",
|
||||
GET_X_LPARAM (msg->lParam), GET_Y_LPARAM (msg->lParam)));
|
||||
|
||||
pen_touch_input = FALSE;
|
||||
|
||||
g_set_object (&window, find_window_for_mouse_event (window, msg));
|
||||
/* TODO_CSW?: there used to some synthesize and propagate */
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
@ -2639,6 +2694,8 @@ gdk_event_translate (MSG *msg,
|
||||
g_print (" (%d,%d)",
|
||||
GET_X_LPARAM (msg->lParam), GET_Y_LPARAM (msg->lParam)));
|
||||
|
||||
pen_touch_input = FALSE;
|
||||
|
||||
g_set_object (&window, find_window_for_mouse_event (window, msg));
|
||||
|
||||
if (pointer_grab != NULL && pointer_grab->implicit)
|
||||
@ -2665,11 +2722,12 @@ gdk_event_translate (MSG *msg,
|
||||
}
|
||||
|
||||
synthesize_crossing_events (display,
|
||||
device_manager_win32->system_pointer,
|
||||
native_window, new_window,
|
||||
GDK_CROSSING_UNGRAB,
|
||||
&msg->pt,
|
||||
0, /* TODO: Set right mask */
|
||||
msg->time,
|
||||
_gdk_win32_get_next_tick (msg->time),
|
||||
FALSE);
|
||||
g_set_object (&mouse_window, new_window);
|
||||
mouse_window_ignored_leave = NULL;
|
||||
@ -2695,6 +2753,13 @@ gdk_event_translate (MSG *msg,
|
||||
(gpointer) msg->wParam,
|
||||
GET_X_LPARAM (msg->lParam), GET_Y_LPARAM (msg->lParam)));
|
||||
|
||||
if (_gdk_win32_tablet_input_api == GDK_WIN32_TABLET_INPUT_API_WINPOINTER &&
|
||||
( (msg->time - last_digitizer_time) < 200 ||
|
||||
-(msg->time - last_digitizer_time) < 200 ))
|
||||
break;
|
||||
|
||||
pen_touch_input = FALSE;
|
||||
|
||||
new_window = window;
|
||||
|
||||
if (pointer_grab != NULL)
|
||||
@ -2722,15 +2787,16 @@ gdk_event_translate (MSG *msg,
|
||||
|
||||
if (mouse_window != new_window)
|
||||
{
|
||||
GDK_NOTE (EVENTS, g_print (" mouse_sinwod %p -> %p",
|
||||
GDK_NOTE (EVENTS, g_print (" mouse_window %p -> %p",
|
||||
mouse_window ? GDK_WINDOW_HWND (mouse_window) : NULL,
|
||||
new_window ? GDK_WINDOW_HWND (new_window) : NULL));
|
||||
synthesize_crossing_events (display,
|
||||
device_manager_win32->system_pointer,
|
||||
mouse_window, new_window,
|
||||
GDK_CROSSING_NORMAL,
|
||||
&msg->pt,
|
||||
0, /* TODO: Set right mask */
|
||||
msg->time,
|
||||
_gdk_win32_get_next_tick (msg->time),
|
||||
FALSE);
|
||||
g_set_object (&mouse_window, new_window);
|
||||
mouse_window_ignored_leave = NULL;
|
||||
@ -2782,6 +2848,8 @@ gdk_event_translate (MSG *msg,
|
||||
gdk_event_set_source_device (event, device_manager_win32->system_pointer);
|
||||
gdk_event_set_seat (event, gdk_device_get_seat (device_manager_win32->core_pointer));
|
||||
|
||||
_gdk_device_virtual_set_active (device_manager_win32->core_pointer, device_manager_win32->system_pointer);
|
||||
|
||||
_gdk_win32_append_event (event);
|
||||
}
|
||||
|
||||
@ -2792,12 +2860,17 @@ gdk_event_translate (MSG *msg,
|
||||
GDK_NOTE (EVENTS,
|
||||
g_print (" (%d,%d)",
|
||||
GET_X_LPARAM (msg->lParam), GET_Y_LPARAM (msg->lParam)));
|
||||
|
||||
pen_touch_input = FALSE;
|
||||
|
||||
break;
|
||||
|
||||
case WM_MOUSELEAVE:
|
||||
GDK_NOTE (EVENTS, g_print (" %d (%ld,%ld)",
|
||||
HIWORD (msg->wParam), msg->pt.x, msg->pt.y));
|
||||
|
||||
pen_touch_input = FALSE;
|
||||
|
||||
new_window = NULL;
|
||||
hwnd = WindowFromPoint (msg->pt);
|
||||
ignore_leave = FALSE;
|
||||
@ -2823,11 +2896,12 @@ gdk_event_translate (MSG *msg,
|
||||
|
||||
if (!ignore_leave)
|
||||
synthesize_crossing_events (display,
|
||||
device_manager_win32->system_pointer,
|
||||
mouse_window, new_window,
|
||||
GDK_CROSSING_NORMAL,
|
||||
&msg->pt,
|
||||
0, /* TODO: Set right mask */
|
||||
msg->time,
|
||||
_gdk_win32_get_next_tick (msg->time),
|
||||
FALSE);
|
||||
g_set_object (&mouse_window, new_window);
|
||||
mouse_window_ignored_leave = ignore_leave ? new_window : NULL;
|
||||
@ -2836,6 +2910,215 @@ gdk_event_translate (MSG *msg,
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_POINTERDOWN:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINPOINTER ||
|
||||
gdk_winpointer_should_forward_message (msg))
|
||||
{
|
||||
return_val = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam))
|
||||
{
|
||||
current_root_x = pen_touch_cursor_position.x = GET_X_LPARAM (msg->lParam);
|
||||
current_root_y = pen_touch_cursor_position.y = GET_Y_LPARAM (msg->lParam);
|
||||
pen_touch_input = TRUE;
|
||||
last_digitizer_time = msg->time;
|
||||
}
|
||||
|
||||
if (pointer_grab != NULL &&
|
||||
!pointer_grab->implicit &&
|
||||
!pointer_grab->owner_events)
|
||||
g_set_object (&window, pointer_grab->native_window);
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam) && mouse_window != window)
|
||||
crossing_cb = make_crossing_event;
|
||||
|
||||
gdk_winpointer_input_events (display, window, crossing_cb, msg);
|
||||
|
||||
*ret_valp = 0;
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_POINTERUP:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINPOINTER ||
|
||||
gdk_winpointer_should_forward_message (msg))
|
||||
{
|
||||
return_val = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam))
|
||||
{
|
||||
current_root_x = pen_touch_cursor_position.x = GET_X_LPARAM (msg->lParam);
|
||||
current_root_y = pen_touch_cursor_position.y = GET_Y_LPARAM (msg->lParam);
|
||||
pen_touch_input = TRUE;
|
||||
last_digitizer_time = msg->time;
|
||||
}
|
||||
|
||||
if (pointer_grab != NULL &&
|
||||
!pointer_grab->implicit &&
|
||||
!pointer_grab->owner_events)
|
||||
g_set_object (&window, pointer_grab->native_window);
|
||||
|
||||
gdk_winpointer_input_events (display, window, NULL, msg);
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
if (impl->drag_move_resize_context.op != GDK_WIN32_DRAGOP_NONE)
|
||||
{
|
||||
gdk_win32_window_end_move_resize_drag (window);
|
||||
}
|
||||
|
||||
*ret_valp = 0;
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_POINTERUPDATE:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINPOINTER ||
|
||||
gdk_winpointer_should_forward_message (msg))
|
||||
{
|
||||
return_val = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam))
|
||||
{
|
||||
current_root_x = pen_touch_cursor_position.x = GET_X_LPARAM (msg->lParam);
|
||||
current_root_y = pen_touch_cursor_position.y = GET_Y_LPARAM (msg->lParam);
|
||||
pen_touch_input = TRUE;
|
||||
last_digitizer_time = msg->time;
|
||||
}
|
||||
|
||||
if (pointer_grab != NULL &&
|
||||
!pointer_grab->implicit &&
|
||||
!pointer_grab->owner_events)
|
||||
g_set_object (&window, pointer_grab->native_window);
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam) && mouse_window != window)
|
||||
crossing_cb = make_crossing_event;
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
|
||||
if (impl->drag_move_resize_context.op != GDK_WIN32_DRAGOP_NONE)
|
||||
{
|
||||
gdk_win32_window_do_move_resize_drag (window, current_root_x, current_root_y);
|
||||
}
|
||||
else
|
||||
{
|
||||
gdk_winpointer_input_events (display, window, crossing_cb, msg);
|
||||
}
|
||||
|
||||
*ret_valp = 0;
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_NCPOINTERUPDATE:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINPOINTER ||
|
||||
gdk_winpointer_should_forward_message (msg))
|
||||
{
|
||||
return_val = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam))
|
||||
{
|
||||
current_root_x = pen_touch_cursor_position.x = GET_X_LPARAM (msg->lParam);
|
||||
current_root_y = pen_touch_cursor_position.y = GET_Y_LPARAM (msg->lParam);
|
||||
pen_touch_input = TRUE;
|
||||
last_digitizer_time = msg->time;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam) &&
|
||||
!IS_POINTER_INCONTACT_WPARAM (msg->wParam) &&
|
||||
mouse_window != NULL)
|
||||
{
|
||||
GdkDevice *event_device = NULL;
|
||||
guint32 event_time = 0;
|
||||
|
||||
if (gdk_winpointer_get_message_info (display, msg, &event_device, &event_time))
|
||||
{
|
||||
make_crossing_event(display,
|
||||
event_device,
|
||||
NULL,
|
||||
&pen_touch_cursor_position,
|
||||
event_time);
|
||||
}
|
||||
}
|
||||
|
||||
return_val = FALSE; /* forward to DefWindowProc */
|
||||
break;
|
||||
|
||||
case WM_POINTERENTER:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINPOINTER ||
|
||||
gdk_winpointer_should_forward_message (msg))
|
||||
{
|
||||
return_val = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam))
|
||||
{
|
||||
current_root_x = pen_touch_cursor_position.x = GET_X_LPARAM (msg->lParam);
|
||||
current_root_y = pen_touch_cursor_position.y = GET_Y_LPARAM (msg->lParam);
|
||||
pen_touch_input = TRUE;
|
||||
last_digitizer_time = msg->time;
|
||||
}
|
||||
|
||||
if (pointer_grab != NULL &&
|
||||
!pointer_grab->implicit &&
|
||||
!pointer_grab->owner_events)
|
||||
g_set_object (&window, pointer_grab->native_window);
|
||||
|
||||
if (IS_POINTER_NEW_WPARAM (msg->wParam))
|
||||
{
|
||||
gdk_winpointer_input_events (display, window, NULL, msg);
|
||||
}
|
||||
|
||||
*ret_valp = 0;
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_POINTERLEAVE:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINPOINTER ||
|
||||
gdk_winpointer_should_forward_message (msg))
|
||||
{
|
||||
return_val = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IS_POINTER_PRIMARY_WPARAM (msg->wParam))
|
||||
{
|
||||
current_root_x = pen_touch_cursor_position.x = GET_X_LPARAM (msg->lParam);
|
||||
current_root_y = pen_touch_cursor_position.y = GET_Y_LPARAM (msg->lParam);
|
||||
pen_touch_input = TRUE;
|
||||
last_digitizer_time = msg->time;
|
||||
}
|
||||
|
||||
if (!IS_POINTER_INRANGE_WPARAM (msg->wParam))
|
||||
{
|
||||
gdk_winpointer_input_events (display, window, NULL, msg);
|
||||
}
|
||||
else if (IS_POINTER_PRIMARY_WPARAM (msg->wParam) && mouse_window != NULL)
|
||||
{
|
||||
GdkDevice *event_device = NULL;
|
||||
guint32 event_time = 0;
|
||||
|
||||
if (gdk_winpointer_get_message_info (display, msg, &event_device, &event_time))
|
||||
{
|
||||
make_crossing_event(display,
|
||||
event_device,
|
||||
NULL,
|
||||
&pen_touch_cursor_position,
|
||||
event_time);
|
||||
}
|
||||
}
|
||||
|
||||
gdk_winpointer_interaction_ended (msg);
|
||||
|
||||
*ret_valp = 0;
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_MOUSEWHEEL:
|
||||
case WM_MOUSEHWHEEL:
|
||||
GDK_NOTE (EVENTS, g_print (" %d", (short) HIWORD (msg->wParam)));
|
||||
@ -2914,6 +3197,8 @@ gdk_event_translate (MSG *msg,
|
||||
gdk_event_set_seat (event, gdk_device_get_seat (device_manager_win32->core_pointer));
|
||||
gdk_event_set_pointer_emulated (event, FALSE);
|
||||
|
||||
_gdk_device_virtual_set_active (device_manager_win32->core_pointer, device_manager_win32->system_pointer);
|
||||
|
||||
_gdk_win32_append_event (gdk_event_copy (event));
|
||||
|
||||
/* Append the discrete version too */
|
||||
@ -2932,44 +3217,6 @@ gdk_event_translate (MSG *msg,
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_HSCROLL:
|
||||
/* Just print more debugging information, don't actually handle it. */
|
||||
GDK_NOTE (EVENTS,
|
||||
(g_print (" %s",
|
||||
(LOWORD (msg->wParam) == SB_ENDSCROLL ? "ENDSCROLL" :
|
||||
(LOWORD (msg->wParam) == SB_LEFT ? "LEFT" :
|
||||
(LOWORD (msg->wParam) == SB_RIGHT ? "RIGHT" :
|
||||
(LOWORD (msg->wParam) == SB_LINELEFT ? "LINELEFT" :
|
||||
(LOWORD (msg->wParam) == SB_LINERIGHT ? "LINERIGHT" :
|
||||
(LOWORD (msg->wParam) == SB_PAGELEFT ? "PAGELEFT" :
|
||||
(LOWORD (msg->wParam) == SB_PAGERIGHT ? "PAGERIGHT" :
|
||||
(LOWORD (msg->wParam) == SB_THUMBPOSITION ? "THUMBPOSITION" :
|
||||
(LOWORD (msg->wParam) == SB_THUMBTRACK ? "THUMBTRACK" :
|
||||
"???")))))))))),
|
||||
(LOWORD (msg->wParam) == SB_THUMBPOSITION ||
|
||||
LOWORD (msg->wParam) == SB_THUMBTRACK) ?
|
||||
(g_print (" %d", HIWORD (msg->wParam)), 0) : 0));
|
||||
break;
|
||||
|
||||
case WM_VSCROLL:
|
||||
/* Just print more debugging information, don't actually handle it. */
|
||||
GDK_NOTE (EVENTS,
|
||||
(g_print (" %s",
|
||||
(LOWORD (msg->wParam) == SB_ENDSCROLL ? "ENDSCROLL" :
|
||||
(LOWORD (msg->wParam) == SB_BOTTOM ? "BOTTOM" :
|
||||
(LOWORD (msg->wParam) == SB_TOP ? "TOP" :
|
||||
(LOWORD (msg->wParam) == SB_LINEDOWN ? "LINDOWN" :
|
||||
(LOWORD (msg->wParam) == SB_LINEUP ? "LINEUP" :
|
||||
(LOWORD (msg->wParam) == SB_PAGEDOWN ? "PAGEDOWN" :
|
||||
(LOWORD (msg->wParam) == SB_PAGEUP ? "PAGEUP" :
|
||||
(LOWORD (msg->wParam) == SB_THUMBPOSITION ? "THUMBPOSITION" :
|
||||
(LOWORD (msg->wParam) == SB_THUMBTRACK ? "THUMBTRACK" :
|
||||
"???")))))))))),
|
||||
(LOWORD (msg->wParam) == SB_THUMBPOSITION ||
|
||||
LOWORD (msg->wParam) == SB_THUMBTRACK) ?
|
||||
(g_print (" %d", HIWORD (msg->wParam)), 0) : 0));
|
||||
break;
|
||||
|
||||
case WM_MOUSEACTIVATE:
|
||||
{
|
||||
if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP
|
||||
@ -2988,6 +3235,17 @@ gdk_event_translate (MSG *msg,
|
||||
|
||||
break;
|
||||
|
||||
case WM_POINTERACTIVATE:
|
||||
if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP ||
|
||||
!window->accept_focus ||
|
||||
_gdk_modal_blocked (gdk_window_get_toplevel (window)))
|
||||
{
|
||||
*ret_valp = PA_NOACTIVATE;
|
||||
return_val = TRUE;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case WM_KILLFOCUS:
|
||||
if (keyboard_grab != NULL &&
|
||||
!GDK_WINDOW_DESTROYED (keyboard_grab->window) &&
|
||||
@ -3566,6 +3824,14 @@ gdk_event_translate (MSG *msg,
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
/* we have to call RemoveProp before the window is destroyed */
|
||||
if (_gdk_win32_tablet_input_api == GDK_WIN32_TABLET_INPUT_API_WINPOINTER)
|
||||
gdk_winpointer_finalize_window (window);
|
||||
|
||||
return_val = FALSE;
|
||||
break;
|
||||
|
||||
case WM_NCDESTROY:
|
||||
if ((pointer_grab != NULL && pointer_grab -> window == window) ||
|
||||
(keyboard_grab && keyboard_grab -> window == window))
|
||||
@ -3735,7 +4001,10 @@ gdk_event_translate (MSG *msg,
|
||||
* instead
|
||||
*/
|
||||
if (LOWORD(msg->wParam) != WA_INACTIVE)
|
||||
_gdk_input_set_tablet_active ();
|
||||
{
|
||||
if (_gdk_win32_tablet_input_api == GDK_WIN32_TABLET_INPUT_API_WINTAB)
|
||||
_gdk_wintab_set_tablet_active ();
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_ACTIVATEAPP:
|
||||
@ -3775,17 +4044,30 @@ gdk_event_translate (MSG *msg,
|
||||
HIWORD (msg->lParam)));
|
||||
/* Fall through */
|
||||
wintab:
|
||||
if (_gdk_win32_tablet_input_api != GDK_WIN32_TABLET_INPUT_API_WINTAB)
|
||||
break;
|
||||
|
||||
event = gdk_event_new (GDK_NOTHING);
|
||||
event->any.window = window;
|
||||
g_object_ref (window);
|
||||
|
||||
if (gdk_input_other_event (display, event, msg, window))
|
||||
if (gdk_wintab_input_events (display, event, msg, window))
|
||||
_gdk_win32_append_event (event);
|
||||
else
|
||||
gdk_event_free (event);
|
||||
|
||||
break;
|
||||
|
||||
case WM_TABLET_QUERYSYSTEMGESTURESTATUS:
|
||||
|
||||
*ret_valp = TABLET_DISABLE_PRESSANDHOLD |
|
||||
TABLET_DISABLE_PENTAPFEEDBACK |
|
||||
TABLET_DISABLE_PENBARRELFEEDBACK |
|
||||
TABLET_DISABLE_FLICKS |
|
||||
TABLET_DISABLE_FLICKFALLBACKKEYS;
|
||||
|
||||
return_val = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
done:
|
||||
|
@ -855,19 +855,30 @@ _set_pixformat_for_hdc (HDC hdc,
|
||||
const gboolean need_alpha_bits,
|
||||
GdkWin32Display *display)
|
||||
{
|
||||
PIXELFORMATDESCRIPTOR pfd;
|
||||
gboolean set_pixel_format_result = FALSE;
|
||||
gboolean already_checked = TRUE;
|
||||
*best_idx = GetPixelFormat (hdc);
|
||||
|
||||
/* one is only allowed to call SetPixelFormat(), and so ChoosePixelFormat()
|
||||
* one single time per window HDC
|
||||
*/
|
||||
*best_idx = _get_wgl_pfd (hdc, need_alpha_bits, &pfd, display);
|
||||
if (*best_idx != 0)
|
||||
set_pixel_format_result = SetPixelFormat (hdc, *best_idx, &pfd);
|
||||
if (*best_idx == 0)
|
||||
{
|
||||
PIXELFORMATDESCRIPTOR pfd;
|
||||
gboolean set_pixel_format_result = FALSE;
|
||||
|
||||
/* ChoosePixelFormat() or SetPixelFormat() failed, bail out */
|
||||
if (*best_idx == 0 || !set_pixel_format_result)
|
||||
return FALSE;
|
||||
GDK_NOTE (OPENGL, g_print ("requesting pixel format...\n"));
|
||||
already_checked = FALSE;
|
||||
*best_idx = _get_wgl_pfd (hdc, need_alpha_bits, &pfd, display);
|
||||
|
||||
if (*best_idx != 0)
|
||||
set_pixel_format_result = SetPixelFormat (hdc, *best_idx, &pfd);
|
||||
|
||||
/* ChoosePixelFormat() or SetPixelFormat() failed, bail out */
|
||||
if (*best_idx == 0 || !set_pixel_format_result)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GDK_NOTE (OPENGL, g_print ("%s""requested and set pixel format: %d\n", already_checked ? "already " : "", *best_idx));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -36,12 +36,12 @@ HINSTANCE _gdk_dll_hinstance;
|
||||
HINSTANCE _gdk_app_hmodule;
|
||||
|
||||
gint _gdk_input_ignore_core;
|
||||
GdkWin32TabletInputAPI _gdk_win32_tablet_input_api;
|
||||
|
||||
HKL _gdk_input_locale;
|
||||
gboolean _gdk_input_locale_is_ime = FALSE;
|
||||
UINT _gdk_input_codepage;
|
||||
|
||||
gint _gdk_input_ignore_wintab = FALSE;
|
||||
gint _gdk_max_colors = 0;
|
||||
|
||||
GdkWin32ModalOpKind _modal_operation_in_progress = GDK_WIN32_MODAL_OP_NONE;
|
||||
|
@ -49,23 +49,6 @@
|
||||
|
||||
static gboolean gdk_synchronize = FALSE;
|
||||
|
||||
static gboolean dummy;
|
||||
|
||||
const GOptionEntry _gdk_windowing_args[] = {
|
||||
{ "sync", 0, 0, G_OPTION_ARG_NONE, &gdk_synchronize,
|
||||
/* Description of --sync in --help output */ N_("Don't batch GDI requests"), NULL },
|
||||
{ "no-wintab", 0, 0, G_OPTION_ARG_NONE, &_gdk_input_ignore_wintab,
|
||||
/* Description of --no-wintab in --help output */ N_("Don't use the Wintab API for tablet support"), NULL },
|
||||
{ "ignore-wintab", 0, 0, G_OPTION_ARG_NONE, &_gdk_input_ignore_wintab,
|
||||
/* Description of --ignore-wintab in --help output */ N_("Same as --no-wintab"), NULL },
|
||||
{ "use-wintab", 0, 0, G_OPTION_ARG_NONE, &dummy,
|
||||
/* Description of --use-wintab in --help output */ N_("Do use the Wintab API [default]"), NULL },
|
||||
{ "max-colors", 0, 0, G_OPTION_ARG_INT, &_gdk_max_colors,
|
||||
/* Description of --max-colors=COLORS in --help output */ N_("Size of the palette in 8 bit mode"),
|
||||
/* Placeholder in --max-colors=COLORS in --help output */ N_("COLORS") },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
BOOL WINAPI
|
||||
DllMain (HINSTANCE hinstDLL,
|
||||
DWORD dwReason,
|
||||
@ -81,11 +64,6 @@ _gdk_win32_windowing_init (void)
|
||||
{
|
||||
gchar buf[10];
|
||||
|
||||
if (getenv ("GDK_IGNORE_WINTAB") != NULL)
|
||||
_gdk_input_ignore_wintab = TRUE;
|
||||
else if (getenv ("GDK_USE_WINTAB") != NULL)
|
||||
_gdk_input_ignore_wintab = FALSE;
|
||||
|
||||
if (gdk_synchronize)
|
||||
GdiSetBatchLimit (1);
|
||||
|
||||
|
@ -523,7 +523,7 @@ populate_monitor_devices_from_display_config (GPtrArray *monitors)
|
||||
|
||||
refresh = &dispconf_paths[path_index].targetInfo.refreshRate;
|
||||
gdk_monitor_set_refresh_rate (mon,
|
||||
refresh->Numerator * 1000 / refresh->Denominator);
|
||||
refresh->Numerator * (UINT64) 1000 / refresh->Denominator);
|
||||
}
|
||||
|
||||
g_free (dispconf_paths);
|
||||
|
@ -163,10 +163,18 @@ struct _GdkColormapPrivateWin32
|
||||
GdkColorInfo *info;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
GDK_WIN32_TABLET_INPUT_API_NONE = 0,
|
||||
GDK_WIN32_TABLET_INPUT_API_WINTAB,
|
||||
GDK_WIN32_TABLET_INPUT_API_WINPOINTER
|
||||
} GdkWin32TabletInputAPI;
|
||||
|
||||
GType _gdk_gc_win32_get_type (void);
|
||||
|
||||
gulong _gdk_win32_get_next_tick (gulong suggested_tick);
|
||||
|
||||
BOOL _gdk_win32_get_cursor_pos (LPPOINT lpPoint);
|
||||
|
||||
void _gdk_window_init_position (GdkWindow *window);
|
||||
void _gdk_window_move_resize_child (GdkWindow *window,
|
||||
gint x,
|
||||
@ -262,6 +270,8 @@ void _gdk_other_api_failed (const gchar *where,
|
||||
#define WIN32_GDI_FAILED(api) WIN32_API_FAILED (api)
|
||||
#define OTHER_API_FAILED(api) _gdk_other_api_failed (G_STRLOC, api)
|
||||
|
||||
#define WIN32_API_FAILED_LOG_ONCE(api) G_STMT_START { static gboolean logged = 0; if (!logged) { _gdk_win32_api_failed (G_STRLOC , api); logged = 1; }} G_STMT_END
|
||||
|
||||
/* These two macros call a GDI or other Win32 API and if the return
|
||||
* value is zero or NULL, print a warning message. The majority of GDI
|
||||
* calls return zero or NULL on failure. The value of the macros is nonzero
|
||||
@ -287,6 +297,7 @@ extern HINSTANCE _gdk_dll_hinstance;
|
||||
extern HINSTANCE _gdk_app_hmodule;
|
||||
|
||||
extern gint _gdk_input_ignore_core;
|
||||
extern GdkWin32TabletInputAPI _gdk_win32_tablet_input_api;
|
||||
|
||||
/* These are thread specific, but GDK/win32 works OK only when invoked
|
||||
* from a single thread anyway.
|
||||
@ -326,7 +337,6 @@ void _gdk_win32_end_modal_call (GdkWin32ModalOpKind kind);
|
||||
|
||||
|
||||
/* Options */
|
||||
extern gboolean _gdk_input_ignore_wintab;
|
||||
extern gint _gdk_max_colors;
|
||||
|
||||
#define GDK_WIN32_COLORMAP_DATA(cmap) ((GdkColormapPrivateWin32 *) GDK_COLORMAP (cmap)->windowing_data)
|
||||
|
@ -555,7 +555,6 @@ RegisterGdkClass (GdkWindowType wtype, GdkWindowTypeHint wtype_hint)
|
||||
static ATOM klassTOPLEVEL = 0;
|
||||
static ATOM klassCHILD = 0;
|
||||
static ATOM klassTEMP = 0;
|
||||
static ATOM klassTEMPSHADOW = 0;
|
||||
static HICON hAppIcon = NULL;
|
||||
static HICON hAppIconSm = NULL;
|
||||
static WNDCLASSEXW wcl;
|
||||
@ -652,34 +651,16 @@ RegisterGdkClass (GdkWindowType wtype, GdkWindowTypeHint wtype_hint)
|
||||
break;
|
||||
|
||||
case GDK_WINDOW_TEMP:
|
||||
if ((wtype_hint == GDK_WINDOW_TYPE_HINT_MENU) ||
|
||||
(wtype_hint == GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU) ||
|
||||
(wtype_hint == GDK_WINDOW_TYPE_HINT_POPUP_MENU))
|
||||
if (klassTEMP == 0)
|
||||
{
|
||||
if (klassTEMPSHADOW == 0)
|
||||
{
|
||||
wcl.lpszClassName = L"gdkWindowTempShadow";
|
||||
wcl.style |= CS_SAVEBITS;
|
||||
wcl.style |= 0x00020000; /* CS_DROPSHADOW */
|
||||
|
||||
ONCE_PER_CLASS ();
|
||||
klassTEMPSHADOW = RegisterClassExW (&wcl);
|
||||
}
|
||||
|
||||
klass = klassTEMPSHADOW;
|
||||
wcl.lpszClassName = L"gdkWindowTemp";
|
||||
wcl.style |= CS_SAVEBITS;
|
||||
ONCE_PER_CLASS ();
|
||||
klassTEMP = RegisterClassExW (&wcl);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (klassTEMP == 0)
|
||||
{
|
||||
wcl.lpszClassName = L"gdkWindowTemp";
|
||||
wcl.style |= CS_SAVEBITS;
|
||||
ONCE_PER_CLASS ();
|
||||
klassTEMP = RegisterClassExW (&wcl);
|
||||
}
|
||||
|
||||
klass = klassTEMP;
|
||||
}
|
||||
klass = klassTEMP;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -994,6 +975,9 @@ _gdk_win32_display_create_window_impl (GdkDisplay *display,
|
||||
if (attributes_mask & GDK_WA_CURSOR)
|
||||
gdk_window_set_cursor (window, attributes->cursor);
|
||||
|
||||
if (_gdk_win32_tablet_input_api == GDK_WIN32_TABLET_INPUT_API_WINPOINTER)
|
||||
gdk_winpointer_initialize_window (window);
|
||||
|
||||
_gdk_win32_window_enable_transparency (window);
|
||||
}
|
||||
|
||||
|
@ -30,9 +30,13 @@ all: \
|
||||
gdk-win32.lib \
|
||||
gdk.res
|
||||
|
||||
gdk_win32_DEPS = \
|
||||
hid.lib
|
||||
|
||||
gdk_win32_OBJECTS = \
|
||||
gdkcursor-win32.obj \
|
||||
gdkdevice-win32.obj \
|
||||
gdkdevice-winpointer.obj \
|
||||
gdkdevice-wintab.obj \
|
||||
gdkdevicemanager-win32.obj \
|
||||
gdkdnd-win32.obj \
|
||||
@ -61,7 +65,7 @@ gdk.res : rc\gdk.rc
|
||||
rc -DBUILDNUMBER=0 -r -fo gdk.res rc\gdk.rc
|
||||
|
||||
gdk-win32.lib : $(gdk_win32_OBJECTS)
|
||||
lib -out:gdk-win32.lib $(gdk_win32_OBJECTS)
|
||||
lib -out:gdk-win32.lib $(gdk_win32_DEPS) $(gdk_win32_OBJECTS)
|
||||
|
||||
clean::
|
||||
del *.obj
|
||||
|
@ -3,6 +3,7 @@ gdk_win32_sources = files(
|
||||
'gdkdevicemanager-win32.c',
|
||||
'gdkdevice-virtual.c',
|
||||
'gdkdevice-win32.c',
|
||||
'gdkdevice-winpointer.c',
|
||||
'gdkdevice-wintab.c',
|
||||
'gdkdisplay-win32.c',
|
||||
'gdkdisplaymanager-win32.c',
|
||||
@ -47,7 +48,8 @@ install_headers(gdk_win32_public_headers, subdir: 'gtk-3.0/gdk/win32')
|
||||
install_headers('gdkwin32.h', subdir: 'gtk-3.0/gdk')
|
||||
|
||||
gdk_win32_deps = [ # FIXME
|
||||
pangowin32_dep
|
||||
pangowin32_dep,
|
||||
meson.get_compiler('c').find_library('hid')
|
||||
]
|
||||
|
||||
libgdk_win32 = static_library('gdk-win32',
|
||||
|
@ -273,8 +273,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -323,8 +321,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -3,8 +3,8 @@
|
||||
GTK_ICON ICON "gtk.ico"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,24,29,0
|
||||
PRODUCTVERSION 3,24,29,0
|
||||
FILEVERSION 3,24,30,0
|
||||
PRODUCTVERSION 3,24,30,0
|
||||
FILEFLAGSMASK 0
|
||||
FILEFLAGS 0
|
||||
FILEOS VOS__WINDOWS32
|
||||
@ -17,12 +17,12 @@ VS_VERSION_INFO VERSIONINFO
|
||||
BEGIN
|
||||
VALUE "CompanyName", "The GTK developer community"
|
||||
VALUE "FileDescription", "GIMP Drawing Kit"
|
||||
VALUE "FileVersion", "3.24.29.0"
|
||||
VALUE "FileVersion", "3.24.30.0"
|
||||
VALUE "InternalName", "libgdk-win32-3.0-0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2011."
|
||||
VALUE "OriginalFilename", "libgdk-win32-3.0-0.dll"
|
||||
VALUE "ProductName", "GTK+"
|
||||
VALUE "ProductVersion", "3.24.29"
|
||||
VALUE "ProductVersion", "3.24.30"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
@ -380,8 +380,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -430,8 +428,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
|
@ -1355,7 +1355,10 @@ gtk.gresource.xml: Makefile.am inspector/Makefile.inc
|
||||
echo " <file compressed='true' preprocess='xml-stripblanks'>inspector/$$n</file>" >> $@; \
|
||||
done; \
|
||||
echo " <file>inspector/logo.png</file>" >> $@; \
|
||||
echo " <file>emoji/emoji.data</file>" >> $@; \
|
||||
for f in $(srcdir)/emoji/*.data; do \
|
||||
n=`basename $$f`; \
|
||||
echo " <file>emoji/$$n</file>" >> $@; \
|
||||
done; \
|
||||
echo " </gresource>" >> $@; \
|
||||
echo "</gresources>" >> $@;
|
||||
|
||||
@ -1743,8 +1746,13 @@ EXTRA_DIST += \
|
||||
$(gsettings_SCHEMAS) \
|
||||
compose/compose-parse.py \
|
||||
emoji/convert-emoji.c \
|
||||
emoji/emoji.json \
|
||||
emoji/emoji1.json \
|
||||
emoji/gresource.xml.in \
|
||||
emoji/README.md \
|
||||
emoji/de.data \
|
||||
emoji/en.data \
|
||||
emoji/es.data \
|
||||
emoji/fr.data \
|
||||
emoji/zh.data \
|
||||
a11y/Makefile.inc \
|
||||
deprecated/Makefile.inc \
|
||||
glade/README.glade \
|
||||
|
@ -287,18 +287,20 @@ am__libgtk_3_la_SOURCES_DIST = a11y/gtkaccessibility.c \
|
||||
a11y/gtkcolorswatchaccessible.c a11y/gtkcomboboxaccessible.c \
|
||||
a11y/gtkcontaineraccessible.c \
|
||||
a11y/gtkcontainercellaccessible.c a11y/gtkentryaccessible.c \
|
||||
a11y/gtkexpanderaccessible.c a11y/gtkflowboxaccessible.c \
|
||||
a11y/gtkflowboxchildaccessible.c a11y/gtkframeaccessible.c \
|
||||
a11y/gtkheaderbaraccessible.c a11y/gtkiconviewaccessible.c \
|
||||
a11y/gtkimageaccessible.c a11y/gtkimagecellaccessible.c \
|
||||
a11y/gtklabelaccessible.c a11y/gtklevelbaraccessible.c \
|
||||
a11y/gtklinkbuttonaccessible.c a11y/gtklistboxaccessible.c \
|
||||
a11y/gtklistboxrowaccessible.c a11y/gtklockbuttonaccessible.c \
|
||||
a11y/gtkmenuaccessible.c a11y/gtkmenubuttonaccessible.c \
|
||||
a11y/gtkmenushellaccessible.c a11y/gtkmenuitemaccessible.c \
|
||||
a11y/gtknotebookaccessible.c a11y/gtknotebookpageaccessible.c \
|
||||
a11y/gtkpanedaccessible.c a11y/gtkplugaccessible.c \
|
||||
a11y/gtkpopoveraccessible.c a11y/gtkprogressbaraccessible.c \
|
||||
a11y/gtkexpanderaccessible.c \
|
||||
a11y/gtkfilechooserwidgetaccessible.c \
|
||||
a11y/gtkflowboxaccessible.c a11y/gtkflowboxchildaccessible.c \
|
||||
a11y/gtkframeaccessible.c a11y/gtkheaderbaraccessible.c \
|
||||
a11y/gtkiconviewaccessible.c a11y/gtkimageaccessible.c \
|
||||
a11y/gtkimagecellaccessible.c a11y/gtklabelaccessible.c \
|
||||
a11y/gtklevelbaraccessible.c a11y/gtklinkbuttonaccessible.c \
|
||||
a11y/gtklistboxaccessible.c a11y/gtklistboxrowaccessible.c \
|
||||
a11y/gtklockbuttonaccessible.c a11y/gtkmenuaccessible.c \
|
||||
a11y/gtkmenubuttonaccessible.c a11y/gtkmenushellaccessible.c \
|
||||
a11y/gtkmenuitemaccessible.c a11y/gtknotebookaccessible.c \
|
||||
a11y/gtknotebookpageaccessible.c a11y/gtkpanedaccessible.c \
|
||||
a11y/gtkplugaccessible.c a11y/gtkpopoveraccessible.c \
|
||||
a11y/gtkprogressbaraccessible.c \
|
||||
a11y/gtkradiobuttonaccessible.c \
|
||||
a11y/gtkradiomenuitemaccessible.c a11y/gtkrangeaccessible.c \
|
||||
a11y/gtkrenderercellaccessible.c a11y/gtkscaleaccessible.c \
|
||||
@ -497,6 +499,7 @@ am__objects_1 = a11y/libgtk_3_la-gtkaccessibility.lo \
|
||||
a11y/libgtk_3_la-gtkcontainercellaccessible.lo \
|
||||
a11y/libgtk_3_la-gtkentryaccessible.lo \
|
||||
a11y/libgtk_3_la-gtkexpanderaccessible.lo \
|
||||
a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo \
|
||||
a11y/libgtk_3_la-gtkflowboxaccessible.lo \
|
||||
a11y/libgtk_3_la-gtkflowboxchildaccessible.lo \
|
||||
a11y/libgtk_3_la-gtkframeaccessible.lo \
|
||||
@ -1395,6 +1398,7 @@ am__depfiles_remade = ./$(DEPDIR)/encodesymbolic.Po \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkcontainercellaccessible.Plo \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkentryaccessible.Plo \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkexpanderaccessible.Plo \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Plo \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxchildaccessible.Plo \
|
||||
a11y/$(DEPDIR)/libgtk_3_la-gtkframeaccessible.Plo \
|
||||
@ -1715,8 +1719,6 @@ INTROSPECTION_REQUIRED_VERSION = @INTROSPECTION_REQUIRED_VERSION@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
ISO_CODES_PREFIX = @ISO_CODES_PREFIX@
|
||||
JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@
|
||||
JSON_GLIB_LIBS = @JSON_GLIB_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
|
||||
@ -1765,8 +1767,6 @@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
REST_CFLAGS = @REST_CFLAGS@
|
||||
REST_LIBS = @REST_LIBS@
|
||||
SASSC = @SASSC@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@ -1860,9 +1860,10 @@ EXTRA_DIST = $(gtk_all_private_h_sources) $(gtk_extra_sources) \
|
||||
$(gtk_built_sources) gtkbuilder.rnc gtkbuilder.rng $(its_DATA) \
|
||||
$(resource_files) $(gesture_sources) $(theme_sources) \
|
||||
$(gsettings_SCHEMAS) compose/compose-parse.py \
|
||||
emoji/convert-emoji.c emoji/emoji.json emoji/emoji1.json \
|
||||
a11y/Makefile.inc deprecated/Makefile.inc glade/README.glade \
|
||||
glade/gtk-private-widgets.xml \
|
||||
emoji/convert-emoji.c emoji/gresource.xml.in emoji/README.md \
|
||||
emoji/de.data emoji/en.data emoji/es.data emoji/fr.data \
|
||||
emoji/zh.data a11y/Makefile.inc deprecated/Makefile.inc \
|
||||
glade/README.glade glade/gtk-private-widgets.xml \
|
||||
compose/gtk-compose-lookaside.txt inspector/Makefile.inc \
|
||||
libgtk3.manifest.in gtk-win32.rc.body.in gtk-win32.rc.body \
|
||||
gtkwin32embed.h gtkwin32embedwidget.h gtkwin32embedwidget.c \
|
||||
@ -1971,6 +1972,7 @@ a11y_h_sources = \
|
||||
a11y/gtkcontainercellaccessible.h \
|
||||
a11y/gtkentryaccessible.h \
|
||||
a11y/gtkexpanderaccessible.h \
|
||||
a11y/gtkfilechooserwidgetaccessible.h \
|
||||
a11y/gtkflowboxaccessible.h \
|
||||
a11y/gtkflowboxchildaccessible.h \
|
||||
a11y/gtkframeaccessible.h \
|
||||
@ -2048,6 +2050,7 @@ a11y_c_sources = \
|
||||
a11y/gtkcontainercellaccessible.c \
|
||||
a11y/gtkentryaccessible.c \
|
||||
a11y/gtkexpanderaccessible.c \
|
||||
a11y/gtkfilechooserwidgetaccessible.c \
|
||||
a11y/gtkflowboxaccessible.c \
|
||||
a11y/gtkflowboxchildaccessible.c \
|
||||
a11y/gtkframeaccessible.c \
|
||||
@ -3337,6 +3340,8 @@ a11y/libgtk_3_la-gtkentryaccessible.lo: a11y/$(am__dirstamp) \
|
||||
a11y/$(DEPDIR)/$(am__dirstamp)
|
||||
a11y/libgtk_3_la-gtkexpanderaccessible.lo: a11y/$(am__dirstamp) \
|
||||
a11y/$(DEPDIR)/$(am__dirstamp)
|
||||
a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo: \
|
||||
a11y/$(am__dirstamp) a11y/$(DEPDIR)/$(am__dirstamp)
|
||||
a11y/libgtk_3_la-gtkflowboxaccessible.lo: a11y/$(am__dirstamp) \
|
||||
a11y/$(DEPDIR)/$(am__dirstamp)
|
||||
a11y/libgtk_3_la-gtkflowboxchildaccessible.lo: a11y/$(am__dirstamp) \
|
||||
@ -4054,6 +4059,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkcontainercellaccessible.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkentryaccessible.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkexpanderaccessible.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxchildaccessible.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@a11y/$(DEPDIR)/libgtk_3_la-gtkframeaccessible.Plo@am__quote@ # am--include-marker
|
||||
@ -4303,6 +4309,13 @@ a11y/libgtk_3_la-gtkexpanderaccessible.lo: a11y/gtkexpanderaccessible.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -c -o a11y/libgtk_3_la-gtkexpanderaccessible.lo `test -f 'a11y/gtkexpanderaccessible.c' || echo '$(srcdir)/'`a11y/gtkexpanderaccessible.c
|
||||
|
||||
a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo: a11y/gtkfilechooserwidgetaccessible.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -MT a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo -MD -MP -MF a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Tpo -c -o a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo `test -f 'a11y/gtkfilechooserwidgetaccessible.c' || echo '$(srcdir)/'`a11y/gtkfilechooserwidgetaccessible.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Tpo a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='a11y/gtkfilechooserwidgetaccessible.c' object='a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -c -o a11y/libgtk_3_la-gtkfilechooserwidgetaccessible.lo `test -f 'a11y/gtkfilechooserwidgetaccessible.c' || echo '$(srcdir)/'`a11y/gtkfilechooserwidgetaccessible.c
|
||||
|
||||
a11y/libgtk_3_la-gtkflowboxaccessible.lo: a11y/gtkflowboxaccessible.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgtk_3_la_CFLAGS) $(CFLAGS) -MT a11y/libgtk_3_la-gtkflowboxaccessible.lo -MD -MP -MF a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Tpo -c -o a11y/libgtk_3_la-gtkflowboxaccessible.lo `test -f 'a11y/gtkflowboxaccessible.c' || echo '$(srcdir)/'`a11y/gtkflowboxaccessible.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Tpo a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo
|
||||
@ -8719,6 +8732,7 @@ distclean: distclean-am
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkcontainercellaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkentryaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkexpanderaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxchildaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkframeaccessible.Plo
|
||||
@ -9313,6 +9327,7 @@ maintainer-clean: maintainer-clean-am
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkcontainercellaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkentryaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkexpanderaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkfilechooserwidgetaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkflowboxchildaccessible.Plo
|
||||
-rm -f a11y/$(DEPDIR)/libgtk_3_la-gtkframeaccessible.Plo
|
||||
@ -9688,7 +9703,10 @@ gtk.gresource.xml: Makefile.am inspector/Makefile.inc
|
||||
echo " <file compressed='true' preprocess='xml-stripblanks'>inspector/$$n</file>" >> $@; \
|
||||
done; \
|
||||
echo " <file>inspector/logo.png</file>" >> $@; \
|
||||
echo " <file>emoji/emoji.data</file>" >> $@; \
|
||||
for f in $(srcdir)/emoji/*.data; do \
|
||||
n=`basename $$f`; \
|
||||
echo " <file>emoji/$$n</file>" >> $@; \
|
||||
done; \
|
||||
echo " </gresource>" >> $@; \
|
||||
echo "</gresources>" >> $@;
|
||||
|
||||
|
@ -11,6 +11,7 @@ a11y_h_sources = \
|
||||
a11y/gtkcontainercellaccessible.h \
|
||||
a11y/gtkentryaccessible.h \
|
||||
a11y/gtkexpanderaccessible.h \
|
||||
a11y/gtkfilechooserwidgetaccessible.h \
|
||||
a11y/gtkflowboxaccessible.h \
|
||||
a11y/gtkflowboxchildaccessible.h \
|
||||
a11y/gtkframeaccessible.h \
|
||||
@ -88,6 +89,7 @@ a11y_c_sources = \
|
||||
a11y/gtkcontainercellaccessible.c \
|
||||
a11y/gtkentryaccessible.c \
|
||||
a11y/gtkexpanderaccessible.c \
|
||||
a11y/gtkfilechooserwidgetaccessible.c \
|
||||
a11y/gtkflowboxaccessible.c \
|
||||
a11y/gtkflowboxchildaccessible.c \
|
||||
a11y/gtkframeaccessible.c \
|
||||
|
@ -30,12 +30,19 @@ struct _GtkContainerCellAccessiblePrivate
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkContainerCellAccessible, gtk_container_cell_accessible, GTK_TYPE_CELL_ACCESSIBLE)
|
||||
|
||||
|
||||
static void
|
||||
unset_child (gpointer child)
|
||||
{
|
||||
atk_object_set_parent (ATK_OBJECT (child), NULL);
|
||||
g_object_unref (child);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_container_cell_accessible_finalize (GObject *obj)
|
||||
{
|
||||
GtkContainerCellAccessible *container = GTK_CONTAINER_CELL_ACCESSIBLE (obj);
|
||||
|
||||
g_list_free_full (container->priv->children, g_object_unref);
|
||||
g_list_free_full (container->priv->children, unset_child);
|
||||
|
||||
G_OBJECT_CLASS (gtk_container_cell_accessible_parent_class)->finalize (obj);
|
||||
}
|
||||
@ -157,6 +164,7 @@ gtk_container_cell_accessible_remove_child (GtkContainerCellAccessible *containe
|
||||
g_return_if_fail (GTK_IS_CELL_ACCESSIBLE (child));
|
||||
g_return_if_fail (container->priv->n_children > 0);
|
||||
|
||||
atk_object_set_parent (ATK_OBJECT (child), NULL);
|
||||
container->priv->children = g_list_remove (container->priv->children, child);
|
||||
container->priv->n_children--;
|
||||
|
||||
|
122
gtk/a11y/gtkfilechooserwidgetaccessible.c
Normal file
122
gtk/a11y/gtkfilechooserwidgetaccessible.c
Normal file
@ -0,0 +1,122 @@
|
||||
/* GTK+ - accessibility implementations
|
||||
* Copyright 2001, 2002, 2003 Sun Microsystems 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <glib/gi18n-lib.h>
|
||||
#include "gtkfilechooserwidgetaccessible.h"
|
||||
|
||||
|
||||
static void atk_action_interface_init (AtkActionIface *iface);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GtkFileChooserWidgetAccessible, gtk_file_chooser_widget_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
|
||||
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
|
||||
|
||||
static void
|
||||
gtk_file_chooser_widget_accessible_initialize (AtkObject *obj,
|
||||
gpointer data)
|
||||
{
|
||||
ATK_OBJECT_CLASS (gtk_file_chooser_widget_accessible_parent_class)->initialize (obj, data);
|
||||
obj->role = ATK_ROLE_FILE_CHOOSER;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_file_chooser_widget_accessible_class_init (GtkFileChooserWidgetAccessibleClass *klass)
|
||||
{
|
||||
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
|
||||
GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
|
||||
|
||||
class->initialize = gtk_file_chooser_widget_accessible_initialize;
|
||||
|
||||
container_class->add_gtk = NULL;
|
||||
container_class->remove_gtk = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_file_chooser_widget_accessible_init (GtkFileChooserWidgetAccessible *file_chooser_widget)
|
||||
{
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_file_chooser_widget_accessible_do_action (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
|
||||
if (widget == NULL)
|
||||
return FALSE;
|
||||
|
||||
if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
|
||||
return FALSE;
|
||||
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
g_signal_emit_by_name (GTK_FILE_CHOOSER_WIDGET (widget), "location-popup", "");
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gint
|
||||
gtk_file_chooser_widget_accessible_get_n_actions (AtkAction *action)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
gtk_file_chooser_widget_accessible_action_get_name (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
if (i == 0)
|
||||
return "show_location";
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
gtk_file_chooser_widget_accessible_action_get_localized_name (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
if (i == 0)
|
||||
return C_("Action name", "Show location");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
gtk_file_chooser_widget_accessible_action_get_description (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
if (i == 0)
|
||||
return C_("Action description", "Show the File Chooser's Location text field");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
atk_action_interface_init (AtkActionIface *iface)
|
||||
{
|
||||
iface->do_action = gtk_file_chooser_widget_accessible_do_action;
|
||||
iface->get_n_actions = gtk_file_chooser_widget_accessible_get_n_actions;
|
||||
iface->get_name = gtk_file_chooser_widget_accessible_action_get_name;
|
||||
iface->get_localized_name = gtk_file_chooser_widget_accessible_action_get_localized_name;
|
||||
iface->get_description = gtk_file_chooser_widget_accessible_action_get_description;
|
||||
}
|
57
gtk/a11y/gtkfilechooserwidgetaccessible.h
Normal file
57
gtk/a11y/gtkfilechooserwidgetaccessible.h
Normal file
@ -0,0 +1,57 @@
|
||||
/* GTK+ - accessibility implementations
|
||||
* Copyright 2001 Sun Microsystems Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GTK_FILE_CHOOSER_WIDGET_ACCESSIBLE_H__
|
||||
#define __GTK_FILE_CHOOSER_WIDGET_ACCESSIBLE_H__
|
||||
|
||||
#if !defined (__GTK_A11Y_H_INSIDE__) && !defined (GTK_COMPILATION)
|
||||
#error "Only <gtk/gtk-a11y.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#include <gtk/a11y/gtkcontaineraccessible.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GTK_TYPE_FILE_CHOOSER_WIDGET_ACCESSIBLE (gtk_file_chooser_widget_accessible_get_type ())
|
||||
#define GTK_FILE_CHOOSER_WIDGET_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FILE_CHOOSER_WIDGET_ACCESSIBLE, GtkFileChooserWidgetAccessible))
|
||||
#define GTK_FILE_CHOOSER_WIDGET_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FILE_CHOOSER_WIDGET_ACCESSIBLE, GtkFileChooserWidgetAccessibleClass))
|
||||
#define GTK_IS_FILE_CHOOSER_WIDGET_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FILE_CHOOSER_WIDGET_ACCESSIBLE))
|
||||
#define GTK_IS_FILE_CHOOSER_WIDGET_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FILE_CHOOSER_WIDGET_ACCESSIBLE))
|
||||
#define GTK_FILE_CHOOSER_WIDGET_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_FILE_CHOOSER_WIDGET_ACCESSIBLE, GtkFileChooserWidgetAccessibleClass))
|
||||
|
||||
typedef struct _GtkFileChooserWidgetAccessible GtkFileChooserWidgetAccessible;
|
||||
typedef struct _GtkFileChooserWidgetAccessibleClass GtkFileChooserWidgetAccessibleClass;
|
||||
typedef struct _GtkFileChooserWidgetAccessiblePrivate GtkFileChooserWidgetAccessiblePrivate;
|
||||
|
||||
struct _GtkFileChooserWidgetAccessible
|
||||
{
|
||||
GtkContainerAccessible parent;
|
||||
|
||||
GtkFileChooserWidgetAccessiblePrivate *priv;
|
||||
};
|
||||
|
||||
struct _GtkFileChooserWidgetAccessibleClass
|
||||
{
|
||||
GtkContainerAccessibleClass parent_class;
|
||||
};
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GType gtk_file_chooser_widget_accessible_get_type (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_FILE_CHOOSER_WIDGET_ACCESSIBLE_H__ */
|
@ -104,6 +104,17 @@ static void
|
||||
cell_info_free (GtkTreeViewAccessibleCellInfo *cell_info)
|
||||
{
|
||||
gtk_accessible_set_widget (GTK_ACCESSIBLE (cell_info->cell), NULL);
|
||||
if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (cell_info->cell))
|
||||
{
|
||||
GList *children;
|
||||
|
||||
while ((children = gtk_container_cell_accessible_get_children (GTK_CONTAINER_CELL_ACCESSIBLE (cell_info->cell))) != NULL)
|
||||
{
|
||||
GtkCellAccessible *child = children->data;
|
||||
gtk_container_cell_accessible_remove_child (GTK_CONTAINER_CELL_ACCESSIBLE (cell_info->cell), child);
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (cell_info->cell);
|
||||
|
||||
g_free (cell_info);
|
||||
|
@ -14,6 +14,7 @@ a11y_sources = files(
|
||||
'gtkcontainercellaccessible.c',
|
||||
'gtkentryaccessible.c',
|
||||
'gtkexpanderaccessible.c',
|
||||
'gtkfilechooserwidgetaccessible.c',
|
||||
'gtkflowboxaccessible.c',
|
||||
'gtkflowboxchildaccessible.c',
|
||||
'gtkframeaccessible.c',
|
||||
@ -72,6 +73,7 @@ a11y_headers = files(
|
||||
'gtkcontainercellaccessible.h',
|
||||
'gtkentryaccessible.h',
|
||||
'gtkexpanderaccessible.h',
|
||||
'gtkfilechooserwidgetaccessible.h',
|
||||
'gtkflowboxaccessible.h',
|
||||
'gtkflowboxchildaccessible.h',
|
||||
'gtkframeaccessible.h',
|
||||
|
23
gtk/emoji/README.md
Normal file
23
gtk/emoji/README.md
Normal file
@ -0,0 +1,23 @@
|
||||
Emoji data
|
||||
==========
|
||||
|
||||
We use Emoji data from Unicode and the CLDR, stored in a GVariant.
|
||||
The immediate source for our data is the json files from
|
||||
|
||||
https://github.com/milesj/emojibase.git
|
||||
|
||||
To convert the data from that repository to a GVariant that GTK
|
||||
can use, the convert-emoji tool can be used:
|
||||
|
||||
convert-emoji $emojibase/packages/data/de/data.raw.json de.data
|
||||
|
||||
for example (for German).
|
||||
|
||||
To make these usable by GTK, we wrap them in a resource bundle
|
||||
that has the GVariant as
|
||||
|
||||
/org/gtk/libgtk/emoji/de.data
|
||||
|
||||
and install the resulting resource bundle at this location:
|
||||
|
||||
/usr/share/gtk-4.0/emoji/de.gresource
|
@ -18,18 +18,40 @@
|
||||
/* Build with gcc -o convert-emoji convert-emoji.c `pkg-config --cflags --libs json-glib-1.0`
|
||||
*/
|
||||
|
||||
/* Reads data from the json files in emojibase, expecting
|
||||
* language-specific data.raw.json as input
|
||||
*/
|
||||
|
||||
/* The format of the generated data is: a(ausasu).
|
||||
* Each member of the array has the following fields:
|
||||
* au - sequence of unicode codepoints. If the
|
||||
* sequence contains a 0, it marks the point
|
||||
* where skin tone modifiers should be inserted
|
||||
* s - name, e.g. "man worker"
|
||||
* as - keywords, e.g. "man", "worker"
|
||||
* u - the group that this item belongs to:
|
||||
* 0: smileys-emotion
|
||||
* 1: people-body
|
||||
* 2: component
|
||||
* 3: animals-nature
|
||||
* 4: food-drink
|
||||
* 5: travel-places
|
||||
* 6: activities
|
||||
* 7: objects
|
||||
* 8: symbols
|
||||
* 9: flags
|
||||
*/
|
||||
#include <json-glib/json-glib.h>
|
||||
#include <string.h>
|
||||
|
||||
gboolean
|
||||
parse_code (GVariantBuilder *b,
|
||||
const char *code,
|
||||
GString *name_key)
|
||||
const char *code)
|
||||
{
|
||||
g_auto(GStrv) strv = NULL;
|
||||
int j;
|
||||
|
||||
strv = g_strsplit (code, " ", -1);
|
||||
strv = g_strsplit (code, "-", -1);
|
||||
for (j = 0; strv[j]; j++)
|
||||
{
|
||||
guint32 u;
|
||||
@ -44,12 +66,7 @@ parse_code (GVariantBuilder *b,
|
||||
if (0x1f3fb <= u && u <= 0x1f3ff)
|
||||
g_variant_builder_add (b, "u", 0);
|
||||
else
|
||||
{
|
||||
g_variant_builder_add (b, "u", u);
|
||||
if (j > 0)
|
||||
g_string_append_c (name_key, '-');
|
||||
g_string_append_printf (name_key, "%x", u);
|
||||
}
|
||||
g_variant_builder_add (b, "u", u);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@ -60,57 +77,27 @@ main (int argc, char *argv[])
|
||||
{
|
||||
JsonParser *parser;
|
||||
JsonNode *root;
|
||||
JsonArray *array;
|
||||
JsonObject *ro;
|
||||
JsonArray *array;
|
||||
JsonNode *node;
|
||||
const char *name;
|
||||
const char *unicode;
|
||||
JsonObjectIter iter;
|
||||
GError *error = NULL;
|
||||
guint length, i;
|
||||
GVariantBuilder builder;
|
||||
GVariant *v;
|
||||
GString *s;
|
||||
GBytes *bytes;
|
||||
GHashTable *names;
|
||||
GString *name_key;
|
||||
|
||||
if (argc != 4)
|
||||
if (argc != 3)
|
||||
{
|
||||
g_print ("Usage: emoji-convert INPUT INPUT1 OUTPUT\n");
|
||||
g_print ("Usage: emoji-convert INPUT OUTPUT\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
parser = json_parser_new ();
|
||||
|
||||
if (!json_parser_load_from_file (parser, argv[2], &error))
|
||||
{
|
||||
g_error ("%s", error->message);
|
||||
return 1;
|
||||
}
|
||||
|
||||
root = json_parser_get_root (parser);
|
||||
ro = json_node_get_object (root);
|
||||
json_object_iter_init (&iter, ro);
|
||||
|
||||
names = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
|
||||
name_key = g_string_new ("");
|
||||
|
||||
while (json_object_iter_next (&iter, &name, &node))
|
||||
{
|
||||
JsonObject *obj = json_node_get_object (node);
|
||||
const char *unicode;
|
||||
const char *shortname;
|
||||
|
||||
unicode = json_object_get_string_member (obj, "unicode");
|
||||
shortname = json_object_get_string_member (obj, "shortname");
|
||||
|
||||
g_hash_table_insert (names, g_strdup (unicode), g_strdup (shortname));
|
||||
}
|
||||
|
||||
g_object_unref (parser);
|
||||
|
||||
parser = json_parser_new ();
|
||||
|
||||
if (!json_parser_load_from_file (parser, argv[1], &error))
|
||||
{
|
||||
g_error ("%s", error->message);
|
||||
@ -121,65 +108,74 @@ main (int argc, char *argv[])
|
||||
array = json_node_get_array (root);
|
||||
length = json_array_get_length (array);
|
||||
|
||||
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(auss)"));
|
||||
i = 0;
|
||||
while (i < length)
|
||||
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ausasu)"));
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
JsonNode *node = json_array_get_element (array, i);
|
||||
JsonObject *obj = json_node_get_object (node);
|
||||
JsonObject *obj = json_array_get_object_element (array, i);
|
||||
GVariantBuilder b1;
|
||||
GVariantBuilder b2;
|
||||
guint group;
|
||||
const char *name;
|
||||
const char *shortname;
|
||||
char *code;
|
||||
int j;
|
||||
gboolean skip;
|
||||
gboolean has_variations;
|
||||
|
||||
i++;
|
||||
if (!json_object_has_member (obj, "group"))
|
||||
continue;
|
||||
|
||||
group = json_object_get_int_member (obj, "group");
|
||||
name = json_object_get_string_member (obj, "annotation");
|
||||
|
||||
if (json_object_has_member (obj, "skins"))
|
||||
{
|
||||
JsonArray *a2 = json_object_get_array_member (obj, "skins");
|
||||
JsonNode *n2 = json_array_get_element (a2, 0);
|
||||
JsonObject *o2 = json_node_get_object (n2);
|
||||
code = g_strdup (json_object_get_string_member (o2, "hexcode"));
|
||||
}
|
||||
else
|
||||
{
|
||||
code = g_strdup (json_object_get_string_member (obj, "hexcode"));
|
||||
}
|
||||
|
||||
g_variant_builder_init (&b1, G_VARIANT_TYPE ("au"));
|
||||
|
||||
name = json_object_get_string_member (obj, "name");
|
||||
code = g_strdup (json_object_get_string_member (obj, "code"));
|
||||
|
||||
has_variations = FALSE;
|
||||
while (i < length)
|
||||
{
|
||||
JsonNode *node2 = json_array_get_element (array, i);
|
||||
JsonObject *obj2 = json_node_get_object (node2);
|
||||
const char *name2;
|
||||
const char *code2;
|
||||
|
||||
name2 = json_object_get_string_member (obj2, "name");
|
||||
code2 = json_object_get_string_member (obj2, "code");
|
||||
|
||||
if (!strstr (name2, "skin tone") || !g_str_has_prefix (name2, name))
|
||||
break;
|
||||
|
||||
if (!has_variations)
|
||||
{
|
||||
has_variations = TRUE;
|
||||
g_free (code);
|
||||
code = g_strdup (code2);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
g_string_set_size (name_key, 0);
|
||||
if (!parse_code (&b1, code, name_key))
|
||||
if (!parse_code (&b1, code))
|
||||
return 1;
|
||||
|
||||
shortname = g_hash_table_lookup (names, name_key->str);
|
||||
g_variant_builder_init (&b2, G_VARIANT_TYPE ("as"));
|
||||
if (json_object_has_member (obj, "tags"))
|
||||
{
|
||||
JsonArray *tags = json_object_get_array_member (obj, "tags");
|
||||
for (int j = 0; j < json_array_get_length (tags); j++)
|
||||
g_variant_builder_add (&b2, "s", json_array_get_string_element (tags, j));
|
||||
}
|
||||
|
||||
g_variant_builder_add (&builder, "(auss)", &b1, name, shortname ? shortname : "");
|
||||
g_variant_builder_add (&builder, "(ausasu)", &b1, name, &b2, group);
|
||||
}
|
||||
|
||||
v = g_variant_builder_end (&builder);
|
||||
bytes = g_variant_get_data_as_bytes (v);
|
||||
if (!g_file_set_contents (argv[3], g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes), &error))
|
||||
if (g_str_has_suffix (argv[2], ".json"))
|
||||
{
|
||||
g_error ("%s", error->message);
|
||||
return 1;
|
||||
JsonNode *node;
|
||||
char *out;
|
||||
|
||||
node = json_gvariant_serialize (v);
|
||||
out = json_to_string (node, TRUE);
|
||||
if (!g_file_set_contents (argv[2], out, -1, &error))
|
||||
{
|
||||
g_error ("%s", error->message);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GBytes *bytes;
|
||||
|
||||
bytes = g_variant_get_data_as_bytes (v);
|
||||
if (!g_file_set_contents (argv[2], g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes), &error))
|
||||
{
|
||||
g_error ("%s", error->message);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
BIN
gtk/emoji/de.data
Normal file
BIN
gtk/emoji/de.data
Normal file
Binary file not shown.
Binary file not shown.
15740
gtk/emoji/emoji.json
15740
gtk/emoji/emoji.json
File diff suppressed because it is too large
Load Diff
34181
gtk/emoji/emoji1.json
34181
gtk/emoji/emoji1.json
File diff suppressed because it is too large
Load Diff
BIN
gtk/emoji/en.data
Normal file
BIN
gtk/emoji/en.data
Normal file
Binary file not shown.
BIN
gtk/emoji/es.data
Normal file
BIN
gtk/emoji/es.data
Normal file
Binary file not shown.
BIN
gtk/emoji/fr.data
Normal file
BIN
gtk/emoji/fr.data
Normal file
Binary file not shown.
6
gtk/emoji/gresource.xml.in
Normal file
6
gtk/emoji/gresource.xml.in
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/org/gtk/libgtk/emoji/">
|
||||
<file>@lang@.data</file>
|
||||
</gresource>
|
||||
</gresources>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user