tests: Run each test in a function
As the global object of a context is rooted, if we want the GC to act on these objects we need to take them out of the globals. https://bugzilla.gnome.org/show_bug.cgi?id=678737
This commit is contained in:
@ -6,47 +6,48 @@ const St = imports.gi.St;
|
||||
|
||||
const UI = imports.testcommon.ui;
|
||||
|
||||
let stage = new Clutter.Stage();
|
||||
UI.init(stage);
|
||||
function test() {
|
||||
let stage = new Clutter.Stage();
|
||||
UI.init(stage);
|
||||
|
||||
let vbox = new St.BoxLayout({ vertical: true,
|
||||
width: stage.width,
|
||||
height: stage.height,
|
||||
style: "padding: 10px;" });
|
||||
stage.add_actor(vbox);
|
||||
let vbox = new St.BoxLayout({ vertical: true,
|
||||
width: stage.width,
|
||||
height: stage.height,
|
||||
style: "padding: 10px;" });
|
||||
stage.add_actor(vbox);
|
||||
|
||||
let toggle = new St.Button({ label: 'Horizontal Scrolling',
|
||||
toggle_mode: true });
|
||||
vbox.add(toggle);
|
||||
let toggle = new St.Button({ label: 'Horizontal Scrolling',
|
||||
toggle_mode: true });
|
||||
vbox.add(toggle);
|
||||
|
||||
let v = new St.ScrollView();
|
||||
vbox.add(v, { expand: true });
|
||||
let v = new St.ScrollView();
|
||||
vbox.add(v, { expand: true });
|
||||
|
||||
toggle.connect('notify::checked', function () {
|
||||
v.set_policy(toggle.checked ? Gtk.PolicyType.AUTOMATIC
|
||||
: Gtk.PolicyType.NEVER,
|
||||
Gtk.PolicyType.AUTOMATIC);
|
||||
});
|
||||
toggle.connect('notify::checked', function () {
|
||||
v.set_policy(toggle.checked ? Gtk.PolicyType.AUTOMATIC
|
||||
: Gtk.PolicyType.NEVER,
|
||||
Gtk.PolicyType.AUTOMATIC);
|
||||
});
|
||||
|
||||
let b = new St.BoxLayout({ vertical: true,
|
||||
style: "border: 2px solid #880000; border-radius: 10px; padding: 0px 5px;" });
|
||||
v.add_actor(b);
|
||||
let b = new St.BoxLayout({ vertical: true,
|
||||
style: "border: 2px solid #880000; border-radius: 10px; padding: 0px 5px;" });
|
||||
v.add_actor(b);
|
||||
|
||||
let cc_a = "a".charCodeAt(0);
|
||||
let s = "";
|
||||
for (let i = 0; i < 26 * 3; i++) {
|
||||
s += String.fromCharCode(cc_a + i % 26);
|
||||
let cc_a = "a".charCodeAt(0);
|
||||
let s = "";
|
||||
for (let i = 0; i < 26 * 3; i++) {
|
||||
s += String.fromCharCode(cc_a + i % 26);
|
||||
|
||||
let t = new St.Label({ text: s,
|
||||
reactive: true });
|
||||
let line = i + 1;
|
||||
t.connect('button-press-event',
|
||||
function() {
|
||||
log("Click on line " + line);
|
||||
});
|
||||
b.add(t);
|
||||
let t = new St.Label({ text: s,
|
||||
reactive: true });
|
||||
let line = i + 1;
|
||||
t.connect('button-press-event',
|
||||
function() {
|
||||
log("Click on line " + line);
|
||||
});
|
||||
b.add(t);
|
||||
}
|
||||
|
||||
UI.main(stage);
|
||||
}
|
||||
|
||||
stage.show();
|
||||
Clutter.main();
|
||||
stage.destroy();
|
||||
test();
|
||||
|
Reference in New Issue
Block a user