1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# HG changeset patch
# User corvid
# Date 1416116116 0
# Node ID a012eab2c0573e2cdcba775bd9a579c3d282003a
# Parent 8111dadacb406727e791864e89026aaa928965a3
can't use fl_oldfocus anymore -- this will make focus behaviour somewhat screwy
http://lists.dillo.org/pipermail/dillo-dev/2014-November/010273.html
A couple of months ago, Lauri Kasanen made some changes to fltk's linker
stuff, and I guess we're seeing the effect here.
As for focus behaviour being screwy, if you click on a page to give it
focus, then move the cursor away and then back onto the page, it won't
get focus again -- focus will go to an input or the location bar or
something.
diff -r 8111dadacb40 -r a012eab2c057 dw/fltkviewbase.cc
--- a/dw/fltkviewbase.cc Sat Nov 15 01:39:27 2014 +0100
+++ b/dw/fltkviewbase.cc Sun Nov 16 05:35:16 2014 +0000
@@ -27,8 +27,6 @@
#include <stdio.h>
#include "../lout/msg.h"
-extern Fl_Widget* fl_oldfocus;
-
using namespace lout::object;
using namespace lout::container::typed;
@@ -71,7 +69,7 @@
canvasHeight = 1;
bgColor = FL_WHITE;
mouse_x = mouse_y = 0;
- focused_child = NULL;
+ // focused_child = NULL;
exposeArea = NULL;
if (backBuffer == NULL) {
backBuffer = new BackBuffer ();
@@ -357,6 +355,8 @@
case FL_LEAVE:
theLayout->leaveNotify (this, getDwButtonState ());
break;
+#if 0
+ // BUG: starting with fltk-1.3.3, we can't use fl_oldfocus.
case FL_FOCUS:
if (focused_child && find(focused_child) < children()) {
/* strangely, find() == children() if the child is not found */
@@ -366,6 +366,7 @@
case FL_UNFOCUS:
focused_child = fl_oldfocus;
return 0;
+#endif
case FL_KEYBOARD:
if (Fl::event_key() == FL_Tab)
return manageTabToFocus();
diff -r 8111dadacb40 -r a012eab2c057 dw/fltkviewbase.hh
--- a/dw/fltkviewbase.hh Sat Nov 15 01:39:27 2014 +0100
+++ b/dw/fltkviewbase.hh Sun Nov 16 05:35:16 2014 +0000
@@ -56,7 +56,7 @@
core::Layout *theLayout;
int canvasWidth, canvasHeight;
int mouse_x, mouse_y;
- Fl_Widget *focused_child;
+ // Fl_Widget *focused_child;
virtual int translateViewXToCanvasX (int x) = 0;
virtual int translateViewYToCanvasY (int y) = 0;
|