aboutsummaryrefslogtreecommitdiffstats
path: root/xevents.c (unfollow)
Commit message (Collapse)AuthorLines
2014-01-30Move cwm_status around to avoid header fu, and remove extraneous signalokan-2/+1
header from xevents.c; noticed by Christian Neukirchen.
2014-01-29Merge keybinding and mousebinding queues into using the same mergedokan-6/+6
struct, binding; they were essentially the same accept for what was 'pressed', keysym or button.
2014-01-28The EWMH spec states that if the cardinal returned is 0xFFFFFFFF (-1)okan-3/+12
then the window should appear on all desktops, which in our case is assigned to group 0. Found to fix stalonetray due to the non-ewmh aware range checking in group_movetogroup(); from Thomas Adam.
2014-01-22Somewhat streamline event loop/restart/quit handling; most notableokan-11/+7
change allows a restart to trigger proper teardown first, even though teardown is not (yet) complete. After some discussion with oga@nicotinebsd.org regarding a more complicated version/idea.
2014-01-20merge KBFLAG_NEEDCLIENT and MOUSEBIND_CTX_*; brings kbfunc and mousefuncokan-4/+4
bits even closer.
2014-01-03use consistent typesokan-3/+3
2014-01-02Accept _NET_CURRENT_DESKTOP ClientMessage; from Thomas Adam, thoughokan-2/+8
instead of group toggle, group only.
2014-01-02Accept _NET_WM_DESKTOP clientmessage; from Thomas Adamokan-1/+5
2014-01-02bring mousefunc closer to kbfuncokan-2/+2
2013-12-13stray space and sort while hereokan-5/+4
2013-12-13Add support for XUrgency and matching _NET_WM_STATE_DEMANDS_ATTENTIONokan-1/+2
ewmh hint; urgencyborder is configurable. The urgency flag will stick, even while on a client in a non-viewable group, until the client receives focus (where the border is reset). Initial diff from Thomas Adam with some changes/enhancements from me.
2013-12-12ICCCM explicitly states that server time (CurrentTime) should *not* beokan-1/+3
used for focus events, but rather the timestamp of the generated event. Track the last event timestamp and send it down for a WM_TAKE_FOCUS ClientMessage. I suspect we should do this for clients that don't announce this Atom as well, though the raciness gets us into a bind. Solves focus order issue since WM_TAKE_FOCUS; fix verified by sthen@ ok sthen@
2013-12-11Add client wrapper for XWMHints to support XA_WM_HINTS in PropertyNotifyokan-1/+4
events; based off a diff from Thomas Adam.
2013-12-11Remove extra work and simplify client state handling.okan-3/+2
2013-12-02Since we use IconicState as our hidden state, check for the hidden flagokan-3/+5
and unmanage the client if we're not hidden (basically if NormalState) during an UnmapNotify event. Resolves an issue with mplayer going fullscreen while not using NetWM hints; behaviour regression reported by Ido Admon.
2013-11-27Remove the option to bind a key by keycode with brackets; it neverokan-4/+2
worked (and no one complained!). While it's fairly easy to fix, users should be using keysym names and not keycodes. Discussed at length months ago with todd@, matthieu@ and Owain.
2013-11-27Rewrite active/inactive client handling in client_setactive();okan-17/+6
client_leave() served no real purpose, likewise no reason to handle LeaveNotify events since an EnterNotify will process the next active client (and we don't have anything important to process anyway), so xev_handle_leavenotify() goes as well. Allows a simplification of client_mtf() and client_cycle_leave() for clarity. While here, unify a few client_current() checks. No intended behaviour change.
2013-11-12Alter the r1.35 of event.c race fix. Remove the forward looking eventokan-17/+5
queue check (removing the need for a server grab/ungrab) - if the client is going away, let it fall all the way through to a DestroyNotify event. There's no longer a need for us to manually destroy a client ourselves (removing yet another server grab/ungrab). Instead, when the UnmapNotify event is synthetic, simply set the state to Withdrawn (as per ICCCM), else Iconic (in our case 'hidden'). Verified with test case from the 2009 race which was the original reason for r1.35 of event.c.
2013-10-25A client_delete should behave differently depending on whether theokan-3/+3
triggering event was unmap (with pending destroy) log destroy; we only need to grab/ungrab the server lock, set WithdrawnState and XRemoveFromSaveSet clients coming from an unmap event - doing so for clients coming from destroy are already gone, hence we generate errors.
2013-07-15collapse linesokan-7/+5
2013-07-15simplify atom handling; allows us to limit to one round-trip to serverokan-6/+6
for gathering Atoms.
2013-07-10bring buttonpress and keypress event handlers slightly closer togetherokan-9/+8
2013-07-08move kbfunc and mousefunc closer togetherokan-3/+3
2013-07-08whitespace and style fixes; from Tiago Cunha and one from me.okan-2/+2
2013-06-10move synthetic responses and have client_msg only work with WM_PROTOCOLS,okan-2/+2
since that's all ClientMessageEvent is for anyway.
2013-06-10Check for, and honour, CWStackMode and CWSibling change requests during aokan-2/+6
ConfigureRequest event. Additionally, honour a border width change; detailed report and patch from Mike Small.
2013-05-23alter conf_grab(_kbd) to first ungrab AnyKey/AnyModifier, then proceedokan-8/+6
to grab keys in keybindingq. we don't need to ungrab/grab on every addition to the queue, just once with a complete keybindingq; simplify grabbing keys per screen (during init) and during a MappingNotify. while here, change conf_grab_{kbd,mouse} to require only a Window.
2013-05-21handle _NET_WM_STATE ClientMessage; from Alexander Polakov.okan-1/+5
2013-05-20stray whitespaceokan-2/+2
2013-05-20handle _NET_ACTIVE_WINDOW ClientMessage; from Alexander Polakov.okan-2/+10
2013-05-19add support for _NET_CLOSE_WINDOWokan-1/+4
2013-05-19treat WM_CHANGE_STATE like other atomsokan-6/+3
2013-05-19simplifyokan-8/+7
2013-05-11new -> initokan-2/+2
2013-05-10more type fixes for mask/buttonokan-2/+2
2013-05-10int type fixesokan-2/+2
2013-05-10fix KeySym typeokan-2/+3
2013-04-29use an int in screen_init and avoid needing to cast for screen number (which).okan-2/+2
2013-04-05zap stray whitespaceokan-2/+2
2012-12-18define LockMask|Mod2Mask; no functional changeokan-5/+3
2012-11-09sortokan-2/+2
2012-11-07missing headers; from Thordur Bjornsson.okan-1/+2
2012-09-12revert previous for now until a way to test more than a few encodings is foundokan-5/+5
2012-09-10be explicit in which key masks we allow during keypress and buttonpressokan-5/+5
events; from Alexander Polakov - makes non-us layout reliable.
2012-07-13re-use geom struct in client_ctx (saved)geometry.okan-7/+7
2012-07-13convert xmax/ymax uses to view geometry.okan-3/+3
2012-07-06querying for Xinerama should be done per display, not per screen, sookan-2/+1
move chuck to display init; allows some shuffling to occur limiting screen_init_xinerama()'s scope while keeping order intact.
2012-07-05the display's width and height are updated after an XRandR event so weokan-2/+2
don't need to pass down the new values to screen_update_geometry(); so just read the width/height values directly for both uses of screen_update_geometry(). prep for further changes in this area.
2012-07-03re-implement atom handing; makes for a normalized and more consistentokan-2/+2
separation between cwm and ewmh. seen by a few.
2012-05-16get rid of more stray lines/spacesokan-3/+1