Commit Graph

452 Commits

Author SHA1 Message Date
Eon S. Jeon
0f8b4edaf2 detailed client resize/move event 2019-01-18 17:13:18 +09:00
Eon S. Jeon
32154d4f4e cleanup signal binding logic
- `windowShown` signal disconnection
 - `onClientChanged` for handling general rearranging signasl
2019-01-17 02:36:47 +09:00
Eon S. Jeon
00a44f2b0c update years in copyright notice 2019-01-16 14:29:42 +09:00
Eon S. Jeon
b1ca95c3f6 split LayoutStorage into a separate file 2019-01-16 14:23:05 +09:00
Eon S. Jeon
3e7bdc3f7a remove unnecessary 1 px shift in tiling layout
The shift caused unwanted 1 px gap b/w master and stack.
2019-01-03 11:38:12 +09:00
Eon S. Jeon
050575c9d2 refactor tile stakcing logic
This specific logic can be reused in other layouts, which will be
implemented soon(?)
2019-01-03 04:31:04 +09:00
Eon S. Jeon
c9d2b9e851 do not apply layout if there's no tiles 2019-01-02 21:29:46 +09:00
Eon S. Jeon
841c540984 allow moving focus when focusing ignored window 2019-01-02 19:12:22 +09:00
L1Q
db0754ffb7
Fix a typo
titel -> title
2018-12-27 05:01:32 +02:00
Eon S. Jeon
7c54d59764 fix regression: size enforcement blocks fullscreen
If an application tries to enable fullscreen for its window, KWin fires up
`geometryChanged` signal before `fullScreenChanged`. This, after 10ms, returns
the window back to its original position.
2018-12-26 17:26:59 +09:00
Eon S. Jeon
c2576c19d6 fix regression related to floating
un-floating tile threw it back to previous window
2018-12-25 22:19:51 +09:00
Eon S. Jeon
4a485dba6e add instruction for installing KWin script package 2018-12-24 21:36:27 +09:00
Eon S. Jeon
9f0ec52613 bump version number to 0.3 2018-12-24 21:20:50 +09:00
Eon S. Jeon
36c97226d1 distinguish QByteArray from string
there was a type safety issue during development.
2018-12-24 20:55:42 +09:00
Eon S. Jeon
b631f44ab4 fix stupid regression
- I'll just call it a stupid regression, becuase it is.
2018-12-24 20:31:01 +09:00
Eon S. Jeon
75e4151c5c delayed enforcement of tile geometry
- the behaviour remains the same as before, but prevents windows
   from freezing by delaying geoemtry commit
 - would likely resolve issue #16 too
2018-12-24 18:49:11 +09:00
Eon S. Jeon
cfa9a38bb6 better debugging message for Engine.arrange 2018-12-24 14:05:51 +09:00
Eon S. Jeon
7d5ea74cea fix source code wildcard pattern 2018-12-24 13:52:37 +09:00
Eon S. Jeon
b5cc33e764 prevent concurrent rearrangement
- add a flag to protect the critical area
 - possible fix for issue #16
2018-12-19 08:36:48 +09:00
Eon S. Jeon
cb7f96837b fix unit size computation
include padding(title + border) size in unit factor computation
2018-12-19 08:17:03 +09:00
Eon S. Jeon
7ebfe76d47 float tiles as soon as manually moved/resized.
- there was a race condition b/w moveResizeChanged and screenChanged
- screenChanged signals for floating tiles are effectively ignored
2018-12-18 20:36:44 +09:00
Eon S. Jeon
d249ea6386 add debug printing option 2018-12-18 20:14:06 +09:00
Eon S. Jeon
b9fb00ae90 adjust tile geometry whenever it is updated 2018-12-18 19:47:36 +09:00
Eon S. Jeon
8023304921 Add issue templates 2018-12-17 16:28:10 +09:00
Eon S. Jeon
18cba1c8d3 respect window resize increment hints
- calculate window size based on increment hint, if available.
- fixes freezing issues with xterm, lxterm, and similar applications
2018-12-17 10:41:19 +09:00
Eon S. Jeon
5caa4e0633 disconnect signals when script is disable
- signals are automatically disconnected when the script is disable
  (either through `KWin Script` or `make unload`)
- prevents old instances from causing race condition and freezes
- addresses issue #16
2018-12-17 06:41:58 +09:00
Eon S. Jeon
faac0df29c remove unnecessary method scope binding 2018-12-17 05:40:45 +09:00
Eon S. Jeon
4ad8707672 manage clients only after being shown
- delay registering tile until client is actually mapped
 - resolves issues related to #14
2018-12-16 12:16:33 +09:00
Eon S. Jeon
e8db3e3020 disable debug output 2018-12-14 12:02:41 +09:00
Eon S. Jeon
af21bb8b96 separate layout per desktop/activity
- update key generation method in `LayoutStorage`
 - add corresponding config options
 - implements feature from #15
2018-12-14 11:14:05 +09:00
Eon S. Jeon
b936cfa434 implement LayoutStorage
- replaces `Screen`-based layout management
2018-12-14 10:14:29 +09:00
Eon S. Jeon
49f1d53a96 improve event debugging 2018-12-13 18:46:38 +09:00
Eon S. Jeon
cf4c2d3d52 fix regression: float moved/resized windows
This is a regression caused by `Tile` refactoring.

The tiles should retain its geometry after moved/resized with mouse.
2018-12-12 13:16:43 +09:00
Eon S. Jeon
61e00f0147 assign QRect to geometry of floating tiles
The same reason as commit 87d9683.
2018-12-12 13:07:07 +09:00
Eon S. Jeon
87d96833b8 assign QRect to client.geometry
Instead of updating fields of `client.geometry` one by one, assign a
whole new `QRect` instance. This prevents race condition caused by a
series of partial updates.

Addresses bug #13.
2018-12-12 08:33:39 +09:00
Eon S. Jeon
0c36785851 implement jiggleTiles option
- jiggles tiles when desktop is switched.
 - a workaround for bug #12, where clients ocasionally fail to re-render.
 - this feature is a brutal hack, thus is disabled by default.
2018-12-09 19:07:12 +09:00
Eon S. Jeon
db66747ea3 separate Qt definition file 2018-12-09 18:07:08 +09:00
Eon S. Jeon
a61ca5437e add/remove debug messages 2018-12-09 15:41:45 +09:00
Eon S. Jeon
a460006d0b fix window class rule regression bug 2018-12-09 13:29:50 +09:00
Eon S. Jeon
00c0891813 refactor Tile 2018-12-09 13:16:28 +09:00
Eon S. Jeon
77ed39b327 parametrized Engine::setMaster 2018-12-08 23:34:15 +09:00
Eon S. Jeon
97f3226565 update README (Set Master, Window to Screen) 2018-12-08 10:25:47 +09:00
Eon S. Jeon
e8ef825d7e support moving windows b/w screens
- correctly handle related KWin features:
   * `Window to Next Screen`
   * `Window to Previous Screen`
2018-12-08 10:05:35 +09:00
Eon S. Jeon
ab6ddf7f3b Config in a separate file 2018-12-08 02:45:40 +09:00
Eon S. Jeon
687943f10c split layout.ts 2018-12-08 01:46:38 +09:00
Eon S. Jeon
a82f86fdc2 automatically compile all TS files 2018-12-08 01:44:28 +09:00
Eon S. Jeon
6b40e423f1 code cleanup
- remove expired TODOs
 - sorting and grouping parts
 - simplify geometry value assignment
2018-12-08 01:10:55 +09:00
Eon S. Jeon
9a987e1447 add keybindings for existing layouts
- implements the feature suggested by user (#5)
2018-12-07 16:52:00 +09:00
Eon S. Jeon
168e75c656 optional data parameter for user input handling 2018-12-07 16:51:21 +09:00
Eon S. Jeon
a164d8c102 add option "Remove borders of tiled windows"
- sets `noBorder` for tileables
 - adds user option `noTileBorder`
 - implements a feature suggested by user in #8
2018-12-07 12:16:50 +09:00