public bool refine(string s, int min_prefix_size=1)
{
size_t len;
- for (len = 0; prefix[len] != 0 && s[len] != 0 && s[len] == prefix[len]; ++len)
+ for (len = 0; prefix[(long)len] != 0 && s[(long)len] != 0 && s[(long)len] == prefix[(long)len]; ++len)
;
if (len < min_prefix_size) return false;
if (len != pfx_len)
protected int focus_area_start;
// Number of elements in full focus
- protected int _focus_size;
- public int focus_size {
- get { return _focus_size; }
- set {
- _focus_size = value;
- focus_info = new FocusInfo[_focus_size+2*steps+1];
- focus_layout_needed = true;
- queue_draw();
- }
- }
+ protected int focus_size;
protected int _label_column;
public int label_column {
add_events(Gdk.EventMask.POINTER_MOTION_MASK
| Gdk.EventMask.BUTTON_PRESS_MASK
| Gdk.EventMask.BUTTON_RELEASE_MASK);
+
+ base_layout_needed = true;
+ focus_layout_needed = true;
+ queue_draw();
}
public unowned Gtk.TreeModel get_model() { return model; }
renderers[renderers.length-1].get_size(this, null, null, null, null, out max_renderer_size);
renderer_sizes[renderers.length-1] = max_renderer_size;
+ focus_size = allocation.height / (2*max_renderer_size);
+ if (focus_size % 2 == 1)
+ focus_size += 1;
+ focus_info = new FocusInfo[focus_size+2*steps+1];
+
is_fisheye = label_count * max_renderer_size > allocation.height;
if (is_fisheye)
protected int el_renderer(int idx)
{
- int fs2 = _focus_size/2;
+ int fs2 = focus_size/2;
int renderer_idx;
if (idx < cur_el)
renderer_idx = idx - (cur_el-fs2-steps);
return;
}
- focus_first = cur_el - _focus_size/2 - steps;
+ focus_first = cur_el - focus_size/2 - steps;
if (focus_first < 0) focus_first = 0;
if (focus_first + focus_info.length > label_count)
focus_first = label_count - focus_info.length;