aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-04-08 11:56:43 +0200
committerdec05eba <dec05eba@protonmail.com>2021-04-08 23:20:06 +0200
commit5de5f9d9a9b945c80f9a7f387570c18232548870 (patch)
tree9866906c1ce4104bba393c1f9b36a82c932440d3 /src
parent477bc6687a05f2820dcd1b8f2663b4a5537fb3ea (diff)
Temporary workaround tabbed bug
When closing the tabbed window, all embedded windows except the first one are killed
Diffstat (limited to 'src')
-rw-r--r--src/QuickMedia.cpp31
-rw-r--r--src/plugins/Matrix.cpp4
2 files changed, 4 insertions, 31 deletions
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;
}
diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp
index 9db9872..9568244 100644
--- a/src/plugins/Matrix.cpp
+++ b/src/plugins/Matrix.cpp
@@ -389,7 +389,6 @@ namespace QuickMedia {
invites_page->add_body_item(std::move(body_item));
if(invite.new_invite) {
show_notification("QuickMedia matrix - " + invite.room_name, "You were invited to " + invite.room_name + " by " + invited_by_display_name + " (" + invite.invited_by->user_id + ")");
- program->window_set_urgent();
}
}
@@ -452,8 +451,6 @@ namespace QuickMedia {
show_notification("QuickMedia matrix - " + unread_notification.sender + " (" + it.first->get_name() + ")", unread_notification.body);
}
}
- if(!unread_notifications.empty())
- program->window_set_urgent();
//if(!unread_notifications.empty()) {
// rooms_page->sort_rooms();
// room_tags_page->sort_rooms();
@@ -585,7 +582,6 @@ namespace QuickMedia {
// TODO: What if the message or username begins with "-"? also make the notification image be the avatar of the user
if((!is_window_focused || room != current_room || page_type == MatrixPageType::ROOM_LIST) && message->related_event_type != RelatedEventType::EDIT && message->related_event_type != RelatedEventType::REDACTION) {
show_notification("QuickMedia matrix - " + matrix->message_get_author_displayname(message.get()) + " (" + room->get_name() + ")", message->body);
- program->window_set_urgent();
}
}
}