Commit 977910db authored by Ilkka Ollakka's avatar Ilkka Ollakka

Calculate fullscreencotnrollers position only when screen has changed

parent 9a51f390
...@@ -769,6 +769,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i ) ...@@ -769,6 +769,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i )
b_fullscreen = false; b_fullscreen = false;
i_hide_timeout = 1; i_hide_timeout = 1;
p_vout = NULL; p_vout = NULL;
i_screennumber = -1;
setWindowFlags( Qt::ToolTip ); setWindowFlags( Qt::ToolTip );
setMinimumWidth( 600 ); setMinimumWidth( 600 );
...@@ -845,28 +846,34 @@ void FullscreenControllerWidget::showFSC() ...@@ -845,28 +846,34 @@ void FullscreenControllerWidget::showFSC()
adjustSize(); adjustSize();
/* center down */ /* center down */
int number = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi ); int number = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi );
int totalCount = QApplication::desktop()->numScreens(); if( number != i_screennumber )
QRect screenRes = QApplication::desktop()->screenGeometry(number);
int offset_x = 0;
int offset_y = 0;
/* Loop all screens to get needed offset_x/y for
* physical screen center.
*/
for(int i=0; i <= totalCount ; i++)
{ {
QRect displayRect = QApplication::desktop()->screenGeometry(i); msg_Dbg( p_intf, "Calculation fullscreen controllers center");
if (displayRect.width()+offset_x <= screenRes.x()) /* screen has changed, calculate new position */
{ i_screennumber = number;
offset_x += displayRect.width(); int totalCount = QApplication::desktop()->numScreens();
} QRect screenRes = QApplication::desktop()->screenGeometry(number);
if ( displayRect.height()+offset_y <= screenRes.y()) int offset_x = 0;
{ int offset_y = 0;
offset_y += displayRect.height(); /* Loop all screens to get needed offset_x/y for
} * physical screen center.
*/
for(int i=0; i <= totalCount ; i++)
{
QRect displayRect = QApplication::desktop()->screenGeometry(i);
if (displayRect.width()+offset_x <= screenRes.x())
{
offset_x += displayRect.width();
}
if ( displayRect.height()+offset_y <= screenRes.y())
{
offset_y += displayRect.height();
}
}
QPoint pos = QPoint( offset_x + (screenRes.width() / 2) - (width() / 2),
offset_y + screenRes.height() - height());
move( pos );
} }
QPoint pos = QPoint( offset_x + (screenRes.width() / 2) - (width() / 2),
offset_y + screenRes.height() - height());
move( pos );
#ifdef WIN32TRICK #ifdef WIN32TRICK
// after quiting and going to fs, we need to call show() // after quiting and going to fs, we need to call show()
if( isHidden() ) if( isHidden() )
......
...@@ -286,6 +286,7 @@ private: ...@@ -286,6 +286,7 @@ private:
int i_mouse_last_x, i_mouse_last_y; int i_mouse_last_x, i_mouse_last_y;
bool b_mouse_over; bool b_mouse_over;
int i_screennumber;
#ifdef WIN32TRICK #ifdef WIN32TRICK
bool b_fscHidden; bool b_fscHidden;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment