multitouch support for xi2 and floating xi devices

SVN revision: 45213
This commit is contained in:
Carsten Haitzler 2010-01-16 12:20:56 +00:00
parent 151515d816
commit d3afa8952e
15 changed files with 433 additions and 166 deletions

View File

@ -657,8 +657,9 @@ if ! test "x$have_ecore_x_xcb" = "xyes" ; then
ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat])
ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent])
ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], [XScreenSaverSelectInput])
ECORE_CHECK_X_EXTENSION([Xi2], [XInput2.h], [Xi], [XIQueryDevice])
ecore_x_libs_private="${Xcursor_libs} ${XKB_LIBS} ${XCOMPOSITE_LIBS} ${XDAMAGE_LIBS} ${XDPMS_LIBS} ${XFIXES_LIBS} ${XINERAMA_LIBS} ${XPRINT_LIBS} ${XRANDR_LIBS} ${XRENDER_LIBS} ${XTEST_LIBS} ${XSS_LIBS} "
ecore_x_libs_private="${Xcursor_libs} ${XKB_LIBS} ${XCOMPOSITE_LIBS} ${XDAMAGE_LIBS} ${XDPMS_LIBS} ${XFIXES_LIBS} ${XINERAMA_LIBS} ${XPRINT_LIBS} ${XRANDR_LIBS} ${XRENDER_LIBS} ${XTEST_LIBS} ${XSS_LIBS} ${XI2_LIBS}"
AC_DEFINE(HAVE_ECORE_X_XLIB, 1, [Defined to 1 if Xlib is enabled.])
have_x="yes"
@ -1280,6 +1281,7 @@ if test "x$have_ecore_x" = "xyes" ; then
echo " Xdpms......................: $use_xdpms"
echo " Xtest......................: $use_xtest"
echo " XIM........................: $want_xim"
echo " Xi2........................: $use_xi2"
fi
else
echo " Ecore_X......................: $have_ecore_x"

View File

@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2009-10-28 11:13+1100\n"
"POT-Creation-Date: 2010-01-16 17:27+0800\n"
"PO-Revision-Date: 2009-10-27 19:35+0100\n"
"Last-Translator: quaker66 <quaker66@gmail.com>\n"
"Language-Team: cs <quaker66@gmail.com>\n"
@ -59,112 +59,112 @@ msgstr "CHYBA: neznámá volba --%s.\n"
msgid "ERROR: unknown option -%c.\n"
msgstr "CHYBA: neznámá volba -%c.\n"
#: src/lib/ecore/ecore_getopt.c:762
#: src/lib/ecore/ecore_getopt.c:761
msgid "ERROR: "
msgstr "CHYBA: "
#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
#: src/lib/ecore/ecore_getopt.c:838 src/lib/ecore/ecore_getopt.c:954
#: src/lib/ecore/ecore_getopt.c:967 src/lib/ecore/ecore_getopt.c:979
#: src/lib/ecore/ecore_getopt.c:993 src/lib/ecore/ecore_getopt.c:1037
#: src/lib/ecore/ecore_getopt.c:1146 src/lib/ecore/ecore_getopt.c:1183
msgid "value has no pointer set.\n"
msgstr "hodnota nemá nastaven pointer.\n"
#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
#: src/lib/ecore/ecore_getopt.c:867 src/lib/ecore/ecore_getopt.c:1057
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "neznámá boolean hodnota %s.\n"
#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
#: src/lib/ecore/ecore_getopt.c:911 src/lib/ecore/ecore_getopt.c:1137
#, c-format
msgid "invalid number format %s\n"
msgstr "neznámý číselný formát %s\n"
#: src/lib/ecore/ecore_getopt.c:1007
#: src/lib/ecore/ecore_getopt.c:1006
#, c-format
msgid "invalid choice \"%s\". Valid values are: "
msgstr "neznámá volba \"%s\". Možné hodnoty jsou: "
#: src/lib/ecore/ecore_getopt.c:1032
#: src/lib/ecore/ecore_getopt.c:1031
msgid "missing parameter to append.\n"
msgstr "chybějící parametr k připojení.\n"
#: src/lib/ecore/ecore_getopt.c:1128
#: src/lib/ecore/ecore_getopt.c:1127
msgid "could not parse value.\n"
msgstr "nemůžu parsovat hodnotu.\n"
#: src/lib/ecore/ecore_getopt.c:1177
#: src/lib/ecore/ecore_getopt.c:1176
msgid "missing parameter.\n"
msgstr "chybějící parametr.\n"
#: src/lib/ecore/ecore_getopt.c:1191
#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing callback function!\n"
msgstr "chybějící callback funkce!\n"
#: src/lib/ecore/ecore_getopt.c:1214
#: src/lib/ecore/ecore_getopt.c:1213
msgid "no version was defined.\n"
msgstr "nebyla definována verze.\n"
#: src/lib/ecore/ecore_getopt.c:1228
#: src/lib/ecore/ecore_getopt.c:1227
msgid "no copyright was defined.\n"
msgstr "nebyl definován copyright.\n"
#: src/lib/ecore/ecore_getopt.c:1242
#: src/lib/ecore/ecore_getopt.c:1241
msgid "no license was defined.\n"
msgstr "nebyla definována licence.\n"
#: src/lib/ecore/ecore_getopt.c:1296
#: src/lib/ecore/ecore_getopt.c:1295
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
#: src/lib/ecore/ecore_getopt.c:1329
#: src/lib/ecore/ecore_getopt.c:1328
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "CHYBA: volba --%s vyžaduje argument!\n"
#: src/lib/ecore/ecore_getopt.c:1365
#: src/lib/ecore/ecore_getopt.c:1364
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
#: src/lib/ecore/ecore_getopt.c:1403
#: src/lib/ecore/ecore_getopt.c:1402
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "CHYBA: volba -%c vyžaduje argument!\n"
#: src/lib/ecore/ecore_getopt.c:1606
#: src/lib/ecore/ecore_getopt.c:1605
msgid "ERROR: no parser provided.\n"
msgstr "CHYBA: nebyl poskytnut parser.\n"
#: src/lib/ecore/ecore_getopt.c:1611
#: src/lib/ecore/ecore_getopt.c:1610
msgid "ERROR: no values provided.\n"
msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
#: src/lib/ecore/ecore_getopt.c:1620
#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no arguments provided.\n"
msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
#: src/lib/ecore/ecore_getopt.c:1646
#: src/lib/ecore/ecore_getopt.c:1645
msgid "ERROR: invalid options found."
msgstr "CHYBA: nalezeny neplatné volby."
#: src/lib/ecore/ecore_getopt.c:1652
#: src/lib/ecore/ecore_getopt.c:1651
#, c-format
msgid " See --%s.\n"
msgstr " viz. --%s.\n"
#: src/lib/ecore/ecore_getopt.c:1654
#: src/lib/ecore/ecore_getopt.c:1653
#, c-format
msgid " See -%c.\n"
msgstr " viz. -%c.\n"
#: src/lib/ecore/ecore_getopt.c:1691
#: src/lib/ecore/ecore_getopt.c:1690
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
#: src/lib/ecore/ecore_getopt.c:1714
#: src/lib/ecore/ecore_getopt.c:1713
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ecore 0.9.9.063-2\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2009-10-28 11:13+1100\n"
"POT-Creation-Date: 2010-01-16 17:27+0800\n"
"PO-Revision-Date: 2010-01-03 21:52+GMT\n"
"Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@ -15,7 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/lib/ecore/ecore_getopt.c:73
msgid "Version:"
msgstr "Version:"
@ -63,112 +62,112 @@ msgstr "FEHLER: Unbekannte Option --%s\n"
msgid "ERROR: unknown option -%c.\n"
msgstr "FEHLER: Unbekannte Option -%c\n"
#: src/lib/ecore/ecore_getopt.c:762
#: src/lib/ecore/ecore_getopt.c:761
msgid "ERROR: "
msgstr "FEHLER: "
#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
#: src/lib/ecore/ecore_getopt.c:838 src/lib/ecore/ecore_getopt.c:954
#: src/lib/ecore/ecore_getopt.c:967 src/lib/ecore/ecore_getopt.c:979
#: src/lib/ecore/ecore_getopt.c:993 src/lib/ecore/ecore_getopt.c:1037
#: src/lib/ecore/ecore_getopt.c:1146 src/lib/ecore/ecore_getopt.c:1183
msgid "value has no pointer set.\n"
msgstr "kein Zeiger auf Wert gesetzt\n"
#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
#: src/lib/ecore/ecore_getopt.c:867 src/lib/ecore/ecore_getopt.c:1057
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "unbekannter boolescher Wert %s\n"
#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
#: src/lib/ecore/ecore_getopt.c:911 src/lib/ecore/ecore_getopt.c:1137
#, c-format
msgid "invalid number format %s\n"
msgstr "ungültiges Zahlenformat %s\n"
#: src/lib/ecore/ecore_getopt.c:1007
#: src/lib/ecore/ecore_getopt.c:1006
#, c-format
msgid "invalid choice \"%s\". Valid values are: "
msgstr "ungültige Auswahl »%s«. Gültige Werte sind: "
#: src/lib/ecore/ecore_getopt.c:1032
#: src/lib/ecore/ecore_getopt.c:1031
msgid "missing parameter to append.\n"
msgstr "fehlender Parameter zum Anhängen\n"
#: src/lib/ecore/ecore_getopt.c:1128
#: src/lib/ecore/ecore_getopt.c:1127
msgid "could not parse value.\n"
msgstr "Wert kann nicht ausgewertet werden\n"
#: src/lib/ecore/ecore_getopt.c:1177
#: src/lib/ecore/ecore_getopt.c:1176
msgid "missing parameter.\n"
msgstr "fehlender Parameter\n"
#: src/lib/ecore/ecore_getopt.c:1191
#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing callback function!\n"
msgstr "fehlende Rückruffunktion!\n"
#: src/lib/ecore/ecore_getopt.c:1214
#: src/lib/ecore/ecore_getopt.c:1213
msgid "no version was defined.\n"
msgstr "es wurde keine Version definiert.\n"
#: src/lib/ecore/ecore_getopt.c:1228
#: src/lib/ecore/ecore_getopt.c:1227
msgid "no copyright was defined.\n"
msgstr "es wurde kein Copyright definiert.\n"
#: src/lib/ecore/ecore_getopt.c:1242
#: src/lib/ecore/ecore_getopt.c:1241
msgid "no license was defined.\n"
msgstr "es wurde keine Lizenz definiert.\n"
#: src/lib/ecore/ecore_getopt.c:1296
#: src/lib/ecore/ecore_getopt.c:1295
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n"
#: src/lib/ecore/ecore_getopt.c:1329
#: src/lib/ecore/ecore_getopt.c:1328
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "FEHLER: Option --%s benötigt ein Argument!\n"
#: src/lib/ecore/ecore_getopt.c:1365
#: src/lib/ecore/ecore_getopt.c:1364
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n"
#: src/lib/ecore/ecore_getopt.c:1403
#: src/lib/ecore/ecore_getopt.c:1402
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "FEHLER: Option -%c benötigt ein Argument!\n"
#: src/lib/ecore/ecore_getopt.c:1606
#: src/lib/ecore/ecore_getopt.c:1605
msgid "ERROR: no parser provided.\n"
msgstr "FEHLER: Kein Parser bereitgestellt\n"
#: src/lib/ecore/ecore_getopt.c:1611
#: src/lib/ecore/ecore_getopt.c:1610
msgid "ERROR: no values provided.\n"
msgstr "FEHLER: Keine Werte bereitgestellt\n"
#: src/lib/ecore/ecore_getopt.c:1620
#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no arguments provided.\n"
msgstr "FEHLER: Keine Argumente bereitgestellt\n"
#: src/lib/ecore/ecore_getopt.c:1646
#: src/lib/ecore/ecore_getopt.c:1645
msgid "ERROR: invalid options found."
msgstr "FEHLER: Ungültige Optionen gefunden"
#: src/lib/ecore/ecore_getopt.c:1652
#: src/lib/ecore/ecore_getopt.c:1651
#, c-format
msgid " See --%s.\n"
msgstr " Siehe --%s\n"
#: src/lib/ecore/ecore_getopt.c:1654
#: src/lib/ecore/ecore_getopt.c:1653
#, c-format
msgid " See -%c.\n"
msgstr " Siehe -%c\n"
#: src/lib/ecore/ecore_getopt.c:1691
#: src/lib/ecore/ecore_getopt.c:1690
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "FEHLER: Falscher Geometriewert »%s«\n"
#: src/lib/ecore/ecore_getopt.c:1714
#: src/lib/ecore/ecore_getopt.c:1713
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "FEHLER: Falscher Größenwert »%s«\n"

View File

@ -6,13 +6,13 @@ msgid ""
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2009-10-28 11:13+1100\n"
"POT-Creation-Date: 2010-01-16 17:27+0800\n"
"PO-Revision-Date: 2009-12-15 00:56+0200\n"
"Last-Translator: Giorgos Koutsikos <ragecryx@yahoo.gr>\n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Giorgos Koutsikos <ragecryx@yahoo.gr>\n"
#: src/lib/ecore/ecore_getopt.c:73
msgid "Version:"
@ -61,118 +61,112 @@ msgstr "ΣΦΑΛΜΑ: άγνωστη παράμετρος --%s.\n"
msgid "ERROR: unknown option -%c.\n"
msgstr "ΣΦΑΛΜΑ: άγνωστη παράμετρος -%c.\n"
#: src/lib/ecore/ecore_getopt.c:762
#: src/lib/ecore/ecore_getopt.c:761
msgid "ERROR: "
msgstr "ΣΦΑΛΜΑ:"
#: src/lib/ecore/ecore_getopt.c:839
#: src/lib/ecore/ecore_getopt.c:955
#: src/lib/ecore/ecore_getopt.c:968
#: src/lib/ecore/ecore_getopt.c:980
#: src/lib/ecore/ecore_getopt.c:994
#: src/lib/ecore/ecore_getopt.c:1038
#: src/lib/ecore/ecore_getopt.c:1147
#: src/lib/ecore/ecore_getopt.c:1184
#: src/lib/ecore/ecore_getopt.c:838 src/lib/ecore/ecore_getopt.c:954
#: src/lib/ecore/ecore_getopt.c:967 src/lib/ecore/ecore_getopt.c:979
#: src/lib/ecore/ecore_getopt.c:993 src/lib/ecore/ecore_getopt.c:1037
#: src/lib/ecore/ecore_getopt.c:1146 src/lib/ecore/ecore_getopt.c:1183
msgid "value has no pointer set.\n"
msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n"
#: src/lib/ecore/ecore_getopt.c:868
#: src/lib/ecore/ecore_getopt.c:1058
#: src/lib/ecore/ecore_getopt.c:867 src/lib/ecore/ecore_getopt.c:1057
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "άγνωστη τιμή boolean %s.\n"
#: src/lib/ecore/ecore_getopt.c:912
#: src/lib/ecore/ecore_getopt.c:1138
#: src/lib/ecore/ecore_getopt.c:911 src/lib/ecore/ecore_getopt.c:1137
#, c-format
msgid "invalid number format %s\n"
msgstr "άγνωστη μορφή αριθμού %s\n"
#: src/lib/ecore/ecore_getopt.c:1007
#: src/lib/ecore/ecore_getopt.c:1006
#, c-format
msgid "invalid choice \"%s\". Valid values are: "
msgstr "μη-έγκυρη επιλογή \"%s\". Οι τιμές είναι: "
#: src/lib/ecore/ecore_getopt.c:1032
#: src/lib/ecore/ecore_getopt.c:1031
msgid "missing parameter to append.\n"
msgstr "ελλιπής παράμετρος προς επισύναψη.\n"
#: src/lib/ecore/ecore_getopt.c:1128
#: src/lib/ecore/ecore_getopt.c:1127
msgid "could not parse value.\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1177
#: src/lib/ecore/ecore_getopt.c:1176
msgid "missing parameter.\n"
msgstr "ελλιπής παράμετρος.\n"
#: src/lib/ecore/ecore_getopt.c:1191
#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing callback function!\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1214
#: src/lib/ecore/ecore_getopt.c:1213
msgid "no version was defined.\n"
msgstr "δεν έχει οριστεί έκδοση.\n"
#: src/lib/ecore/ecore_getopt.c:1228
#: src/lib/ecore/ecore_getopt.c:1227
msgid "no copyright was defined.\n"
msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n"
#: src/lib/ecore/ecore_getopt.c:1242
#: src/lib/ecore/ecore_getopt.c:1241
msgid "no license was defined.\n"
msgstr "δεν έχει οριστεί άδεια.\n"
#: src/lib/ecore/ecore_getopt.c:1296
#: src/lib/ecore/ecore_getopt.c:1295
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1329
#: src/lib/ecore/ecore_getopt.c:1328
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1365
#: src/lib/ecore/ecore_getopt.c:1364
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1403
#: src/lib/ecore/ecore_getopt.c:1402
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1606
#: src/lib/ecore/ecore_getopt.c:1605
msgid "ERROR: no parser provided.\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1611
#: src/lib/ecore/ecore_getopt.c:1610
msgid "ERROR: no values provided.\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1620
#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no arguments provided.\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1646
#: src/lib/ecore/ecore_getopt.c:1645
msgid "ERROR: invalid options found."
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1652
#: src/lib/ecore/ecore_getopt.c:1651
#, c-format
msgid " See --%s.\n"
msgstr " Δες --%s.\n"
#: src/lib/ecore/ecore_getopt.c:1654
#: src/lib/ecore/ecore_getopt.c:1653
#, c-format
msgid " See -%c.\n"
msgstr " Δες -%c.\n"
#: src/lib/ecore/ecore_getopt.c:1691
#: src/lib/ecore/ecore_getopt.c:1690
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr ""
#: src/lib/ecore/ecore_getopt.c:1714
#: src/lib/ecore/ecore_getopt.c:1713
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr ""
@ -183,20 +177,27 @@ msgstr ""
#~ msgstr ""
#~ "\n"
#~ " "
#~ msgid "true"
#~ msgstr "true"
#~ msgid "false"
#~ msgstr "false"
#~ msgid "f"
#~ msgstr "f"
#~ msgid "no"
#~ msgstr "no"
#~ msgid "off"
#~ msgstr "off"
#~ msgid "t"
#~ msgstr "t"
#~ msgid "yes"
#~ msgstr "yes"
#~ msgid "on"
#~ msgstr "on"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2009-10-28 11:13+1100\n"
"POT-Creation-Date: 2010-01-16 17:27+0800\n"
"PO-Revision-Date: 2009-10-27 19:36+0100\n"
"Last-Translator: quaker66 <quaker66@gmail.com>\n"
"Language-Team: French <Enlightenment i18n French>\n"
@ -62,112 +62,112 @@ msgstr "ERREUR: option inconnue --%s.\n"
msgid "ERROR: unknown option -%c.\n"
msgstr "ERREUR: option inconnue -%c.\n"
#: src/lib/ecore/ecore_getopt.c:762
#: src/lib/ecore/ecore_getopt.c:761
msgid "ERROR: "
msgstr "ERREUR:"
#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
#: src/lib/ecore/ecore_getopt.c:838 src/lib/ecore/ecore_getopt.c:954
#: src/lib/ecore/ecore_getopt.c:967 src/lib/ecore/ecore_getopt.c:979
#: src/lib/ecore/ecore_getopt.c:993 src/lib/ecore/ecore_getopt.c:1037
#: src/lib/ecore/ecore_getopt.c:1146 src/lib/ecore/ecore_getopt.c:1183
msgid "value has no pointer set.\n"
msgstr "la valeur n'a aucun pointeur défini.\n"
#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
#: src/lib/ecore/ecore_getopt.c:867 src/lib/ecore/ecore_getopt.c:1057
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "valeur booléenne inconnue %s.\n"
#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
#: src/lib/ecore/ecore_getopt.c:911 src/lib/ecore/ecore_getopt.c:1137
#, c-format
msgid "invalid number format %s\n"
msgstr "format du nombre non valide %s\n"
#: src/lib/ecore/ecore_getopt.c:1007
#: src/lib/ecore/ecore_getopt.c:1006
#, c-format
msgid "invalid choice \"%s\". Valid values are: "
msgstr "choix non valide \"%s\". Les valeurs valides sont: "
#: src/lib/ecore/ecore_getopt.c:1032
#: src/lib/ecore/ecore_getopt.c:1031
msgid "missing parameter to append.\n"
msgstr "paramètre à ajouter manquant.\n"
#: src/lib/ecore/ecore_getopt.c:1128
#: src/lib/ecore/ecore_getopt.c:1127
msgid "could not parse value.\n"
msgstr "analyse de la valeur impossible.\n"
#: src/lib/ecore/ecore_getopt.c:1177
#: src/lib/ecore/ecore_getopt.c:1176
msgid "missing parameter.\n"
msgstr "paramètre manquant.\n"
#: src/lib/ecore/ecore_getopt.c:1191
#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing callback function!\n"
msgstr "fonction de rappel manquante !\n"
#: src/lib/ecore/ecore_getopt.c:1214
#: src/lib/ecore/ecore_getopt.c:1213
msgid "no version was defined.\n"
msgstr "aucune version n'est définie.\n"
#: src/lib/ecore/ecore_getopt.c:1228
#: src/lib/ecore/ecore_getopt.c:1227
msgid "no copyright was defined.\n"
msgstr "aucun copyright n'est défini.\n"
#: src/lib/ecore/ecore_getopt.c:1242
#: src/lib/ecore/ecore_getopt.c:1241
msgid "no license was defined.\n"
msgstr "aucune licence n'est définie.\n"
#: src/lib/ecore/ecore_getopt.c:1296
#: src/lib/ecore/ecore_getopt.c:1295
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "ERREUR: option inconnue --%s, non prise en compte.\n"
#: src/lib/ecore/ecore_getopt.c:1329
#: src/lib/ecore/ecore_getopt.c:1328
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "ERREUR: l'option --%s requiert un argument !\n"
#: src/lib/ecore/ecore_getopt.c:1365
#: src/lib/ecore/ecore_getopt.c:1364
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "ERREUR: option inconnue -%c, non prise en compte.\n"
#: src/lib/ecore/ecore_getopt.c:1403
#: src/lib/ecore/ecore_getopt.c:1402
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "ERREUR: l'option -%c requiert un argument !\n"
#: src/lib/ecore/ecore_getopt.c:1606
#: src/lib/ecore/ecore_getopt.c:1605
msgid "ERROR: no parser provided.\n"
msgstr "ERREUR: aucun analyseur n'est fourni.\n"
#: src/lib/ecore/ecore_getopt.c:1611
#: src/lib/ecore/ecore_getopt.c:1610
msgid "ERROR: no values provided.\n"
msgstr "ERREUR: aucune valeur n'est fournie.\n"
#: src/lib/ecore/ecore_getopt.c:1620
#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no arguments provided.\n"
msgstr "ERREUR: aucun argument n'est fourni.\n"
#: src/lib/ecore/ecore_getopt.c:1646
#: src/lib/ecore/ecore_getopt.c:1645
msgid "ERROR: invalid options found."
msgstr "ERREUR: options non valides détectées."
#: src/lib/ecore/ecore_getopt.c:1652
#: src/lib/ecore/ecore_getopt.c:1651
#, c-format
msgid " See --%s.\n"
msgstr " Voir --%s.\n"
#: src/lib/ecore/ecore_getopt.c:1654
#: src/lib/ecore/ecore_getopt.c:1653
#, c-format
msgid " See -%c.\n"
msgstr " Voir -%c.\n"
#: src/lib/ecore/ecore_getopt.c:1691
#: src/lib/ecore/ecore_getopt.c:1690
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "ERREUR: valeur géométrique incorrecte '%s'\n"
#: src/lib/ecore/ecore_getopt.c:1714
#: src/lib/ecore/ecore_getopt.c:1713
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "ERREUR: valeur de taille incorrecte '%s'\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2009-10-28 11:13+1100\n"
"POT-Creation-Date: 2010-01-16 17:27+0800\n"
"PO-Revision-Date: 2009-10-27 19:36+0100\n"
"Last-Translator: quaker66 <quaker66@gmail.com>\n"
"Language-Team: none\n"
@ -61,112 +61,112 @@ msgstr "ERRORE: opzione sconosciuta --%s.\n"
msgid "ERROR: unknown option -%c.\n"
msgstr "ERRORE: opzione sconosciuta -%c.\n"
#: src/lib/ecore/ecore_getopt.c:762
#: src/lib/ecore/ecore_getopt.c:761
msgid "ERROR: "
msgstr "ERRORE:"
#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
#: src/lib/ecore/ecore_getopt.c:838 src/lib/ecore/ecore_getopt.c:954
#: src/lib/ecore/ecore_getopt.c:967 src/lib/ecore/ecore_getopt.c:979
#: src/lib/ecore/ecore_getopt.c:993 src/lib/ecore/ecore_getopt.c:1037
#: src/lib/ecore/ecore_getopt.c:1146 src/lib/ecore/ecore_getopt.c:1183
msgid "value has no pointer set.\n"
msgstr "il valore non ha puntatori impostati.\n"
#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
#: src/lib/ecore/ecore_getopt.c:867 src/lib/ecore/ecore_getopt.c:1057
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "valore booleano sconosciuto %s.\n"
#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
#: src/lib/ecore/ecore_getopt.c:911 src/lib/ecore/ecore_getopt.c:1137
#, c-format
msgid "invalid number format %s\n"
msgstr "formato numero non valido %s\n"
#: src/lib/ecore/ecore_getopt.c:1007
#: src/lib/ecore/ecore_getopt.c:1006
#, c-format
msgid "invalid choice \"%s\". Valid values are: "
msgstr "scelta non valida \"%s\". I valori ammessi sono: "
#: src/lib/ecore/ecore_getopt.c:1032
#: src/lib/ecore/ecore_getopt.c:1031
msgid "missing parameter to append.\n"
msgstr "parametro da appendere mancante.\n"
#: src/lib/ecore/ecore_getopt.c:1128
#: src/lib/ecore/ecore_getopt.c:1127
msgid "could not parse value.\n"
msgstr "impossibile il parsing del valore.\n"
#: src/lib/ecore/ecore_getopt.c:1177
#: src/lib/ecore/ecore_getopt.c:1176
msgid "missing parameter.\n"
msgstr "parametro mancante.\n"
#: src/lib/ecore/ecore_getopt.c:1191
#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing callback function!\n"
msgstr "funzione callback mancante!\n"
#: src/lib/ecore/ecore_getopt.c:1214
#: src/lib/ecore/ecore_getopt.c:1213
msgid "no version was defined.\n"
msgstr "nessuna versione definita.\n"
#: src/lib/ecore/ecore_getopt.c:1228
#: src/lib/ecore/ecore_getopt.c:1227
msgid "no copyright was defined.\n"
msgstr "nessun copyright definito.\n"
#: src/lib/ecore/ecore_getopt.c:1242
#: src/lib/ecore/ecore_getopt.c:1241
msgid "no license was defined.\n"
msgstr "nessuna licenza definita.\n"
#: src/lib/ecore/ecore_getopt.c:1296
#: src/lib/ecore/ecore_getopt.c:1295
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
#: src/lib/ecore/ecore_getopt.c:1329
#: src/lib/ecore/ecore_getopt.c:1328
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "ERRORE: l'opzione --%s richiede un argomento!\n"
#: src/lib/ecore/ecore_getopt.c:1365
#: src/lib/ecore/ecore_getopt.c:1364
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
#: src/lib/ecore/ecore_getopt.c:1403
#: src/lib/ecore/ecore_getopt.c:1402
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "ERRORE: l'opzione -%c richiede un argomento!\n"
#: src/lib/ecore/ecore_getopt.c:1606
#: src/lib/ecore/ecore_getopt.c:1605
msgid "ERROR: no parser provided.\n"
msgstr "ERRORE: nessun parser fornito.\n"
#: src/lib/ecore/ecore_getopt.c:1611
#: src/lib/ecore/ecore_getopt.c:1610
msgid "ERROR: no values provided.\n"
msgstr "ERRORE: nessun valore fornito.\n"
#: src/lib/ecore/ecore_getopt.c:1620
#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no arguments provided.\n"
msgstr "ERRORE: nessun argomento fornito.\n"
#: src/lib/ecore/ecore_getopt.c:1646
#: src/lib/ecore/ecore_getopt.c:1645
msgid "ERROR: invalid options found."
msgstr "ERRORE: trovate opzioni non valide."
#: src/lib/ecore/ecore_getopt.c:1652
#: src/lib/ecore/ecore_getopt.c:1651
#, c-format
msgid " See --%s.\n"
msgstr " Vedere --%s.\n"
#: src/lib/ecore/ecore_getopt.c:1654
#: src/lib/ecore/ecore_getopt.c:1653
#, c-format
msgid " See -%c.\n"
msgstr " Vedere -%c.\n"
#: src/lib/ecore/ecore_getopt.c:1691
#: src/lib/ecore/ecore_getopt.c:1690
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "ERRORE: valore geometrico non corretto '%s'\n"
#: src/lib/ecore/ecore_getopt.c:1714
#: src/lib/ecore/ecore_getopt.c:1713
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "ERRORE: valore dimensione non corretto '%s'\n"

View File

@ -219,6 +219,51 @@ _ecore_evas_buffer_cb_mouse_wheel(void *data, Evas *e __UNUSED__, Evas_Object *o
evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z, ev->timestamp, NULL);
}
static void
_ecore_evas_buffer_cb_multi_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Ecore_Evas *ee;
Evas_Event_Multi_Down *ev;
Evas_Coord x, y;
ee = data;
ev = event_info;
x = ev->canvas.x;
y = ev->canvas.y;
_ecore_evas_buffer_coord_translate(ee, &x, &y);
evas_event_feed_multi_down(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->flags, ev->timestamp, NULL);
}
static void
_ecore_evas_buffer_cb_multi_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Ecore_Evas *ee;
Evas_Event_Multi_Up *ev;
Evas_Coord x, y;
ee = data;
ev = event_info;
x = ev->canvas.x;
y = ev->canvas.y;
_ecore_evas_buffer_coord_translate(ee, &x, &y);
evas_event_feed_multi_up(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->flags, ev->timestamp, NULL);
}
static void
_ecore_evas_buffer_cb_multi_move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Ecore_Evas *ee;
Evas_Event_Multi_Move *ev;
Evas_Coord x, y;
ee = data;
ev = event_info;
x = ev->cur.canvas.x;
y = ev->cur.canvas.y;
_ecore_evas_buffer_coord_translate(ee, &x, &y);
evas_event_feed_multi_move(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->timestamp, NULL);
}
static void
_ecore_evas_buffer_cb_free(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
@ -586,6 +631,15 @@ ecore_evas_object_image_new(Ecore_Evas *ee_target)
evas_object_event_callback_add(ee->engine.buffer.image,
EVAS_CALLBACK_MOUSE_WHEEL,
_ecore_evas_buffer_cb_mouse_wheel, ee);
evas_object_event_callback_add(ee->engine.buffer.image,
EVAS_CALLBACK_MULTI_DOWN,
_ecore_evas_buffer_cb_multi_down, ee);
evas_object_event_callback_add(ee->engine.buffer.image,
EVAS_CALLBACK_MULTI_UP,
_ecore_evas_buffer_cb_multi_up, ee);
evas_object_event_callback_add(ee->engine.buffer.image,
EVAS_CALLBACK_MULTI_MOVE,
_ecore_evas_buffer_cb_multi_move, ee);
evas_object_event_callback_add(ee->engine.buffer.image,
EVAS_CALLBACK_FREE,
_ecore_evas_buffer_cb_free, ee);

View File

@ -1508,6 +1508,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
ecore_x_window_shape_mask_set(ee->prop.window, 0);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
if (ee->prop.borderless)
ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
@ -1581,6 +1582,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
ecore_x_window_shape_mask_set(ee->prop.window, 0);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
if (ee->prop.borderless)
ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
@ -1647,6 +1649,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
ecore_x_window_shape_mask_set(ee->prop.window, 0);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
if (ee->prop.borderless)
ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
@ -2453,6 +2456,7 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent,
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
return ee;
}
@ -2555,6 +2559,7 @@ ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window wi
{
*winp = win;
ee->engine.x.win_extra = eina_list_append(ee->engine.x.win_extra, winp);
ecore_x_input_multi_select(win);
ecore_event_window_register(win, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
}
}
@ -2643,6 +2648,7 @@ ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent,
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
# endif /* HAVE_ECORE_X_XCB */
@ -2892,6 +2898,7 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent,
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
return ee;
}
@ -3103,6 +3110,7 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent,
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_x_input_multi_select(ee->prop.window);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
return ee;
}
@ -3205,6 +3213,7 @@ ecore_evas_software_x11_16_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window
{
*winp = win;
ee->engine.x.win_extra = eina_list_append(ee->engine.x.win_extra, winp);
ecore_x_input_multi_select(win);
ecore_event_window_register(win, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
}
}

View File

@ -96,6 +96,11 @@ struct _Ecore_Event_Mouse_Button
int x;
int y;
} root;
int device;
int radius;
int radius_x;
int radius_y;
};
typedef struct _Ecore_Event_Mouse_Wheel Ecore_Event_Mouse_Wheel;
@ -140,6 +145,11 @@ struct _Ecore_Event_Mouse_Move
int x;
int y;
} root;
int device;
int radius;
int radius_x;
int radius_y;
};
typedef struct _Ecore_Event_Mouse_IO Ecore_Event_Mouse_IO;

View File

@ -153,13 +153,20 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr
lookup = _ecore_event_window_match(e->window);
if (!lookup) return 1;
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
if (e->double_click) flags |= EVAS_BUTTON_DOUBLE_CLICK;
if (e->triple_click) flags |= EVAS_BUTTON_TRIPLE_CLICK;
if (press == ECORE_DOWN)
evas_event_feed_mouse_down(lookup->evas, e->buttons, flags, e->timestamp, NULL);
if (e->device == 0)
{
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
if (press == ECORE_DOWN)
evas_event_feed_mouse_down(lookup->evas, e->buttons, flags, e->timestamp, NULL);
else
evas_event_feed_mouse_up(lookup->evas, e->buttons, flags, e->timestamp, NULL);
}
else
evas_event_feed_mouse_up(lookup->evas, e->buttons, flags, e->timestamp, NULL);
{
// FIXME: multi-touch feed
}
return 1;
}
@ -235,8 +242,15 @@ ecore_event_evas_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *ev
e = event;
lookup = _ecore_event_window_match(e->window);
if (!lookup) return 1;
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
if (e->device == 0)
{
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
}
else
{
// FIXME: multi-touch feed
}
return 1;
}

View File

@ -73,6 +73,8 @@ typedef Ecore_X_ID Ecore_X_Randr_Crtc;
typedef Ecore_X_ID Ecore_X_Randr_Mode;
typedef unsigned short Ecore_X_Randr_Size_ID;
typedef Ecore_X_ID Ecore_X_Device;
#ifdef __cplusplus
extern "C" {
#endif
@ -1820,6 +1822,8 @@ EAPI void ecore_x_image_free(Ecore_X_Image *im);
EAPI void ecore_x_image_get(Ecore_X_Image *im, Ecore_X_Drawable draw, int x, int y, int sx, int sy, int w, int h);
EAPI void ecore_x_image_put(Ecore_X_Image *im, Ecore_X_Drawable draw, int x, int y, int sx, int sy, int w, int h);
EAPI void *ecore_x_image_data_get(Ecore_X_Image *im, int *bpl, int *rows, int *bpp);
EAPI Eina_Bool ecore_x_input_multi_select(Ecore_X_Window win);
#ifdef __cplusplus
}

View File

@ -58,7 +58,8 @@ ecore_x_cursor.c \
ecore_x_test.c \
ecore_x_atoms.c \
ecore_x_region.c \
ecore_x_image.c
ecore_x_image.c \
ecore_x_xi2.c
libecore_x_xlib_la_LIBADD = \
@Xcursor_libs@ \

View File

@ -199,7 +199,8 @@ _ecore_mouse_move(unsigned int timestamp, unsigned int xmodifiers,
unsigned int event_window,
unsigned int window,
unsigned int root_win,
int same_screen)
int same_screen,
int dev, int radx, int rady)
{
Ecore_Event_Mouse_Move *e;
Ecore_Event *event;
@ -219,6 +220,11 @@ _ecore_mouse_move(unsigned int timestamp, unsigned int xmodifiers,
e->root.x = x_root;
e->root.y = y_root;
e->device = dev;
e->radius = (radx + rady) / 2;
e->radius_x = radx;
e->radius_y = rady;
event = ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e, _ecore_x_event_free_mouse_move, NULL);
_ecore_x_event_last_time = timestamp;
@ -353,7 +359,8 @@ _ecore_mouse_button(int event,
unsigned int event_window,
unsigned int window,
unsigned int root_win,
int same_screen)
int same_screen,
int dev, int radx, int rady)
{
Ecore_Event_Mouse_Button *e;
@ -402,6 +409,11 @@ _ecore_mouse_button(int event,
&& !e->double_click
&& !e->triple_click)
_ecore_x_mouse_up_count = 0;
e->device = dev;
e->radius = (radx + rady) / 2;
e->radius_x = radx;
e->radius_y = rady;
_ecore_x_event_last_time = e->timestamp;
_ecore_x_event_last_win = e->window;
@ -413,6 +425,10 @@ _ecore_mouse_button(int event,
return e;
}
#ifdef ECORE_XI2
extern int _ecore_x_xi2_opcode;
#endif
void
_ecore_x_event_handle_any_event(XEvent *xevent)
{
@ -420,6 +436,72 @@ _ecore_x_event_handle_any_event(XEvent *xevent)
memcpy(ev, xevent, sizeof(XEvent));
ecore_event_add(ECORE_X_EVENT_ANY, ev, NULL, NULL);
#ifdef ECORE_XI2
if (xevent->xcookie.type == GenericEvent &&
xevent->xcookie.extension == opcode)
{
if (XGetEventData(_ecore_x_disp &(xevent->xcookie)))
{
XIDeviceEvent* evd = (XIDeviceEvent *)(xevent->xcookie.data);
int devid = evd->deviceid;
//printf("deviceID = %d\n", devid);
switch (xevent->xcookie.evtype)
{
case XI_Motion:
_ecore_mouse_move
(xevent->xcookie.time, // ???
0, // state
evd->event_x, evd->event_y,
evd->root_x, evd->root_y,
xevent->xcookie.window, // ???
(xevent->xbutton.subwindow ? xevent->xbutton.subwindow : xevent->xbutton.window), // ???
xevent->xcookie.root, // ???
xevent->xcookie.same_screen, // ???
devid, 1, 1);
//printf("motion\n");
printf("=");
break;
case XI_ButtonPress:
_ecore_mouse_button
(ECORE_EVENT_MOUSE_BUTTON_DOWN,
(xevent->xcookie.time, // ???
0, // state
0, // button
evd->event_x, evd->event_y,
evd->root_x, evd->root_y,
xevent->xcookie.window, // ???
(xevent->xbutton.subwindow ? xevent->xbutton.subwindow : xevent->xbutton.window), // ???
xevent->xcookie.root, // ???
xevent->xcookie.same_screen, // ???
devid, 1, 1);
//printf("abs X:%f Y:%f - ", evd->root_x, evd->root_y);
//printf("win X:%f Y:%f\n", evd->event_x, evd->event_y);
printf("[[");
break;
case XI_ButtonRelease:
_ecore_mouse_button
(ECORE_EVENT_MOUSE_BUTTON_UP,
(xevent->xcookie.time, // ???
0, // state
0, // button
evd->event_x, evd->event_y,
evd->root_x, evd->root_y,
xevent->xcookie.window, // ???
(xevent->xbutton.subwindow ? xevent->xbutton.subwindow : xevent->xbutton.window), // ???
xevent->xcookie.root, // ???
xevent->xcookie.same_screen, // ???
devid, 1, 1);
//printf("unclick\n");
printf("]]\n");
break;
}
}
}
XFreeEventData(_ecore_x_disp &(xevent->xcookie));
#endif
}
void
@ -505,7 +587,7 @@ _ecore_x_event_handle_button_press(XEvent *xevent)
xevent->xbutton.window,
(xevent->xbutton.subwindow ? xevent->xbutton.subwindow : xevent->xbutton.window),
xevent->xbutton.root,
xevent->xbutton.same_screen);
xevent->xbutton.same_screen, 0, 1, 1);
}
{
Ecore_Event_Mouse_Button *e;
@ -531,7 +613,8 @@ _ecore_x_event_handle_button_press(XEvent *xevent)
xevent->xbutton.x, xevent->xbutton.y,
xevent->xbutton.x_root, xevent->xbutton.y_root,
event_window, window,
xevent->xbutton.root, xevent->xbutton.same_screen);
xevent->xbutton.root, xevent->xbutton.same_screen,
0, 1, 1);
if (e)
for (i = 0; i < _ecore_window_grabs_num; i++)
{
@ -586,7 +669,7 @@ _ecore_x_event_handle_button_release(XEvent *xevent)
xevent->xbutton.window,
(xevent->xbutton.subwindow ? xevent->xbutton.subwindow : xevent->xbutton.window),
xevent->xbutton.root,
xevent->xbutton.same_screen);
xevent->xbutton.same_screen, 0, 1, 1);
_ecore_mouse_button(ECORE_EVENT_MOUSE_BUTTON_UP,
xevent->xbutton.time, xevent->xbutton.state,
@ -596,7 +679,8 @@ _ecore_x_event_handle_button_release(XEvent *xevent)
xevent->xbutton.window,
(xevent->xbutton.subwindow ? xevent->xbutton.subwindow : xevent->xbutton.window),
xevent->xbutton.root,
xevent->xbutton.same_screen);
xevent->xbutton.same_screen,
0, 1, 1);
}
}
@ -617,7 +701,7 @@ _ecore_x_event_handle_motion_notify(XEvent *xevent)
xevent->xmotion.window,
(xevent->xmotion.subwindow ? xevent->xmotion.subwindow : xevent->xmotion.window),
xevent->xmotion.root,
xevent->xmotion.same_screen);
xevent->xmotion.same_screen, 0, 1, 1);
_ecore_x_last_event_mouse_move = 1;
@ -636,7 +720,7 @@ _ecore_x_event_handle_enter_notify(XEvent *xevent)
xevent->xcrossing.window,
(xevent->xcrossing.subwindow ? xevent->xcrossing.subwindow : xevent->xcrossing.window),
xevent->xcrossing.root,
xevent->xcrossing.same_screen);
xevent->xcrossing.same_screen, 0, 1, 1);
}
{
Ecore_X_Event_Mouse_In *e;
@ -689,7 +773,7 @@ _ecore_x_event_handle_leave_notify(XEvent *xevent)
xevent->xcrossing.window,
(xevent->xcrossing.subwindow ? xevent->xcrossing.subwindow : xevent->xcrossing.window),
xevent->xcrossing.root,
xevent->xcrossing.same_screen);
xevent->xcrossing.same_screen, 0, 1, 1);
}
{
Ecore_X_Event_Mouse_Out *e;

View File

@ -50,6 +50,9 @@
#ifdef ECORE_XKB
#include <X11/XKBlib.h>
#endif
#ifdef ECORE_XI2
#include <X11/extensions/XInput2.h>
#endif
#include "Ecore.h"
#include "ecore_private.h"

View File

@ -0,0 +1,86 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <string.h>
#include "Ecore.h"
#include "ecore_x_private.h"
#include "Ecore_X.h"
#ifdef ECORE_XI2
int _ecore_x_xi2_opcode = -1;
#endif
EAPI Eina_Bool
ecore_x_input_multi_select(Ecore_X_Window win)
{
#ifdef ECORE_XI2
int find = 0;
static int num;
static XIDeviceInfo *devs = NULL;
static int checked = 0;
static int check_ret = 1;
if (!checked)
{
int event, error;
int major = 2, minor = 0;
checked = 1;
if (!XQueryExtension(_ecore_x_disp, "XInputExtension",
&_ecore_x_xi2_opcode, &event, &error))
{
_ecore_x_xi2_opcode = -1;
check_ret = 0;
return 0;
}
if (XIQueryVersion(_ecore_x_disp, &major, &minor) == BadRequest)
{
_ecore_x_xi2_opcode = -1;
check_ret = 0;
return 0;
}
devs = XIQueryDevice(_ecore_x_disp, XIAllDevices, &num);
// XIFreeDeviceInfo(devs);
}
else
{
if (!check_ret) return 0;
}
if (devs)
{
int i;
for (i = 0; i < num; i++)
{
XIDeviceInfo *dev = &(devs[i]);
if (dev->use == XIFloatingSlave)
{
XIEventMask eventmask;
unsigned char mask[1] = { 0 };
eventmask.deviceid = dev->deviceid;
eventmask.mask_len = sizeof(mask);
eventmask.mask = mask;
XISetMask(mask, XI_ButtonPress);
XISetMask(mask, XI_ButtonRelease);
XISetMask(mask, XI_Motion);
XISelectEvents(_ecore_x_disp, win, &eventmask, 1);
find = 1;
}
}
}
return find;
#else
return 0;
#endif
}