Made the default action for Window.Closing reject the close request.
This commit is contained in:
parent
969700f790
commit
abb642071d
|
@ -27,7 +27,7 @@ import "C"
|
||||||
func our_window_delete_event_callback(widget *C.GtkWidget, event *C.GdkEvent, what C.gpointer) C.gboolean {
|
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
|
// called when the user tries to close the window
|
||||||
s := (*sysData)(unsafe.Pointer(what))
|
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)
|
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.
|
// Return true to allow the window to be closed; false otherwise.
|
||||||
// You cannot change this field after the Window has been created.
|
// You cannot change this field after the Window has been created.
|
||||||
// [TODO close vs. hide]
|
// [TODO close vs. hide]
|
||||||
// TODO nil
|
// If Closing is nil, a default which rejects the close will be used.
|
||||||
Closing func() bool
|
Closing func() bool
|
||||||
|
|
||||||
created bool
|
created bool
|
||||||
|
@ -86,6 +86,11 @@ func (w *Window) create(control Control, show bool) {
|
||||||
}
|
}
|
||||||
w.sysData.spaced = w.spaced
|
w.sysData.spaced = w.spaced
|
||||||
w.sysData.close = w.Closing
|
w.sysData.close = w.Closing
|
||||||
|
if w.sysData.close == nil {
|
||||||
|
w.sysData.close = func() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
err := w.sysData.make(nil)
|
err := w.sysData.make(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Errorf("error opening window: %v", err))
|
panic(fmt.Errorf("error opening window: %v", err))
|
||||||
|
|
Loading…
Reference in New Issue