Browse code

Merge branch 'main' of git.sr.ht:~rabbits/uxn

neauoire authored on 16/12/2021 18:48:21
Showing 1 changed files
... ...
@@ -193,7 +193,6 @@ quit(void)
193 193
 	gRenderer = NULL;
194 194
 	SDL_DestroyWindow(gWindow);
195 195
 	SDL_Quit();
196
-	exit(0);
197 196
 }
198 197
 
199 198
 static int
... ...
@@ -227,6 +226,7 @@ init(void)
227 226
 	SDL_CreateThread(stdin_handler, "stdin", NULL);
228 227
 	SDL_StartTextInput();
229 228
 	SDL_ShowCursor(SDL_DISABLE);
229
+	SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
230 230
 	return 1;
231 231
 }
232 232
 
... ...
@@ -489,7 +489,8 @@ doctrl(Uxn *u, SDL_Event *event, int z)
489 489
 	case SDLK_F1: if(z) set_zoom(zoom > 2 ? 1 : zoom + 1); break;
490 490
 	case SDLK_F2: if(z) devsystem->dat[0xe] = !devsystem->dat[0xe]; break;
491 491
 	case SDLK_F3: if(z) capture_screen(); break;
492
-    case SDLK_F4: if(z) restart(u); break;
492
+	case SDLK_AC_BACK:
493
+	case SDLK_F4: if(z) restart(u); break;
493 494
 	}
494 495
 	/* clang-format on */
495 496
 	if(z) {
... ...
@@ -524,11 +525,16 @@ run(Uxn *u)
524 525
 	redraw(u);
525 526
 	while(!devsystem->dat[0xf]) {
526 527
 		SDL_Event event;
527
-		double elapsed, start = 0;
528
+		double elapsed, begin = 0;
528 529
 		if(!BENCH)
529
-			start = SDL_GetPerformanceCounter();
530
+			begin = SDL_GetPerformanceCounter();
530 531
 		while(SDL_PollEvent(&event) != 0) {
531 532
 			switch(event.type) {
533
+			case SDL_DROPFILE:
534
+				set_size(WIDTH, HEIGHT, 0);
535
+				start(u, event.drop.file);
536
+				SDL_free(event.drop.file);
537
+				break;
532 538
 			case SDL_QUIT:
533 539
 				return error("Run", "Quit.");
534 540
 			case SDL_TEXTINPUT:
... ...
@@ -561,7 +567,7 @@ run(Uxn *u)
561 567
 		if(ppu.reqdraw || devsystem->dat[0xe])
562 568
 			redraw(u);
563 569
 		if(!BENCH) {
564
-			elapsed = (SDL_GetPerformanceCounter() - start) / (double)SDL_GetPerformanceFrequency() * 1000.0f;
570
+			elapsed = (SDL_GetPerformanceCounter() - begin) / (double)SDL_GetPerformanceFrequency() * 1000.0f;
565 571
 			SDL_Delay(clamp(16.666f - elapsed, 0, 1000));
566 572
 		}
567 573
 	}