Only capture focused window monitor when replay starts because of fullscreen window

This commit is contained in:
dec05eba
2026-03-10 12:58:53 +01:00
parent b8d29f0ac0
commit b32ae6e2f1
4 changed files with 68 additions and 46 deletions

View File

@@ -157,7 +157,7 @@ namespace gsr {
void on_press_save_replay();
void on_press_save_replay_1_min_replay();
void on_press_save_replay_10_min_replay();
bool on_press_start_replay(bool disable_notification, bool finished_selection);
bool on_press_start_replay(bool disable_notification, bool finished_selection, std::string monitor_to_capture = "");
void on_press_start_record(bool finished_selection, RecordForceType force_type);
void on_press_start_stream(bool finished_selection);
void on_press_take_screenshot(bool finished_selection, ScreenshotForceType force_type);

View File

@@ -20,6 +20,13 @@ namespace gsr {
std::string name;
};
struct DrawableGeometry {
int x = 0;
int y = 0;
int width = 0;
int height = 0;
};
std::optional<std::string> get_window_title(Display *dpy, Window window);
Window get_focused_window(Display *dpy, WindowCaptureType cap_type, bool fallback_cursor_focused = true);
std::string get_focused_window_name(Display *dpy, WindowCaptureType window_capture_type, bool fallback_cursor_focused = true);
@@ -39,6 +46,8 @@ namespace gsr {
void xi_warp_all_mouse_devices(Display *dpy, mgl::vec2i position);
void window_set_fullscreen(Display *dpy, Window window, bool fullscreen);
bool window_is_fullscreen(Display *display, Window window);
bool get_drawable_geometry(Display *display, Drawable drawable, DrawableGeometry *geometry);
std::optional<Monitor> get_monitor_by_window_center(Display *display, Window window);
bool set_window_wm_state(Display *dpy, Window window, Atom atom);
void make_window_click_through(Display *display, Window window);
bool make_window_sticky(Display *dpy, Window window);