जावा अनुप्रयोगों के माउस पॉइंटर ऑफ़सेट को भयानक WM में कैसे ठीक करें?


15

3.5.5 (अब तक) के माध्यम से विस्मयकारी WM v3.5.2 में कैसे पुन: पेश करें:

  1. OpenJDK या Oracle जावा 7 स्थापित करें । इस बग को दोनों के साथ देखा गया है।
  2. डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ एक नया भयानक WM सत्र प्रारंभ करें
  3. या तो शुरू jEdit या PyCharm । इस बग को दोनों के साथ देखा गया है।
    • माउस पॉइंटर को इधर-उधर खिसकाएँ, और देखें कि यह इस आधार पर बदलता है कि आप कोड, प्रोजेक्ट फ़ाइलों या मेनू पर मँडरा रहे हैं या नहीं। यह सामान्य रूप से काम करना चाहिए।
    • फ़ाइल मेनू पर क्लिक करें और जारी करें , उप-मेनू में से एक दर्ज करें, और निरीक्षण करें कि माउस पॉइंटर के तहत आइटम को हर समय कैसे केंद्रित किया जाता है।
  4. प्रेस Mod4+ Spaceबार-बार जब तक फ्लोटिंग लेआउट सक्रिय नहीं होता है (एप्लिकेशन लगभग पूर्ण स्क्रीन होगा) या उसी टैग में एक और एप्लिकेशन खोलें।

इस बिंदु पर, मैं उम्मीद करूंगा कि माउस "सामान्य" अनुप्रयोगों के साथ ऐसा व्यवहार करेगा। इसके बजाय मैं निम्नलिखित का पालन करता हूं:

  • माउस के साथ मेनू पर क्लिक और नेविगेट करते समय, माउस पॉइंटर और फ़ोकस किए गए मेनू आइटम एक-दूसरे से लंबवत ऑफसेट होंगे, जो कि स्थिति पट्टी की ऊंचाई के समान पिक्सेल की समान मात्रा में प्रतीत होता है।
  • पहले की तरह विविध वस्तुओं पर मंडराते समय, कर्सर आइकन सेट किया जाएगा जैसे कि माउस पॉइंटर स्क्रीन पर अधिक था। उदाहरण के लिए, पाठ की शीर्ष रेखा पर मँडराते हुए आप एक पाठ कर्सर नहीं देखेंगे।

यह ऐसा है जैसे कि कुछ पता नहीं लगाता है कि खिड़की के निर्देशांक बदल गए हैं।

एक समान लेकिन बहुत अधिक कष्टप्रद बग तब होता है जब आप एक ही टैग में एक और एप्लिकेशन खोलते हैं - माउस का व्यवहार ऐसा होता है जैसे कि विंडो बिल्कुल भी स्थानांतरित नहीं हुई थी।

जब आप किसी अन्य टैग को टॉगल करते हैं जिसमें पहले से ही एक एप्लिकेशन खुला है - "वर्चुअल माउस डेस्कटॉप" को प्राथमिक स्क्रीन के शीर्ष बाईं ओर ले जाया जाता है ।

चूंकि ये बग्स OpenJDK और Oracle जावा दोनों में देखे गए हैं, विभिन्न जावा अनुप्रयोगों के साथ, यह बहुत संभावना है कि बग बहुत बढ़िया WM में है।

संबंधित प्रश्न , लेख । मैंने कोशिश की _JAVA_AWT_WM_NONREPARENTINGऔर wmnameठीक कर दिया, लेकिन नहीं गया।


मुझे लगता है कि नवीनतम विस्मयकारी पुनर्मूल्यांकन WM है इसलिए NONREPARENTING विकल्प की आवश्यकता नहीं होनी चाहिए।

जवाबों:


1

आपको मेरे अनुभव में, विंडो प्रबंधक के लिए स्रोत पर विशेष परिभाषाएं जोड़ने की आवश्यकता है।

मुझे MATE डेस्कटॉप के marcoविंडो मैनेजर में कुछ साल पहले ऐसा हुआ था ; 'फिक्स' मार्को को अपनी मूल परियोजना, मेटासिटी होने का दिखावा करना था, जेडीके के अंतर्निहित सुधार के लिए मेटासिटी का उपयोग करना था।

से src/core/display.c:

meta_prop_set_utf8_string_hint (the_display,
                                the_display->leader_window,
                                the_display->atom__NET_WM_NAME,
                                "Metacity (Marco)");

यह वेब ब्राउज़र की दुनिया में उपयोगकर्ता एजेंट स्ट्रिंग के साथ क्या हुआ, यह तय करता है, लेकिन यह मेरे लिए काम करता है।

इसके अतिरिक्त, आर्क विकी भी अन्य विंडो प्रबंधकों को प्रतिरूपण करने पर अनुभाग में विस्मयकारी रूप से WM का उल्लेख करता है, जहाँ यह अनुशंसा करता है wmname :
https://wiki.archlinux.org/index.php/Java#Impersonate_another_window_grager

JVM को यह विश्वास दिलाने के लिए कि आप एक अलग विंडो मैनेजर चला रहे हैं, आप बेकार से wmname का उपयोग कर सकते हैं। यह विस्मयकारी या ड्वाम या रैटपोइसन जैसे विंडो प्रबंधकों में होने वाले जावा GUI के एक रेंडरिंग मुद्दे को हल कर सकता है।

$ wmname LG3D

Wmname कमांड जारी करने के बाद आपको प्रश्न में एप्लिकेशन को पुनरारंभ करना होगा।

यह काम करता है क्योंकि JVM में ज्ञात, नॉन-री-पैरेंटिंग विंडो प्रबंधकों की एक हार्ड-कोडित सूची है। अधिकतम विडंबना के लिए, कुछ उपयोगकर्ता जावा में सन द्वारा लिखित गैर-पुन: पेरेंटिंग विंडो मैनेजर को LG3D को प्रतिरूपित करना पसंद करते हैं।


-2

यह लिनक्स पर जावा से संबंधित बग ज्ञात करता है: https://netbeans.org/bugzilla/show_bug.cgi?id=227754

ऊपर दिए गए URL पर आप NetBeans IDE के लिए वर्कअराउंड पा सकते हैं, वर्कअराउंड जो कि जावा ऐप के लिए काम करता है, अधिकतम बटन दबाकर जावा ऐप को अधिकतम करने के लिए नहीं है, बल्कि आपको पसंद करने के लिए मैन्युअल रूप से विंडो का आकार बदलने के लिए है। कृपया जानकारी साझा करें अगर यह आपकी मदद करता है, धन्यवाद!


विस्मयकारी WM में अधिकतम करने के लिए कोई बटन नहीं है। फ्लोटिंग लेआउट का उपयोग करने से यह और भी खराब हो गया (लेआउट बदलने तक पूरी विंडो ग्रे है), और "ओपन" JDK बग्स को देखने के लिए पंजीकरण भी लागू करता है।
l0b0

वास्तव में, ऐसा लगता है कि Openjdk.java.net को उपयोगकर्ताओं को "योगदानकर्ता" होने के लिए Oracle योगदानकर्ता समझौते को प्रिंट करने, हस्ताक्षर करने, स्कैन करने और ईमेल करने की आवश्यकता होती है, जो संभवतः उनके बग डेटाबेस को देखने के लिए आवश्यक है। लगता है कि सामग्री बहुत भयानक होना चाहिए।
l0b0

और सेटिंग DESKTOP_SESSIONकाम नहीं करती है। सुझाए गए मानों में से कई के साथ प्रयास किया।
lbb0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.