summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorAura Linden <aura@lindenlab.com>2013-12-17 00:13:07 -0800
committerAura Linden <aura@lindenlab.com>2013-12-17 00:13:07 -0800
commit1219fe0e1b27e4468e0ee2f0f65e79b894296022 (patch)
treeaaf206a79d3fe39a3e2cca6c479b4f97f28b0a8f /indra/llui
parentddd6b8f91baa4ce408682925e12c4a58b8139b78 (diff)
parent6f34508aa9408266bfde366aa4e0cb6518ed45b8 (diff)
Mac Fullscreen fix for MAINT-3288 and MAINT-3135
Diffstat (limited to 'indra/llui')
-rwxr-xr-xindra/llui/llcombobox.h2
-rwxr-xr-xindra/llui/llfloater.cpp1
-rwxr-xr-xindra/llui/llfolderview.cpp12
-rwxr-xr-xindra/llui/llfolderviewmodel.h33
-rwxr-xr-xindra/llui/llmodaldialog.cpp4
5 files changed, 32 insertions, 20 deletions
diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h
index 1e04fb0866..67393504e7 100755
--- a/indra/llui/llcombobox.h
+++ b/indra/llui/llcombobox.h
@@ -190,7 +190,7 @@ public:
virtual BOOL operateOnAll(EOperation op);
//========================================================================
-
+
void setLeftTextPadding(S32 pad);
void* getCurrentUserdata();
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index c1f8a077b5..acf38afe32 100755
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1951,6 +1951,7 @@ void LLFloater::drawShadow(LLPanel* panel)
void LLFloater::updateTransparency(LLView* view, ETypeTransparency transparency_type)
{
+ if (!view) return;
child_list_t children = *view->getChildList();
child_list_t::iterator it = children.begin();
diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index f32a52e6c6..884fd0ed0f 100755
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -1599,19 +1599,21 @@ void LLFolderView::update()
// until that inventory is loaded up.
LLFastTimer t2(FTM_INVENTORY);
- if (getFolderViewModel()->getFilter().isModified() && getFolderViewModel()->getFilter().isNotDefault())
+ LLFolderViewFilter& filter_object = getFolderViewModel()->getFilter();
+
+ if (filter_object.isModified() && filter_object.isNotDefault())
{
mNeedsAutoSelect = TRUE;
}
// Filter to determine visibility before arranging
- filter(getFolderViewModel()->getFilter());
+ filter(filter_object);
// Clear the modified setting on the filter only if the filter finished after running the filter process
// Note: if the filter count has timed out, that means the filter halted before completing the entire set of items
- if (getFolderViewModel()->getFilter().isModified() && (!getFolderViewModel()->getFilter().isTimedOut()))
+ if (filter_object.isModified() && (!filter_object.isTimedOut()))
{
- getFolderViewModel()->getFilter().clearModified();
+ filter_object.clearModified();
}
// automatically show matching items, and select first one if we had a selection
@@ -1630,7 +1632,7 @@ void LLFolderView::update()
// Open filtered folders for folder views with mAutoSelectOverride=TRUE.
// Used by LLPlacesFolderView.
- if (getFolderViewModel()->getFilter().showAllResults())
+ if (filter_object.showAllResults())
{
// these are named variables to get around gcc not binding non-const references to rvalues
// and functor application is inherently non-const to allow for stateful functors
diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h
index b1bcc8bbb4..a909d13f97 100755
--- a/indra/llui/llfolderviewmodel.h
+++ b/indra/llui/llfolderviewmodel.h
@@ -386,27 +386,36 @@ template <typename SORT_TYPE, typename ITEM_TYPE, typename FOLDER_TYPE, typename
class LLFolderViewModel : public LLFolderViewModelCommon
{
public:
- LLFolderViewModel(){}
- virtual ~LLFolderViewModel() {}
-
typedef SORT_TYPE SortType;
typedef ITEM_TYPE ItemType;
typedef FOLDER_TYPE FolderType;
typedef FILTER_TYPE FilterType;
- virtual SortType& getSorter() { return mSorter; }
- virtual const SortType& getSorter() const { return mSorter; }
- virtual void setSorter(const SortType& sorter) { mSorter = sorter; requestSortAll(); }
+ LLFolderViewModel(SortType* sorter, FilterType* filter)
+ : mSorter(sorter),
+ mFilter(filter)
+ {}
- virtual FilterType& getFilter() { return mFilter; }
- virtual const FilterType& getFilter() const { return mFilter; }
- virtual void setFilter(const FilterType& filter) { mFilter = filter; }
+ virtual ~LLFolderViewModel()
+ {
+ delete mSorter;
+ mSorter = NULL;
+ delete mFilter;
+ mFilter = NULL;
+ }
+
+ virtual SortType& getSorter() { return *mSorter; }
+ virtual const SortType& getSorter() const { return *mSorter; }
+ virtual void setSorter(const SortType& sorter) { mSorter = new SortType(sorter); requestSortAll(); }
+
+ virtual FilterType& getFilter() { return *mFilter; }
+ virtual const FilterType& getFilter() const { return *mFilter; }
+ virtual void setFilter(const FilterType& filter) { mFilter = new FilterType(filter); }
// By default, we assume the content is available. If a network fetch mechanism is implemented for the model,
// this method needs to be overloaded and return the relevant fetch status.
virtual bool contentsReady() { return true; }
-
struct ViewModelCompare
{
ViewModelCompare(const SortType& sorter)
@@ -438,8 +447,8 @@ public:
}
protected:
- SortType mSorter;
- FilterType mFilter;
+ SortType* mSorter;
+ FilterType* mFilter;
};
#endif // LLFOLDERVIEWMODEL_H
diff --git a/indra/llui/llmodaldialog.cpp b/indra/llui/llmodaldialog.cpp
index ff85b0ad09..4d6e189b92 100755
--- a/indra/llui/llmodaldialog.cpp
+++ b/indra/llui/llmodaldialog.cpp
@@ -191,11 +191,11 @@ BOOL LLModalDialog::handleMouseDown(S32 x, S32 y, MASK mask)
}
BOOL LLModalDialog::handleHover(S32 x, S32 y, MASK mask)
-{
+{
if( childrenHandleHover(x, y, mask) == NULL )
{
getWindow()->setCursor(UI_CURSOR_ARROW);
- lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << llendl;
+ lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << llendl;
}
LLView* popup_menu = LLMenuGL::sMenuContainer->getVisibleMenu();