diff --git a/ChangeLog b/ChangeLog index 20748854..72a07e0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23548,3 +23548,6 @@ distinguish hard and soft start times. 2022-10-21 Fred Gleason * Added an Ubuntu-specific pam(7) configuration. +2022-10-22 Fred Gleason + * Fixed a regression in rdcatch(1) that made it impossible to scroll + the stack of deck monitors. diff --git a/rdcatch/rdcatch.cpp b/rdcatch/rdcatch.cpp index dd5df645..0abeebe0 100644 --- a/rdcatch/rdcatch.cpp +++ b/rdcatch/rdcatch.cpp @@ -79,7 +79,6 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) QString str; QString err_msg; - catch_resize=false; catch_host_warnings=false; catch_audition_stream=-1; @@ -501,16 +500,6 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) if(ShowNextEvents(current_date.dayOfWeek(),current_time,&next_time)>0) { catch_next_timer->start(current_time.msecsTo(next_time)); } - - // - // Silly Resize Workaround - // (so that the deck monitors get laid out properly) - // - QTimer *timer=new QTimer(this); - connect(timer,SIGNAL(timeout()),this,SLOT(resizeData())); - timer->start(1); - - catch_resize=true; } QSize MainWidget::sizeHint() const @@ -525,17 +514,6 @@ QSizePolicy MainWidget::sizePolicy() const } -void MainWidget::resizeData() -{ - QResizeEvent *e=new QResizeEvent(QSize(geometry().width(), - geometry().height()), - QSize(geometry().width(), - geometry().height())); - resizeEvent(e); - delete e; -} - - void MainWidget::connectedData(int serial,bool state) { if(state) { @@ -1179,11 +1157,8 @@ void MainWidget::closeEvent(QCloseEvent *e) void MainWidget::resizeEvent(QResizeEvent *e) { - if(!catch_resize) { - return; - } - assert (e); - assert (catch_monitor_area); + assert(e); + assert(catch_monitor_area); if(catch_monitor.size()<=RDCATCH_MAX_VISIBLE_MONITORS) { catch_monitor_area-> setGeometry(10,10,e->size().width()-20,32*catch_monitor.size()+4); @@ -1193,10 +1168,18 @@ void MainWidget::resizeEvent(QResizeEvent *e) else { catch_monitor_area-> setGeometry(10,10,e->size().width()-20,32*RDCATCH_MAX_VISIBLE_MONITORS); + // + // This depends on the width of the scrollbar. How to reliably + // determine such on various desktops? + // + // (catch_monitor_area->verticalScrollBar()->geometry().width() is not + // always accurate!) + // catch_monitor_vbox-> - setGeometry(0,0,e->size().width()- - catch_monitor_area->verticalScrollBar()->geometry().width()- - 25,32*catch_monitor.size()); + setGeometry(0, + 0, + e->size().width()-40, // Works on XFCE, what about others? + 32*catch_monitor.size()); } int deck_height=0; if (catch_monitor.size()>0){ diff --git a/rdcatch/rdcatch.h b/rdcatch/rdcatch.h index a82ae6ba..c82dfec7 100644 --- a/rdcatch/rdcatch.h +++ b/rdcatch/rdcatch.h @@ -72,7 +72,6 @@ class MainWidget : public RDMainWindow QSizePolicy sizePolicy() const; private slots: - void resizeData(); void connectedData(int serial,bool state); void nextEventData(); void addData(); @@ -159,7 +158,6 @@ class MainWidget : public RDMainWindow QTimer *catch_midnight_timer; int catch_time_offset; bool catch_host_warnings; - bool catch_resize; AddRecording *catch_add_recording_dialog; };