summaryrefslogtreecommitdiff
path: root/openbox/event.c
AgeCommit message (Collapse)Author
2014-11-05Allow selecting menu entries during menuHideDelay if you click again, bug 5501Mikael Magnusson
2014-11-03Make sure to reset all the GSource timer idsMikael Magnusson
Avoids warnings like 'Source ID 8382 was not found when attempting to remove it'. In particular some removals were missing in menuframe.c resulting in a warning being printed every time a submenu was opened.
2014-10-20Make RaiseLower work for the dock as wellMikael Magnusson
As a side effect, _NET_RESTACK_REQUEST now also allows specifying the dock as the sibling.
2014-10-20Add keyboard/rebindOnMappingNotify optionMikael Magnusson
I have to switch to a qwerty layout to play steam games, and every time I switch back and forth, we lose some random bindings so I also had to reconfigure Openbox every time, now I don't.
2014-01-09Added missing break statement (Bug 6043)Markus Roesch
2013-09-09Add a strict option to the ToggleShowDesktop actionDana Jansens
When the strict option is used, normal windows are not able to show themselves while showing the desktop.
2013-08-11Convert two // to /*Mikael Magnusson
2012-10-06Remove unused variableDana Jansens
2012-09-30Select the menu item under the mouse when the mouse is moved (Fix bug 5237)Dana Jansens
2012-09-30Ignore enters on windows that are raised over focused window while being mapped.Dana Jansens
2012-09-30Fix crash on unexpected NET_WM_MOVERESIZE_CANCEL messagesMikael Magnusson
gtk+ 3.4 apparently sends these randomly when you select text in a GtkEntry. This also fixes bug #5460.
2011-10-16Propagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132)Dana Jansens
2011-10-06Don't show prompts inside the message handler to prevent recursionDana Jansens
Showing prompts causes messages to be created which causes the glib message handler to abort(). Save the messages and show them when done all other processing for the current event.
2011-10-05Fix focus stealing for changing desktops/Use timestamp for user input eventsDana Jansens
Change the logic for when to allow stealing focus across desktops. - It was possible to call event_time_after() with a CurrentTime in the old code. - It would disallow a user requested change which is crazy. - It would change desktops on you when a new window appeared but this is generally not desirable. event_source_time() is supposed to give the time which the user made things happen. we leave it at 0 for user-input events right now which means stuff like changing desktop doesn't save any timestamp at all. we should use the timestamp from x for user-generated events.
2011-01-24Fix regression: hitting a key accel in a menu didn't move focus to the submenuDana Jansens
2011-01-24Show the submenu and move focus there with the enter key when the submenu ↵Dana Jansens
isn't shown yet.
2011-01-24Move focus to a window when the mouse enters a window during a pointer grab, ↵Dana Jansens
if using "focus under mouse" (Fixes bug #4617)
2011-01-24Make NET_ACTIVE messages always treated as from the user. Loosen up focus ↵Dana Jansens
stealing for user-requested focusing. Seems panels such as xfce's and gnome's still treat their activation requests as being from an application when a user has requested it. Make the focus stealing code more lenient for user-requested focusings (_NET_ACTIVE). But treat new windows as not user-requested unless they gave a launch time. When activating a window, if another window would be the one to actually get focused, then activate that instead (avoid clicking a window in the panel and nothing happens).
2011-01-24Some versions of X, have the Shape extension, but apparently not ↵Philip Brown
"ShapeInput" (Fixes bug #4662) the sawfish window manager has ifdefs for this sort of situation. I followed suit, and #ifdef'd it, and it now works for me. patch attached. Slight changes to the patch from danakj@orodu.net for readability
2011-01-24if no launch time is provided for an application, make one up.Dana Jansens
if the window is related to other existing windows and one of those windows was the last used then we will give it a launch time equal to the last user time, which will end up giving the window focus probably. else the window is related to other windows, but you are not working in them? seems suspicious, so we will give it a launch time of NOW - STEAL_INTERVAL, so it will be given focus only if we didn't use something else during the steal interval. else the window is all on its own, so we can't judge it. give it a launch time equal to the last user time, so it will probably take focus. this way running things from a terminal will give them focus, but popups without a launch time shouldn't steal focus so easily.
2011-01-24Fixing commit 066a15d7aa64eaa0. Don't ever use CurrentTime as event_curtime.Dana Jansens
Force event_curtime to be some valid timestamp.
2011-01-24update the user-interaction timestamp when running a (non-interactive) ↵Dana Jansens
action on the focused window update it at the end of running actions instead of multiple times (once for each action)
2011-01-24Use >= instead of > when comparing timestamps, or we will ignore some eventsMikael Magnusson
2011-01-24Ignore MotionNotify on menus, it reset the submenudelay timerMikael Magnusson
It also caused the slightest cursor movement to activate the entry under the cursor when navigating via the keyboard.
2011-01-24Don't hog the user during the hideDelayMikael Magnusson
2010-09-16Revert "add XFlush to g_timeout callbacks"Dana Jansens
This reverts commit aa3685d16af4a565eecdc39047ee8d140ef5cd99. Mika's commit using a GSource to handle X Events fixes this problem, so this commit is not needed
2010-09-16Make the dock a context and add actions LowerDock and RaiseDockMikael Magnusson
2010-06-14add XFlush to g_timeout callbacksDana Jansens
GMainLoop doesn't cause an flush to occur after handling a timeout.
2010-06-14Use GMainLoop instead of ObtMainLoopDana Jansens
2010-05-20client_update_protocols() doesnt change anything that would affect a ↵Dana Jansens
client's decor or functions
2010-05-17fix focus when starting up, especially when replacing another instance of ↵Dana Jansens
openbox adds a function event_reset_time() that forces event_time() to look for a new (future) timestamp
2010-04-29don't try go to selected submenu when there is nothing selectedDana Jansens
2010-04-28use clicks in promptsDana Jansens
2010-04-28fix XSYNCronization of resizes (especially with two monitors).Dana Jansens
1) a ConfigureNotify must always follow a Sync notification 2) determine the final size of the window with its position else struts are not applied properly for (partly) maximized windows 3) set the sync counter to a value when managing a new window
2010-04-28make an event queue for X events. the queue's min size is 16 XEvents (~3k)Dana Jansens
2010-04-23putting events on the event queue does not send them back to the server. it ↵Dana Jansens
was just going to get ignored the next time around cuz the window wouldnt be in our list of clients
2010-04-16event_curtime is replaced (publicly) by event_time()Dana Jansens
This function never returns CurrentTime, which is nice, cuz using CurrentTime for XSetFocus always sucks. If the current XEvent did not have a timestamp, then event_time() will find one. It finds the first timestamp available in the X event queue, meaning the earliest timestamp >= the current (nontimestamped) event. All future events should have a timestamp >= event_time(), so using this in XSetFocus() should not mess up any future calls we make to it. This change seems to work well, as it appears to fix bug #3648.
2010-04-16When determining the current timestamp, try get something a lil more accurateDana Jansens
Get the first timestamp from the event queue, rather than (potentially) the last. also treat it as the actual event_curtime, meaning it is used when focusing a newly mapped window etc.
2010-04-16when client removes its transient_for hint, don't keep the window as ↵Dana Jansens
transient for the group when it shouldn't be (fixes bug #4586)
2010-03-25make keypad enter do the same thing as returnDana Jansens
2010-03-25allow non-normal windows to go to 0,0. and remove a debugging g_printDana Jansens
2010-03-01add a function client_is_oldfullscreen() that determines if a window is an ↵Dana Jansens
"oldschool fullscreen window" or not. use this throughout. and allow oldschool fullscreen windows to move to 0,0 even with a strut there.
2010-03-01when an app tries to move to 0,0 and there is a strut there (java swing!), ↵Dana Jansens
move it to inside the strut instead (unless it is an oldschool fullscreen app)
2010-02-15dont trust the _NET_ACTIVE_WINDOW timestamp. (fixes bug #4519)Dana Jansens
if we decide to focus the window, do not use their provided timestamp. chromium gives a very old timestamp, which means we think we're focusing the window but it never actually gets focus, leading to inconsistent behaviour by openbox. use the timestamp for making decisions about passing focus if you want (we dont right now), but not for the XSetInputFocus call.
2010-02-12use g_slice_new() instead of g_new() part 2Dana Jansens
2010-02-12have obt refresh the xlib keyboard stuff on mappingnotify eventsDana Jansens
2010-02-11make control keys work in menus/dialogs/etc with the new obt code, using ↵Dana Jansens
XLookup stuff
2010-02-11make menu input work with the new obt keyboard stuff.Dana Jansens
create an Input Context for use during keyboard grabs, and use this to translate KeyPress events properly. make the menu respond to KeyPress events, since these are the only ones that can be translated properly, but still execute things from KeyRelease events
2010-02-11make the menu use the new obt stuff when reading keyboard input so it can ↵Dana Jansens
handle input from the non-base group and composed input
2010-02-11don't strip the state for keyboard eventsDana Jansens
this allows translation of keys not in the base keyboard layout