2012-01-20 9 views
36

जब मैं जीटीके (दोनों, जीटीके 2 या जीटीके 3) में एक कस्टम संवाद बनाते हैं और इसे मोडल के रूप में सेट करते हैं, तो मेरे आवेदन की अन्य विंडो में सभी इनपुट को अनदेखा किया जाता है। यह लगभग हमेशा काम करता है, लेकिन यह कुछ शर्तों के तहत विफल रहता है।कभी-कभी जीटीके मोडल संवाद मोडल नहीं होते --- बग या फीचर?

जब मैं स्क्रॉल किए गए विन्डो को अपने संवाद में ट्री व्यू जोड़ता हूं, तो यह अभी भी माना जाता है। लेकिन यदि मैं वृक्ष दृश्य को प्रविष्टियों के साथ भरता हूं, तब तक स्क्रॉल किए गए विन्डो अपने स्क्रॉल बार प्रदर्शित करना शुरू कर देता है --- मॉडेलिटी अचानक खो जाती है और मैं अपनी अन्य विंडो पर क्लिक कर सकता हूं!

यहां सबसे बुनियादी उदाहरण है जिसे मैं स्थापित करने में सक्षम था। यह वाला में लिखा गया है, लेकिन आप अनुमान लगा सकेंगे कि:

valac --pkg gtk+-3.0 main.vala 

Am मैं कुछ कमी:

class MyDialog: Gtk.Dialog { 

    public MyDialog() { 
     this.modal = true; 

     var data = new Gtk.ListStore(1, typeof(string)); 

     // increase this number -- the dialog is not modal anymore! 
     for (int i=0; i<2; ++i) { 
      Gtk.TreeIter current; 
      data.append(out current); 
      data.set(current, 0, "Lorem Ipsum"); 
     } 

     var render = new Gtk.CellRendererText(); 

     var column = new Gtk.TreeViewColumn(); 
      column.pack_start(render, true); 
      column.add_attribute(render, "text", 0); 

     var treeview = new Gtk.TreeView.with_model(data); 
      treeview.append_column(column); 
      treeview.show(); 

     var scroll = new Gtk.ScrolledWindow(null, null); 
      scroll.set_size_request(100, 100); 
      scroll.add(treeview); 
      scroll.show(); 

     (this.get_content_area() as Gtk.Box).add(scroll); 
    } 
} 

int main (string[] args) { 
    Gtk.init (ref args); 

    var window = new Gtk.Window(); 

    window.set_default_size(350, 170); 
    window.destroy.connect(Gtk.main_quit); 

    var button = new Gtk.Button.with_label("Click me!"); 
    button.clicked.connect(() => { 
     var dialog = new MyDialog(); 
     dialog.set_transient_for(window); 
     dialog.run(); 
     dialog.destroy(); 
    }); 

    window.add(button); 
    window.show_all(); 

    Gtk.main(); 
    return 0; 
} 

के साथ संकलित करें? क्या यह व्यवहार चाहता था? या यह एक बग है? यदि हां, तो क्या कोई कामकाज है?

संपादित करें: मैंने थोड़ा और जांच की: समस्या तब गायब हो जाती है जब उबंटू के ओवरले-स्क्रोलबार अनइंस्टॉल किए जाते हैं। तो यह अभी तक हल नहीं हुआ है, लेकिन मुझे पता है कि मुझे यह कहां रिपोर्ट करनी है ...

+0

शायद एक बग। आपको bugzilla.gnome.org पर इसकी रिपोर्ट करनी चाहिए। – ptomato

+0

मैंने [लॉन्चपैड] (https://bugs.launchpad.net/ubuntu/+source/overlay-scrollbar/+bug/903302) पर एक संबंधित बग रिपोर्ट की खोज की है, देखते हैं कि यह कब ठीक हो जाता है ... – Simme

+3

ऐसा लगता है कि यह एक है उबंटू की बग हमेशा उन 'फीचर्स' से नफरत है –

उत्तर

1

निश्चित रूप से एक बग। एक बग रिपोर्ट पोस्ट करें और/या अपने जीटीके + lib को अपग्रेड करें।

संबंधित मुद्दे