Commit Graph

87 Commits

Author SHA1 Message Date
Kevin Lange
278059d6a2 Use timers for animations (compositor, desktop)
Yutani, glogin, and wallpaper now use timing information from the kernel
to perform animations. Some animation lengths have been adjusted. The
animations should run at the same speed, though with varying
"smoothness" across different hardware (including non-KVM emulators).
2015-04-14 23:09:54 -07:00
Kevin Lange
e95cbda703 Merge pull request #83 from lioncash/leaks
compositor: get rid of a leak in window_actually_close
2015-04-10 17:02:55 -07:00
Lioncash
99c907bf95 compositor: get rid of a leak in window_actually_close
The function call allocates on the heap, so this would cause a leak.
2015-04-10 19:21:28 -04:00
Kevin Lange
a243bb2849 Mouse warping and hiding (for games) 2015-04-05 15:41:00 -07:00
Kevin Lange
9065454a75 Yutani now sends WINDOW_MOVE when windows move.
Window moves are non-lazy, so continuous updates are received while a
window is being dragged. Prior to this change, a client would not have
any idea where a window was outside of its own idea of when it last
requested a move (which may have been denied, or immediately overriden).
This allows applications to produce child windows in appropriate
locations, or to drag child windows (undocked toolbars, etc.) while they
are being moved.

This uses the same message format as the request format, as well as the
same message type, as has been previously done for various events.
2015-04-04 21:29:29 -07:00
Kevin Lange
a7b1397c7d Fix debug output from yutani-server listed as 'yutani' 2015-04-03 09:59:19 -07:00
Kevin Lange
5d90fa8c24 Restore screenshot functionality to compositor (ctrl+super+s/w) 2014-08-05 17:32:29 -07:00
Kevin Lange
62de55b5f4 Cleanup and function header comments in compositor. 2014-07-28 21:10:34 -07:00
Kevin Lange
ef7d72c1e1 License headers and a tool to generate them 2014-06-07 23:13:29 -07:00
Kevin Lange
f019dc7b7a Ditch zlists and selectbuffers for better methods 2014-06-01 13:09:58 -07:00
Kevin Lange
067797031f Fix window shape blurring during transforms 2014-06-01 02:12:00 -07:00
Kevin Lange
226002057f Slightly different debug method for shapes and bounds 2014-05-31 21:54:52 -07:00
Kevin Lange
cc7bb71b06 (Optionally, manually updated) alpha-based window shapes 2014-05-31 21:37:07 -07:00
Kevin Lange
84420f9e5c Support closing packetfs connections 2014-05-28 19:21:56 -07:00
Kevin Lange
45cfecc043 Present the nested compositor at 50,50 instead of 0,0 2014-05-26 12:57:39 -07:00
Kevin Lange
ab2a9f056f Quick and dirty display server nesting - lots of mouse event changes 2014-05-26 12:43:22 -07:00
Kevin Lange
ce0dacb912 Use spinlock.h instead of continually definign this as static in a bunch of apps 2014-05-18 19:34:49 -07:00
Kevin Lange
a1e8a40b22 More gridding options 2014-05-18 18:08:34 -07:00
Kevin Lange
6e028b6550 left-right tiling 2014-05-18 12:15:18 -07:00
Kevin Lange
3cb7b18c60 Client-initiated window drag 2014-05-18 11:54:20 -07:00
Kevin Lange
c042d04fc0 remove extraneous debug output 2014-05-09 23:04:30 -07:00
Kevin Lange
0061105b29 Make the alt-tab slick and operate as expected 2014-05-09 23:03:47 -07:00
Kevin Lange
d3273d934a Simple key binding system, plus alt-tab and ctrl-alt-t 2014-05-09 22:01:24 -07:00
Kevin Lange
0947432963 Actually make an effort to release textures from closed windows 2014-05-03 15:41:16 -07:00
Kevin Lange
a4b70a6cda Rudimentary fullscreen shortcut 2014-05-03 15:36:09 -07:00
Kevin Lange
d55c5953e1 Handle focused windows properly 2014-05-03 12:22:16 -07:00
Kevin Lange
2070d255e2 New window advertisement format 2014-05-03 12:07:03 -07:00
Kevin Lange
4d8335ad75 Implement proper wait/waitpid.
This is a pretty big commit, so let's run through it in parts:

- All of the userspace changes are to switch away from syscall_wait
  Mostly, this is to waitpid; some things were tweaked to do things
  "properly" instead of waiting for particular processes. Init has
  been fixed to do a proper spin wait.
- syscall_wait is gone - as are its uses. newlib bindings have been
  using just waitpid for a while now.
- waitpid now performs like a Unix waitpid
- process reaping is no longer a "do this on next change thing":
  it happens when a process is waited on, like it should
  (That means we can have real zombies: terminated processes that
  have not yet been waited on)
- Reparenting of children to init has been implemented, so you
  can fork-daemonize!

Overall, this is pretty big... So I hope it doesn't break everything.
2014-04-27 01:37:33 -07:00
Kevin Lange
deeb1c42a5 fix bad operation ordering for window allocation 2014-04-20 13:47:59 -07:00
Kevin Lange
3241d36e6d Mouse enter/leave/move for non-focused window 2014-04-20 13:44:17 -07:00
Kevin Lange
d967fae3a5 Track down the root of that malloc problem 2014-04-20 13:19:52 -07:00
Kevin Lange
30a79e8ac6 Change focus from panel 2014-04-20 01:24:10 -07:00
Kevin Lange
6300959b12 Ensure thread safety during window buffer things 2014-04-19 19:11:10 -07:00
Kevin Lange
40124cac49 various minor pieces of cleanup 2014-04-19 18:37:37 -07:00
Kevin Lange
77b830ace5 Regular mouse movement events
Demonstrated in the wallpaper with hover states for the icons
2014-04-19 17:44:20 -07:00
Kevin Lange
48e0ddd99e Rudimentary animation system
This is actually the same as the animation system from the old
compositor, but with some added bits for damage rects.
2014-04-19 16:59:32 -07:00
Kevin Lange
3591981f58 should mark windows win they request to be moved 2014-04-18 19:45:55 -07:00
Kevin Lange
9264a203dd Quick and dirty session ending support with a broadcast event 2014-04-18 19:23:45 -07:00
Kevin Lange
700e711606 Start on panel functionality: Window title advertisement 2014-04-18 00:18:19 -07:00
Kevin Lange
0535ccd993 mouse-initiated window resizes 2014-04-17 00:24:54 -07:00
Kevin Lange
b3410b4b4b Basic resize support (client-initiated) 2014-04-16 23:50:57 -07:00
Kevin Lange
7827244d64 Add a subregion damage command 2014-04-16 00:00:52 -07:00
Kevin Lange
2cd36c2edf unbreak ^C and make window rotation use the right bindings 2014-04-15 23:26:27 -07:00
Kevin Lange
b8551d2174 Kill the old compositor 2014-04-15 19:45:56 -07:00
Kevin Lange
f4c6ef10ad Basic mouse events to windows 2014-04-14 23:24:44 -07:00
Kevin Lange
e39c08965e Bring back rotation 2014-04-14 22:42:40 -07:00
Kevin Lange
00ecfff45f make kbd library reentrant 2014-04-14 21:03:23 -07:00
Kevin Lange
17f176c888 Basic window movement in Yutani 2014-04-13 21:52:16 -07:00
Kevin Lange
6db3fe2ec2 Focus change events 2014-04-13 18:28:42 -07:00
Kevin Lange
f0ca89685b Support window focus change 2014-04-13 17:58:19 -07:00