summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Input.cxx15
-rw-r--r--src/Fl_Input_.cxx14
2 files changed, 16 insertions, 13 deletions
diff --git a/src/Fl_Input.cxx b/src/Fl_Input.cxx
index b84457985..f7c5656c5 100644
--- a/src/Fl_Input.cxx
+++ b/src/Fl_Input.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Input.cxx,v 1.10.2.3 1999/10/15 09:01:43 bill Exp $"
+// "$Id: Fl_Input.cxx,v 1.10.2.4 1999/10/30 20:21:29 bill Exp $"
//
// Input widget for the Fast Light Tool Kit (FLTK).
//
@@ -279,7 +279,6 @@ int Fl_Input::handle_key() {
}
int Fl_Input::handle(int event) {
- static char first_click;
switch (event) {
@@ -312,28 +311,24 @@ int Fl_Input::handle(int event) {
return handle_key();
case FL_PUSH:
- compose = 0;
- first_click = 0;
if (Fl::focus() != this) {
Fl::focus(this);
handle(FL_FOCUS);
// Windoze-style: select everything on first click:
if (type() != FL_MULTILINE_INPUT) {
- first_click = 1;
position(size(), 0); // select everything
- Fl::event_is_click(0); // prevents next click from being a double click
return 1;
}
}
- // don't remove selection when pasting in a replacement:
- if (Fl::event_button() == 2 && mark() != position()) return 1;
+ compose = 0;
break;
case FL_RELEASE:
if (Fl::event_button() == 2) {
Fl::event_is_click(0); // stop double click from picking a word
Fl::paste(*this);
- } else if (!first_click) {
+ } else if (!Fl::event_is_click()) {
+ // copy drag-selected text to the clipboard.
copy();
}
return 1;
@@ -350,5 +345,5 @@ Fl_Input::Fl_Input(int x, int y, int w, int h, const char *l)
}
//
-// End of "$Id: Fl_Input.cxx,v 1.10.2.3 1999/10/15 09:01:43 bill Exp $".
+// End of "$Id: Fl_Input.cxx,v 1.10.2.4 1999/10/30 20:21:29 bill Exp $".
//
diff --git a/src/Fl_Input_.cxx b/src/Fl_Input_.cxx
index 28c551039..6791b4b36 100644
--- a/src/Fl_Input_.cxx
+++ b/src/Fl_Input_.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Input_.cxx,v 1.21.2.1 1999/10/15 09:01:44 bill Exp $"
+// "$Id: Fl_Input_.cxx,v 1.21.2.2 1999/10/30 20:21:30 bill Exp $"
//
// Common input widget routines for the Fast Light Tool Kit (FLTK).
//
@@ -352,7 +352,7 @@ void Fl_Input_::handle_mouse(int X, int Y,
p = e;
if (e >= value_+size_) break;
}
- const char *l, *r, *t; double f0 = 0;
+ const char *l, *r, *t; double f0 = Fl::event_x()-X+xscroll_;
for (l = p, r = e; l<r; ) {
double f;
t = l+(r-l+1)/2;
@@ -387,6 +387,14 @@ void Fl_Input_::handle_mouse(int X, int Y,
while (!wordboundary(newpos)) newpos--;
}
}
+ // if the multiple click does not increase the selection, revert
+ // to single-click behavior:
+ if (!drag && (mark() > position() ?
+ (newmark >= position() && newpos <= mark()) :
+ (newmark >= mark() && newpos <= position()))) {
+ Fl::event_clicks(0);
+ newmark = newpos = l-value();
+ }
}
position(newpos, newmark);
}
@@ -737,5 +745,5 @@ Fl_Input_::~Fl_Input_() {
}
//
-// End of "$Id: Fl_Input_.cxx,v 1.21.2.1 1999/10/15 09:01:44 bill Exp $".
+// End of "$Id: Fl_Input_.cxx,v 1.21.2.2 1999/10/30 20:21:30 bill Exp $".
//