Commit Graph

208 Commits

Author SHA1 Message Date
Michael Stapelberg 2ed621aec9 Bugfix: Forgot to update client’s workspace pointer (Thanks Mirko) 2009-05-27 12:28:51 +02:00
Michael Stapelberg 7fde55578d Bugfix: Correctly handle mode_switch state bit, more debugging output for states
We abuse (1 << 8) as mode_switch bit, which is in the range of the
filtered state bits (see previous commit). Therefore, we need to
filter first and then check for mode_switch.

Furthermore, we used 0x2 before, which was just wrong. So, use our
bitmask, not the normal one (0x2).
2009-05-19 15:24:17 +02:00
Michael Stapelberg 77ab4c0b10 Bugfix: keypress: Only use the lower 8 bits of the mask so that mouse buttons are filtered out (Thanks Mirko)
Sometimes, when the mouse button gets stuck, state contains the bit for
BUTTON_MASK_1 (or other buttons). We filter them out to continue processing
keys correctly.
2009-05-19 13:51:03 +02:00
Michael Stapelberg 4cc8d53706 Bugfix: Correctly handle col-/rowspanned containers when setting focus (Thanks Ned)
This fixes ticket #34
2009-05-09 19:59:36 +02:00
Michael Stapelberg 3c6c5dff92 Fix a bug in window placement introduced by the last commit 2009-05-09 19:13:14 +02:00
Michael Stapelberg 3ccc0d7794 Bugfix: Fix display/resizing of colspanned containers 2009-05-09 18:43:02 +02:00
Michael Stapelberg 8e1990f058 Bugfix: Store width_factor/height_factor per workspace, not per container
This is a relatively big change, however all cases should be handled by
now.

Because the function to do graphical resizing got rather large, I’ve created
a new file src/resize.c for it.

This fixes ticket #35.
2009-05-09 17:48:35 +02:00
Michael Stapelberg d24e47a0f3 Bugfix: Force reconfiguration of all windows on workspaces which needed to be re-assigned (Thanks Mirko)
When you disable a Xinerama screen (think of removing a video projector),
the workspaces of that screen need to be re-assigned to another screen.
Previously, the clients affected by this re-assignment did not get re-
configured, which made them appear on the next screen which got configured
at the position of the old one again if you did not switch to the reassigned
workspace before.

So, to reproduce it:
xrandr --output VGA --mode 1280x1024 --right-of LVDS
move windows to the new workspace
xrandr --output VGA --off
xrandr --output VGA --mode 1280x1024 --right-of LVDS

This fixes ticket #36
2009-05-09 13:01:23 +02:00
Michael Stapelberg 8c6c4270a9 Bugfix: Don’t raise clients in fullscreen mode, send correct position to clients in fullscreen mode (Thanks ch3ka, mist)
This fixes #38 which only happened for clients which actively tried
to reconfigure themselves.
2009-05-08 23:23:47 +02:00
Michael Stapelberg a2ac022208 Bugfix: Resize all containers in the column instead of only the active one (Thanks Ned)
This fixes ticket #33.
2009-05-07 13:46:34 +02:00
Michael Stapelberg 4a6a748561 Bugfix: Reconfigure bar window when changing resolutions (Thanks Mirko) 2009-05-03 22:59:50 +02:00
Michael Stapelberg c3c05db579 Bugfix: Fix crash on new clients (Thanks Mirko) 2009-05-03 22:18:33 +02:00
Michael Stapelberg d4642ac7d8 Fix a bug caused by not absolutely raising windows (revision 95f4085bc) 2009-05-03 16:41:53 +02:00
Michael Stapelberg c27c7fc020 Bugfix: Insert windows at correct position/set focus correctly when moving between containers 2009-05-03 16:24:12 +02:00
Michael Stapelberg a0d23c53b3 Bugfix: Re-distribute free space when closing customly resized containers, re-evaluate for other containers
This fixes ticket #4
2009-05-03 14:29:58 +02:00
Michael Stapelberg eab895ac9e Bugfix: Correctly restore focus when leaving fullscreen mode 2009-05-03 02:13:11 +02:00
Michael Stapelberg 95f4085bcd Raise clients only relatively to the one which was focused before.
This should fix ticket #31.
2009-05-03 00:23:12 +02:00
Michael Stapelberg 99054fb50f Bugfix: Fix drag&drop in GTK applications (firefox, thunderbird)
Thanks to Daniel Wäber’s contribution to wmii:
http://code.suckless.org/hg/wmii/rev/f4f25de0de54
2009-05-02 20:51:55 +02:00
Michael Stapelberg e91f399609 Bugfix: Correctly restart i3 when not using its absolute path 2009-05-01 16:10:02 +02:00
Michael Stapelberg c689b93bce Bugfix: Don’t crash when asprintf() can’t print the window name (Thanks ch3ka)
Apparantly, under some conditions (using LANG=en_US.UTF-8, other locale
variables unset), asprintf() says "Invalid or incomplete multibyte or
wide character" when given a string in COMPOUND_TEXT encoding.

For now, we properly handle asprintf-errors (this should have been
before), but there might be a better solution.
2009-04-28 22:41:00 +02:00
Michael Stapelberg aefae99a11 Bugfix: That should be xcb_keycode_t, not xcb_keysym_t 2009-04-19 21:40:49 +02:00
Michael Stapelberg 69c9db4016 Add conditional for the 0.3.3 → 0.3.4 API fix in libxcb-keysyms 2009-04-19 21:37:34 +02:00
Michael Stapelberg 982e453251 Don’t rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4
See http://cgit.freedesktop.org/xcb/util/commit/?id=4c9a707f472e49bc3005354db265a0214071d46b
2009-04-19 20:44:34 +02:00
Michael Stapelberg 6ccee82368 Fix for the fix: Don’t substract height twice 2009-04-18 01:13:57 +02:00
Michael Stapelberg 49d5bdbb08 Bugfix: Correctly adjust state when transferring fullscreen windows to other workspaces (Thanks Mirko)
This fixes ticket #27.
Furthermore, it is ensured that only one client at a time is in fullscreen mode.
2009-04-17 21:01:33 +02:00
Michael Stapelberg 12cc8b78af Bugfix: Calculation of width in fake_absoute_configure_notify was wrong for windows with aspect ratio (Thanks Mirko) 2009-04-17 19:08:38 +02:00
Michael Stapelberg 36bacc151e Bugfix: Fullscreen configure notifies mustn’t use absolute position/size 2009-04-16 11:08:11 +02:00
Michael Stapelberg 65b858b9c5 Bugfix: Fix unmapping of dock windows (Thanks Mirko) 2009-04-13 23:27:47 +02:00
Michael Stapelberg a2d20b6848 Bugfix: Send clients their absolute position/size in generated configure events, not relative
This fixes ticket #26.
2009-04-11 22:37:48 +02:00
Michael Stapelberg b7e8a63474 Bugfix: Fix warping of cursor when only switching screen, not workspace 2009-04-11 20:55:16 +02:00
Michael Stapelberg 7133974306 Bugfix: Don’t only check for the currently active screen, but check for all screens (Thanks Mirko) 2009-04-11 19:06:26 +02:00
Michael Stapelberg bb8727cf27 Bugfix: Perform some bounds checking for snapped containers in fix_colrowspan (Thanks jchome)
This fixes ticket #22
2009-04-11 14:52:11 +02:00
Michael Stapelberg bcbe800720 Bugfix: Store dock clients per screen, not per workspace.
This fixes ticket #12
2009-04-11 14:29:15 +02:00
Michael Stapelberg 8cc1fcf536 General small cleanups 2009-04-11 14:08:19 +02:00
Michael Stapelberg e3516d72f5 Bugfix: Don’t change to workspaces on different screens when scrolling through them (Thanks Mirko)
This fixes ticket #19
2009-04-11 11:54:30 +02:00
Michael Stapelberg 0216e84327 Bugfix: Warp pointer to the right window
This fixes ticket #20
2009-04-11 11:36:58 +02:00
Michael Stapelberg aace42cd7a Bugfix: Don’t crash anymore when moving focus to another screen (Thanks, Mirko!)
This fixes ticket #24. The crash appeared only under special conditions:
- The screen on which you switch to must be empty or at least not as
  full as the screen on which you were before.
- You switch focus using your mouse.
- You previously selected a column/row which is not availably on the
  destination screen (for example (1,1) and switching to an empty
  screen).
2009-04-10 21:29:25 +02:00
Michael Stapelberg ee5cb143c0 Oops. Don’t kill the current workspace 2009-04-09 12:13:14 +02:00
Michael Stapelberg 72d82f3993 Bugfix: Delete empty workspaces even when they’re not the active workspace
This fixes ticket #23
2009-04-09 11:19:56 +02:00
Michael Stapelberg 4bd7667445 Bugfix: Correctly set focus when switching between screens 2009-04-08 13:48:37 +02:00
Michael Stapelberg bd9de8189b Put documentation for each function in the header files, doxygen-compatible
Thanks to psychoschlumpf for the hint. Having comments in the headers
makes it easier to get the big picture when not being interested in the
source.

The doxygen file extracts as much as it can into HTML files. Please note
that this is not official/supported documentation, but rather being nice
to people who have to/want to use doxygen (I don’t).

Let me paste the header of the doxygen file:

  You can use this file with doxygen to create a pseudo-documentation
  automatically from source. doxygen-comments are not used very extensively
  in i3, mostly for the reason that it clutters the source code and has no
  real use (doxygen’s output looks really ugly).

  So, if you want to use it, here you go. This is however not a supported
  document, and I recommend you have a look at the docs/ folder or at
  http://i3.zekjur.net/ for more, real documentation.
2009-04-07 19:02:07 +02:00
Michael Stapelberg cb7b7a73d2 Bugfix: Set focus to the client which was previously focused instead of the next client when moving windows
This fixes ticket #21
2009-04-07 16:48:42 +02:00
Michael Stapelberg 28aa13d831 Bugfix: Don’t set focus if it is not necessary.
This fixes ticket #13
2009-04-01 12:50:42 +02:00
Michael Stapelberg 755540817e Implement scrolling on stack windows and on the bar. This implements ticket #18 2009-04-01 12:31:13 +02:00
Michael Stapelberg 75a35319c9 Bugfix: Correctly remove client from container when moving to another workspace
This fixes ticket #16
2009-04-01 12:02:22 +02:00
Michael Stapelberg 0520714aa0 Remove comment as popup menus in dzen2 get triggered by enter notify and focus is not needed 2009-04-01 11:51:11 +02:00
Michael Stapelberg b4e337027e Bugfix: Apply workspaces to screens when Xinerama is turned off (Thanks Igor, Urs) 2009-03-31 19:17:31 +02:00
Michael Stapelberg fcc5ce516b Bugfix: Don’t free xinerama-reply if it is NULL, implement FREE()-macro (Thanks Igor) 2009-03-30 08:27:53 +02:00
Michael Stapelberg a8478efa34 Bugfix: Correctly filter out the numlock state bit (doesn’t get cleared for some reason)
This fixes ticket #14
2009-03-27 15:24:52 +01:00
Michael Stapelberg 9077831ed3 Bugfix: When entering a stack window with the mouse, set the focus to the active client
Fixes ticket #17
2009-03-26 23:00:26 +01:00