diff --git a/v3/examples/drag-n-drop/assets/index.html b/v3/examples/drag-n-drop/assets/index.html
new file mode 100644
index 000000000..1ec2339dd
--- /dev/null
+++ b/v3/examples/drag-n-drop/assets/index.html
@@ -0,0 +1,25 @@
+
+
+
+
+ Title
+
+
+
+Drag-n-drop Demo
+
+Drop Files onto this window...
+
+
+
+
+
+
\ No newline at end of file
diff --git a/v3/examples/drag-n-drop/main.go b/v3/examples/drag-n-drop/main.go
new file mode 100644
index 000000000..5719b454f
--- /dev/null
+++ b/v3/examples/drag-n-drop/main.go
@@ -0,0 +1,51 @@
+package main
+
+import (
+ "embed"
+ _ "embed"
+ "log"
+
+ "github.com/wailsapp/wails/v3/pkg/application"
+ "github.com/wailsapp/wails/v3/pkg/events"
+)
+
+//go:embed assets
+var assets embed.FS
+
+func main() {
+
+ app := application.New(application.Options{
+ Name: "Drag-n-drop Demo",
+ Description: "A demo of the Drag-n-drop API",
+ Mac: application.MacOptions{
+ ApplicationShouldTerminateAfterLastWindowClosed: true,
+ },
+ })
+
+ window := app.NewWebviewWindowWithOptions(&application.WebviewWindowOptions{
+ Title: "Drag-n-drop Demo",
+ Assets: application.AssetOptions{
+ FS: assets,
+ },
+ Mac: application.MacWindow{
+ Backdrop: application.MacBackdropTranslucent,
+ TitleBar: application.MacTitleBarHiddenInsetUnified,
+ InvisibleTitleBarHeight: 50,
+ },
+ })
+
+ window.On(events.FilesDropped, func(ctx *application.WindowEventContext) {
+ files := ctx.DroppedFiles()
+ app.Events.Emit(&application.CustomEvent{
+ Name: "files",
+ Data: files,
+ })
+ log.Printf("[Go] FilesDropped received: %+v\n", files)
+ })
+
+ err := app.Run()
+
+ if err != nil {
+ log.Fatal(err.Error())
+ }
+}
diff --git a/v3/pkg/application/context_window_event.go b/v3/pkg/application/context_window_event.go
index ca16b28f4..f9895fbd2 100644
--- a/v3/pkg/application/context_window_event.go
+++ b/v3/pkg/application/context_window_event.go
@@ -2,13 +2,34 @@ package application
var blankWindowEventContext = &WindowEventContext{}
+const (
+ // FilesDropped is the event name for when files are dropped on the window
+ droppedFiles = "droppedFiles"
+)
+
type WindowEventContext struct {
// contains filtered or unexported fields
data map[string]any
}
-func newWindowEventContext() *Context {
- return &Context{
+func (c WindowEventContext) DroppedFiles() []string {
+ files, ok := c.data[droppedFiles]
+ if !ok {
+ return nil
+ }
+ result, ok := files.([]string)
+ if !ok {
+ return nil
+ }
+ return result
+}
+
+func (c WindowEventContext) setDroppedFiles(files []string) {
+ c.data[droppedFiles] = files
+}
+
+func newWindowEventContext() *WindowEventContext {
+ return &WindowEventContext{
data: make(map[string]any),
}
}
diff --git a/v3/pkg/application/webview_window.go b/v3/pkg/application/webview_window.go
index 63fce5262..7bb910213 100644
--- a/v3/pkg/application/webview_window.go
+++ b/v3/pkg/application/webview_window.go
@@ -659,8 +659,10 @@ func (w *WebviewWindow) error(message string, args ...any) {
func (w *WebviewWindow) handleDragAndDropMessage(event *dragAndDropMessage) {
println("Drag and drop message received for " + w.Name())
// Print filenames
- for _, file := range event.filenames {
- println(file)
+ ctx := newWindowEventContext()
+ ctx.setDroppedFiles(event.filenames)
+ for _, listener := range w.eventListeners[uint(events.FilesDropped)] {
+ listener(ctx)
}
}
diff --git a/v3/pkg/events/events.go b/v3/pkg/events/events.go
index 907551c41..2a6238388 100644
--- a/v3/pkg/events/events.go
+++ b/v3/pkg/events/events.go
@@ -3,6 +3,10 @@ package events
type ApplicationEventType uint
type WindowEventType uint
+const (
+ FilesDropped WindowEventType = iota
+)
+
var Mac = newMacEvents()
type macEvents struct {
@@ -132,127 +136,127 @@ type macEvents struct {
func newMacEvents() macEvents {
return macEvents{
- ApplicationDidBecomeActive: 0,
- ApplicationDidChangeBackingProperties: 1,
- ApplicationDidChangeEffectiveAppearance: 2,
- ApplicationDidChangeIcon: 3,
- ApplicationDidChangeOcclusionState: 4,
- ApplicationDidChangeScreenParameters: 5,
- ApplicationDidChangeStatusBarFrame: 6,
- ApplicationDidChangeStatusBarOrientation: 7,
- ApplicationDidFinishLaunching: 8,
- ApplicationDidHide: 9,
- ApplicationDidResignActive: 10,
- ApplicationDidUnhide: 11,
- ApplicationDidUpdate: 12,
- ApplicationWillBecomeActive: 13,
- ApplicationWillFinishLaunching: 14,
- ApplicationWillHide: 15,
- ApplicationWillResignActive: 16,
- ApplicationWillTerminate: 17,
- ApplicationWillUnhide: 18,
- ApplicationWillUpdate: 19,
- WindowDidBecomeKey: 20,
- WindowDidBecomeMain: 21,
- WindowDidBeginSheet: 22,
- WindowDidChangeAlpha: 23,
- WindowDidChangeBackingLocation: 24,
- WindowDidChangeBackingProperties: 25,
- WindowDidChangeCollectionBehavior: 26,
- WindowDidChangeEffectiveAppearance: 27,
- WindowDidChangeOcclusionState: 28,
- WindowDidChangeOrderingMode: 29,
- WindowDidChangeScreen: 30,
- WindowDidChangeScreenParameters: 31,
- WindowDidChangeScreenProfile: 32,
- WindowDidChangeScreenSpace: 33,
- WindowDidChangeScreenSpaceProperties: 34,
- WindowDidChangeSharingType: 35,
- WindowDidChangeSpace: 36,
- WindowDidChangeSpaceOrderingMode: 37,
- WindowDidChangeTitle: 38,
- WindowDidChangeToolbar: 39,
- WindowDidChangeVisibility: 40,
- WindowDidClose: 41,
- WindowDidDeminiaturize: 42,
- WindowDidEndSheet: 43,
- WindowDidEnterFullScreen: 44,
- WindowDidEnterVersionBrowser: 45,
- WindowDidExitFullScreen: 46,
- WindowDidExitVersionBrowser: 47,
- WindowDidExpose: 48,
- WindowDidFocus: 49,
- WindowDidMiniaturize: 50,
- WindowDidMove: 51,
- WindowDidOrderOffScreen: 52,
- WindowDidOrderOnScreen: 53,
- WindowDidResignKey: 54,
- WindowDidResignMain: 55,
- WindowDidResize: 56,
- WindowDidUnfocus: 57,
- WindowDidUpdate: 58,
- WindowDidUpdateAlpha: 59,
- WindowDidUpdateCollectionBehavior: 60,
- WindowDidUpdateCollectionProperties: 61,
- WindowDidUpdateShadow: 62,
- WindowDidUpdateTitle: 63,
- WindowDidUpdateToolbar: 64,
- WindowDidUpdateVisibility: 65,
- WindowWillBecomeKey: 66,
- WindowWillBecomeMain: 67,
- WindowWillBeginSheet: 68,
- WindowWillChangeOrderingMode: 69,
- WindowWillClose: 70,
- WindowWillDeminiaturize: 71,
- WindowWillEnterFullScreen: 72,
- WindowWillEnterVersionBrowser: 73,
- WindowWillExitFullScreen: 74,
- WindowWillExitVersionBrowser: 75,
- WindowWillFocus: 76,
- WindowWillMiniaturize: 77,
- WindowWillMove: 78,
- WindowWillOrderOffScreen: 79,
- WindowWillOrderOnScreen: 80,
- WindowWillResignMain: 81,
- WindowWillResize: 82,
- WindowWillUnfocus: 83,
- WindowWillUpdate: 84,
- WindowWillUpdateAlpha: 85,
- WindowWillUpdateCollectionBehavior: 86,
- WindowWillUpdateCollectionProperties: 87,
- WindowWillUpdateShadow: 88,
- WindowWillUpdateTitle: 89,
- WindowWillUpdateToolbar: 90,
- WindowWillUpdateVisibility: 91,
- WindowWillUseStandardFrame: 92,
- MenuWillOpen: 93,
- MenuDidOpen: 94,
- MenuDidClose: 95,
- MenuWillSendAction: 96,
- MenuDidSendAction: 97,
- MenuWillHighlightItem: 98,
- MenuDidHighlightItem: 99,
- MenuWillDisplayItem: 100,
- MenuDidDisplayItem: 101,
- MenuWillAddItem: 102,
- MenuDidAddItem: 103,
- MenuWillRemoveItem: 104,
- MenuDidRemoveItem: 105,
- MenuWillBeginTracking: 106,
- MenuDidBeginTracking: 107,
- MenuWillEndTracking: 108,
- MenuDidEndTracking: 109,
- MenuWillUpdate: 110,
- MenuDidUpdate: 111,
- MenuWillPopUp: 112,
- MenuDidPopUp: 113,
- MenuWillSendActionToItem: 114,
- MenuDidSendActionToItem: 115,
- WebViewDidStartProvisionalNavigation: 116,
- WebViewDidReceiveServerRedirectForProvisionalNavigation: 117,
- WebViewDidFinishNavigation: 118,
- WebViewDidCommitNavigation: 119,
- WebViewDraggingEntered: 120,
- WebViewDraggingPerformed: 121,
+ ApplicationDidBecomeActive: 1024,
+ ApplicationDidChangeBackingProperties: 1025,
+ ApplicationDidChangeEffectiveAppearance: 1026,
+ ApplicationDidChangeIcon: 1027,
+ ApplicationDidChangeOcclusionState: 1028,
+ ApplicationDidChangeScreenParameters: 1029,
+ ApplicationDidChangeStatusBarFrame: 1030,
+ ApplicationDidChangeStatusBarOrientation: 1031,
+ ApplicationDidFinishLaunching: 1032,
+ ApplicationDidHide: 1033,
+ ApplicationDidResignActive: 1034,
+ ApplicationDidUnhide: 1035,
+ ApplicationDidUpdate: 1036,
+ ApplicationWillBecomeActive: 1037,
+ ApplicationWillFinishLaunching: 1038,
+ ApplicationWillHide: 1039,
+ ApplicationWillResignActive: 1040,
+ ApplicationWillTerminate: 1041,
+ ApplicationWillUnhide: 1042,
+ ApplicationWillUpdate: 1043,
+ WindowDidBecomeKey: 1044,
+ WindowDidBecomeMain: 1045,
+ WindowDidBeginSheet: 1046,
+ WindowDidChangeAlpha: 1047,
+ WindowDidChangeBackingLocation: 1048,
+ WindowDidChangeBackingProperties: 1049,
+ WindowDidChangeCollectionBehavior: 1050,
+ WindowDidChangeEffectiveAppearance: 1051,
+ WindowDidChangeOcclusionState: 1052,
+ WindowDidChangeOrderingMode: 1053,
+ WindowDidChangeScreen: 1054,
+ WindowDidChangeScreenParameters: 1055,
+ WindowDidChangeScreenProfile: 1056,
+ WindowDidChangeScreenSpace: 1057,
+ WindowDidChangeScreenSpaceProperties: 1058,
+ WindowDidChangeSharingType: 1059,
+ WindowDidChangeSpace: 1060,
+ WindowDidChangeSpaceOrderingMode: 1061,
+ WindowDidChangeTitle: 1062,
+ WindowDidChangeToolbar: 1063,
+ WindowDidChangeVisibility: 1064,
+ WindowDidClose: 1065,
+ WindowDidDeminiaturize: 1066,
+ WindowDidEndSheet: 1067,
+ WindowDidEnterFullScreen: 1068,
+ WindowDidEnterVersionBrowser: 1069,
+ WindowDidExitFullScreen: 1070,
+ WindowDidExitVersionBrowser: 1071,
+ WindowDidExpose: 1072,
+ WindowDidFocus: 1073,
+ WindowDidMiniaturize: 1074,
+ WindowDidMove: 1075,
+ WindowDidOrderOffScreen: 1076,
+ WindowDidOrderOnScreen: 1077,
+ WindowDidResignKey: 1078,
+ WindowDidResignMain: 1079,
+ WindowDidResize: 1080,
+ WindowDidUnfocus: 1081,
+ WindowDidUpdate: 1082,
+ WindowDidUpdateAlpha: 1083,
+ WindowDidUpdateCollectionBehavior: 1084,
+ WindowDidUpdateCollectionProperties: 1085,
+ WindowDidUpdateShadow: 1086,
+ WindowDidUpdateTitle: 1087,
+ WindowDidUpdateToolbar: 1088,
+ WindowDidUpdateVisibility: 1089,
+ WindowWillBecomeKey: 1090,
+ WindowWillBecomeMain: 1091,
+ WindowWillBeginSheet: 1092,
+ WindowWillChangeOrderingMode: 1093,
+ WindowWillClose: 1094,
+ WindowWillDeminiaturize: 1095,
+ WindowWillEnterFullScreen: 1096,
+ WindowWillEnterVersionBrowser: 1097,
+ WindowWillExitFullScreen: 1098,
+ WindowWillExitVersionBrowser: 1099,
+ WindowWillFocus: 1100,
+ WindowWillMiniaturize: 1101,
+ WindowWillMove: 1102,
+ WindowWillOrderOffScreen: 1103,
+ WindowWillOrderOnScreen: 1104,
+ WindowWillResignMain: 1105,
+ WindowWillResize: 1106,
+ WindowWillUnfocus: 1107,
+ WindowWillUpdate: 1108,
+ WindowWillUpdateAlpha: 1109,
+ WindowWillUpdateCollectionBehavior: 1110,
+ WindowWillUpdateCollectionProperties: 1111,
+ WindowWillUpdateShadow: 1112,
+ WindowWillUpdateTitle: 1113,
+ WindowWillUpdateToolbar: 1114,
+ WindowWillUpdateVisibility: 1115,
+ WindowWillUseStandardFrame: 1116,
+ MenuWillOpen: 1117,
+ MenuDidOpen: 1118,
+ MenuDidClose: 1119,
+ MenuWillSendAction: 1120,
+ MenuDidSendAction: 1121,
+ MenuWillHighlightItem: 1122,
+ MenuDidHighlightItem: 1123,
+ MenuWillDisplayItem: 1124,
+ MenuDidDisplayItem: 1125,
+ MenuWillAddItem: 1126,
+ MenuDidAddItem: 1127,
+ MenuWillRemoveItem: 1128,
+ MenuDidRemoveItem: 1129,
+ MenuWillBeginTracking: 1130,
+ MenuDidBeginTracking: 1131,
+ MenuWillEndTracking: 1132,
+ MenuDidEndTracking: 1133,
+ MenuWillUpdate: 1134,
+ MenuDidUpdate: 1135,
+ MenuWillPopUp: 1136,
+ MenuDidPopUp: 1137,
+ MenuWillSendActionToItem: 1138,
+ MenuDidSendActionToItem: 1139,
+ WebViewDidStartProvisionalNavigation: 1140,
+ WebViewDidReceiveServerRedirectForProvisionalNavigation: 1141,
+ WebViewDidFinishNavigation: 1142,
+ WebViewDidCommitNavigation: 1143,
+ WebViewDraggingEntered: 1144,
+ WebViewDraggingPerformed: 1145,
}
}
diff --git a/v3/pkg/events/events.h b/v3/pkg/events/events.h
index 7a3508958..0520a6480 100644
--- a/v3/pkg/events/events.h
+++ b/v3/pkg/events/events.h
@@ -6,130 +6,130 @@
extern void processApplicationEvent(unsigned int);
extern void processWindowEvent(unsigned int, unsigned int);
-#define EventApplicationDidBecomeActive 0
-#define EventApplicationDidChangeBackingProperties 1
-#define EventApplicationDidChangeEffectiveAppearance 2
-#define EventApplicationDidChangeIcon 3
-#define EventApplicationDidChangeOcclusionState 4
-#define EventApplicationDidChangeScreenParameters 5
-#define EventApplicationDidChangeStatusBarFrame 6
-#define EventApplicationDidChangeStatusBarOrientation 7
-#define EventApplicationDidFinishLaunching 8
-#define EventApplicationDidHide 9
-#define EventApplicationDidResignActive 10
-#define EventApplicationDidUnhide 11
-#define EventApplicationDidUpdate 12
-#define EventApplicationWillBecomeActive 13
-#define EventApplicationWillFinishLaunching 14
-#define EventApplicationWillHide 15
-#define EventApplicationWillResignActive 16
-#define EventApplicationWillTerminate 17
-#define EventApplicationWillUnhide 18
-#define EventApplicationWillUpdate 19
-#define EventWindowDidBecomeKey 20
-#define EventWindowDidBecomeMain 21
-#define EventWindowDidBeginSheet 22
-#define EventWindowDidChangeAlpha 23
-#define EventWindowDidChangeBackingLocation 24
-#define EventWindowDidChangeBackingProperties 25
-#define EventWindowDidChangeCollectionBehavior 26
-#define EventWindowDidChangeEffectiveAppearance 27
-#define EventWindowDidChangeOcclusionState 28
-#define EventWindowDidChangeOrderingMode 29
-#define EventWindowDidChangeScreen 30
-#define EventWindowDidChangeScreenParameters 31
-#define EventWindowDidChangeScreenProfile 32
-#define EventWindowDidChangeScreenSpace 33
-#define EventWindowDidChangeScreenSpaceProperties 34
-#define EventWindowDidChangeSharingType 35
-#define EventWindowDidChangeSpace 36
-#define EventWindowDidChangeSpaceOrderingMode 37
-#define EventWindowDidChangeTitle 38
-#define EventWindowDidChangeToolbar 39
-#define EventWindowDidChangeVisibility 40
-#define EventWindowDidClose 41
-#define EventWindowDidDeminiaturize 42
-#define EventWindowDidEndSheet 43
-#define EventWindowDidEnterFullScreen 44
-#define EventWindowDidEnterVersionBrowser 45
-#define EventWindowDidExitFullScreen 46
-#define EventWindowDidExitVersionBrowser 47
-#define EventWindowDidExpose 48
-#define EventWindowDidFocus 49
-#define EventWindowDidMiniaturize 50
-#define EventWindowDidMove 51
-#define EventWindowDidOrderOffScreen 52
-#define EventWindowDidOrderOnScreen 53
-#define EventWindowDidResignKey 54
-#define EventWindowDidResignMain 55
-#define EventWindowDidResize 56
-#define EventWindowDidUnfocus 57
-#define EventWindowDidUpdate 58
-#define EventWindowDidUpdateAlpha 59
-#define EventWindowDidUpdateCollectionBehavior 60
-#define EventWindowDidUpdateCollectionProperties 61
-#define EventWindowDidUpdateShadow 62
-#define EventWindowDidUpdateTitle 63
-#define EventWindowDidUpdateToolbar 64
-#define EventWindowDidUpdateVisibility 65
-#define EventWindowWillBecomeKey 66
-#define EventWindowWillBecomeMain 67
-#define EventWindowWillBeginSheet 68
-#define EventWindowWillChangeOrderingMode 69
-#define EventWindowWillClose 70
-#define EventWindowWillDeminiaturize 71
-#define EventWindowWillEnterFullScreen 72
-#define EventWindowWillEnterVersionBrowser 73
-#define EventWindowWillExitFullScreen 74
-#define EventWindowWillExitVersionBrowser 75
-#define EventWindowWillFocus 76
-#define EventWindowWillMiniaturize 77
-#define EventWindowWillMove 78
-#define EventWindowWillOrderOffScreen 79
-#define EventWindowWillOrderOnScreen 80
-#define EventWindowWillResignMain 81
-#define EventWindowWillResize 82
-#define EventWindowWillUnfocus 83
-#define EventWindowWillUpdate 84
-#define EventWindowWillUpdateAlpha 85
-#define EventWindowWillUpdateCollectionBehavior 86
-#define EventWindowWillUpdateCollectionProperties 87
-#define EventWindowWillUpdateShadow 88
-#define EventWindowWillUpdateTitle 89
-#define EventWindowWillUpdateToolbar 90
-#define EventWindowWillUpdateVisibility 91
-#define EventWindowWillUseStandardFrame 92
-#define EventMenuWillOpen 93
-#define EventMenuDidOpen 94
-#define EventMenuDidClose 95
-#define EventMenuWillSendAction 96
-#define EventMenuDidSendAction 97
-#define EventMenuWillHighlightItem 98
-#define EventMenuDidHighlightItem 99
-#define EventMenuWillDisplayItem 100
-#define EventMenuDidDisplayItem 101
-#define EventMenuWillAddItem 102
-#define EventMenuDidAddItem 103
-#define EventMenuWillRemoveItem 104
-#define EventMenuDidRemoveItem 105
-#define EventMenuWillBeginTracking 106
-#define EventMenuDidBeginTracking 107
-#define EventMenuWillEndTracking 108
-#define EventMenuDidEndTracking 109
-#define EventMenuWillUpdate 110
-#define EventMenuDidUpdate 111
-#define EventMenuWillPopUp 112
-#define EventMenuDidPopUp 113
-#define EventMenuWillSendActionToItem 114
-#define EventMenuDidSendActionToItem 115
-#define EventWebViewDidStartProvisionalNavigation 116
-#define EventWebViewDidReceiveServerRedirectForProvisionalNavigation 117
-#define EventWebViewDidFinishNavigation 118
-#define EventWebViewDidCommitNavigation 119
-#define EventWebViewDraggingEntered 120
-#define EventWebViewDraggingPerformed 121
+#define EventApplicationDidBecomeActive 1024
+#define EventApplicationDidChangeBackingProperties 1025
+#define EventApplicationDidChangeEffectiveAppearance 1026
+#define EventApplicationDidChangeIcon 1027
+#define EventApplicationDidChangeOcclusionState 1028
+#define EventApplicationDidChangeScreenParameters 1029
+#define EventApplicationDidChangeStatusBarFrame 1030
+#define EventApplicationDidChangeStatusBarOrientation 1031
+#define EventApplicationDidFinishLaunching 1032
+#define EventApplicationDidHide 1033
+#define EventApplicationDidResignActive 1034
+#define EventApplicationDidUnhide 1035
+#define EventApplicationDidUpdate 1036
+#define EventApplicationWillBecomeActive 1037
+#define EventApplicationWillFinishLaunching 1038
+#define EventApplicationWillHide 1039
+#define EventApplicationWillResignActive 1040
+#define EventApplicationWillTerminate 1041
+#define EventApplicationWillUnhide 1042
+#define EventApplicationWillUpdate 1043
+#define EventWindowDidBecomeKey 1044
+#define EventWindowDidBecomeMain 1045
+#define EventWindowDidBeginSheet 1046
+#define EventWindowDidChangeAlpha 1047
+#define EventWindowDidChangeBackingLocation 1048
+#define EventWindowDidChangeBackingProperties 1049
+#define EventWindowDidChangeCollectionBehavior 1050
+#define EventWindowDidChangeEffectiveAppearance 1051
+#define EventWindowDidChangeOcclusionState 1052
+#define EventWindowDidChangeOrderingMode 1053
+#define EventWindowDidChangeScreen 1054
+#define EventWindowDidChangeScreenParameters 1055
+#define EventWindowDidChangeScreenProfile 1056
+#define EventWindowDidChangeScreenSpace 1057
+#define EventWindowDidChangeScreenSpaceProperties 1058
+#define EventWindowDidChangeSharingType 1059
+#define EventWindowDidChangeSpace 1060
+#define EventWindowDidChangeSpaceOrderingMode 1061
+#define EventWindowDidChangeTitle 1062
+#define EventWindowDidChangeToolbar 1063
+#define EventWindowDidChangeVisibility 1064
+#define EventWindowDidClose 1065
+#define EventWindowDidDeminiaturize 1066
+#define EventWindowDidEndSheet 1067
+#define EventWindowDidEnterFullScreen 1068
+#define EventWindowDidEnterVersionBrowser 1069
+#define EventWindowDidExitFullScreen 1070
+#define EventWindowDidExitVersionBrowser 1071
+#define EventWindowDidExpose 1072
+#define EventWindowDidFocus 1073
+#define EventWindowDidMiniaturize 1074
+#define EventWindowDidMove 1075
+#define EventWindowDidOrderOffScreen 1076
+#define EventWindowDidOrderOnScreen 1077
+#define EventWindowDidResignKey 1078
+#define EventWindowDidResignMain 1079
+#define EventWindowDidResize 1080
+#define EventWindowDidUnfocus 1081
+#define EventWindowDidUpdate 1082
+#define EventWindowDidUpdateAlpha 1083
+#define EventWindowDidUpdateCollectionBehavior 1084
+#define EventWindowDidUpdateCollectionProperties 1085
+#define EventWindowDidUpdateShadow 1086
+#define EventWindowDidUpdateTitle 1087
+#define EventWindowDidUpdateToolbar 1088
+#define EventWindowDidUpdateVisibility 1089
+#define EventWindowWillBecomeKey 1090
+#define EventWindowWillBecomeMain 1091
+#define EventWindowWillBeginSheet 1092
+#define EventWindowWillChangeOrderingMode 1093
+#define EventWindowWillClose 1094
+#define EventWindowWillDeminiaturize 1095
+#define EventWindowWillEnterFullScreen 1096
+#define EventWindowWillEnterVersionBrowser 1097
+#define EventWindowWillExitFullScreen 1098
+#define EventWindowWillExitVersionBrowser 1099
+#define EventWindowWillFocus 1100
+#define EventWindowWillMiniaturize 1101
+#define EventWindowWillMove 1102
+#define EventWindowWillOrderOffScreen 1103
+#define EventWindowWillOrderOnScreen 1104
+#define EventWindowWillResignMain 1105
+#define EventWindowWillResize 1106
+#define EventWindowWillUnfocus 1107
+#define EventWindowWillUpdate 1108
+#define EventWindowWillUpdateAlpha 1109
+#define EventWindowWillUpdateCollectionBehavior 1110
+#define EventWindowWillUpdateCollectionProperties 1111
+#define EventWindowWillUpdateShadow 1112
+#define EventWindowWillUpdateTitle 1113
+#define EventWindowWillUpdateToolbar 1114
+#define EventWindowWillUpdateVisibility 1115
+#define EventWindowWillUseStandardFrame 1116
+#define EventMenuWillOpen 1117
+#define EventMenuDidOpen 1118
+#define EventMenuDidClose 1119
+#define EventMenuWillSendAction 1120
+#define EventMenuDidSendAction 1121
+#define EventMenuWillHighlightItem 1122
+#define EventMenuDidHighlightItem 1123
+#define EventMenuWillDisplayItem 1124
+#define EventMenuDidDisplayItem 1125
+#define EventMenuWillAddItem 1126
+#define EventMenuDidAddItem 1127
+#define EventMenuWillRemoveItem 1128
+#define EventMenuDidRemoveItem 1129
+#define EventMenuWillBeginTracking 1130
+#define EventMenuDidBeginTracking 1131
+#define EventMenuWillEndTracking 1132
+#define EventMenuDidEndTracking 1133
+#define EventMenuWillUpdate 1134
+#define EventMenuDidUpdate 1135
+#define EventMenuWillPopUp 1136
+#define EventMenuDidPopUp 1137
+#define EventMenuWillSendActionToItem 1138
+#define EventMenuDidSendActionToItem 1139
+#define EventWebViewDidStartProvisionalNavigation 1140
+#define EventWebViewDidReceiveServerRedirectForProvisionalNavigation 1141
+#define EventWebViewDidFinishNavigation 1142
+#define EventWebViewDidCommitNavigation 1143
+#define EventWebViewDraggingEntered 1144
+#define EventWebViewDraggingPerformed 1145
-#define MAX_EVENTS 123
+#define MAX_EVENTS 1146
#endif
\ No newline at end of file
diff --git a/v3/tasks/events/generate.go b/v3/tasks/events/generate.go
index 98428ba5f..eafa27f89 100644
--- a/v3/tasks/events/generate.go
+++ b/v3/tasks/events/generate.go
@@ -12,6 +12,10 @@ var eventsGo = `package events
type ApplicationEventType uint
type WindowEventType uint
+const (
+ FilesDropped WindowEventType = iota
+)
+
var Mac = newMacEvents()
type macEvents struct {
@@ -54,6 +58,9 @@ func main() {
// Loop over each line in the file
for id, line = range bytes.Split(eventNames, []byte{'\n'}) {
+ // First 1024 is reserved
+ id = id + 1024
+
// Skip empty lines
if len(line) == 0 {
continue