|
|
DO NOT REPLY TO THIS MESSAGE. INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.
[STR Pending]
Link: https://www.fltk.org/str.php?L3521
Version: 1.4-feature
Attached file "scroll.patch"...
Link: https://www.fltk.org/str.php?L3521
Version: 1.4-feature diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index bc2cb5d90..ba2e222b6 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -1514,7 +1514,9 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
break; // WM_KEYDOWN ... WM_SYSKEYUP, WM_DEADCHAR ... WM_SYSCHAR
} // case WM_DEADCHAR ... WM_SYSCHAR
- case WM_MOUSEWHEEL: {
+ case WM_MOUSEWHEEL:
+//fprintf(stderr,"WM_MOUSEWHEEL shift=%d\n", Fl::event_shift());
+ if ( ! Fl::event_shift() ) {
static int delta = 0; // running total of all motion
delta += (SHORT)(HIWORD(wParam));
Fl::e_dx = 0;
@@ -1524,10 +1526,11 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
Fl::handle(FL_MOUSEWHEEL, window);
return 0;
}
-
+ // FALLTHROUGH
case WM_MOUSEHWHEEL: {
static int delta = 0; // running total of all motion
delta += (SHORT)(HIWORD(wParam));
+//fprintf(stderr,"WM_MOUSEHWHEEL shift=%d delta=%d\n", Fl::event_shift(), delta);
Fl::e_dy = 0;
Fl::e_dx = delta / WHEEL_DELTA;
delta -= Fl::e_dx * WHEEL_DELTA;
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx
index 36418ffe8..0061bc42d 100644
--- a/src/Fl_x.cxx
+++ b/src/Fl_x.cxx
@@ -1974,16 +1974,16 @@ int fl_handle(const XEvent& thisevent)
Fl::e_keysym = FL_Button + xevent.xbutton.button;
set_event_xy(window);
Fl::e_dx = Fl::e_dy = 0;
- if (xevent.xbutton.button == Button4) {
+ if (xevent.xbutton.button == Button4 && !Fl::event_shift()) {
Fl::e_dy = -1; // Up
event = FL_MOUSEWHEEL;
- } else if (xevent.xbutton.button == Button5) {
+ } else if (xevent.xbutton.button == Button5 && !Fl::event_shift()) {
Fl::e_dy = +1; // Down
event = FL_MOUSEWHEEL;
- } else if (xevent.xbutton.button == 6) {
+ } else if (xevent.xbutton.button == 6 || (xevent.xbutton.button == Button4 && Fl::event_shift())) {
Fl::e_dx = -1; // Left
event = FL_MOUSEWHEEL;
- } else if (xevent.xbutton.button == 7) {
+ } else if (xevent.xbutton.button == 7 || (xevent.xbutton.button == Button5 && Fl::event_shift())) {
Fl::e_dx = +1; // Right
event = FL_MOUSEWHEEL;
} else {
[ Direct Link to Message ] | |
|
| |