10 KiB
10 KiB
Change Log
Unreleased
0.12.2 -- 2020-12-30
Changes
- Dependency on
byteorder
was replaced withu32::from_ne_bytes()
Bugfixes
- Don't crash when the font cannot be loaded to draw decorations
0.12.1 -- 2020-12-08
Changes
- Unmaintained
memmap
dependency is replaced withmemmap2
0.12.0 -- 2020-09-30
Breaking Changes
- Update
wayland-client
to version 0.28 Environment::init
was renamed toEnvironment::new_pending
init_default_environment!
macro was renamed tonew_default_environment!
Additions
Environment::new
method to fully bootstrap environment
0.11.0 -- 2020-08-30
Breaking Changes
window.set_decorate
is now taking mutable reference- Added
show_window_menu
on aFrame
trait to request a window menu for a window. ShowMenu
enum variant toFrameRequest
create_window
now also takesOption<ThemeManager>
Frame::init
now also takesOption<ThemeManager>
to reuse users'ThemeManager
Additions
WaylandSource::queue
to access theEventQueue
underlying aWaylandSource
- A window menu could be shown on right click on decorations for
ConceptFrame
ConceptFrame
will no longer change cursor over base surface ifThemeManager
was provided
Changes
Window::set_title
now truncates the provided string to 1024 bytes, to avoid blowing up the Wayland connectionConceptFrame
is now hiding decorations forState::Fullscreen
- Restore original size of fullscreened window on unfullscreen
- Explicitly setting
ClientSide
decorations will result inServerSide
ones being destroyed - Requesting
ServerSide
decorations inset_decorate
will now fallback toClientSide
if the former are not available - Requesting
None
decorations ifServerSide
are presented will result in settingClientSide
decorations with hidden frame ConceptFrame
will useDisabled
style for maximized button for non-resizeable frameConceptFrame
will create subsurfaces for client side decorations only if a frame is visibleWindow
will restore original size after being tiled
Bugfixes
- Toggling between
ServerSide
andNone
decorations raising protocol error - Precision in a rate of key repeat events
ThemeManager
not being clone-able even if it was stated in docs- Repeat rate not being disabled when receiving zero for
rate
inwl_keyboard.repeat_info
0.10.0 -- 2020-07-10
Breaking Changes
create_surface
andcreate_surface_with_scale_callback
now returnAttached<WlSurface>
- Update
wayland-client
to0.27
Changes
andrew
is updated to0.3
.
Bugfixes
- seat: Seats with an empty name are no longer filtered out
0.9.1 -- 2020-05-03
Additions
- keyboard: Update the keysyms list with new symbols
- Add primary selection helpers, which are included as part of default
Environment
.
Changes
- surfaces: dpi-aware surface will no longer believe their DPI factor reverts to 1 when they become hidden.
BugFixes
- keyboard: Remove the unnecessary type parameter of
map_keyboard
0.9.0 -- 2020-04-22
Breaking Changes
AutoThemer
is removed as it is no longer necessary withwayland-cursor
0.26calloop
is updated to 0.6, and the adapters are modified in consequence
Additions
- Add
clone_seat_data()
method as a shorthand to getSeatData
Bugfixes
- Surface lock held across scale factor callback deadlocks scale factor API.
0.8.1 -- 2020-04-09
Additions
- Add
listen_for_outputs()
which calls a provided callback on creation/removal of outputs. - Add an
OutputHandling
trait makinglisten_for_outputs()
available onEnvironment
. - Introduce the
calloop
cargo feature, enabled by default, controlling the support for the calloop event loop - Introduce the
frames
cargo feature, enabled by default, controlling the existence of providedFrame
implementations (currentlyConceptFrame
) and the dependency onandrew
0.8.0 -- 2020-02-27
Breaking Changes
Frame
configuration is now done through aFrame::Config
associated type and theTheme
trait is removed.- Merge
Frame::set_active
andFrame::set_maximized
intoFrame::set_states
Additions
- HiDPI scaling for decorations
Bugfixes
- HiDPI cursor icon position
- Fix graphical glitches in
ConceptFrame
decoration drawing - Black pixel on left-bottom corner on CSD
- Remove a deadlock when trying to access the seat data from within the seat callback
0.7.0 -- 2020-02-07
Breaking changes
- Upgrade to
wayland-client
0.25. This changes the prototype of most callbacks by adding theDispatchData
mechanism for state sharing - Re-structure the lib API around the new
Environment
type as an entry point (breaks a lot of things). This makes the crate follow a monolithic-modular structure centered on this type. keyboard
is now a submodule ofseat
keyboard
key repetition is now handled as a calloop event sourcepointer
is now a submodule ofseat
- The initialization of
pointer
theming utilities now require aThemeSpec
argument instead of just a theme name, allowing control over the size of the cursors as well - Pointer theming utilities can no longer be shared across threads, as it was racy.
Window
now tracks new seats automatically (thenew_seat
method is removed)Window
can no longer be shared across threads, as it was racy.- Decorations management is now handled with the
Decorations
enum, for full control to clients.
Additions
- The
pointer
theming will now read theXCURSOR_THEME
andXCURSOR_SIZE
environment variables to figure the default theme pointer
theming utilities now handle HiDPI monitors- SCTK now uses the
log
crate to log its warning and error messages - Data offers
ReadPipe
scan be inserted in a calloop event loop as an event source - The
WaylandSource
wrapper allows awayland-client
EventQueue
to be inserted into a calloop event source.
0.6.4 -- 2019-08-27
Bugfixes
- Keyboard input breaking when
LC_ALL
,LC_CTYPE
orLANG
are set to an empty string - UTF8 interpretation no longer stops working if loading the compose table failed
0.6.3 -- 2019-06-29
- Keyboard: fix extra key repeat when using also releasing a modifier
0.6.2 -- 2019-06-13
- Update
Nix
to 0.14
0.6.1 -- 2019-04-07
- Additional theming capability on
ConceptFrame
via theTheme
trait: optional methodsget_<button-name>_button_icon_color
allows the stroke color on the buttons to be customized beyond what the secondary color allows. Button color methods now affect theConceptFrame
's fill behind the buttons. - Fix the firing of
Configure
events in window abstraction.
0.6.0 -- 2019-02-18
Breaking changes
- Upgrade to
wayland-client
version 0.23
0.5.0 -- 2019-02-05
Breaking changes
- Update the crate to
wayland-client
version 0.22 - Window:
set_title()
now requires a manualrefresh()
for the change to take effect
Bugfixes
- Keyboard: fix system repeat rate as repeats per second rather then millisecond delay between repeats
- Surface: fix panic in
compute_dpi_factor()
by only computing the dpi factor on surfaces known to the OutputMgr
0.4.4 -- 2018-12-27
- Shell: expose shell interface and add
create_shell_surface
toEnvironment
. - Fix build failure on big endian targets
0.4.3 -- 2018-12-03
- Update dependencies: rand, memmap, nix and image
- Surface:
create_surface
andget_dpi_factor
utilities for creating dpi aware surfaces.
0.4.2 -- 2018-11-14
- Fix compilation on BSD systems
0.4.1 -- 2018-11-06
- Window: always request server-side decorations if available, otherwise ther compositor never configures us
- keyboard: only compute utf8 value on keypress, not key release. Otherwise it confuses
xkb_compose
.
0.4.0 -- 2018-10-09
- BasicFrame: Display the title of the window in the window header
- Pass
set_selection()
Option<DataSource>
andAutoThemer::init()
Proxy<WlShm>
by reference - Window: add
set_theme()
function which takes an object implementing the traitTheme
to adjust the look of window decorations - Window: add new
ConceptFrame
which provides an alternative to theBasicFrame
window decorations - MemPool: add
mmap
method - [Breaking] Keyboard: remove
modifiers
field fromkeyboard::Event::Enter
,keyboard::Event::Key
andkeyboard::KeyRepeatEvent
- [Breaking] Keyboard: add
keyboard::Event::Modifiers
- [Breaking] Upgrade to wayland-rs 0.21
- Keyboard: end key repetition when the keyboard loses focus
0.3.0 -- 2018-08-17
- Window: the minimum window width is set to 2 pixels to circumvent a bug in mutter - https://gitlab.gnome.org/GNOME/mutter/issues/259
- [Breaking] MemPool: MemPool now requires an implementation to be called when the pool becomes free
- [Breaking] DoubleMemPool: DoubleMemPool now requires an implementation to be called when one of its pools becomes free
- [Breaking] DoubleMemPool:
swap()
is removed aspool()
will now automatically track and return any free pools avaliable or return None - Keyboard: add key repetition with 'map_keyboard_auto_with_repeat' and 'map_keyboard_rmlvo_with_repeat'
- Window: add
init_with_decorations
to allow the use of server-side decorations
0.2.6 -- 2018-07-14
Big thanks to @trimental for improving the visual look of the window decorations:
- BasicFrame: remove side and bottom border decorations
- BasicFrame: round window corners
0.2.5 -- 2018-07-10
- Keyboard: try to load
libxkbcommon.so.0
as well to improve compatibility
0.2.4 -- 2018-06-26
- Window: notify the compositor of our dimensions to avoid placement glitches
0.2.3 -- 2018-06-08
- Update
nix
dependency to be fix build on FreeBSD (even if we can't run)
0.2.2 -- 2018-06-08
- BasicFrame: don't desync the subsurface from the main one. This avoids graphical glitches where the borders are not drawn exactly the same size as the contents.
- Window: add
set_resizable
, (minor breaking change of theFrame
trait by adding a new method)
0.2.1 -- 2018-05-03
- Add
DoubleMemPool
for double buffering, and use it to improve the drawing performance ofBasicFrame
.
0.2.0 -- 2018-04-29
- Breaking OutputMgr: expose wl_output global id
0.1.0 -- 2018-04-26
Initial version, including:
- basic environment manager
- keyboard keymap handling
- basic window decoration