Commit graph

273 commits

Author SHA1 Message Date
Marco Peereboom
3f50fa6a8e Kill tons of events to make mplayer work again
ok mcbrider
2009-11-06 04:41:28 +00:00
Ryan McBride
1332091a8e Enforce ordering on focusevent types. 2009-10-30 01:56:00 +00:00
Marco Peereboom
022ca339f1 ryan keeps putting variables in ifs for some reason... 2009-10-29 18:47:48 +00:00
Ryan McBride
6c9491c6a7 Some more subtleties for the focus handling code. In particular:
- A global last_focus_event helps us to determine whether another process
  is playing with focus without telling us.
- merge focusin and focusout into a single focusevent, handle focus change
  events triggered by synergy.
- Fix focus issues when entering a fullstack window from another region, by
  checking to see which ws the focus is coming from before ignoring the
  event.
2009-10-29 11:16:33 +00:00
Ryan McBride
6a14e403fe Revert previous commit, clearly I was on crack. 2009-10-28 00:57:36 +00:00
Ryan McBride
1aca1ca9d6 remove the ev->state check in enternotify()
ev->state indicates the state of the buttons and modifier keys, so it's not
just workspace changes but any time these buttons are down.  This heuristic
breaks focus with mouse buttons down and when creating new terminals with
m-s-enter, among other things.
2009-10-27 10:49:47 +00:00
Ryan McBride
3cf9db9166 Add more debug output to enternotify(). 2009-10-27 10:42:46 +00:00
Marco Peereboom
c593b8309e bump version for release 2009-10-24 15:34:50 +00:00
Marco Peereboom
841a2574a1 Make enternotify prettier 2009-10-24 14:21:18 +00:00
Marco Peereboom
ce20e49d87 In max stack we need to ignore all enternotifiy events.
Rever previous as part of this since it was a busted heuristic.
2009-10-23 20:56:37 +00:00
Marco Peereboom
80e76b8191 Add simple heuristic to max_stack focus to deal with new event reality.
This mostly uses the same logic as a normal stack but it detects if the
previous window got unmapped and goes back to the parent.  The rest is
the same code as stacked focusing.
2009-10-23 20:33:53 +00:00
Marco Peereboom
05347c2d3e ugh, i can't believe i have looked for this bug this long...
now jxplorer is correctly focussed when it is the nth window in the stack
when created
2009-10-23 20:07:06 +00:00
Marco Peereboom
c292d0eb67 Fix the damned enternotify code for real.
Weed out VirtualNotify (switch ws and border crossings) and InferiorNotify
(focus on self, aka touching its own border).
Then check for ConfigureNotify to see if a window is being deleted or moved
to another work space.

This is the smaller hammer for the QLength trick that used to be in there.

If we still have focus issues we need to work those but this is worth
going in.
2009-10-23 16:39:45 +00:00
Ryan McBride
37c079137c Remove over-eager optimization in focus_magic().
This win == win->ws->focus check makes scrotwm forget the correct
focus across workspace changes. Unnecessary focus changes are prevented
by the XGetInputFocus() check anyways.
2009-10-23 06:24:18 +00:00
Marco Peereboom
ef7f0f55ed get rid of a bunch of focus in and out events
ok mcbride
2009-10-23 04:05:19 +00:00
Ryan McBride
d5344e7f5c Fix debug printf in unfocus_all_except(). 2009-10-21 09:39:43 +00:00
Ryan McBride
a6fb71019b Make the unfocus_all() hammer slightly smaller. 2009-10-21 06:29:17 +00:00
Marco Peereboom
cece9b5ea5 Bump version 2009-10-20 23:22:44 +00:00
Marco Peereboom
7fb20ade54 Add better focus code that deals with prev a little better.
This needs more love but it is getting closer to being correct.
2009-10-20 22:42:35 +00:00
Marco Peereboom
54af1b2cbe update bar when cycling layout 2009-10-18 15:06:15 +00:00
Marco Peereboom
d1363f0075 Add some #define to make code more obvious 2009-10-16 04:51:35 +00:00
Marco Peereboom
7230e8cbf2 more focus cleanz 2009-10-16 04:40:05 +00:00
Marco Peereboom
5861c15d64 Add first chunk of advanced focus prev handling. 2009-10-16 04:28:40 +00:00
Marco Peereboom
6c836660d3 make parent appear under transient in full screen. 2009-10-15 22:18:45 +00:00
Marco Peereboom
ca0a732133 Remove all focus code from functions and replace it with a single function.
This works reasonably well but all the corner cases now need to be built.
Getting it in because it was becomming unwieldly.

As fas as I know this fixes all use after free issues.  It is mean in that
it paints the old entries and has several aborts ready to go when something
bad happens.
2009-10-15 20:42:59 +00:00
Marco Peereboom
0315376ed7 bump version 2009-10-14 14:40:21 +00:00
Marco Peereboom
5fece740c8 oops disable debug again.
remove some dead code.
2009-10-14 14:00:09 +00:00
Marco Peereboom
769cba6f7f In the destroy path do not use a previously unmanaged window focus
pointers.
Some cleanup.
2009-10-14 13:56:02 +00:00
Marco Peereboom
4becd7f1be Remove some XXX that were fixed and bump version. 2009-10-13 18:57:37 +00:00
Marco Peereboom
4b754adf74 Don't allow move and resize out of region. 2009-10-13 17:22:42 +00:00
Marco Peereboom
1b78470ebd Make mplayer work again in xrandr.
Moving a window manually into a new region needs to be unfucked.
2009-10-13 16:12:20 +00:00
Marco Peereboom
e1b5f285e6 Fix first batch of mplayer issues as a fallout of reducing number of events 2009-10-13 14:32:18 +00:00
Marco Peereboom
ea1edcdfb2 Oops forgot to commit this 2009-10-13 03:43:36 +00:00
Marco Peereboom
ff3314e7ef OMGOMGOMG I found the actual mapping bug. I won't tell you where but
I added a whole bunch of nice code while debigging it.  So we are keeping
that.
2009-10-13 02:28:47 +00:00
Marco Peereboom
43848c3086 Bump version 2009-10-12 04:10:47 +00:00
Marco Peereboom
8230a09707 Large change to try to fix programs like roxterm that need more wm love.
Really they are just a bunch of needy children but oh well.

Remove ws->restack since it wasn't used.
Add configreq_win to send syntetic configure requests.
Remove some callbacks that really made no difference (unmap and destroy)
Make XConfigureWindow only be called when necessary.
Fix mplayer that was disapearing after fullscreen.
2009-10-12 04:09:17 +00:00
Marco Peereboom
1bf8fe9329 use different heuristic to determine if a window needs to be unmanaged
outside of the normal handling.  Not sure if this covers all cases but
I can't recreate holes in the stacker or crashes when stressing.
2009-10-10 23:24:55 +00:00
Marco Peereboom
7fa682eba1 Be more careful with pointers in swapwin 2009-10-09 18:26:41 +00:00
Marco Peereboom
f91f8b0efd Add unusual paranoia to make sure we crash and dump core if we see any
sign of trouble in switchws.

Roll back version to 0.9.11 for snapshot.
2009-10-08 19:21:24 +00:00
Marco Peereboom
69c9a026f3 I have been debating this one for a while but I think we need to drain
all but the last event.  So lets run with this for a while and see what
happens.
2009-10-08 12:22:06 +00:00
Marco Peereboom
f0c9f65a11 sprinkle more if p == null return.
we should audit all functions for this.
2009-10-08 04:50:27 +00:00
Marco Peereboom
db031f1cc5 Set withdrawn sate for unmanaged windows. We needed it after all for
restarting the wm.
Add more paranoia around pointers in switchws.
Remove some dup code in the restart wm function.
2009-10-08 04:40:56 +00:00
Marco Peereboom
ddfbb2ee98 oops; remove some dead code. 2009-10-07 02:40:41 +00:00
Marco Peereboom
841e741913 Unfuck java by working around several java issues.
Implement WM_TAKE_FOCUS.
Make transients always the focus when entering either the parent or the
transient window itself.
2009-10-07 02:38:38 +00:00
Marco Peereboom
bb734b7ce7 There are no words to describe how completly retarded java is...
Treat it short-bus-special.
2009-10-06 17:04:53 +00:00
Marco Peereboom
c27947b0e2 Move version to 1.0. 2009-10-05 19:35:14 +00:00
Marco Peereboom
043d7e3899 Fix max_stack once more. Fallout from previous diff. 2009-10-05 19:34:10 +00:00
Marco Peereboom
eeb1159872 Fix stress issue when keeping ctrl-d pressed when deleting 10 or so
windows.  It comes down to events being tossed by the x server causing
dead windows to not be removed from the managed list.  Apply a huge hammer
by removing the dead windows from the list when counting them for stacking
purposes.

Undo some previous added synchronization code that was not necessary but
had given me the illusion of serializing some things.
2009-10-05 17:03:47 +00:00
Marco Peereboom
5fbfa251ad This fixes most of the stress issues but not all yet. Fucking X sucks. 2009-10-04 21:53:31 +00:00
Marco Peereboom
d1fd84da26 At least dwc is consistent in is ability to violate KNF. 2009-10-04 06:05:57 +00:00