mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Fixup [152811a27d242/lyxgit]
tabBarClicked() should really only reset focus if a click in a different
TabBarGroup happened. And no need to issue workAreaChanged() again.
This has lead to extra and erroneous focus changes (see #12954)
(cherry picked from commit 026c4bd726
)
This commit is contained in:
parent
6aef9e394e
commit
2cc5ca27fd
@ -1926,6 +1926,12 @@ GuiWorkArea const * GuiView::currentWorkArea() const
|
||||
}
|
||||
|
||||
|
||||
TabWorkArea * GuiView::currentTabWorkArea() const
|
||||
{
|
||||
return d.currentTabWorkArea();
|
||||
}
|
||||
|
||||
|
||||
GuiWorkArea * GuiView::currentWorkArea()
|
||||
{
|
||||
return d.current_work_area_;
|
||||
|
@ -209,6 +209,8 @@ public:
|
||||
void removeWorkArea(GuiWorkArea * work_area);
|
||||
/// return true if \c wa is one of the visibles workareas of this view
|
||||
bool hasVisibleWorkArea(GuiWorkArea * wa) const;
|
||||
///
|
||||
TabWorkArea * currentTabWorkArea() const;
|
||||
/// return the current WorkArea (the one that has the focus).
|
||||
GuiWorkArea const * currentWorkArea() const;
|
||||
/// return the current WorkArea (the one that has the focus).
|
||||
|
@ -1648,7 +1648,7 @@ TabWorkArea::TabWorkArea(QWidget * parent)
|
||||
this, SLOT(on_currentTabChanged(int)));
|
||||
// Fix for #11835
|
||||
QObject::connect(this, SIGNAL(tabBarClicked(int)),
|
||||
this, SLOT(on_currentTabChanged(int)));
|
||||
this, SLOT(on_tabBarClicked(int)));
|
||||
|
||||
closeBufferButton = new QToolButton(this);
|
||||
closeBufferButton->setPalette(pal);
|
||||
@ -1928,6 +1928,22 @@ bool TabWorkArea::removeWorkArea(GuiWorkArea * work_area)
|
||||
}
|
||||
|
||||
|
||||
void TabWorkArea::on_tabBarClicked(int i)
|
||||
{
|
||||
// returns e.g. on application destruction
|
||||
if (i == -1)
|
||||
return;
|
||||
|
||||
// if we click on a tab in a different TabWorkArea,
|
||||
// focus needs to be set (#11835)
|
||||
if (currentWorkArea() && currentWorkArea()->view().currentTabWorkArea() != this) {
|
||||
GuiWorkArea * wa = workArea(i);
|
||||
LASSERT(wa, return);
|
||||
wa->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TabWorkArea::on_currentTabChanged(int i)
|
||||
{
|
||||
// returns e.g. on application destruction
|
||||
|
@ -265,6 +265,8 @@ private Q_SLOTS:
|
||||
///
|
||||
void on_currentTabChanged(int index);
|
||||
///
|
||||
void on_tabBarClicked(int index);
|
||||
///
|
||||
void showContextMenu(const QPoint & pos);
|
||||
/// enable closing tab on middle-click
|
||||
void mousePressEvent(QMouseEvent * me) override;
|
||||
|
Loading…
Reference in New Issue
Block a user