Hi all,
I'm sending out this as follow-up of my previous e-mail [1] about dinput
and background input processing, hopefully to get some comments and to
discuss about the idea and the implementation.
The patch series also depends on some additional dinput8 patches I
already sent to the mailing list, to implement dinput8 devices on top of
raw input, but I think they can be independent.
There's a few points I believe that may be of concern, the main one
being a privacy issue. Allowing Wine …
[View More]applications to listen to input
while in background would allow keyloggers to work in Wine. One could
argue though that this implementation does not use any priviledged
method for that, and that Xlib allows any application to listen to raw
input events in background. I guess there may be some ways to get an
exclusive device access, to prevent other apps to get the events but
I didn't investigate this part.
Also, this is currently only used for Wine dinput8 implementation, so
we could also add some internal mechanism to enforce only Wine dinput8
to be able to access these events.
[1] https://www.winehq.org/pipermail/wine-devel/2019-August/149941.html
--
Rémi Bernon <rbernon(a)codeweavers.com>
Derek Lesho (1):
user32: Add support for RIDEV_NOLEGACY flag.
Rémi Bernon (7):
server: Add send_hardware_message flags to hint raw input translation.
user32: Add __wine_send_input flags to hint raw input translation.
server: Implement raw mouse/keyboard input message broadcast.
user32: Add support for RIDEV_INPUTSINK flag.
winex11.drv: Listen to XInput2 master devices only.
winex11.drv: Listen to RawMotion and RawButton* events in the desktop
thread.
winex11.drv: Listen to RawKey* events in the desktop thread.
dlls/user32/input.c | 4 +-
dlls/user32/rawinput.c | 9 ++-
dlls/user32/tests/rawinput.c | 2 -
dlls/user32/user32.spec | 2 +-
dlls/wineandroid.drv/keyboard.c | 2 +-
dlls/wineandroid.drv/window.c | 4 +-
dlls/winemac.drv/ime.c | 4 +-
dlls/winemac.drv/keyboard.c | 2 +-
dlls/winemac.drv/mouse.c | 2 +-
dlls/winex11.drv/event.c | 42 +---------
dlls/winex11.drv/keyboard.c | 42 +++++++++-
dlls/winex11.drv/mouse.c | 131 +++++++++++++++++++-------------
dlls/winex11.drv/x11drv.h | 7 +-
dlls/winex11.drv/x11drv_main.c | 5 ++
include/winuser.h | 2 +-
server/protocol.def | 3 +
server/queue.c | 106 +++++++++++++++++++++-----
17 files changed, 236 insertions(+), 133 deletions(-)
--
2.23.0
[View Less]
The TestBot should already be respecting that rule.
But starting a process to operate on a VM always goes through VM::Run()
so enforce this rule by checking that the VM's ChildPid field is not
already set before starting a new process.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
testbot/lib/WineTestBot/VMs.pm | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/testbot/lib/WineTestBot/VMs.pm b/testbot/lib/WineTestBot/VMs.pm
index 78e066fe9..…
[View More]2bf350435 100644
--- a/testbot/lib/WineTestBot/VMs.pm
+++ b/testbot/lib/WineTestBot/VMs.pm
@@ -154,6 +154,7 @@ use WineTestBot::LibvirtDomain;
use WineTestBot::Missions;
use WineTestBot::RecordGroups;
use WineTestBot::TestAgent;
+use WineTestBot::Utils;
sub _initialize($$)
@@ -374,9 +375,16 @@ sub OnSaved($)
sub Run($$$$$$)
{
my ($self, $NewStatus, $Args, $ChildTimeout, $ChildSetup, $SetupData) = @_;
-
my $Tool = basename($Args->[0]);
+ if (defined $self->ChildPid)
+ {
+ my $ErrMessage = "Cannot run ". ShArgv2Cmd(@$Args) ." because the ". $self->ChildPid ." process is already using the ". $self->Name ." VM";
+ require WineTestBot::Log;
+ WineTestBot::Log::LogMsg("$ErrMessage\n");
+ return $ErrMessage;
+ }
+
# There are two $VM->ChildPid race conditions to avoid:
# - Between the child process and new calls to ScheduleJobs().
# We cannot leave setting ChildPid to the child process because then it
--
2.20.1
[View Less]
Otherwise localized family name of IPA font isn't available in DirectWrite.
While Wine enumerates localized name in GDI.
N.B. IPA font family (e.g. IPA Mincho) is a bit tricky. It has Japanese
(Kanji) name for Japanese Windows, though it has English (ASCII) name for
Japanese Macintosh. And due to record order, Wine's DirectWrite chooses
Macintosh one.
Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com>
---
dlls/dwrite/opentype.c | 52 ++++++++++++++++++--------------------------------…
[View More]
1 file changed, 19 insertions(+), 33 deletions(-)
[View Less]