diff options
author | dec05eba <dec05eba@protonmail.com> | 2023-12-08 18:21:31 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2023-12-08 18:21:31 +0100 |
commit | 5476474c1ceb86814676750de59b2838fd83230f (patch) | |
tree | 847c7cb4cde8ef37ea55d28ba0c5344913041f81 /src | |
parent | 15f5c9a1433bccf8a85a12713079c0aad0650dfa (diff) |
Make dialog window a real dialog window
Diffstat (limited to 'src')
-rw-r--r-- | src/QuickMedia.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index edf7851..a7bea3c 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -702,8 +702,9 @@ namespace QuickMedia { mgl::vec2i monitor_size; mgl::vec2i focused_monitor_center = get_focused_monitor_center(disp, monitor_size); + const bool is_download = strcmp(plugin_name, "download") == 0; - if(strcmp(plugin_name, "download") == 0) { + if(is_download) { window_size.x = std::min(900, monitor_size.x - 100); window_size.y = std::min(900, monitor_size.y - 100); } else { @@ -714,13 +715,15 @@ namespace QuickMedia { mgl::Window::CreateParams window_create_params; window_create_params.position = { focused_monitor_center.x - window_size.x / 2, focused_monitor_center.y - window_size.y / 2 }; window_create_params.size = window_size; - if(strcmp(plugin_name, "download") == 0) { + if(is_download) { window_create_params.min_size = window_size; window_create_params.max_size = window_size; } window_create_params.hidden = no_dialog; window_create_params.parent_window = parent_window; window_create_params.background_color = get_theme().background_color; + window_create_params.class_name = "quickmedia"; + window_create_params.window_type = is_download ? MGL_WINDOW_TYPE_DIALOG : MGL_WINDOW_TYPE_NORMAL; if(!window.create("QuickMedia", std::move(window_create_params))) { show_notification("QuickMedia", "Failed to create opengl window", Urgency::CRITICAL); abort(); @@ -728,6 +731,11 @@ namespace QuickMedia { window.set_low_latency(get_config().low_latency_mode); + if(is_download) { + XSetInputFocus(disp, window.get_system_handle(), RevertToParent, CurrentTime); + XFlush(disp); + } + if(!program_path.empty() && program_path.back() != '/') program_path += '/'; |