Andreas Kling
a78bc5e6fc
LibGUI: Generate NotificationServer IPC messages during build
...
I hacked this to skip using flock since NotificationServer and LibGUI
depend on each other. There's probably a better solution.
2020-02-16 22:37:04 +01:00
Andreas Kling
30549502ca
LibGUI: Generate NotificationServerEndpoint.h if needed
2020-02-16 22:28:48 +01:00
Andreas Kling
9f54ea9bcd
NotificationServer: Add a system service for desktop notifications
...
This patch adds NotificationServer, which runs as the "notify" user
and provides an IPC API for desktop notifications.
LibGUI gains the GUI::Notification class for showing notifications.
NotificationServer is spawned on demand and will unspawn after
dimissing all visible notifications. :^)
Finally, this also comes with a small /bin/notify utility.
2020-02-16 21:58:17 +01:00
Andreas Kling
a6e69bda71
AK: Add basic Traits for RefPtr
...
This allows RefPtr to be stored in a HashTable<RefPtr<T>> :^)
It's unfortunate about the const_casts. We'll need to fix HashMap::get
to play nice with non-const Traits<T>::PeekType at some point.
2020-02-16 21:58:17 +01:00
Tibor Nagy
c7f549ba19
LibGUI: Add mouse wheel event and step property to Slider
2020-02-16 21:58:01 +01:00
Andreas Kling
69bb0c0246
malloc: Use 64KB blocks (instead of 4KB)
...
We now allocate 64KB at a time and divide them into chunks for handing
out to malloc() callers. This significantly reduces the number of
system calls made due to memory allocation.
This yields a ~15% speedup when compiling Process.cpp inside SerenityOS
(down from 24 sec to 20 sec on my machine.)
There's more performance on the table here, no doubt.
2020-02-16 14:11:14 +01:00
Andreas Kling
31e1af732f
Kernel+LibC: Allow sys$mmap() callers to specify address alignment
...
This is exposed via the non-standard serenity_mmap() call in userspace.
2020-02-16 12:55:56 +01:00
Andreas Kling
14bd978928
Revert "LibC: Implement isblank()"
...
This reverts commit 4e79a60b78
.
This broke the GCC port. Apparently isblank() was added in C99 and for
some reason it needs special treatment in headers.
2020-02-16 10:47:54 +01:00
Andreas Kling
fe343a0497
LibGUI: ItemView painting was not respecting the frame thickness
...
Fixes #1112 .
2020-02-16 09:50:38 +01:00
Andreas Kling
2143da6434
LibGUI: Add forwarding header
...
This patch adds <LibGUI/Forward.h> and uses it a bunch.
It also dragged various header dependency reduction changes into it.
2020-02-16 09:41:56 +01:00
Andreas Kling
2e6ab58117
LibGfx: Reduce header dependencies of StylePainter
2020-02-16 09:41:56 +01:00
Tibor Nagy
9041e95e79
LibGUI: Render ScrollBar buttons as pressed when they are being pressed
2020-02-16 09:41:40 +01:00
Tibor Nagy
fc24b2b57d
LibGUI: Make ResizeCorner theme-aware
2020-02-16 08:01:20 +01:00
Shannon Booth
42399167b3
LibCore: Add DirIterator::next_full_path()
2020-02-16 02:19:22 +01:00
Andreas Kling
a356e48150
Kernel: Move all code into the Kernel namespace
2020-02-16 01:27:42 +01:00
Tibor Nagy
7ec1b2e44b
LibGUI: Unfocused TextEditors should use inactive selection colors
2020-02-15 18:42:13 +01:00
Tibor Nagy
4d95163400
LibGUI: Use inactive selection colors from palette instead of hardcoding them
2020-02-15 18:42:13 +01:00
Tibor Nagy
99192fd29f
LibGfx: Add inactive selection colors
2020-02-15 18:42:13 +01:00
Andreas Kling
d5e167e725
LibBareMetal: Install headers so ports can pick them up
2020-02-15 13:31:41 +01:00
Andreas Kling
a4d857e3c5
LibIPC+IPCCompiler: Add IPC::Decoder, let classes decode themselves
...
This shaves ~5 seconds off of a full build, not too bad. Also it just
seems nicer to push this logic out to classes. It could be better but
it's a start. :^)
2020-02-15 12:11:19 +01:00
Andreas Kling
2ae9a56c3f
LibIPC: Move IPC::Encoder functions out of line
...
Compiling anything that includes generated IPC messages is painfully
slow at the moment. This moves the encoding helpers out of line, which
helps a bit. Doing the same for decoding will help more.
2020-02-15 12:10:48 +01:00
Andreas Kling
ef01af1cb2
LibIPC+IPCCompiler: Remove some unused members from generated messages
2020-02-15 12:10:48 +01:00
Shannon Booth
6764b77788
LibCore: Add SkipParentAndBaseDir flag in DirIterator
...
Sometimes we may want to iterate over dotfiles but not include the
parent or base directory
2020-02-15 11:40:05 +01:00
Shannon Booth
3879d75219
LibCore: Simplify some of DirIterator's code
...
The main changes are in advance_next() where we flatten some of the
nesting to improve readability
2020-02-15 11:40:05 +01:00
Andreas Kling
0e3a9d8e9d
LibCore: Reduce header dependencies of EventLoop
2020-02-15 02:09:00 +01:00
Andreas Kling
b011ea9962
LibGUI: Reduce menu-related header dependencies
2020-02-15 01:56:30 +01:00
Andreas Kling
9e83bbe1cd
LibGUI: Reduce header dependencies of GUI::Action
2020-02-15 01:34:00 +01:00
Andreas Kling
10ccc9e11c
LibGUI: Don't leak every tooltip window ever :^)
2020-02-15 01:27:37 +01:00
Andreas Kling
dcb0766d3f
LibGUI: Remove some header dependencies from Application.h
2020-02-15 01:18:32 +01:00
Andreas Kling
93e9c2732b
LibGfx: Remove unused Bitmap::load_from_file() for loading raw RGBA
...
This was not used anywhere but added unnecessary members to Bitmap.
2020-02-15 01:06:32 +01:00
Andreas Kling
9c0c677d57
LibGfx: Reduce header dependencies of Bitmap and Font
2020-02-15 01:03:37 +01:00
Andreas Kling
34b5ff7c29
LibGfx: Move a bunch of LogStream::operator<< to cpp files
2020-02-15 00:58:54 +01:00
Andreas Kling
3866e0d4d4
LibCore: Move LogStream::operator<< overloads into cpp files
2020-02-15 00:58:52 +01:00
Andreas Kling
2a41bff329
LibCore: Remove a bunch of unnecessary forward declarations
...
Now that we get LibCore forward declarations from <LibCore/Forward.h>,
we don't need to declare things manually.
2020-02-15 00:32:33 +01:00
Andreas Kling
66903ad987
LibGfx: Remove Utf8View.h dependency from Font.h
2020-02-15 00:27:50 +01:00
Andreas Kling
e1ff4fa034
LibGUI: Remove more header dependencies from Widget.h
2020-02-15 00:24:14 +01:00
Andreas Kling
69400c2ca1
LibCore: Replace manual forward declarations with <LibCore/Forward.h>
2020-02-15 00:13:44 +01:00
Andreas Kling
6a3cd11a80
AK: Remove manual forward declarations with <AK/Forward.h>
2020-02-15 00:12:31 +01:00
Andreas Kling
a368cf7d51
LibGfx: Replace manual forward declarations with <LibGfx/Forward.h>
2020-02-15 00:10:34 +01:00
Andreas Kling
34c7322d77
LibGUI: Remove some header dependencies from Widget.h
2020-02-14 23:53:11 +01:00
Andreas Kling
08cae2773d
LibGfx: More work on header dependency reduction
2020-02-14 23:33:21 +01:00
Andreas Kling
3fe2640c8c
LibGfx: Add forward declaration header
...
This patch adds <LibGfx/Forward.h> with forward declarations for Gfx.
2020-02-14 23:31:18 +01:00
Andreas Kling
8f7333f080
LibCore: Add a forward declaration header
...
This patch adds <LibCore/Forward.h> and uses it in various places to
shrink the header dependency graph.
2020-02-14 23:31:18 +01:00
Andreas Kling
3bbf4610d2
AK: Add a forward declaration header
...
You can now #include <AK/Forward.h> to get most of the AK types as
forward declarations.
Header dependency explosion is one of the main contributors to compile
times at the moment, so this is a step towards smaller include graphs.
2020-02-14 23:31:18 +01:00
Andreas Kling
5884ef8425
LibGUI: Add missing Event.cpp file
2020-02-14 17:35:04 +01:00
Andreas Kling
814d59f462
LibGUI: Port the drag&drop code to Core::MimeData
2020-02-14 13:18:59 +01:00
Andreas Kling
3cba9c3c25
LibCore: Add Core::MimeData class
...
This object contains zero or more { mime_type, data } entries and will
be used for clipboard data as well as drag & drop.
2020-02-14 13:17:26 +01:00
Andreas Kling
2c14e46b96
LibGUI: Indicate ItemView drag acceptance with a little rectangle
...
If an index accepts a drag, we now draw a little rectangle around it
when the drag moves over it.
2020-02-13 21:50:50 +01:00
Andreas Kling
f0ae353c9e
LibGUI: Allow dropping drags on AbstractView
...
You can now drop things on an AbstractView, which will ask its model if
the drag is acceptable to drop at the index where it's dropped.
If it's accepted by the model, the view will fire the on_drop hook.
2020-02-13 21:49:14 +01:00
Andreas Kling
8b3864c70a
LibGUI: Have FileSystemModel accept url-list drags onto directories
2020-02-13 21:48:32 +01:00