fix incorrect restoration of pane positions on Apple.
Code to check if we were to close to an edge (for window resizing) blocked all divider setting, because it would be called with a current widget allocation of 1x1
This commit is contained in:
parent
1364cd6a30
commit
b8f5306d5b
@ -167,6 +167,7 @@ Pane::on_remove (Widget* w)
|
||||
void
|
||||
Pane::on_size_allocate (Gtk::Allocation& alloc)
|
||||
{
|
||||
std::cerr << "pane @ " << this << " reallocated as " << alloc.get_width() << " x " << alloc.get_height() << std::endl;
|
||||
reallocate (alloc);
|
||||
Container::on_size_allocate (alloc);
|
||||
}
|
||||
@ -357,6 +358,15 @@ Pane::fract_is_ok (Dividers::size_type div, float fract)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (get_allocation().get_width() == 1 && get_allocation().get_height() == 1) {
|
||||
/* space not * allocated - * divider being set from startup code. Let it pass,
|
||||
since our goal is mostly to catch drags to a position that will interfere with window
|
||||
resizing.
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
/* On Quartz, if the pane handle (divider) gets to
|
||||
be adjacent to the window edge, you can no longer grab it:
|
||||
any attempt to do so is interpreted by the Quartz window
|
||||
|
Loading…
Reference in New Issue
Block a user