Merge pull request #601 from clasher113/main

bug fix
This commit is contained in:
MihailRis 2025-08-29 20:54:40 +03:00 committed by GitHub
commit d6bf8b25f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 4 deletions

View File

@ -45,7 +45,7 @@ sudo apt install libglfw3-dev libglfw3 libglew-dev libglm-dev libpng-dev libopen
#### RHEL based distros #### RHEL based distros
```sh ```sh
sudo dnf install glfw-devel glfw glew-devel glm-devel libpng-devel libvorbis-devel openal-devel luajit-devel libcurl-devel sudo dnf install glfw-devel glfw glew-devel glm-devel libpng-devel libvorbis-devel openal-soft-devel luajit-devel libcurl-devel
``` ```
#### Arch based distros #### Arch based distros

View File

@ -31,11 +31,11 @@
size='32' margin='0,0,425,64' gravity='bottom-right' size='32' margin='0,0,425,64' gravity='bottom-right'
color='#FFFFFF50' hover-color='#FFFFFF10'/> color='#FFFFFF50' hover-color='#FFFFFF10'/>
<panel id='packs_add' pos='485,34' size='440,507' color='0' max-length='455' scrollable='true'> <panel id='packs_add' pos='485,34' size='440,455' color='0' max-length='455' scrollable='true'>
<!-- content is generated in script --> <!-- content is generated in script -->
</panel> </panel>
<panel id='packs_cur' pos='15,34' size='440,507' color='0' max-length='455' scrollable='true'> <panel id='packs_cur' pos='15,34' size='440,455' color='0' max-length='455' scrollable='true'>
<!-- content is generated in script --> <!-- content is generated in script -->
</panel> </panel>
</container> </container>

View File

@ -19,6 +19,7 @@
static debug::Logger logger("window"); static debug::Logger logger("window");
static std::unordered_set<std::string> supported_gl_extensions; static std::unordered_set<std::string> supported_gl_extensions;
static void window_size_callback(GLFWwindow* window, int width, int height);
static void init_gl_extensions_list() { static void init_gl_extensions_list() {
GLint numExtensions = 0; GLint numExtensions = 0;
@ -418,7 +419,7 @@ public:
if (fullscreen) { if (fullscreen) {
glfwGetWindowPos(window, &posX, &posY); glfwGetWindowPos(window, &posX, &posY);
glfwSetWindowMonitor( glfwSetWindowMonitor(
window, monitor, 0, 0, mode->width, mode->height, GLFW_DONT_CARE window, monitor, 0, 0, mode->width, mode->height, mode->refreshRate
); );
} else { } else {
glfwSetWindowMonitor( glfwSetWindowMonitor(
@ -430,6 +431,7 @@ public:
settings->height.get(), settings->height.get(),
GLFW_DONT_CARE GLFW_DONT_CARE
); );
window_size_callback(window, settings->width.get(), settings->height.get());
} }
double xPos, yPos; double xPos, yPos;
@ -596,6 +598,17 @@ static void cursor_pos_callback(GLFWwindow* window, double xpos, double ypos) {
handler->input.setCursorPosition(xpos, ypos); handler->input.setCursorPosition(xpos, ypos);
} }
static void iconify_callback(GLFWwindow* window, int iconified) {
auto handler = static_cast<GLFWWindow*>(glfwGetWindowUserPointer(window));
if (handler->isFullscreen() && iconified == 0) {
GLFWmonitor* monitor = glfwGetPrimaryMonitor();
const GLFWvidmode* mode = glfwGetVideoMode(monitor);
glfwSetWindowMonitor(
window, monitor, 0, 0, mode->width, mode->height, mode->refreshRate
);
}
}
static void create_standard_cursors() { static void create_standard_cursors() {
for (int i = 0; i <= static_cast<int>(CursorShape::LAST); i++) { for (int i = 0; i <= static_cast<int>(CursorShape::LAST); i++) {
int cursor = GLFW_ARROW_CURSOR + i; int cursor = GLFW_ARROW_CURSOR + i;
@ -615,6 +628,7 @@ static void setup_callbacks(GLFWwindow* window) {
glfwSetWindowSizeCallback(window, window_size_callback); glfwSetWindowSizeCallback(window, window_size_callback);
glfwSetCharCallback(window, character_callback); glfwSetCharCallback(window, character_callback);
glfwSetScrollCallback(window, scroll_callback); glfwSetScrollCallback(window, scroll_callback);
glfwSetWindowIconifyCallback(window, iconify_callback);
} }
std::tuple< std::tuple<