diff options
| author | Pietro Gagliardi <[email protected]> | 2014-07-01 09:44:57 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-07-01 09:44:57 -0400 |
| commit | abb642071dd97dadbaa676415c7221201ed9be06 (patch) | |
| tree | c9a96d487c266484c2aaa2de4c7e266a7352f57a | |
| parent | 969700f790abbdb08befbeccfaa2e048299a7e6f (diff) | |
Made the default action for Window.Closing reject the close request.
| -rw-r--r-- | callbacks_unix.go | 2 | ||||
| -rw-r--r-- | window.go | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/callbacks_unix.go b/callbacks_unix.go index e627583..b9ed870 100644 --- a/callbacks_unix.go +++ b/callbacks_unix.go @@ -27,7 +27,7 @@ import "C" func our_window_delete_event_callback(widget *C.GtkWidget, event *C.GdkEvent, what C.gpointer) C.gboolean { // called when the user tries to close the window s := (*sysData)(unsafe.Pointer(what)) - return togbool(s.close()) // ! because TRUE means don't close + return togbool(!s.close()) // ! because TRUE means don't close } var window_delete_event_callback = C.GCallback(C.our_window_delete_event_callback) @@ -12,7 +12,7 @@ type Window struct { // Return true to allow the window to be closed; false otherwise. // You cannot change this field after the Window has been created. // [TODO close vs. hide] - // TODO nil + // If Closing is nil, a default which rejects the close will be used. Closing func() bool created bool @@ -86,6 +86,11 @@ func (w *Window) create(control Control, show bool) { } w.sysData.spaced = w.spaced w.sysData.close = w.Closing + if w.sysData.close == nil { + w.sysData.close = func() bool { + return false + } + } err := w.sysData.make(nil) if err != nil { panic(fmt.Errorf("error opening window: %v", err)) |
