Commit graph

159 commits

Author SHA1 Message Date
Bastien Dejean
dfc03b5e26 Grab the pointer in order to capture motions 2015-06-11 10:07:01 +02:00
Bastien Dejean
a1d07d6811 Make motion notify debug message more verbose 2015-06-10 09:41:24 +02:00
Bastien Dejean
8821c69527 Only honor FFP in reaction to pointer motion events
It appears that unmapping windows might generate undesirable enter
notify events. It can lead a very nasty bug where the focus constantly
switches between two desktops ad infinitum (cf. #268).
2015-06-09 20:39:00 +02:00
Bastien Dejean
56895ab9ab Implement focus_follows_pointer via enter notify events
The implementation based on a motion recorder had bad side effects.
2015-06-06 18:25:20 +02:00
Bastien Dejean
e9611ded0b Process errors delivered on the event loop
Cf. xcb-requests(3).
2015-02-22 11:34:19 +01:00
Artur Shaik
cd38445039 Protect mouse pointer when pointer_follows_focus set
When dialog window shows, I cannot move pointer outside this dialog window
because when I move it, it jumps in window's center (again on dialog).
So, this commit disables pff when mouse focus event happen and enables
after.
2014-11-27 14:08:43 +06:00
Bastien Dejean
c49bc92d12 Use generic BSD 2-clause license
Fixes #176
2014-10-22 11:53:03 +02:00
Bastien Dejean
ab6b6c5e36 Use proper function names 2014-05-05 11:35:06 +02:00
Bastien Dejean
fd2a62af05 Filter focus requests using client source indication 2014-02-06 20:42:04 +01:00
Bastien Dejean
b9dcab1900 Remove trailing spaces in headers 2014-01-19 14:41:37 +01:00
Bastien Dejean
c231e8cf41 Indentation: convert spaces to tabs
http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/
2014-01-18 16:30:00 +01:00
Bastien Dejean
0d1b920d24 Handle WM_NORMAL_HINTS atom modifications 2014-01-10 12:00:21 +01:00
Bastien Dejean
b47c758ad5 Handle min/max window size hints 2014-01-09 14:58:54 +01:00
Bastien Dejean
0c7e34700d Don't transfer windows on configure requests 2013-12-27 18:55:41 +01:00
Bastien Dejean
48e0043f84 Implement the pseudo-tiled window state 2013-12-27 14:23:25 +01:00
Bastien Dejean
e0b6cd3cd4 *Frames* are unnecessary
The padding settings are sufficient for this.
2013-12-27 10:43:37 +01:00
Bastien Dejean
4451d8f0e7 Asynchronously parse rule command output 2013-11-08 20:31:23 +01:00
Bastien Dejean
c989aa7efc Merge translate_position and translate_client
- Expand `underlying_monitor` into `monitor_from_client` to avoid
  passing a NULL pointer to `translate_client`.
- Remove the `fit_monitor` setting (use the `--center` rule effect
  instead).
- Don't remap a window in it's last location (node invisibility would be
  the proper way to do this).
- Call `translate_client` after configure requests.
2013-10-27 11:25:34 +01:00
Bastien Dejean
343759bf77 Handle _NET_CLOSE_WINDOW 2013-10-26 18:06:04 +02:00
Bastien Dejean
b3b331a57d By default, honor EWMH focus requests 2013-10-26 17:54:44 +02:00
Bastien Dejean
66fb031fd6 Update floating rectangle of tiled windows 2013-10-20 15:24:52 +02:00
Bastien Dejean
6bc128554e Implement frames 2013-10-10 18:24:21 +02:00
Bastien Dejean
15695c066b Add copyright header 2013-10-08 21:05:56 +02:00
Bastien Dejean
35e9927ed9 Make sticky windows stick to their monitor 2013-10-06 16:58:02 +02:00
Bastien Dejean
c6ceca7683 Support _NET_WM_STATE_STICKY client message 2013-10-01 19:34:38 +02:00
Bastien Dejean
f2a578de2b Make the window border width a desktop setting 2013-10-01 14:15:50 +02:00
Bastien Dejean
bfded1effc History is global and stacking is independent
The last desktop and monitor are now deduced from the history.

The stacking order is now independent from the history of the focused
nodes: this prevents hacks on both sides.

All windows are now considered in the stacking algorithm: it prevents
tiled windows from one monitor to appear above the floating windows of
another monitor.

Transfered windows are stacked below the windows of the same kind.
2013-10-01 10:48:03 +02:00
Bastien Dejean
30eb9598b8 Extract pointer functions from events.c 2013-09-25 18:00:01 +02:00
Bastien Dejean
16eae53e56 New setting: honor_ewmh_focus 2013-09-23 11:45:00 +02:00
Bastien Dejean
70c6cada07 Make focus_follows_pointer work on empty desktops 2013-09-22 11:16:06 +02:00
Bastien Dejean
1ef4d4fb05 Add comment for focus_in handling 2013-09-20 21:15:42 +02:00
Bastien Dejean
3dda8e7f6f Move a few functions from tree to desktop/monitor 2013-09-20 11:57:09 +02:00
Bastien Dejean
85f67b2164 Remove a few useless header inclusion via deheader 2013-09-19 15:38:22 +02:00
Bastien Dejean
d168e919e3 Split types.c into {monitor,desktop,history}.c 2013-09-19 15:02:49 +02:00
Bastien Dejean
b1d793031b Don't support ICCCM's WM_STATE
It seems that it might cause more harm than good.

E.g.: Skype.
2013-09-19 10:29:19 +02:00
Bastien Dejean
435727c9fa Don't introduce unfounded exceptions 2013-09-18 12:58:09 +02:00
Bastien Dejean
afcbf4795e Consider unmapped windows as withdrawn 2013-09-18 12:38:44 +02:00
Bastien Dejean
2b92f05e34 Focus a monitor with an empty focused desktop 2013-08-29 11:45:50 +02:00
Bastien Dejean
cf85a1d3fb Fix all the warnings produced by clang 2013-08-02 10:47:01 +02:00
Bastien Dejean
72b8431be0 Prevent input focus from being stolen
Example: if one chromium window is opened and a link is opened in
newsbeuter then chromium will steal the input focus (without explicitly
requesting focus via the proper EWMH message).
2013-07-30 14:53:44 +02:00
Bastien Dejean
8f8f5d8ea4 Raise focused floating window via pointer -g focus 2013-07-15 21:18:37 +02:00
Bastien Dejean
44414046b9 Don't raise windows via focus_follows_pointer 2013-07-15 20:28:28 +02:00
Bastien Dejean
1f83706ab5 Don't transplant when swapping
The new syntax provides a separate transplantation option.
2013-07-13 09:40:19 +02:00
Bastien Dejean
8ff7c3ee47 Prevent focus change due to pointer jitter 2013-07-12 22:15:18 +02:00
Bastien Dejean
8fd8521322 Rewrite message handling
The new message syntax:
- Provides 10 commands instead of 60.
- Allows multiple actions to be applied in one call.

The client now returns an non zero exit code when a message fails.

The `is_adjacent` function now handles vacant nodes.
2013-07-12 21:52:02 +02:00
Bastien Dejean
714fb8d504 Remove message: ungrab_pointer
The above message was only needed for ending the `move` pointer action
on a floating window. It rendered the `move` pointer action finicky
because the floating rectangle of the floating windows was not updated
in real time.
2013-07-04 11:04:28 +02:00
Bastien Dejean
addd537eb8 Prevent node transplantation for circulate 2013-07-02 21:33:33 +02:00
Bastien Dejean
0561e9075a Handle _NET_WM_DESKTOP client message 2013-06-30 14:47:54 +02:00
Bastien Dejean
972526f1aa Ignore _NET_ACTIVE_WINDOW for the focused node 2013-06-29 22:11:13 +02:00
Bastien Dejean
525c6409e6 Revert "Don't try to focus the focused node"
This reverts commit 92292f834f.

The `n == mon->desk->focus` appears after remove_node, so we can't
return in this case in `focus_node` after all.
2013-06-29 22:05:51 +02:00