BTabView: minor optimization.

Short circuit if asked to select the same index that's currently visible, to
avoid unnecessary invalidation/flicker.

Should fix last part of #9841.
This commit is contained in:
Rene Gollent 2013-06-29 11:54:42 -04:00
parent fcf72bc4b4
commit 16e486eb4d

View File

@ -1,5 +1,5 @@
/*
* Copyright 2001-2009, Haiku, Inc. All rights reserved.
* Copyright 2001-2013, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
@ -7,6 +7,7 @@
* Jérôme Duval (korli@users.berlios.de)
* Stephan Aßmus <superstippi@gmx.de>
* Artur Wyszynski
* Rene Gollent (rene@gollent.com)
*/
@ -746,6 +747,9 @@ BTabView::Pulse()
void
BTabView::Select(int32 index)
{
if (index == Selection())
return;
if (index < 0 || index >= CountTabs())
index = Selection();
@ -1351,7 +1355,7 @@ BTabView::_InitObject(bool layouted, button_width width)
fTabList = new BList;
fTabWidthSetting = width;
fSelection = 0;
fSelection = -1;
fFocus = -1;
fTabOffset = 0.0f;
fBorderStyle = B_FANCY_BORDER;