switchToPrevWindow() is looking for another window if no previous window was found
This commit is contained in:
parent
5f3f8468ea
commit
f870506194
|
@ -1,5 +1,7 @@
|
|||
2016-08-20 Markus Gans <guru.mail@muenster.de>
|
||||
* Switch back to the own dialog when you closing a dialog menu
|
||||
* switchToPrevWindow() is looking for another window
|
||||
if no previous window was found
|
||||
|
||||
2016-08-14 Markus Gans <guru.mail@muenster.de>
|
||||
* Screen characters now have a transparent
|
||||
|
|
|
@ -730,11 +730,16 @@ void FDialog::onMouseDoubleClick (FMouseEvent* ev)
|
|||
|
||||
if ( title_button.contains(gPos) )
|
||||
{
|
||||
FWidget* window_focus_widget;
|
||||
dialog_menu->unselectItem();
|
||||
dialog_menu->hide();
|
||||
activateWindow();
|
||||
raiseWindow();
|
||||
getWindowFocusWidget()->setFocus();
|
||||
window_focus_widget = getWindowFocusWidget();
|
||||
|
||||
if ( window_focus_widget )
|
||||
window_focus_widget->setFocus();
|
||||
|
||||
setClickedWidget(0);
|
||||
|
||||
if ( isModal() )
|
||||
|
|
|
@ -96,9 +96,6 @@ void FWindow::hide()
|
|||
if ( area )
|
||||
area->visible = false;
|
||||
|
||||
if ( isDialog() )
|
||||
switchToPrevWindow();
|
||||
|
||||
FWidget::hide();
|
||||
}
|
||||
|
||||
|
@ -406,9 +403,34 @@ void FWindow::setWindowFocusWidget (FWidget* obj)
|
|||
void FWindow::switchToPrevWindow()
|
||||
{
|
||||
// switch to previous window
|
||||
activatePrevWindow();
|
||||
bool is_activated = activatePrevWindow();
|
||||
FWindow* active_window = getActiveWindow();
|
||||
|
||||
if ( ! is_activated )
|
||||
{
|
||||
// no previous window -> looking for another window
|
||||
if ( window_list && window_list->size() > 1 )
|
||||
{
|
||||
widgetList::const_iterator iter, begin;
|
||||
iter = window_list->end();
|
||||
begin = window_list->begin();
|
||||
|
||||
do
|
||||
{
|
||||
--iter;
|
||||
FWindow* w = static_cast<FWindow*>(*iter);
|
||||
|
||||
if ( w && w != active_window
|
||||
&& ! (w->isHiddenWindow() || w->isActiveWindow()) )
|
||||
{
|
||||
setActiveWindow(w);
|
||||
break;
|
||||
}
|
||||
}
|
||||
while ( iter != begin );
|
||||
}
|
||||
}
|
||||
|
||||
if ( active_window )
|
||||
{
|
||||
FWidget* focus_widget = active_window->getWindowFocusWidget();
|
||||
|
|
Loading…
Reference in New Issue