summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorL0Wigh <mathiotthomas@gmail.com>2025-08-07 09:34:35 +0200
committerL0Wigh <mathiotthomas@gmail.com>2025-09-02 18:49:13 +0200
commite0639be15e8dac5e7837f68401bb325411aabedb (patch)
tree7d44a9c1b1bf9d0a23c255f0da386e6a21e13f9f /src
parent78d135a05d3a5ab69b6c2087074e86d43632d571 (diff)
clean for pull request
Diffstat (limited to 'src')
-rw-r--r--src/sxwm.c62
1 files changed, 46 insertions, 16 deletions
diff --git a/src/sxwm.c b/src/sxwm.c
index 1b3902b..881cce6 100644
--- a/src/sxwm.c
+++ b/src/sxwm.c
@@ -89,6 +89,7 @@ void remove_scratchpad(int n);
/* void resize_stack_add(void); */
/* void resize_stack_sub(void); */
void run(void);
+void reset_opacity(Window w);
void scan_existing_windows(void);
void select_input(Window w, Mask masks);
void send_wm_take_focus(Window w);
@@ -96,6 +97,7 @@ void setup(void);
void setup_atoms(void);
void set_frame_extents(Window w);
void set_input_focus(Client *c, Bool raise_win, Bool warp);
+void set_opacity(Window w, double opacity);
void set_win_scratchpad(int n);
int snap_coordinate(int pos, int size, int screen_size, int snap_dist);
void spawn(const char * const *argv);
@@ -2174,6 +2176,50 @@ void set_win_scratchpad(int n)
scratchpads[n].enabled = False;
}
+Bool window_should_float(Window w)
+{
+ XClassHint ch;
+ if (XGetClassHint(dpy, w, &ch)) {
+ for (int i = 0; i < 256; i++) {
+ if (!user_config.should_float[i] || !user_config.should_float[i][0]) {
+ break;
+ }
+
+ if ((ch.res_class && !strcmp(ch.res_class, user_config.should_float[i][0])) ||
+ (ch.res_name && !strcmp(ch.res_name, user_config.should_float[i][0]))) {
+ XFree(ch.res_class);
+ XFree(ch.res_name);
+ return True;
+ }
+ }
+ XFree(ch.res_class);
+ XFree(ch.res_name);
+ }
+
+ return False;
+}
+
+void reset_opacity(Window w)
+{
+ Atom atom = XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False);
+ XDeleteProperty(dpy, w, atom);
+}
+
+
+void set_opacity(Window w, double opacity)
+{
+ unsigned long op = (unsigned long)(opacity * 0xFFFFFFFF);
+ Atom atom = XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False);
+
+ if (opacity < 0.0) {
+ opacity = 0.0;
+ }
+ if (opacity > 1.0) {
+ opacity = 1.0;
+ }
+ XChangeProperty(dpy, w, atom, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&op, 1);
+}
+
int snap_coordinate(int pos, int size, int screen_size, int snap_dist)
{
if (UDIST(pos, 0) <= snap_dist) {
@@ -2630,22 +2676,6 @@ void toggle_floating_global(void)
update_borders();
}
-void set_opacity(Window w, double opacity)
-{
- unsigned long op = (unsigned long)(opacity * 0xFFFFFFFF);
- Atom atom = XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False);
-
- if (opacity < 0.0) opacity = 0.0;
- if (opacity > 1.0) opacity = 1.0;
- XChangeProperty(dpy, w, atom, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&op, 1);
-}
-
-void reset_opacity(Window w)
-{
- Atom atom = XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False);
- XDeleteProperty(dpy, w, atom);
-}
-
void toggle_fullscreen(void)
{
if (!focused) {