mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-11 11:08:41 +00:00
Prepare for advanced mouse click selections.
* WorkArea::dispatch(): add modifiers argument. * GuiWorkArea::mousePressEvent(): transmit the modifier to WorkArea::dispatch(). git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16878 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
ecb37d95df
commit
c4d317d217
@ -182,7 +182,7 @@ void WorkArea::processKeySym(LyXKeySymPtr key, key_modifier::state state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void WorkArea::dispatch(FuncRequest const & cmd0)
|
void WorkArea::dispatch(FuncRequest const & cmd0, key_modifier::state k)
|
||||||
{
|
{
|
||||||
// Handle drag&drop
|
// Handle drag&drop
|
||||||
if (cmd0.action == LFUN_FILE_OPEN) {
|
if (cmd0.action == LFUN_FILE_OPEN) {
|
||||||
@ -192,10 +192,23 @@ void WorkArea::dispatch(FuncRequest const & cmd0)
|
|||||||
|
|
||||||
theLyXFunc().setLyXView(&lyx_view_);
|
theLyXFunc().setLyXView(&lyx_view_);
|
||||||
|
|
||||||
bool needRedraw = buffer_view_->workAreaDispatch(cmd0);
|
FuncRequest cmd;
|
||||||
|
|
||||||
|
if (cmd0.action == LFUN_MOUSE_PRESS) {
|
||||||
|
if (k == key_modifier::shift)
|
||||||
|
cmd = FuncRequest(cmd0, "region-select");
|
||||||
|
else if (k == key_modifier::ctrl)
|
||||||
|
cmd = FuncRequest(cmd0, "paragraph-select");
|
||||||
|
else
|
||||||
|
cmd = cmd0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cmd = cmd0;
|
||||||
|
|
||||||
|
bool needRedraw = buffer_view_->workAreaDispatch(cmd);
|
||||||
|
|
||||||
// Skip these when selecting
|
// Skip these when selecting
|
||||||
if (cmd0.action != LFUN_MOUSE_MOTION) {
|
if (cmd.action != LFUN_MOUSE_MOTION) {
|
||||||
lyx_view_.updateLayoutChoice();
|
lyx_view_.updateLayoutChoice();
|
||||||
lyx_view_.updateMenubar();
|
lyx_view_.updateMenubar();
|
||||||
lyx_view_.updateToolbars();
|
lyx_view_.updateToolbars();
|
||||||
@ -203,8 +216,8 @@ void WorkArea::dispatch(FuncRequest const & cmd0)
|
|||||||
|
|
||||||
|
|
||||||
// GUI tweaks except with mouse motion with no button pressed.
|
// GUI tweaks except with mouse motion with no button pressed.
|
||||||
if (!(cmd0.action == LFUN_MOUSE_MOTION
|
if (!(cmd.action == LFUN_MOUSE_MOTION
|
||||||
&& cmd0.button() == mouse_button::none)) {
|
&& cmd.button() == mouse_button::none)) {
|
||||||
// Slight hack: this is only called currently when we
|
// Slight hack: this is only called currently when we
|
||||||
// clicked somewhere, so we force through the display
|
// clicked somewhere, so we force through the display
|
||||||
// of the new status here.
|
// of the new status here.
|
||||||
|
@ -98,7 +98,8 @@ protected:
|
|||||||
/// cause the display of the given area of the work area
|
/// cause the display of the given area of the work area
|
||||||
virtual void expose(int x, int y, int w, int h) = 0;
|
virtual void expose(int x, int y, int w, int h) = 0;
|
||||||
///
|
///
|
||||||
void dispatch(FuncRequest const & cmd0);
|
void dispatch(FuncRequest const & cmd0,
|
||||||
|
key_modifier::state = key_modifier::none);
|
||||||
///
|
///
|
||||||
void resizeBufferView();
|
void resizeBufferView();
|
||||||
///
|
///
|
||||||
|
@ -291,7 +291,7 @@ void GuiWorkArea::mousePressEvent(QMouseEvent * e)
|
|||||||
|
|
||||||
FuncRequest const cmd(LFUN_MOUSE_PRESS, e->x(), e->y(),
|
FuncRequest const cmd(LFUN_MOUSE_PRESS, e->x(), e->y(),
|
||||||
q_button_state(e->button()));
|
q_button_state(e->button()));
|
||||||
dispatch(cmd);
|
dispatch(cmd, q_key_state(e->modifiers()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user