]> git.lizzy.rs Git - bspwm.git/commitdiff
New setting: `honor_ewmh_focus`
authorBastien Dejean <nihilhill@gmail.com>
Mon, 23 Sep 2013 09:45:00 +0000 (11:45 +0200)
committerBastien Dejean <nihilhill@gmail.com>
Mon, 23 Sep 2013 09:45:00 +0000 (11:45 +0200)
contrib/bash_completion
contrib/zsh_completion
doc/bspwm.1
doc/bspwm.1.txt
events.c
messages.c
settings.c
settings.h

index b5765a0cbdaac8602c36a5dd8a55dfab6f90a6f5..997edd368df3a29f681fba19b1fa819b01bdffe1 100644 (file)
@@ -1,7 +1,7 @@
 _bspc() {
     local commands='window desktop monitor query pointer rule restore control config quit'
 
-    local settings='focused_border_color active_border_color normal_border_color presel_border_color focused_locked_border_color active_locked_border_color normal_locked_border_color urgent_border_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio growth_factor borderless_monocle gapless_monocle focus_follows_pointer pointer_follows_monitor apply_floating_atom auto_alternate auto_cancel history_aware_focus'
+    local settings='focused_border_color active_border_color normal_border_color presel_border_color focused_locked_border_color active_locked_border_color normal_locked_border_color urgent_border_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio growth_factor borderless_monocle gapless_monocle focus_follows_pointer pointer_follows_monitor apply_floating_atom auto_alternate auto_cancel history_aware_focus honor_ewmh_focus'
 
     COMPREPLY=()
 
index acfc861e3fce6b04a6b9342b06f3e9238c340c6e..45cfefcbf9c9a4208771bb88135d561050e2b7d4 100644 (file)
@@ -3,7 +3,7 @@
 _bspc() {
     local -a commands settings
     commands=('window' 'desktop' 'monitor' 'query' 'pointer' 'rule' 'restore' 'control' 'config' 'quit')
-    settings=('focused_border_color' 'active_border_color' 'normal_border_color' 'presel_border_color' 'focused_locked_border_color' 'active_locked_border_color' 'normal_locked_border_color' 'urgent_border_color' 'border_width' 'window_gap' 'top_padding' 'right_padding' 'bottom_padding' 'left_padding' 'split_ratio' 'growth_factor' 'borderless_monocle' 'gapless_monocle' 'focus_follows_pointer' 'pointer_follows_monitor' 'apply_floating_atom' 'auto_alternate' 'auto_cancel' 'history_aware_focus')
+    settings=('focused_border_color' 'active_border_color' 'normal_border_color' 'presel_border_color' 'focused_locked_border_color' 'active_locked_border_color' 'normal_locked_border_color' 'urgent_border_color' 'border_width' 'window_gap' 'top_padding' 'right_padding' 'bottom_padding' 'left_padding' 'split_ratio' 'growth_factor' 'borderless_monocle' 'gapless_monocle' 'focus_follows_pointer' 'pointer_follows_monitor' 'apply_floating_atom' 'auto_alternate' 'auto_cancel' 'history_aware_focus' 'honor_ewmh_focus')
     if (( CURRENT == 2 )) ; then
         _values 'command' "$commands[@]"
     elif (( CURRENT == 3 )) ; then
index b1e76ccaa0b478d24e93c36d452daad9afe036da..fd080542c776a7692fd9dad441656da96b07b8fd 100644 (file)
@@ -958,6 +958,11 @@ Set the value of the
 \fI_BSPWM_FLOATING_WINDOW\fR
 atom of each window according to its floating state\&.
 .RE
+.PP
+\fIhonor_ewmh_focus\fR
+.RS 4
+Honor EWMH requests to focus a window\&.
+.RE
 .SS "Monitor Settings"
 .PP
 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
index 61ec8f045bb1b5f91786a862bc4398f4275a1df7..8c283e30841601c5458ab98d532dae17d0975f67 100644 (file)
@@ -582,6 +582,9 @@ Global Settings
 'apply_floating_atom'::
     Set the value of the '_BSPWM_FLOATING_WINDOW' atom of each window according to its floating state.
 
+'honor_ewmh_focus'::
+    Honor EWMH requests to focus a window.
+
 Monitor Settings
 ~~~~~~~~~~~~~~~~
 
index 70394cb716f784d7aef892d8768fae96e3030652..99834bbf45a7330be0d20a4787a43615d6e31b63 100644 (file)
--- a/events.c
+++ b/events.c
@@ -207,7 +207,7 @@ void client_message(xcb_generic_event_t *evt)
         handle_state(loc.monitor, loc.desktop, loc.node, e->data.data32[1], e->data.data32[0]);
         handle_state(loc.monitor, loc.desktop, loc.node, e->data.data32[2], e->data.data32[0]);
     } else if (e->type == ewmh->_NET_ACTIVE_WINDOW) {
-        if (loc.node == mon->desk->focus)
+        if (!honor_ewmh_focus || loc.node == mon->desk->focus)
             return;
         if (loc.desktop->focus->client->fullscreen && loc.desktop->focus != loc.node) {
             set_fullscreen(loc.desktop, loc.desktop->focus, false);
index b128b1752babd0764c956c4a4154f0bf4fcd5f70..f6747275110a621f3b336d249d0675f0bde29c89 100644 (file)
@@ -808,6 +808,7 @@ bool set_setting(coordinates_t loc, char *name, char *value)
         SETBOOL(auto_alternate)
         SETBOOL(auto_cancel)
         SETBOOL(history_aware_focus)
+        SETBOOL(honor_ewmh_focus)
 #undef SETBOOL
     } else {
         return false;
@@ -867,6 +868,7 @@ bool get_setting(coordinates_t loc, char *name, char* rsp)
     GETBOOL(auto_alternate)
     GETBOOL(auto_cancel)
     GETBOOL(history_aware_focus)
+    GETBOOL(honor_ewmh_focus)
 #undef GETBOOL
     else
         return false;
index edff6ed6589bdb4308c5b22ed5a233e42e1be4e2..f9e63d8f7382e4d752084d589e8404741857adc1 100644 (file)
@@ -44,4 +44,5 @@ void load_settings(void)
     auto_alternate = AUTO_ALTERNATE;
     auto_cancel = AUTO_CANCEL;
     history_aware_focus = HISTORY_AWARE_FOCUS;
+    honor_ewmh_focus = HONOR_EWMH_FOCUS;
 }
index ed8c1b3a23ae6c4c3f551da008c2b7ec9c43de3e..a6623d4c48fbe9c154f4806d8d3375ab7b0f81e7 100644 (file)
@@ -28,6 +28,7 @@
 #define AUTO_ALTERNATE           false
 #define AUTO_CANCEL              false
 #define APPLY_FLOATING_ATOM      false
+#define HONOR_EWMH_FOCUS         false
 
 char focused_border_color[MAXLEN];
 char active_border_color[MAXLEN];
@@ -50,6 +51,7 @@ bool apply_floating_atom;
 bool auto_alternate;
 bool auto_cancel;
 bool history_aware_focus;
+bool honor_ewmh_focus;
 
 void load_settings(void);
 void run_config(void);