]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid disabling device multiple times while handling XI attachment events
authorPo Lu <luangruo@yahoo.com>
Wed, 17 Aug 2022 02:20:25 +0000 (10:20 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 17 Aug 2022 02:20:25 +0000 (10:20 +0800)
* src/xterm.c (handle_one_xevent): Avoid disabling devices if we
notice it has been disabled while handling XISlaveDetached or
XISlaveAttached.

src/xterm.c

index 7487450d649cde62989385c78ba3c13c8131cf35..a40440e0dad2acd4b0360c27cd7486a05ccb5ee4 100644 (file)
@@ -22653,13 +22653,16 @@ handle_one_xevent (struct x_display_info *dpyinfo,
 
                      if (info)
                        {
-                         if (device && info->enabled)
+                         if (device)
                            {
                              device->use = info->use;
                              device->attachment = info->attachment;
                            }
-                         else if (device)
-                           disabled[n_disabled++] = hev->info[i].deviceid;
+
+                         /* device could have been disabled by now.
+                            But instead of removing it immediately,
+                            wait for XIDeviceDisabled, or internal
+                            state could be left inconsistent.  */
 
                          XIFreeDeviceInfo (info);
                        }