| Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
As a side effect, _NET_RESTACK_REQUEST now also allows specifying the dock as the sibling.
|
|
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.
|
|
|
|
When the strict option is used, normal windows are not able to show themselves
while showing the desktop.
|
|
|
|
|
|
|
|
|
|
gtk+ 3.4 apparently sends these randomly when you select text in a
GtkEntry. This also fixes bug #5460.
|
|
|
|
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.
|
|
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.
|
|
|
|
isn't shown yet.
|
|
if using "focus under mouse" (Fixes bug #4617)
|
|
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).
|
|
"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
|
|
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.
|
|
Force event_curtime to be some valid timestamp.
|
|
action on the focused window
update it at the end of running actions instead of multiple times (once for
each action)
|
|
|
|
It also caused the slightest cursor movement to activate the entry under
the cursor when navigating via the keyboard.
|
|
|
|
This reverts commit aa3685d16af4a565eecdc39047ee8d140ef5cd99.
Mika's commit using a GSource to handle X Events fixes this problem, so this
commit is not needed
|
|
|
|
GMainLoop doesn't cause an flush to occur after handling a timeout.
|
|
|
|
client's decor or functions
|
|
openbox
adds a function event_reset_time() that forces event_time() to look for a new (future) timestamp
|
|
|
|
|
|
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
|
|
|
|
was just going to get ignored the next time around cuz the window wouldnt be in our list of clients
|
|
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.
|
|
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.
|
|
transient for the group when it shouldn't be (fixes bug #4586)
|
|
|
|
|
|
"oldschool fullscreen window" or not. use this throughout. and allow oldschool fullscreen windows to move to 0,0 even with a strut there.
|
|
move it to inside the strut instead (unless it is an oldschool fullscreen app)
|
|
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.
|
|
|
|
|
|
XLookup stuff
|
|
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
|
|
handle input from the non-base group and composed input
|
|
this allows translation of keys not in the base keyboard layout
|