emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 75bdf15c29: Update XI2 device use on slave attachment and detachm


From: Po Lu
Subject: master 75bdf15c29: Update XI2 device use on slave attachment and detachment
Date: Sat, 9 Apr 2022 23:07:44 -0400 (EDT)

branch: master
commit 75bdf15c2972e216a2c10a7562d96ad217192356
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Update XI2 device use on slave attachment and detachment
    
    * src/xterm.c (handle_one_xevent): Update whether device is a
    master device when it's detached or attached.
---
 src/xterm.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/xterm.c b/src/xterm.c
index 14a1506604..34b7c026be 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -17741,6 +17741,26 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                    }
                  else if (hev->info[i].flags & XIDeviceDisabled)
                    disabled[n_disabled++] = hev->info[i].deviceid;
+                 else if (hev->info[i].flags & XISlaveDetached
+                          || hev->info[i].flags & XISlaveAttached)
+                   {
+                     device = xi_device_from_id (dpyinfo, 
hev->info[i].deviceid);
+                     x_catch_errors (dpyinfo->display);
+                     info = XIQueryDevice (dpyinfo->display, 
hev->info[i].deviceid,
+                                           &ndevices);
+                     x_uncatch_errors ();
+
+                     if (info)
+                       {
+                         if (device && info->enabled)
+                           device->master_p = (info->use == XIMasterKeyboard
+                                               || info->use == 
XIMasterPointer);
+                         else if (device)
+                           disabled[n_disabled++] = hev->info[i].deviceid;
+
+                         XIFreeDeviceInfo (info);
+                       }
+                   }
                }
 
              if (n_disabled)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]