mirror of https://github.com/LIJI32/SameBoy.git
Work around a Wayland bug – wait for mouse up before creating a new window #470
This commit is contained in:
parent
a005ebe417
commit
ae1d3ddf6c
9
Makefile
9
Makefile
|
@ -274,6 +274,10 @@ endif
|
||||||
$(OBJ)/SDL/%.dep: SDL/%
|
$(OBJ)/SDL/%.dep: SDL/%
|
||||||
-@$(MKDIR) -p $(dir $@)
|
-@$(MKDIR) -p $(dir $@)
|
||||||
$(CC) $(CFLAGS) $(SDL_CFLAGS) $(GL_CFLAGS) -MT $(OBJ)/$^.o -M $^ -c -o $@
|
$(CC) $(CFLAGS) $(SDL_CFLAGS) $(GL_CFLAGS) -MT $(OBJ)/$^.o -M $^ -c -o $@
|
||||||
|
|
||||||
|
$(OBJ)/OpenDialog/%.dep: OpenDialog/%
|
||||||
|
-@$(MKDIR) -p $(dir $@)
|
||||||
|
$(CC) $(CFLAGS) $(SDL_CFLAGS) $(GL_CFLAGS) -MT $(OBJ)/$^.o -M $^ -c -o $@
|
||||||
|
|
||||||
$(OBJ)/%.dep: %
|
$(OBJ)/%.dep: %
|
||||||
-@$(MKDIR) -p $(dir $@)
|
-@$(MKDIR) -p $(dir $@)
|
||||||
|
@ -289,6 +293,11 @@ $(OBJ)/SDL/%.c.o: SDL/%.c
|
||||||
-@$(MKDIR) -p $(dir $@)
|
-@$(MKDIR) -p $(dir $@)
|
||||||
$(CC) $(CFLAGS) $(FAT_FLAGS) $(SDL_CFLAGS) $(GL_CFLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) $(FAT_FLAGS) $(SDL_CFLAGS) $(GL_CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(OBJ)/OpenDialog/%.c.o: OpenDialog/%.c
|
||||||
|
-@$(MKDIR) -p $(dir $@)
|
||||||
|
$(CC) $(CFLAGS) $(FAT_FLAGS) $(SDL_CFLAGS) $(GL_CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
|
||||||
$(OBJ)/%.c.o: %.c
|
$(OBJ)/%.c.o: %.c
|
||||||
-@$(MKDIR) -p $(dir $@)
|
-@$(MKDIR) -p $(dir $@)
|
||||||
$(CC) $(CFLAGS) $(FAT_FLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) $(FAT_FLAGS) -c $< -o $@
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "open_dialog.h"
|
#include "open_dialog.h"
|
||||||
|
#include <SDL.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
@ -51,8 +52,18 @@ if (symbol == NULL) goto lazy_error
|
||||||
|
|
||||||
void nop(){}
|
void nop(){}
|
||||||
|
|
||||||
|
static void wait_mouse_up(void)
|
||||||
|
{
|
||||||
|
while (true) {
|
||||||
|
if (!(SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(SDL_BUTTON_LEFT))) break;
|
||||||
|
SDL_Event event;
|
||||||
|
SDL_PollEvent(&event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
char *do_open_rom_dialog(void)
|
char *do_open_rom_dialog(void)
|
||||||
{
|
{
|
||||||
|
wait_mouse_up();
|
||||||
static void *handle = NULL;
|
static void *handle = NULL;
|
||||||
|
|
||||||
TRY_DLOPEN("libgtk-3.so");
|
TRY_DLOPEN("libgtk-3.so");
|
||||||
|
@ -129,6 +140,7 @@ lazy_error:
|
||||||
|
|
||||||
char *do_open_folder_dialog(void)
|
char *do_open_folder_dialog(void)
|
||||||
{
|
{
|
||||||
|
wait_mouse_up();
|
||||||
static void *handle = NULL;
|
static void *handle = NULL;
|
||||||
|
|
||||||
TRY_DLOPEN("libgtk-3.so");
|
TRY_DLOPEN("libgtk-3.so");
|
||||||
|
@ -261,6 +273,7 @@ lazy_error:
|
||||||
|
|
||||||
char *do_save_recording_dialog(unsigned frequency)
|
char *do_save_recording_dialog(unsigned frequency)
|
||||||
{
|
{
|
||||||
|
wait_mouse_up();
|
||||||
static void *handle = NULL;
|
static void *handle = NULL;
|
||||||
|
|
||||||
TRY_DLOPEN("libgtk-3.so");
|
TRY_DLOPEN("libgtk-3.so");
|
||||||
|
|
Loading…
Reference in New Issue