From 5de5f9d9a9b945c80f9a7f387570c18232548870 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 8 Apr 2021 11:56:43 +0200 Subject: Temporary workaround tabbed bug When closing the tabbed window, all embedded windows except the first one are killed --- src/QuickMedia.cpp | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) (limited to 'src/QuickMedia.cpp') diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index ebbbba8..e092584 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -445,21 +445,6 @@ namespace QuickMedia { return body_item; } - void Program::window_set_urgent() { - XWMHints *hints = XGetWMHints(disp, x11_window); - if(!hints) { - fprintf(stderr, "seturgent: unable to get window manager hints\n"); - return; - } - - hints->flags |= XUrgencyHint; - - if(!XSetWMHints(disp, x11_window, hints)) - fprintf(stderr, "seturgent: unable to set urgency hint\n"); - - XFree(hints); - } - int Program::run(int argc, char **argv) { if(argc < 2) { usage(); @@ -631,14 +616,6 @@ namespace QuickMedia { XMapWindow(disp, x11_window); XFlush(disp); - XWMHints* hints = XAllocWMHints(); - if(hints) { - hints->flags = AllHints; - hints->initial_state = NormalState; - XSetWMHints(disp, x11_window, hints); - XFree(hints); - } - window.create(x11_window); resources_root = "/usr/share/quickmedia/"; @@ -810,11 +787,13 @@ namespace QuickMedia { } } - void Program::handle_window_close() { + bool Program::handle_window_close() { if(wm_delete_window_atom && XCheckTypedWindowEvent(disp, x11_window, ClientMessage, &xev) && (Atom)xev.xclient.data.l[0] == wm_delete_window_atom) { current_page = PageType::EXIT; window.close(); + return true; } + return false; } void Program::base_event_handler(sf::Event &event, PageType previous_page, Body *body, SearchBar *search_bar, bool handle_keypress, bool handle_searchbar) { @@ -1790,10 +1769,8 @@ namespace QuickMedia { } } - if(wm_delete_window_atom && XCheckTypedWindowEvent(disp, x11_window, ClientMessage, &xev) && (Atom)xev.xclient.data.l[0] == wm_delete_window_atom) { + if(handle_window_close()) { task.cancel(); - current_page = PageType::EXIT; - window.close(); return TaskResult::CANCEL; } -- cgit v1.2.3