+
+ // This is somewhat of a hack, unfortunately. We cannot use
+ // set_v_offset() from within restore_settings() as the view
+ // at that point is neither visible nor properly sized.
+ // This is the least intrusive workaround I could come up
+ // with: set the vertical offset when the view is visible and
+ // resized to its final size. Resize events that are sent
+ // when the view is invisible must be ignored as they have
+ // wrong sizes, potentially preventing the v offset to be
+ // set successfully.
+ if (isVisible() && saved_v_offset_) {
+ set_v_offset(saved_v_offset_);
+ saved_v_offset_ = 0;
+ }