Revert "Show toolbar context menu only when clicking on the toolbar"

Something is wrong.

This reverts commit f25253f89a.
This commit is contained in:
Jean-Marc Lasgouttes 2020-09-16 16:54:33 +02:00
parent f25253f89a
commit b96b876403
4 changed files with 15 additions and 24 deletions

View File

@ -34,7 +34,6 @@
#include "LayoutBox.h"
#include "LyX.h"
#include "LyXRC.h"
#include "Menus.h"
#include "qt_helpers.h"
#include "Session.h"
#include "Text.h"
@ -71,9 +70,6 @@ GuiToolbar::GuiToolbar(ToolbarInfo const & tbinfo, GuiView & owner)
setIconSize(owner.iconSize());
connect(&owner, SIGNAL(iconSizeChanged(QSize)), this,
SLOT(setIconSize(QSize)));
// install toolbar filter for context menu including disabled buttons
setContextMenuPolicy(Qt::PreventContextMenu);
QCoreApplication::instance()->installEventFilter(this);
// This is used by QMainWindow::restoreState for proper main window state
// restoration.
@ -127,24 +123,6 @@ void GuiToolbar::showEvent(QShowEvent * ev)
}
bool GuiToolbar::eventFilter(QObject * obj, QEvent * ev)
{
if (obj == this || obj->parent() == this) {
if (ev->type() == QEvent::ContextMenu) {
QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(ev);
QMenu * menu = guiApp->menus().menu(toqstr("context-toolbars"), owner_);
menu->exec(mouseEvent->globalPos());
return true;
} else {
return false;
}
} else {
// pass the event on to the parent class
return QToolBar::eventFilter(obj, ev);
}
}
void GuiToolbar::setVisibility(int visibility)
{
visibility_ = visibility;

View File

@ -177,8 +177,6 @@ private:
void fill();
///
void showEvent(QShowEvent *);
///
bool eventFilter(QObject * obj, QEvent * ev);
///
QList<Action *> actions_;

View File

@ -677,6 +677,11 @@ GuiView::GuiView(int id)
connect(this, SIGNAL(triggerShowDialog(QString const &, QString const &, Inset *)),
SLOT(doShowDialog(QString const &, QString const &, Inset *)));
// set custom application bars context menu, e.g. tool bar and menu bar
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)),
SLOT(toolBarPopup(const QPoint &)));
// Forbid too small unresizable window because it can happen
// with some window manager under X11.
setMinimumSize(300, 200);
@ -3783,6 +3788,13 @@ bool GuiView::goToFileRow(string const & argument)
}
void GuiView::toolBarPopup(const QPoint & /*pos*/)
{
QMenu * menu = guiApp->menus().menu(toqstr("context-toolbars"), * this);
menu->exec(QCursor::pos());
}
template<class T>
Buffer::ExportStatus GuiView::GuiViewPrivate::runAndDestroy(const T& func,
Buffer const * orig, Buffer * clone, string const & format)

View File

@ -260,6 +260,9 @@ private Q_SLOTS:
void updateStatusBarMessage(QString const & str);
void clearMessageText();
///
void toolBarPopup(const QPoint &pos);
private:
/// Open given child document in current buffer directory.
void openChildDocument(std::string const & filename);