aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-01-25 16:52:35 +0100
committerdec05eba <dec05eba@protonmail.com>2021-01-25 16:52:35 +0100
commit0d7ce5264e8c87c522a93172c944541bb205b9d5 (patch)
tree3fe19f12d96c1bf830f777e101e37edfedd0b80d /src/QuickMedia.cpp
parent82d4273e445b85e15fe12caaa52c301fa77aaa6c (diff)
Limit ytdl video resolution to the largest monitors height
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 41c2c6e..719345d 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -80,6 +80,21 @@ static int get_monitor_max_hz(Display *display) {
return 60;
}
+static int get_largest_monitor_height(Display *display) {
+ XRRScreenResources *screen_res = XRRGetScreenResources(display, DefaultRootWindow(display));
+ if(screen_res) {
+ int max_height = 0;
+ for(int i = 0; i < screen_res->nmode; ++i) {
+ max_height = std::max(max_height, (int)screen_res->modes[i].height);
+ }
+ XRRFreeScreenResources(screen_res);
+ if(max_height == 0)
+ max_height = 1080;
+ return std::max(max_height, 480);
+ }
+ return 1080;
+}
+
static void get_screen_resolution(Display *display, int *width, int *height) {
*width = DefaultScreenOfDisplay(display)->width;
*height = DefaultScreenOfDisplay(display)->height;
@@ -1721,7 +1736,7 @@ namespace QuickMedia {
video_url_converted = video_url;
}
- video_player = std::make_unique<VideoPlayer>(use_tor, no_video, use_system_mpv_config, resume_video, is_matrix, video_event_callback, on_window_create, resources_root);
+ video_player = std::make_unique<VideoPlayer>(use_tor, no_video, use_system_mpv_config, resume_video, is_matrix, video_event_callback, on_window_create, resources_root, get_largest_monitor_height(disp));
VideoPlayer::Error err = video_player->load_video(video_url_converted.c_str(), window.getSystemHandle(), plugin_name);
if(err != VideoPlayer::Error::OK) {
std::string err_msg = "Failed to play url: ";
@@ -3254,7 +3269,7 @@ namespace QuickMedia {
} else {
Message *orig_message = static_cast<Message*>(body_item->userdata);
body_item->set_description(message_get_body_remove_formatting(message.get()));
- if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me))
+ if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me && message->user != me))
body_item->set_description_color(sf::Color(255, 100, 100));
else
body_item->set_description_color(sf::Color::White);
@@ -3289,7 +3304,7 @@ namespace QuickMedia {
} else {
Message *orig_message = static_cast<Message*>(body_item->userdata);
body_item->set_description(message_get_body_remove_formatting(message.get()));
- if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me))
+ if(message_contains_user_mention(message->body, my_display_name) || message_contains_user_mention(message->body, me->user_id) || (orig_message && orig_message->user == me && message->user != me))
body_item->set_description_color(sf::Color(255, 100, 100));
else
body_item->set_description_color(sf::Color::White);
@@ -3694,6 +3709,8 @@ namespace QuickMedia {
body_item->embedded_item->reactions.clear();
if(related_body_item->userdata && static_cast<Message*>(related_body_item->userdata)->user == me)
body_item->set_description_color(sf::Color(255, 100, 100));
+ else
+ body_item->set_description_color(sf::Color::White);
body_item->embedded_item_status = FetchStatus::FINISHED_LOADING;
return;
}
@@ -3720,6 +3737,8 @@ namespace QuickMedia {
body_item->reactions.clear();
if(message_contains_user_mention(related_body_item->get_description(), current_room->get_user_display_name(me)) || message_contains_user_mention(related_body_item->get_description(), me->user_id))
body_item->set_description_color(sf::Color(255, 100, 100));
+ else
+ body_item->set_description_color(sf::Color::White);
event_data->status = FetchStatus::FINISHED_LOADING;
event_data->message = static_cast<Message*>(related_body_item->userdata);
body_item->userdata = event_data;
@@ -3774,6 +3793,8 @@ namespace QuickMedia {
body_item->embedded_item->reactions.clear();
if((related_body_item->userdata && static_cast<Message*>(related_body_item->userdata)->user == me) || message_contains_user_mention(message->body, current_room->get_user_display_name(me)) || message_contains_user_mention(message->body, me->user_id))
body_item->set_description_color(sf::Color(255, 100, 100));
+ else
+ body_item->set_description_color(sf::Color::White);
body_item->embedded_item_status = FetchStatus::FINISHED_LOADING;
return;
}