diff --git a/internal/c/parts/core/src/freeglut_main.c b/internal/c/parts/core/src/freeglut_main.c index e4f754de7..250f52500 100644 --- a/internal/c/parts/core/src/freeglut_main.c +++ b/internal/c/parts/core/src/freeglut_main.c @@ -2237,7 +2237,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, break; case WM_DROPFILES: - qb64_custom_event(QB64_EVENT_FILE_DROP,0,0,0,0,0,0,0,0,wParam,NULL); + qb64_custom_event(QB64_EVENT_FILE_DROP,0,0,0,0,0,0,0,0,(void*)wParam,NULL); break; case WM_DESTROY: diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 03a495a0c..d64821680 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -1275,6 +1275,15 @@ FUNCTION ide2 (ignore) END IF END IF + IF _TOTALDROPPEDFILES > 0 THEN + IF _FILEEXISTS(_DROPPEDFILE$(1)) THEN + IdeOpenFile$ = _DROPPEDFILE$(1) + _FINISHDROP + GOTO ctrlOpen + END IF + _FINISHDROP + END IF + 'Hover/click (QuickNav) IF IdeSystem = 1 AND QuickNavTotal > 0 THEN IF mY = 2 THEN @@ -7440,6 +7449,14 @@ FUNCTION ideopen$ IF mB THEN change = 1 alt = KALT: IF alt <> oldalt THEN change = 1 oldalt = alt + + IF _TOTALDROPPEDFILES > 0 THEN + idetxt(o(1).txt) = _DROPPEDFILE$(1) + o(1).v1 = LEN(idetxt(o(1).txt)) + _FINISHDROP + change = 1 + END IF + _LIMIT 100 LOOP UNTIL change IF alt AND NOT KCTRL THEN idehl = 1 ELSE idehl = 0 diff --git a/source/qb64.bas b/source/qb64.bas index 887a2d474..28d18081b 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -921,6 +921,9 @@ gl_scan_header '-----------------------QB64 COMPILER ONCE ONLY SETUP CODE ENDS HERE--------------------------------------- IF NoIDEMode THEN IDE_AutoPosition = 0: GOTO noide +DIM FileDropEnabled AS _BYTE +IF FileDropEnabled = 0 THEN FileDropEnabled = -1: _ACCEPTFILEDROP + IF IDE_AutoPosition AND NOT IDE_BypassAutoPosition THEN _SCREENMOVE IDE_LeftPosition, IDE_TopPosition idemode = 1 sendc$ = "" 'no initial message