mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-03-31 09:17:04 +09:00
window get title: cleanup data
This commit is contained in:
@@ -33,11 +33,10 @@ namespace gsr {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
thread = std::thread([this]() {
|
thread = std::thread([this]() {
|
||||||
const pa_sample_spec ss = {
|
pa_sample_spec ss;
|
||||||
.format = PA_SAMPLE_S16LE,
|
ss.format = PA_SAMPLE_S16LE;
|
||||||
.rate = 48000,
|
ss.rate = 48000;
|
||||||
.channels = 2
|
ss.channels = 2;
|
||||||
};
|
|
||||||
|
|
||||||
pa_simple *s = NULL;
|
pa_simple *s = NULL;
|
||||||
int error;
|
int error;
|
||||||
|
|||||||
@@ -229,15 +229,6 @@ namespace gsr {
|
|||||||
return is_fullscreen;
|
return is_fullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_focused_window(Display *dpy, Window window) {
|
|
||||||
XSetInputFocus(dpy, window, RevertToPointerRoot, CurrentTime);
|
|
||||||
|
|
||||||
const Atom net_active_window_atom = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
|
|
||||||
XChangeProperty(dpy, DefaultRootWindow(dpy), net_active_window_atom, XA_WINDOW, 32, PropModeReplace, (const unsigned char*)&window, 1);
|
|
||||||
|
|
||||||
XFlush(dpy);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define _NET_WM_STATE_REMOVE 0
|
#define _NET_WM_STATE_REMOVE 0
|
||||||
#define _NET_WM_STATE_ADD 1
|
#define _NET_WM_STATE_ADD 1
|
||||||
#define _NET_WM_STATE_TOGGLE 2
|
#define _NET_WM_STATE_TOGGLE 2
|
||||||
@@ -1171,11 +1162,6 @@ namespace gsr {
|
|||||||
// Owlboy seems to use xi events and XGrabPointer doesn't prevent owlboy from receiving events.
|
// Owlboy seems to use xi events and XGrabPointer doesn't prevent owlboy from receiving events.
|
||||||
xi_grab_all_mouse_devices();
|
xi_grab_all_mouse_devices();
|
||||||
|
|
||||||
// if(gsr_info.system_info.display_server == DisplayServer::WAYLAND) {
|
|
||||||
// set_focused_window(display, window->get_system_handle());
|
|
||||||
// XFlush(display);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if(!is_wlroots)
|
if(!is_wlroots)
|
||||||
window->set_fullscreen(true);
|
window->set_fullscreen(true);
|
||||||
|
|
||||||
|
|||||||
@@ -171,6 +171,7 @@ namespace gsr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::optional<std::string> get_window_title(Display *dpy, Window window) {
|
std::optional<std::string> get_window_title(Display *dpy, Window window) {
|
||||||
|
std::optional<std::string> result;
|
||||||
const Atom net_wm_name_atom = XInternAtom(dpy, "_NET_WM_NAME", False);
|
const Atom net_wm_name_atom = XInternAtom(dpy, "_NET_WM_NAME", False);
|
||||||
const Atom wm_name_atom = XInternAtom(dpy, "WM_NAME", False);
|
const Atom wm_name_atom = XInternAtom(dpy, "WM_NAME", False);
|
||||||
const Atom utf8_string_atom = XInternAtom(dpy, "UTF8_STRING", False);
|
const Atom utf8_string_atom = XInternAtom(dpy, "UTF8_STRING", False);
|
||||||
@@ -182,8 +183,13 @@ namespace gsr {
|
|||||||
unsigned char *data = NULL;
|
unsigned char *data = NULL;
|
||||||
XGetWindowProperty(dpy, window, net_wm_name_atom, 0, 1024, False, utf8_string_atom, &type, &format, &num_items, &bytes_left, &data);
|
XGetWindowProperty(dpy, window, net_wm_name_atom, 0, 1024, False, utf8_string_atom, &type, &format, &num_items, &bytes_left, &data);
|
||||||
|
|
||||||
if(type == utf8_string_atom && format == 8 && data)
|
if(type == utf8_string_atom && format == 8 && data) {
|
||||||
return utf8_sanitize(data, num_items);
|
result = utf8_sanitize(data, num_items);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data)
|
||||||
|
XFree(data);
|
||||||
|
|
||||||
type = None;
|
type = None;
|
||||||
format = 0;
|
format = 0;
|
||||||
@@ -192,10 +198,15 @@ namespace gsr {
|
|||||||
data = NULL;
|
data = NULL;
|
||||||
XGetWindowProperty(dpy, window, wm_name_atom, 0, 1024, False, 0, &type, &format, &num_items, &bytes_left, &data);
|
XGetWindowProperty(dpy, window, wm_name_atom, 0, 1024, False, 0, &type, &format, &num_items, &bytes_left, &data);
|
||||||
|
|
||||||
if((type == XA_STRING || type == utf8_string_atom) && data)
|
if((type == XA_STRING || type == utf8_string_atom) && data) {
|
||||||
return utf8_sanitize(data, num_items);
|
result = utf8_sanitize(data, num_items);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
return std::nullopt;
|
done:
|
||||||
|
if(data)
|
||||||
|
XFree(data);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string strip(const std::string &str) {
|
static std::string strip(const std::string &str) {
|
||||||
|
|||||||
Reference in New Issue
Block a user