Andreas Kling
575acfac98
WindowServer: Add a separator before "close" in window menus.
2019-06-30 15:59:11 +02:00
VAN BOSSUYT Nicolas
802d4dcb6b
Meta: Removed all gitignore in the source tree only keeping the root one
2019-06-30 10:41:26 +02:00
Andreas Kling
315716d193
GUI: Use Win2K-like "warm gray" color instead of the older colder gray.
...
Someone suggested this a long time ago and I never got around to it.
So here we go, here's the warm gray! I have to admit I like it better. :^)
2019-06-30 09:23:16 +02:00
Andreas Kling
14b51253c0
WindowServer: Allow changing window opacity with Logo+MouseWheel.
...
This is just a silly little feature that I thought was a bit neat. :^)
2019-06-29 09:27:55 +02:00
Andreas Kling
2bd8118843
Kernel: Change the format of /proc/all to JSON.
...
Update ProcessManager, top and WSCPUMonitor to handle the new format.
Since the kernel is not allowed to use floating-point math, we now compile
the JSON classes in AK without JsonValue::Type::Double support.
To accomodate large unsigned ints, I added a JsonValue::Type::UnsignedInt.
2019-06-29 09:04:45 +02:00
Andreas Kling
872cccb8f7
WindowServer: Make use of the new Vector(initializer_list).
2019-06-28 20:21:28 +02:00
Andreas Kling
0deade2883
WindowServer: Fix compiler warnings.
2019-06-22 14:49:01 +02:00
Andreas Kling
550b0b062b
AK: Rename RetainPtr.h => RefPtr.h, Retained.h => NonnullRefPtr.h.
2019-06-21 18:45:59 +02:00
Andreas Kling
c26e3ce86b
Change "retain" to "ref" in various comments.
2019-06-21 18:40:24 +02:00
Andreas Kling
90b1354688
AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr.
2019-06-21 18:37:47 +02:00
Andreas Kling
77b9fa89dd
AK: Rename Retainable => RefCounted.
...
(And various related renames that go along with it.)
2019-06-21 15:30:03 +02:00
Andreas Kling
ef1bfcb9d8
WindowServer: Move some event code from WSWindowManager to WSMenuBarKeeper.
2019-06-21 15:02:11 +02:00
Andreas Kling
ede598589a
WindowServer: Make most of WSMenuBarKeeper private.
...
The outside world doesn't need to know about all this stuff.
2019-06-21 11:12:45 +02:00
Andreas Kling
2e9cc75d11
WindowServer+Taskbar: Let WindowServer manage the "window menus".
...
Taskbar now simply asks the WindowServer to popup a window menu when right
clicking on a taskbar button.
This patch also implements the "close" menu item, and furthermore makes the
window menu show up when you left-click a window's titlebar icon. :^)
2019-06-21 11:03:43 +02:00
Andreas Kling
9ac17c7bc9
WindowServer: Render the global menubar into a separate WSWindow.
...
Previously we were rendering the whole menubar on every compose(),
even if nothing changed about it. Now it's in its own window and can
be invalidated and painted separately.
2019-06-21 08:19:43 +02:00
Andreas Kling
4080221547
WindowServer: Remove unused WSWindowManager::m_windows hash table.
2019-06-18 14:40:18 +02:00
Robin Burchell
c52d553249
WindowServer: Add a shutdown option to the menu, rather than forcing terminal use
2019-06-16 12:25:30 +02:00
Andreas Kling
39d1a9ae66
Meta: Tweak .clang-format to not wrap braces after enums.
2019-06-07 17:13:23 +02:00
Andreas Kling
8358833bc8
WindowServer: Run clang-format on everything.
2019-06-07 11:47:19 +02:00
Christopher Dumas
908d9458c7
WindowServer: New API for Scaled Blit
2019-06-06 18:35:00 +02:00
Christopher Dumas
90d924a97c
WindowServer: Implement scaled backgrounds and scaled blitting function
2019-06-06 18:35:00 +02:00
Christopher Dumas
c72953cf06
WindowServer: Clang-Format
2019-06-06 18:35:00 +02:00
Andreas Kling
3fa0b6cd92
WindowServer: Always update the maximize button icon when we should.
...
We were only updating it in the WSButton callback, not when changing the
maximized state by calling WSWindow::set_maximized().
Fixes #119 .
2019-06-02 15:35:00 +02:00
Andreas Kling
51581c21fc
WindowServer+LibGUI: Add a way to bring a window to the front.
...
GWindow::move_to_front() can now be used to move a window to the top of
the window stack.
We use this in Terminal to bring the settings window to the front if it
already exists when it's requested, in case it's hiding behind something.
2019-06-01 20:10:37 +02:00
Andreas Kling
8d7fbbe1fb
WindowServer: Don't reach the end of mode_to_enum() without returning.
2019-06-01 20:02:05 +02:00
Robin Burchell
0dc9af5f7e
Add clang-format file
...
Also run it across the whole tree to get everything using the One True Style.
We don't yet run this in an automated fashion as it's a little slow, but
there is a snippet to do so in makeall.sh.
2019-05-28 17:31:20 +02:00
Christopher Dumas
3e26faa226
removed extra impl of scaling
2019-05-27 21:40:53 +02:00
Christopher Dumas
da9c70598f
centered backgrounds are now an option
2019-05-27 21:40:53 +02:00
Christopher Dumas
c23882dde1
can now tile background and made sure the IRC choose server popup still works
2019-05-27 21:40:53 +02:00
Christopher Dumas
e3f81bce49
IRC client setttings, Terminal settings, more WM settings
2019-05-27 21:40:53 +02:00
Christopher Dumas
63486b8438
implemented settings for window manager.
2019-05-27 21:40:53 +02:00
Christopher Dumas
d4a16d6031
Network stack is now configurable, and resolution is also configurable, but loading cursors causes a page-fault?
2019-05-27 21:40:53 +02:00
Robin Burchell
9b86eb9fad
WSCompositor: Allow a compose to bypass the timer when it first happens
...
d66fa60fcf introduced the use of a timer
to coalesce screen updates. This is OK, but it does introduce update
latency.
To help mitigate the impact of this, we now have a second (immediate)
timer. When a compose pass is first triggered, the immediate timer will
allow the compose to happen on the next spin of the event loop (so, only
coalescing updates across a single event loop pass). Any updates that
trigger while the delayed timer is running, though, will be delayed to
that (~60fps) timer.
This fixes #103 .
2019-05-26 18:22:33 +02:00
Robin Burchell
d66fa60fcf
WSCompositor: Use a timer to schedule compose rather than an event
...
Really poor man's vsync. Still not actual vsync, but at least we won't
constantly spin buffers if we get many dirty rects.
2019-05-26 04:10:05 +02:00
Robin Burchell
79dba9a545
WSEventLoop: Don't assert when being told to construct a crazy window type
...
Seriously non-cool :(
2019-05-26 03:41:53 +02:00
Andreas Kling
41ebb3eba3
WindowServer: Tweak window titlebar look somewhat.
...
Add a subtle shadow to the titlebar text. Also make the titlebar one pixel
taller to fully accomodate the 90s "3D frame" effect. :^)
2019-05-25 21:55:53 +02:00
Andreas Kling
34150f0836
WindowServer: Remove unused old "middle border" color.
2019-05-25 21:19:42 +02:00
Andreas Kling
e478a2fb0a
WindowServer: Don't draw titlebar separator for titlebar-less windows.
2019-05-25 04:17:21 +02:00
Christopher Dumas
957f8b84f2
WindowServer: Make it possible to turn off window title bars ( #88 )
...
Also, Launcher now does not use titlebars.
Only check if titlebar should be shown if the window type works with that.
2019-05-24 23:37:23 +02:00
Andreas Kling
d0bc21b96f
WindowServer: Remove some unused WSWindowManager members.
2019-05-24 21:11:55 +02:00
Christopher Dumas
dd84dcf31f
Launcher loads applications from Launcher.ini, is started by default, and is resized automatically
...
Co-Authored-By: Andreas Kling <awesomekling@gmail.com >
2019-05-24 20:40:09 +02:00
Andreas Kling
ad908f1395
WindowServer: Factor out compositing from WSWindowManager into WSCompositor.
...
This is far from finished and the two classes are awkwardly grabbing at each
other's innards, but here's a first step in the right direction.
2019-05-24 19:32:46 +02:00
Andreas Kling
abbcdba72e
WindowServer: Add 2560x1440 resolution option.
...
Also expand the QEMU VGA memory size to 64 MB, since otherwise we won't
have enough memory for double-buffering the screen.
2019-05-24 14:02:17 +02:00
Robin Burchell
9aa9454c6b
WindowServer: Don't eat a MouseUp when producing a MouseDoubleClick
...
Otherwise, double clicking a button will leave it in pressed state.
2019-05-21 16:43:56 +02:00
Andreas Kling
9df8d28542
WindowServer: Don't start window resize for MouseUp or MouseMove.
2019-05-20 11:06:10 +02:00
Andreas Kling
d65114afd7
WindowServer: Convert some assertions into client did_misbehave()'s.
2019-05-20 04:29:07 +02:00
Andreas Kling
091448b8f3
WindowServer: Use blocking sockets for client connections.
2019-05-20 04:08:09 +02:00
Andreas Kling
0b850cf726
WindowServer: Allow sending up to 32 invalidation rects inline.
...
Oops, it looks like I left the max inline rects limit at 1 while debugging
this code.. We can fit 32 rects in a single WSAPI message without needing
a second "extra data" message, so let's use the space we have!
2019-05-20 03:18:43 +02:00
Robin Burchell
a8864dc590
Kernel: Report EAGAIN from read() on a non-blocking socket if the buffer is empty
...
This is not EOF, and never should have been so -- can trip up other code
when porting.
Also updates LibGUI and WindowServer which both relied on the old
behaviour (and didn't work without changes). There may be others, but I
didn't run into them with a quick inspection.
2019-05-20 01:31:28 +02:00
Robin Burchell
5f597d0cb2
WindowServer: Improve client write handling a little
...
* EPIPE now correctly deletes the client connection
* EAGAIN (which is now returned by the kernel if the write buffer fills)
terminates the connection also
2019-05-19 14:13:49 +02:00