summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--area_unix.go31
1 files changed, 15 insertions, 16 deletions
diff --git a/area_unix.go b/area_unix.go
index 6b60c25..3ea2cf1 100644
--- a/area_unix.go
+++ b/area_unix.go
@@ -157,6 +157,9 @@ func finishMouseEvent(widget *C.GtkWidget, data C.gpointer, me MouseEvent, mb ui
}
}
+// convenience name to make our intent clear
+const continueEventChain C.gboolean = C.FALSE
+
//export our_area_button_press_event_callback
func our_area_button_press_event_callback(widget *C.GtkWidget, event *C.GdkEvent, data C.gpointer) C.gboolean {
// clicking doesn't automatically transfer keyboard focus; we must do so manually (thanks tristan in irc.gimp.net/#gtk+)
@@ -172,7 +175,7 @@ func our_area_button_press_event_callback(widget *C.GtkWidget, event *C.GdkEvent
if e._type != C.GDK_BUTTON_PRESS {
// ignore GDK's generated double-clicks and beyond; we handled those ourselves below
- return C.FALSE // TODO really false?
+ return continueEventChain
}
s := (*sysData)(unsafe.Pointer(data))
// e.time is unsigned and in milliseconds
@@ -185,7 +188,7 @@ func our_area_button_press_event_callback(widget *C.GtkWidget, event *C.GdkEvent
int(maxDistance), int(maxDistance))
finishMouseEvent(widget, data, me, me.Down, e.x, e.y, e.state, e.window)
- return C.FALSE // TODO really false?
+ return continueEventChain
}
var area_button_press_event_callback = C.GCallback(C.our_area_button_press_event_callback)
@@ -198,7 +201,7 @@ func our_area_button_release_event_callback(widget *C.GtkWidget, event *C.GdkEve
Up: uint(e.button),
}
finishMouseEvent(widget, data, me, me.Up, e.x, e.y, e.state, e.window)
- return C.FALSE // TODO really false?
+ return continueEventChain
}
var area_button_release_event_callback = C.GCallback(C.our_area_button_release_event_callback)
@@ -208,7 +211,7 @@ func our_area_motion_notify_event_callback(widget *C.GtkWidget, event *C.GdkEven
e := (*C.GdkEventMotion)(unsafe.Pointer(event))
me := MouseEvent{}
finishMouseEvent(widget, data, me, 0, e.x, e.y, e.state, e.window)
- return C.FALSE // TODO really false?
+ return continueEventChain
}
var area_motion_notify_event_callback = C.GCallback(C.our_area_motion_notify_event_callback)
@@ -221,13 +224,13 @@ var area_motion_notify_event_callback = C.GCallback(C.our_area_motion_notify_eve
func our_area_enterleave_notify_event_callback(widget *C.GtkWidget, event *C.GdkEvent, data C.gpointer) C.gboolean {
s := (*sysData)(unsafe.Pointer(data))
s.clickCounter.reset()
- return C.FALSE // TODO really false?
+ return continueEventChain
}
var area_enterleave_notify_event_callback = C.GCallback(C.our_area_enterleave_notify_event_callback)
// shared code for doing a key event
-func doKeyEvent(widget *C.GtkWidget, event *C.GdkEvent, data C.gpointer, up bool) bool {
+func doKeyEvent(widget *C.GtkWidget, event *C.GdkEvent, data C.gpointer, up bool) {
var ke KeyEvent
e := (*C.GdkEventKey)(unsafe.Pointer(event))
@@ -248,15 +251,13 @@ func doKeyEvent(widget *C.GtkWidget, event *C.GdkEvent, data C.gpointer, up bool
ke.Key = xke.Key
ke.ExtKey = xke.ExtKey
} else { // no match
- // TODO really stop here? [or should we handle modifiers?]
- return false // pretend unhandled
+ return
}
ke.Up = up
- handled, repaint := s.handler.Key(ke)
+ repaint := s.handler.Key(ke)
if repaint {
C.gtk_widget_queue_draw(widget)
}
- return handled
}
//export our_area_key_press_event_callback
@@ -272,18 +273,16 @@ func our_area_key_press_event_callback(widget *C.GtkWidget, event *C.GdkEvent, d
fmt.Printf("%d/GDK_KEY_a:\n", C.GDK_KEY_a)
pk(C.GDK_KEY_a, e.window)
*/
- ret := doKeyEvent(widget, event, data, false)
- _ = ret
- return C.FALSE // TODO really false? should probably return !ret (since true indicates stop processing)
+ doKeyEvent(widget, event, data, false)
+ return continueEventChain
}
var area_key_press_event_callback = C.GCallback(C.our_area_key_press_event_callback)
//export our_area_key_release_event_callback
func our_area_key_release_event_callback(widget *C.GtkWidget, event *C.GdkEvent, data C.gpointer) C.gboolean {
- ret := doKeyEvent(widget, event, data, true)
- _ = ret
- return C.FALSE // TODO really false? should probably return !ret (since true indicates stop processing)
+ doKeyEvent(widget, event, data, true)
+ return continueEventChain
}
var area_key_release_event_callback = C.GCallback(C.our_area_key_release_event_callback)