420 Commits

Author SHA1 Message Date
Stivvo
107b201812 Merge remote-tracking branch 'dj/main' into basic_damage_tracking 2021-04-03 19:33:53 +02:00
Stivvo
18c12c1f11 Fix subsurface commit crash + avoid needles check
Always start listening for commit events in mapnotify. This allows to
avoid checking c->mon each commit and fixes the crash opening
applications who commit subsurfaces before mapping them
2021-04-03 19:31:31 +02:00
Devin J. Pohly
3c83e0cfb8 don't move/resize if already moving/resizing
Fixes #102.  The "ideal" behavior might be to ignore buttons other than
the one being used for the action, but this is super-simple and still
seems reasonable.
2021-03-30 13:56:04 -05:00
Stivvo
38ba6d2277 Fullscreen: simplifications and fixes
Merges #69.
2021-03-25 10:05:12 -05:00
Devin J. Pohly
c2b53c2d8d
Merge pull request #91 from drdonahue/wip-tag-status-interface
Interface to display tag information on status bar
2021-03-25 09:58:17 -05:00
Miles Breslin
7996bfa7cc Add XWayland damage tracking 2021-03-18 19:10:05 -07:00
Stivvo
9585a0dba4 Merge remote-tracking branch 'origin/wlroots-next' into basic_damage_tracking 2021-03-16 10:25:47 +01:00
Stivvo
59bbf9f87f Fix crash closing applications
wlr_output_damage_add_whole() has no effect in mapnotifu_sub,
destroynotify_sub and caused crashes when closing applications which use
subsurfaces

Keep track of subsurfaces in a list so that it is possible to remove and
free them.
2021-03-15 22:03:51 +01:00
Stivvo
e8c5838a2e Fix stuttering moving clients across monitors
Memorize a pointer to the parent in each subsurface.
This way, when that clients is moved to another monitor, that monitor
will be damaged instead.
2021-03-15 10:09:13 +01:00
Stivvo
64b5c4c9f9 Fix windows not showing up switching between tags
When switching from an empty tag to a tag with clients the screen wasn't
updating. This is easily fixed damaging the screen directly in
arrange()
2021-03-15 01:07:34 +01:00
Stivvo
914bb4c886 Track subsurfaces damages
This prevents applications such as firefox from freezing when nothing
else is going on. Those applications use subsurfaces (for efficiency
reasons), which we were not keeping track of before.

Applications who use subsurfaces were working fine as long as other
applications were updating or the user was simply moving the mouse (and
thus damaging the whole screen anyway).

I'm not sure if listening to map and unmap events of subsurfaces is
necessary.

Most of this was inspired by sway.
2021-03-15 00:01:17 +01:00
Stivvo
b267258251 Merge remote-tracking branch 'miles/basic_damage_tracking' into basic_damage_tracking 2021-03-14 23:20:19 +01:00
David Donahue
ecc60878b3 changed fprintf(stdout) instances to printf(), changed function name from statusbar to printstatus 2021-03-13 11:20:33 -06:00
Devin J. Pohly
43b6e804cf Revert "remove sigchld function"
This reverts commit 1fa72b07728ebb396a9f236921b81c369bb12ccb.
Fixes #97.
2021-03-13 10:42:42 -06:00
Devin J. Pohly
fba820d5f6 Merge branch 'main' into wlroots-next 2021-03-10 09:53:09 -06:00
Devin J. Pohly
1fa72b0772 remove sigchld function
Explicitly setting the handler for SIGCHLD to SIG_IGN tells the OS to
reap zombie processes automatically, which is what we wanted anyway.
2021-03-10 09:50:09 -06:00
David Donahue
7cee5060bc added redirect from stdout to stderr for spawned processes to prevent conflicts with the statusbar outputs 2021-03-06 12:20:56 -06:00
David Donahue
5b51bb82e2 Fixed tab formatting in 6 locations where statusbar() is called 2021-03-01 14:38:00 -06:00
David Donahue
f5e7caac00 Changed output to stdout instead of a file 2021-03-01 13:49:29 -06:00
David Donahue
593b7eec3c updated output format for better expansibility and easier parsing 2021-03-01 13:19:25 -06:00
Devin J. Pohly
8616d947b7 make rendermon more straightforward
Prior to damage tracking, we had to make sure wlr_output_commit was
called even if we weren't rendering anything new.  If we didn't, then
nothing would render after attempting the first window resize.  This is
no longer a problem (maybe because adding damage schedules another frame
callback?), so we can do some normal early-returns here.
2021-02-25 16:56:25 -08:00
Devin J. Pohly
38fe384783 stick to dwm style 2021-02-25 16:56:25 -08:00
Devin J. Pohly
5f260a3d36 Revert "Simpler damage implementation"
This reverts commit 59b05a9cd81f124aaf726d00c0b00e8465486018.  It was
worth seeing how well this would work.
2021-02-25 16:56:19 -08:00
Miles Breslin
e17445bb43 Simpler damage implementation 2021-02-25 16:55:13 -08:00
Miles Breslin
1e3a66478d Damage Tracking: Reduce unnecessary code 2021-02-25 16:54:03 -08:00
Miles Breslin
98f1c3f3d8 Damage the screen for new and removed clients as well 2021-02-25 16:54:03 -08:00
Miles Breslin
774a6e7f8c Basic damage tracking 2021-02-25 16:54:00 -08:00
Devin J. Pohly
c1eb2b49cd Revert "Revert "remove EGL parameter from backend_autocreate""
This reverts commit 8ed88822ca4448b06c2d7e6155d8022152b78017.
2021-02-16 13:13:49 -06:00
Devin J. Pohly
e8192b4fc9 Revert "Revert "fix undeclared WLR_KEY_PRESSED""
This reverts commit a11f2bbc7a4068321767bd7e8c7eee1aee278bc9.
2021-02-16 13:13:48 -06:00
Devin J. Pohly
a11f2bbc7a Revert "fix undeclared WLR_KEY_PRESSED"
This reverts commit 67896e9d8b98f679faf4456e26e82057c1884789.
2021-02-16 13:09:00 -06:00
Devin J. Pohly
8ed88822ca Revert "remove EGL parameter from backend_autocreate"
This reverts commit 0ff13cf216056a36a261f4eed53c6a864989a9fb.
2021-02-16 13:08:58 -06:00
Devin J. Pohly
3e82fad9c4 fix style on space-indented function 2021-02-14 12:43:10 -06:00
David Donahue
a1e24075d8 Removed unused variable from statusbar 2021-02-08 18:12:24 -06:00
David Donahue
27598bd04a added statusbar update when tags are updated 2021-02-07 01:03:04 -06:00
David Donahue
3868217466 Added interface to output information about tags, the currently selected monitor, and the focused client to a file for use by a status bar 2021-02-07 00:31:01 -06:00
Devin J. Pohly
9c1943ade5 add some explanation of output reconfiguration
Hopefully this will help "future us" understand what's going on.
2021-01-18 15:51:32 -06:00
Devin J. Pohly
a9e1cd4201 remove hacky code from output-management handler
This functionality belongs in updatemons(), where it can hopefully be
written a bit more elegantly.
2021-01-18 15:38:25 -06:00
Devin J. Pohly
ab03282295 commit entire output config, or fail and rollback
The wlr-output-management protocol requires that either all of the
changes from an apply request be applied successfully, in which case a
"succeeded" event is sent, or all of the changes are reverted and a
"failed" event is sent.  As written, this could partially commit
changes, then fail.

Test the changes first (even for an "apply" event), then commit or
rollback as appropriate.
2021-01-18 15:02:15 -06:00
Devin J. Pohly
5eefb51fea use updatemons as handler for output_layout.change
This should end up firing precisely when we need to adjust our geometry,
rather than us guessing about it based on requests.
2021-01-18 14:34:05 -06:00
Devin J. Pohly
c63d4c41ab unify increment style while we're here 2021-01-18 14:14:37 -06:00
Devin J. Pohly
81d35aaccf remove unnecessary variable 2021-01-18 14:12:38 -06:00
Devin J. Pohly
a5210f7d77 cleanup on aisle createmon() 2021-01-18 14:12:00 -06:00
Devin J. Pohly
264be4ebba
Merge pull request #80 from sam-barr/dwl_upstream
Fix Initialization of NetWM Atoms
2021-01-14 20:29:17 -06:00
sam-barr
3d696dfb7d Fix Initialization of NetWM Atoms
Additionally, variables xcursor and xcursor_mgr are only used
when xwayland is defined, so I make the variables declaration
contingent on whether xwayland is being used
2021-01-11 07:47:04 -05:00
Devin J. Pohly
6267593cc2 remove now-unneeded monitor position field 2021-01-06 17:23:35 -05:00
Devin J. Pohly
e8ca8a8ac7 use output layout for dirtomon
No need to track our own order; wlroots has a reasonable default for us
already.
2021-01-06 17:19:44 -05:00
Devin J. Pohly
4bf2923f4e
Merge pull request #72 from Stivvo/output-compile-set
Define monitor's x,y at compile time
2021-01-06 16:44:31 -05:00
Devin J. Pohly
0ff13cf216 remove EGL parameter from backend_autocreate
Tracking with breaking change in swaywm/wlroots#2593.
2021-01-04 13:55:24 -05:00
Stivvo
fa782896f8 Define monitor's x,y at compile time
Replaces the outputOrder patch.

This avoids recalculating positions and allows to arrange monitors in
any order, not just from left to right.

The order in which monitors are defined in config.h still matters but
it's just the order in the list, not the actual position.
2020-12-30 17:07:48 +01:00
Devin J. Pohly
33c36be2fc Revert "Allow toggling the layout before selecting a different one"
This reverts commit 90cc3b1e2c824db74e932dbb9733d398619a037c.  Didn't
mean to merge this change.
2020-12-28 15:51:04 -05:00