Michael Stapelberg
f32cc6f4ae
Merge branch 'master' into next
2012-01-17 23:39:04 +00:00
Michael Stapelberg
21a2971b24
Bugfix: Either use SetInputFocus *or* send WM_TAKE_FOCUS, not both
...
This fixes problems with the Oracle JRE7, which checks the current focus after
receiving WM_TAKE_FOCUS and just does nothing when the focus is on one of its
windows. Hopefully it doesn’t introduce any regressions :).
2012-01-17 23:33:33 +00:00
Michael Stapelberg
62cde927a5
Bugfix: Only ignore EnterNotify events after UnmapNotifies from managed windows
...
This should fix (some?) focus follows mouse problems.
2012-01-17 20:37:36 +00:00
Michael Stapelberg
a532f5ac39
Implement a new parser for commands. (+test)
...
On the rationale of using a custom parser instead of a lex/yacc one, see this
quote from src/commands_parser.c:
We use a hand-written parser instead of lex/yacc because our commands are
easy for humans, not for computers. Thus, it’s quite hard to specify a
context-free grammar for the commands. A PEG grammar would be easier, but
there’s downsides to every PEG parser generator I have come accross so far.
This parser is basically a state machine which looks for literals or strings
and can push either on a stack. After identifying a literal or string, it
will either transition to the current state, to a different state, or call a
function (like cmd_move()).
Special care has been taken that error messages are useful and the code is
well testable (when compiled with -DTEST_PARSER it will output to stdout
instead of actually calling any function).
During the migration phase (I plan to completely switch to this parser before
4.2 will be released), the new parser will parse every command you send to
i3 and save the resulting call stack. Then, the old parser will parse your
input and actually execute the commands. Afterwards, both call stacks will be
compared and any differences will be logged.
The new parser works with 100% of the test suite and produces identical call
stacks.
2012-01-14 21:29:57 +00:00
Michael Stapelberg
f81c89ac28
Refactor the code out of src/cmdparse.y to src/commands.c
...
This is the first step towards our new parser.
2012-01-14 16:59:52 +00:00
Michael Stapelberg
608def6c6e
cmdparse.l: [^t] is enough (Thanks f8l)
2012-01-10 23:09:00 +00:00
Michael Stapelberg
814695d8bb
Implement 'move workspace to output <output>'
...
Fixes : #541
2012-01-10 22:16:50 +00:00
Michael Stapelberg
df9b338175
Introduce synonyms: 'move to workspace' and 'move container to workspace' and 'move window to workspace'
...
This makes the new 'move workspace to output' command much more clear
2012-01-10 22:16:09 +00:00
Michael Stapelberg
6df971d5d5
Ignore next_on_output/prev_on_output when looking for the first workspace
2012-01-08 16:31:07 +00:00
Max Alexander Busse
fba2582b2e
Switch and Move to next workspace on the same Output. As requested in \#554
2012-01-08 16:24:21 +00:00
dbp
a3081c488a
Allow different modifier keys for showing hidden i3bar.
2012-01-08 12:47:41 +00:00
Michael Stapelberg
f88c779457
Merge branch 'master' into next
2012-01-08 12:30:41 +00:00
Michael Stapelberg
96c491a488
Bugfix: Fix assignments of floating windows to (yet) unused workspaces (Thanks zeus)
...
The problem was that the workspace was considered empty for a brief period of
time when entering floating mode. This happened when you assigned Gimp to a
workspace which is not in use yet.
2012-01-08 12:28:49 +00:00
Michael Stapelberg
47a25aa883
bump copyright
2012-01-08 12:00:19 +00:00
Michael Stapelberg
5c3077bc78
wrap 'focus output': when on the right-most output and focusing right, it will focus the left-most output
2012-01-08 11:58:45 +00:00
Michael Stapelberg
e3051629d1
remove trailing whitespace and empty lines
2012-01-08 11:44:01 +00:00
Max Alexander Busse
d0b3a943f0
Feature: focus the output right/left/above/below
2012-01-08 11:43:31 +00:00
Michael Stapelberg
470ee00012
Merge branch 'master' into next
2012-01-07 18:50:46 +00:00
Michael Stapelberg
d4238c778a
Bugfix: Open new windows in the correct place when assignments match (+test) (Thanks Don)
2012-01-07 18:50:00 +00:00
Michael Stapelberg
6345124049
Merge branch 'master' into next
...
Conflicts:
src/con.c
2012-01-07 18:21:12 +00:00
Michael Stapelberg
f78caf8c58
Bugfix: Don’t lose focus on fullscreen windows when another window gets moved to that workspace (+test) (Thanks rami)
...
Fixes : #606
2012-01-07 18:18:36 +00:00
Michael Stapelberg
0e1b1dd984
Bugfix: Correctly handle 'move scratchpad' on workspace level (+test) (Thanks mseed)
...
Fixes : #597
2012-01-07 17:36:30 +00:00
Michael Stapelberg
3254188cda
Bugfix: Show scratchpad on the correct output (+test)
...
Fixes : #596
2012-01-07 16:53:37 +00:00
Michael Stapelberg
dee7c07ad2
shmlog: store meta information in the buffer itself, store path as X11 atom
...
This makes i3-dump-log completely independent of a running i3 instance.
2012-01-06 23:40:07 +00:00
Michael Stapelberg
91499ed2c7
properly serialize floating/scratchpad state when restarting
2012-01-05 21:41:20 +00:00
Michael Stapelberg
fca57ed077
Change prototype of handlers to static void, remove a bit of old code
2011-12-30 11:30:56 +01:00
Michael Stapelberg
68544a519e
Handle vsnprintf overflows (Thanks Han)
2011-12-30 01:26:36 +01:00
Michael Stapelberg
a2031a8894
Log the configfile name in verbose log, not only debug log (Thanks Han)
2011-12-29 00:04:48 +01:00
Michael Stapelberg
8a67f15ef4
add missing scratchpad.{c,h}
2011-12-21 23:17:52 +00:00
Michael Stapelberg
08986a1798
Implement scratchpad functionality (see userguide)
2011-12-21 23:15:32 +00:00
Michael Stapelberg
622b94f176
Merge branch 'master' into next
2011-12-20 18:44:26 +00:00
Michael Stapelberg
d963018990
Bugfix: Don’t close workspace when there are still floating windows on it (Thanks noxxun) (+test)
...
Fixes : #595
2011-12-20 18:44:15 +00:00
Michael Stapelberg
1f2c9306a2
Merge branch 'master' into next
...
Conflicts:
testcases/t/159-socketpaths.t
2011-12-18 18:02:08 +00:00
Michael Stapelberg
c21172a6f6
Create a secure temp path instead of a predictable one (Thanks Han)
...
With this commit, i3 will now use either $XDG_RUNTIME_DIR/i3 (XDG_RUNTIME_DIR
is only writable by the user, so this is not a problem) or a secure temporary
location in /tmp, following the pattern /tmp/i3-<user>.XXXXXX
2011-12-18 17:59:31 +00:00
Michael Stapelberg
c4298b9311
Merge branch 'master' into next
2011-12-18 17:25:15 +00:00
Michael Stapelberg
4fba2d5f91
Bugfix: Correctly check boundaries and reassign floating windows when moving (Thanks xpt)
...
Fixes : #592
2011-12-18 17:24:27 +00:00
Fernando Tarlá Cardoso Lemos
fbf6d20e05
Fix the signal handler popup text.
...
Thanks to Michael for the heads-up.
2011-12-18 15:43:00 +00:00
Michael Stapelberg
2ba09f5419
Merge branch 'master' into next
2011-12-18 15:19:09 +00:00
Michael Stapelberg
ec28f3b982
Bugfix: Fix floating resize for floating split containers (+test)
...
Fixes : #588
2011-12-18 15:18:20 +00:00
Michael Stapelberg
4412ccbe5a
Merge branch 'master' into next
2011-12-17 22:35:13 +00:00
Michael Stapelberg
7a80d903a5
keygrabbing: only look in the appropriate columns when resolving keysyms
...
Fixes : #585
This commit fixes the problem of i3 wrongly grabbing/interpreting (!) some key
bindings. Basically, when you have, say, "bindsym Mod1+4 workspace 4", but you
also have "bindsym Mod1+semicolon focus right" (both are default), and your
keyboard layout has semicolon on Mode_switch + 4, the "workspace 4" keybinding
was shadowed by the "focus right" keybinding, because that also resolves to
semicolon.
So, from now on, i3 will only consider column 0 and 1 for normal bindings and
column 2 and 3 for bindings using Mode_switch (columns as seen in xmodmap
-pke).
2011-12-17 22:31:21 +00:00
Michael Stapelberg
76202a824d
re-indent translate_keysyms()
2011-12-17 22:28:28 +00:00
Michael Stapelberg
0d210277f0
x: Handle expose-events by only copying the requested region from our pixmap
...
This is faster than always updating the whole pixmap and should be safe.
2011-12-17 20:08:56 +00:00
Michael Stapelberg
6f8b284586
Merge branch 'master' into next
2011-12-17 18:48:14 +00:00
Michael Stapelberg
664e30903c
Bugfix: Don’t change focus after (graphical) resizing
2011-12-17 18:47:29 +00:00
Michael Stapelberg
a930994dc9
Merge branch 'master' into next
2011-12-17 17:16:39 +00:00
Michael Stapelberg
75c57c4eef
Bugfix: Ignore ConfigureRequests with out-of-bound coordinates (+test)
...
JDownloader seems to use these for its captcha popups when focus is not on the
same workspace, for some weird reason.
2011-12-17 17:15:52 +00:00
Michael Stapelberg
db174234ce
Merge branch 'master' into next
...
Conflicts:
debian/changelog
2011-12-17 15:28:51 +00:00
Michael Stapelberg
1ff321bc3f
Bugfix: Disallow focusing other windows when in fullscreen mode (Thanks aksr)
...
Fixes : #579
2011-12-17 15:28:17 +00:00
Michael Stapelberg
ef224cdb98
Merge branch 'master' into next
...
Conflicts:
testcases/t/173-get-marks.t
2011-12-17 14:22:57 +00:00
Michael Stapelberg
b46ab649f5
Bugfix: Fix setting the same mark repeatedly on different windows (+test)
...
Fixes : #582
2011-12-17 14:22:23 +00:00
Michael Stapelberg
5a345db18b
Merge branch 'master' into next
2011-12-17 13:55:45 +00:00
Michael Stapelberg
87b6bf7a54
Bugfix: Make resizing work when pressing floating_modifier + right mouse button on window decorations
...
Fixes : #583
2011-12-17 13:55:16 +00:00
Michael Stapelberg
9e688a2277
Merge branch 'master' into next
2011-12-17 12:21:13 +00:00
Michael Stapelberg
f6c0a1e161
Bugfix: Make resizing of tiling windows with floating_modifier use absolute coordinates
...
Fixes : #580
2011-12-17 12:20:27 +00:00
Michael Stapelberg
9cec9e09ed
Merge branch 'master' into next
2011-12-17 11:18:35 +00:00
Michael Stapelberg
acb3bdd05e
Bugfix: Skip leading whitespace in variable assignments (Thanks ben)
...
Fixes : #577
2011-12-17 11:16:34 +00:00
Michael Stapelberg
966c654112
implement the GET_LOG_MARKERS IPC request/reply
2011-12-10 11:16:32 +00:00
Michael Stapelberg
f7a73f4a68
fix the SHM log size
2011-12-10 11:15:57 +00:00
Michael Stapelberg
d034248de0
sighandler: handle all "Core" signals
2011-12-10 11:05:37 +00:00
Michael Stapelberg
aa82adb5c0
Introduce --shmlog-size flag, unlink SHM log when exiting
2011-12-10 10:51:55 +00:00
Michael Stapelberg
e65ee63763
Implement logging to a SHM ringbuffer
...
This feature is automatically enabled when running a debug version of i3.
The logfile will use 1% of your physical RAM size, but at max 25 MiB.
2011-12-10 10:50:33 +00:00
Michael Stapelberg
6c112f2a9a
Merge branch 'master' into next
2011-11-30 20:34:54 +00:00
Michael Stapelberg
d25e77ce75
Don’t set the _NET_WM_WORKAREA hint at all (Thanks cg)
...
Fixes : #539
2011-11-30 20:33:07 +00:00
Michael Stapelberg
fb90a556c8
Merge branch 'master' into next
2011-11-30 20:10:45 +00:00
Michael Stapelberg
fb0ad1e8f9
display i3 version in errors, make conversion message an error
2011-11-30 20:09:32 +00:00
Michael Stapelberg
0f9fbcbd25
Merge branch 'master' into next
2011-11-29 22:37:11 +00:00
Michael Stapelberg
626e3efb48
Bugfix: Fix 'resize' command in nested containers (Thanks mseed)
...
Fixes : #559
2011-11-29 22:36:40 +00:00
Michael Stapelberg
f2b73b64be
Merge branch 'master' into next
2011-11-29 21:24:05 +00:00
Michael Stapelberg
0e56fcb971
add a few more keywords to make i3 recognize configs as v4
2011-11-29 21:20:42 +00:00
Michael Stapelberg
df2236c5ee
Merge branch 'master' into next
2011-11-29 20:50:11 +00:00
Michael Stapelberg
59283cce93
Bugfix: Fix resizing for (e.g.) v-split containers in h-split containers
...
Fixes : #562
2011-11-29 20:48:59 +00:00
Michael Stapelberg
752b101916
Merge branch 'master' into next
2011-11-28 23:28:03 +00:00
Michael Stapelberg
bd4b240d56
Bugfix: Ignore EnterNotify events to prevent wrong focus in complex tabbed/stacked layouts (Thanks Phlogistique)
...
Fixes #560
Finally we have a good explanation and example for why we need to ignore
EnterNotify events which were caused by an Unmap :).
2011-11-28 23:26:45 +00:00
Jan-Erik Rediger
f23d675de9
Implement new "i3bar_command" option for bar.
...
This allows you to specify an alternate path to the i3bar binary.
The userguide docu is included.
2011-11-27 21:40:57 +00:00
Michael Stapelberg
1a3b82eb02
Merge branch 'master' into next
2011-11-26 22:25:06 +00:00
Michael Stapelberg
d686f2f873
Bugfix: Don’t create a workspace named "back_and_forth" on startup
...
Fixes #565
2011-11-26 22:24:30 +00:00
Michael Stapelberg
f5dce848b8
Merge branch 'master' into next
2011-11-26 22:18:01 +00:00
Michael Stapelberg
31acb91d90
Bugfix: Fix crash on '[class="i3bar"] focus' (+test) (Thanks f8l)
...
Fixes #575
2011-11-26 22:17:34 +00:00
Fernando Tarlá Cardoso Lemos
340592a532
Invalidate cached pixmaps on reload and redraw.
...
After a reload, the drawing parameters for the decorations might
have changed, so we need to invalidate the cache and force a redraw
of the currently visible decorations. Also, don't leak the previous
font when reloading by freeing it before parsing the config.
2011-11-26 21:51:49 +00:00
Michael Stapelberg
67c2c03f76
Merge branch 'master' into next
2011-11-26 21:30:44 +00:00
Michael Stapelberg
eeab1f0659
Fix comment for the previous commit
2011-11-26 21:30:26 +00:00
Michael Stapelberg
555dd48f09
Merge branch 'master' into next
2011-11-26 21:19:30 +00:00
Michael Stapelberg
970d11709e
Bugfix: Retain absolute window position and size when changing floating borders (Thanks binzter)
...
Fixes : #561
2011-11-26 21:18:23 +00:00
Michael Stapelberg
d805d1bbea
Merge branch 'master' into next
2011-11-24 23:50:11 +00:00
Michael Stapelberg
227a58b0c3
Bugfix: Fix startup when RandR is not present
2011-11-24 23:49:35 +00:00
Michael Stapelberg
af810df8da
Merge branch 'master' into next
2011-11-21 23:10:09 +00:00
Michael Stapelberg
61b8a62132
Bugfix: fix fullscreen with floating windows
...
Fixes : #564
2011-11-21 23:04:49 +00:00
Michael Stapelberg
561cf3719f
little style fixes
2011-11-21 21:48:24 +00:00
Fernando Tarlá Cardoso Lemos
344c04af12
Implement set_font_colors.
...
This paves the way for other font rendering backends. Fonts and
colors shouldn't be specified manually from now on.
2011-11-21 20:52:32 +00:00
Fernando Tarlá Cardoso Lemos
eafc7af606
Make all programs use draw_text.
2011-11-21 20:52:29 +00:00
Fernando Tarlá Cardoso Lemos
5c2088c87e
Enhance libi3 and use it in i3bar.
...
Abstracted draw_text and predict_text_width into libi3. Use
predict_text_width from libi3 in i3 too. This required tracking
xcb_connection in a xcb_connection_t *conn variable that libi3
expects to be available in i3bar.
2011-11-21 20:52:26 +00:00
Michael Stapelberg
70151ea238
Merge branch 'master' into next
2011-11-21 19:56:03 +00:00
Michael Stapelberg
5f8d719835
Bugfix: Skip dock clients when handling FocusIn events (Thanks cradle)
2011-11-21 19:55:41 +00:00
Michael Stapelberg
b6e859787e
clarify comments about socket activation (Thanks mxf)
2011-11-16 23:14:57 +00:00
Michael Stapelberg
84cf3ec3cb
ipc: set CLOEXEC on client file descriptors (Thanks biiter)
2011-11-16 21:42:48 +00:00
Fernando Tarlá Cardoso Lemos
fb11cc2d14
Consolidate all convert_* functions into libi3.
...
Some minor fixes along the way as well. Very minor stuff, unlikely
to ever be visible to the user.
2011-11-16 20:54:30 +00:00
Michael Stapelberg
7498ddd12f
ipc: set CLOEXEC on client file descriptors (Thanks biiter)
2011-11-15 23:39:43 +00:00
Michael Stapelberg
1e5cd4b769
Bugfix: Only go to the parent container in resizing if that is actually a split container
...
(as opposed to a workspace)
This fixes a regression in resizing. We do need testcases for these things.
2011-11-11 19:19:14 +00:00
Michael Stapelberg
60bfc3a600
Bugfix: Correctly handle --no-startup-id with quoted exec commands (Thanks aksr)
...
Parser changes shortly before a release. What could possibly go wrong.
2011-11-11 00:28:04 +00:00