mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
better selection and scrolling behaviour
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5769 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
2068180f37
commit
c5058bffd8
@ -1,7 +1,12 @@
|
||||
2002-12-03 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||
|
||||
* screen.C (fitCursor): remove usleep thingie
|
||||
(fitManualCursor): ditto
|
||||
|
||||
2002-12-03 Lars Gullik Bjønnes <larsbj@gullik.net>
|
||||
|
||||
* screen.C (fitManualCursor): add delay if we have a selection
|
||||
going
|
||||
going
|
||||
(fitCursor): ditto
|
||||
|
||||
2002-12-01 Lars Gullik Bjønnes <larsbj@gullik.net>
|
||||
|
@ -169,10 +169,6 @@ bool LyXScreen::fitManualCursor(BufferView * bv, LyXText * text,
|
||||
if (newtop != text->first_y) {
|
||||
draw(text, bv, newtop);
|
||||
text->first_y = newtop;
|
||||
// Make the screen not scroll too fast when
|
||||
// we have a selection.
|
||||
if (text->selection.set())
|
||||
usleep(200000);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -237,10 +233,6 @@ bool LyXScreen::fitCursor(LyXText * text, BufferView * bv)
|
||||
bool const result = (newtop != text->first_y);
|
||||
if (result) {
|
||||
draw(text, bv, newtop);
|
||||
// Make the screen not scroll too fast when
|
||||
// we have a selection.
|
||||
if (text->selection.set())
|
||||
usleep(200000);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-12-03 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||
|
||||
* XWorkArea.C (work_area_handler): send fewer motion events if the
|
||||
mouse is outside the workarea.
|
||||
|
||||
2002-12-02 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* FormIndex.C (update): if the contents aren't empty, then activate the
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "XLyXKeySym.h"
|
||||
#include "ColorHandler.h"
|
||||
#include "funcrequest.h"
|
||||
#include "Timeout.h"
|
||||
|
||||
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
|
||||
#include "lyxlookup.h"
|
||||
@ -319,6 +320,8 @@ int XWorkArea::work_area_handler(FL_OBJECT * ob, int event,
|
||||
static int x_old = -1;
|
||||
static int y_old = -1;
|
||||
static double scrollbar_value_old = -1.0;
|
||||
static int const motion_interval = 200;
|
||||
static Timeout timdel(motion_interval);
|
||||
|
||||
XEvent * ev = static_cast<XEvent*>(xev);
|
||||
XWorkArea * area = static_cast<XWorkArea*>(ob->u_vdata);
|
||||
@ -358,6 +361,21 @@ int XWorkArea::work_area_handler(FL_OBJECT * ob, int event,
|
||||
#else
|
||||
case FL_DRAG:
|
||||
#endif
|
||||
{
|
||||
int const drag_y = ev->xmotion.y;
|
||||
int const area_y = ob->y;
|
||||
int const area_h = ob->h;
|
||||
|
||||
// Check if the mouse is above or below the workarea
|
||||
if (drag_y >= area_y + area_h || drag_y <= area_y) {
|
||||
// we are outside, then we must not give too many
|
||||
// motion events.
|
||||
if (timdel.running())
|
||||
break;
|
||||
else
|
||||
timdel.start();
|
||||
}
|
||||
|
||||
if (!ev || !area->scrollbar)
|
||||
break;
|
||||
if (ev->xmotion.x != x_old ||
|
||||
@ -389,6 +407,8 @@ int XWorkArea::work_area_handler(FL_OBJECT * ob, int event,
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
#if FL_VERSION < 1 && FL_REVISION < 89
|
||||
case FL_KEYBOARD:
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user