1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:38:12 +00:00
Commit graph

648 commits

Author SHA1 Message Date
Andreas Kling
a9f6f862e2 WindowServer: Fix typo (backgound_color => background_color) 2020-04-30 09:04:39 +02:00
Andreas Kling
7dadb75e28 WindowServer: Pop up the window menu at bottom left of window icon
When clicking the window icon, we now pop up the window menu at the
bottom left of the icon, no matter where you clicked it.

Right-clicking the title bar still pops up at the event position.
2020-04-29 12:07:40 +02:00
Andreas Kling
13dcd9a037 WindowServer: Fix build after FBResolution changes 2020-04-29 11:41:34 +02:00
Andres Vieira
8a417c311f WindowServer: Change the desktop background colour on theme change 2020-04-28 17:04:21 +02:00
Andres Vieira
19c744ab82 WindowManager: Allow compositor to have an empty bitmap as a wallpaper
This will make the compositor draw our colour wallpaper, instead
2020-04-28 15:22:22 +02:00
Linus Groh
421b6cd393 WebServer: Add optional positional port agument
This allows us to start WebServer on a port other than 8000, or multiple
instances of it at the same time :^)

Also print out what port was being used in the end.
2020-04-26 14:46:32 +02:00
Andreas Kling
9badcff1ba WindowServer: Don't allow activating disabled menu items with keyboard 2020-04-24 17:29:42 +02:00
Andreas Kling
e786444ffa WindowServer: Fix name typo in descend_into_submenu_at_hovered_item() 2020-04-24 17:26:16 +02:00
Andreas Kling
cbb3c7aade WindowServer: Skip over disabled menu items during keyboard navigation 2020-04-24 17:24:09 +02:00
Andreas Kling
a639172760 WindowServer: Don't allow resize-grabbing window underneath title bar 2020-04-23 19:27:33 +02:00
Andreas Kling
5eb4d0f832 WindowServer: Make vertical segment under title bar 1px thicker 2020-04-23 17:54:57 +02:00
Andreas Kling
81ebc0cfe3 WindowServer: Tweak window frame height 2020-04-23 15:36:00 +02:00
Andreas Kling
f0cac83243 WindowServer+LibGfx: Make window borders 1px thicker 2020-04-23 14:37:13 +02:00
Andreas Kling
5326eebb1b WindowServer+LibGUI: Notify DisplayLinks at 60 fps no matter what
The original implementation only sent out notifications when there was
something being drawn on screen. If nothing was going on, we'd get too
lazy and just not notify display links.

This obviously break requestAnimationFrame(), so now we just drive the
DisplayLinks at 60 fps no matter what. :^)
2020-04-22 00:07:48 +02:00
Andreas Kling
0fa7cf70b5 WindowServer+SystemMenu: Check the current system theme on startup 2020-04-21 18:40:52 +02:00
angel
1032ae0140 WindowServer: Allow the system menu to be open when a modal is shown 2020-04-21 16:54:34 +02:00
angel
b9be57a9cd WindowServer: Don't process menu bar events when modal is open
This prevents accesing the parent window menubar when a modal is
currently open, which was not a desired behavior.
2020-04-21 16:27:36 +02:00
angel
5250f4fb90 WindowServer: Don't ignore modal events when showing menus
PR #1495 fixes #1464 but only accounts for window menus. In File
Manager, for example, attempting to pop up the context menu on the file
name text box of the properties modal window, will result in the same
behavior.

Removing the code altogether solves the problem, altough I'm
not sure if it could have any bad implications.

I was thinking it might allow interaction with a parent window menu if
it remains open just before the popup window is shown, but I have not
seen a way to replicate this behavior.
2020-04-21 16:27:36 +02:00
angel
ae20775fb7
WindowServer: Unset active input window on active window change (#1901)
This was not done previously and resulted in modal windows not being
able to accept input unless they were clicked one time if their parent
windows were the active input window.
2020-04-21 15:46:27 +02:00
Andreas Kling
c5730ed6a3 WindowServer: Fix AppletManager build 2020-04-19 20:24:03 +02:00
Andreas Kling
3b434068eb WindowServer: Don't crash when encountering unsorted menu applets
Fixes #1862.
2020-04-19 19:40:04 +02:00
Andreas Kling
1b2d954d47 WindowServer: Remove debug spam in set_active_window() 2020-04-19 13:56:41 +02:00
Andreas Kling
453b678346 WindowServer: Don't automatically focus desktop window when added
Normally we focus any window that's added to the window stack. However,
for WindowType::Desktop this gets annoying since if the desktop manager
comes up after other GUI processes have already started, it steals the
focus from them.

Solve this by only auto-focusing desktop windows if they are the very
first window added.
2020-04-19 12:09:48 +02:00
Linus Groh
3474d7c88e WindowServer/LibGUI: Enforce minimum window size 2020-04-19 02:07:45 +02:00
Andreas Kling
0345fdcb77 WindowServer: Allow WindowType::Desktop windows to become active
This allows us to focus the desktop and interact with it normally. :^)
2020-04-18 22:15:59 +02:00
Andreas Kling
95805c0e56 WindowServer: Give the desktop window the whole exact desktop rect 2020-04-18 21:18:11 +02:00
Andreas Kling
3d31f2e44b WindowServer: Add WindowType::Desktop
This new window type can be used to implement a desktop file manager
for example. :^)
2020-04-18 21:10:16 +02:00
Brendan Coles
0a483cf677 ProtocolServer: did_finish_download: Do not create 0 byte shared buffer
`PSClientConnection::did_finish_download()` no longer tries to create
a zero byte shared buffer when `download.payload().data()` is zero
bytes in length.

Fixes #1821
2020-04-17 13:30:13 +02:00
Andreas Kling
bdc753ebd2 AudioServer: Use NumericLimits<T> 2020-04-15 16:58:46 +02:00
Brendan Coles
64536f19f0 WindowServer: MenuManager::handle_mouse_event() return if window is null
Previously the WindowServer would assert `topmost_menu->menu_window()`
and crash.

Fixes #1716
2020-04-09 20:00:23 +02:00
Andreas Kling
53f63058b9 WindowServer: Remove long-unused COMPOSITOR_DEBUG logging 2020-04-07 23:01:45 +02:00
Andreas Kling
a53cf81374 LibCore: Add Core::Timer::create_single_shot()
This is just a convenience function for creating single-shot timers.
2020-04-07 23:01:43 +02:00
Brendan Coles
6476f690fe WindowServer: Menu::popup() should return when the menu is empty
Previously the WindowServer would assert `!is_empty()` and crash.

Fixes #1689
2020-04-07 21:26:52 +02:00
AnotherTest
3ab6c5fd09 DHCPClient: Log errors and cleanup the code
Prior to this, we ran the DHCP client as a high-priority service, but
making the system feel laggy "for some network stuff" is not the
greatest of ideas :^)
2020-04-06 10:58:40 +02:00
AnotherTest
3e8cf79efa Servers: Add a new DHCP client
This adds a DHCPClient...Server that leases IPv4s.
2020-04-05 09:50:48 +02:00
Andreas Kling
fc5067afd2 ProtocolServer+LibProtocol: Reject unhandled URLs instead of asserting
StartDownload requests for unhandled protocols (or invalid URLs) will
now refuse to load instead of asserting. A failure code is sent back
to LibProtocol and Protocol::Client::start_download() returns nullptr.

Fixes #1604.
2020-04-04 20:01:36 +02:00
Andreas Kling
c56c8c8953 WindowServer: Remove applets from AppletManager on client disconnection
Disconnecting from WindowServer without explicit calls to DestroyWindow
would leave nulled-out WeakPtr's in the AppletManager applet list.

This led to a null dereference when adding a new applet, since we were
assuming the list contained no nulled-out applets.

This patch fixes the issue by always unregistering applet windows from
the AppletManager in ~ClientConnection(). We also do an extra pass of
pruning any nulled-out WeakPtrs from the applet list when adding to it.

Fixes #1551.
2020-03-31 13:55:28 +02:00
Andreas Kling
012a4eb0b5 WindowServer+NotificationServer: Vertical title bar for notifications
This patch adds a specialized window type for notifications. They now
have a title bar on the right-hand side, with a close button.

This removes the need for the "Done" button in notifications, giving us
a bit more horizontal space overall.

Design based on a mock-up from @xTibor :^)
2020-03-30 17:03:15 +02:00
Andreas Kling
8c5fa05c39 WindowServer: Use Gfx::ShareableBitmap for SetWindowIconBitmap 2020-03-29 19:37:23 +02:00
Andreas Kling
7cfe712f4d LibGfx+LibIPC: Add Gfx::ShareableBitmap, a bitmap for easy IPC usage
With this patch, it's now possible to pass a Gfx::ShareableBitmap in an
IPC message. As long as the message itself is synchronous, the bitmap
will be adopted by the receiving end, and disowned by the sender nicely
without any accounting effort like we've had to do in the past.

Use this in NotificationServer to allow sending arbitrary bitmaps as
icons instead of paths-to-icons.
2020-03-29 19:37:23 +02:00
Hüseyin ASLITÜRK
adf524015a WindowServer: Add methods for set background color and wallpaper mode 2020-03-29 19:36:37 +02:00
Benjamin Rottler
401becb922 NotificationServer: Update locations of notifications after closing one
When multiple notifications are open and one notification in the
beginning or in the middle is closed the location of the remaining
notification windows are updated so that there is no gap between them.
2020-03-28 16:07:47 +01:00
Andreas Kling
faedb763ca NotificationServer: Allow showing an icon in notifications
We currently use icon paths for this because I didn't want to deal with
implementing icon bitmap sharing right now. In the future it would be
better to post a bitmap somehow instead of a path.
2020-03-26 20:38:28 +01:00
Alex Muscar
fefc2665d6
WindowServer: Don't ignore mouse events after showing modal window (#1495)
Fixes #1464
2020-03-25 16:26:33 +01:00
Andreas Kling
424a3f5ac3 WindowServer+LibGUI: Add a way to get notified at display refresh rate
This patch adds GUI::DisplayLink, a mechanism for registering callbacks
that will fire at the display refresh rate.

Note that we don't actually know the screen refresh rate, but this is
instead completely driven by WindowServer's compositing timer. For all
current intents and purposes it does the job well enough. :^)
2020-03-22 21:13:23 +01:00
Chris
bb70d0692b WindowServer: Improve the close button shape 2020-03-22 19:57:58 +01:00
Itamar
bd9f14e27e SystemServer: Add WorkingDirectory support
Services can now have their initial working directory
configured via `SystemServer.ini`.

This commit also configures Terminal's working directory
to be /home/anon
2020-03-18 08:23:31 +01:00
Chyza
7967c80222 WindowServer: Resize maximised/tiled windows after resolution change
Previously windows would either extend past the screen or stay at their
previous smaller size in the corner, now they are resized to fit the new
resolution.
2020-03-15 19:01:40 +01:00
Shannon Booth
5dc5b8a2b6 LibCore: Rename Udp classes to UDP
The kernel was already using the UDP prefix, and the TCP LibCore classes
are also uppercased. Let's rename for consistency.

Also order the LibCore Makefile alphabetically, because everywhere else
seems to be doing that :)
2020-03-14 23:56:12 +01:00
Shannon Booth
e9687ee50e WindowServer: Control menu title font from menubar
It makes a little more sense for the menubar to control what the font of
the menu title is, as opposed to the menu manager. Menumanager now
simply uses the font that the menu wants it to use.
2020-03-10 09:37:34 +01:00