قائمة النافذة المنبثقة لاستشهاد النص غير مستجيبة على أندرويد

تشخيص الذكاء الاصطناعي (GPT 5.6 Sol Ultra) في Codex (إذا كان ذلك مفيداً):

تم العثور عليه: تسرب Discourse Reactions حالة “عدم تحديد النص” العالمية.

  • تضيف عملية touchstart للتفاعل فئة discourse-reactions-no-select إلى عنصر <html> في plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:222.
  • تطبق هذه الفئة user-select: none وتُعطّل مظهر النقر الطويل الخاص بـ WebKit对整个 المستند في plugins/discourse-reactions/assets/stylesheets/common/discourse-reactions.scss:1.
  • إذا بدأ التمرير العمودي فوق زر التفاعل، فإن plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:249 يبطل الإيماءة دون إزالة الفئة.
  • ثم يعود plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:257 مبكراً، تاركاً الفئة خلفه بشكل دائم.
  • كما لا يوجد تنظيف لحدث touchcancel أو عند تدمير المكون.

الإزالة الوحيدة موجودة في plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:690. وهذا يفسر الحل البديل المبلغ عنه (The popup menu for quoting text is unresponsive on Android): فتح وإغلاق نافذة التفاعلات المنبثقة يستدعي collapseAllPanels()، مما يعيد إمكانية التحديد.

شريط أدوات الاقتباس نفسه يتأثر بالتبعيات—he يستمع إلى حدث selectionchange ويتطلب تحديداً حقيقياً للمتصفح في frontend/discourse/app/components/post-text-selection.gjs:58. ومع وجود user-select: none عالمياً، لا يقوم Android أبداً بإنشاء هذا التحديد.

تؤكد السجلات التاريخية على هذه العائلة من الأخطاء: إصلاح التمرير لعام 2023 (FIX: prevents triggering a reaction while scrolling (#224) · discourse/discourse-reactions@d1970cf · GitHub) قدم الإرجاع المبكر للإيماءة الباطلة، وإصلاح جزئي لعام 2024 (FIX: couldn't select text after dismissing a reaction (#296) · discourse/discourse-reactions@c6710ef · GitHub) نقل التنظيف إلى إغلاق اللوحة لكنه ترك مسارات التمرير والإلغاء دون تغطية.

يجب أن يقوم الإصلاح بإزالة الفئة في كل دورة حياة للمس اللمسي المكتمل أو المرفوض أو الملغي أو المدمر، مع إجراء اختبارات انحدار لـ touchstart → touchmove → touchend وtouchcancel.

3 إعجابات