aboutsummaryrefslogtreecommitdiff
path: root/swaybar/render.c
AgeCommit message (Collapse)Author
2018-09-28swaybar: trim function prototypesIan Fan
2018-09-28swaybar: move i3bar definitions into separate fileIan Fan
2018-09-22swaybar, swaylock, & tree/container: Set cairo font options to render text ↵Geoff Greer
and lines with subpixel hinting (if available).
2018-09-20swaybar: don't wl_display_roundtrip on each frameemersion
This was the source of numerous bugs, from hotplug events not being received to segfaults because wl_display_roundtrip was making the bar process unplug events while blocking in an iteration over all outputs.
2018-09-20swaybar: handle hotpluggingemersion
Don't kill and respawn swaybars on hotplug.
2018-09-18swaybar: rewrite i3bar protocol handlingIan Fan
This now correctly handles an incoming json infinite array by shifting most of the heavy listing to the json-c parser, as well as sending multiple statuses at once. It also removes the struct i3bar_protocol_state and moves its members into the status_line struct, allowing the same buffer to be used for both protocols.
2018-09-18swaybar: only create i3bar block hotspot if click events are enabledIan Fan
2018-09-12i3bar: count references to blocksIan Fan
This prevents blocks from being destroyed before their hotspots are destroyed, in case it is used for a pending click event that fires between the bar receiving a new status, which destroys the block, and the bar rendering the new status, which destroys the hotspot; this problem can be easily produced by scrolling on a block that immediately causes a new status to be sent, with multiple outputs
2018-09-08Align titles to baselineRyan Dwyer
This does the following: * Adds a baseline argument to get_text_size (the baseline is the distance from the top of the texture to the baseline). * Stores the baseline in the container when calculating the title height. * Takes the baseline into account when calculating the config's max font height. * When rendering, pads the textures according to the baseline so they line up.
2018-09-05Fix swaybar block background fill logicJason
Same as #2571 but for 1.0.
2018-07-19swaybar: Fix scroll handling on workspace buttonsminus
As well as ignoring scroll events on status elements when click_events is enabled. Previously, using the scroll wheel on a workspace button would switch to that workspace instead of scrolling through them. Clicks and scrolling on status elements would always be processed by swaybar, too. So in case you were using scrolling as volume control on a status item, swaybar would additionally scroll through your workspaces.
2018-07-16make hotspot callback take an x11 button idPeter Rice
2018-07-14swaybar/bg: Fix crash on DPMS offminus
When turning off displays via DPMS, swaybar and swaybg still tried to render, but did not get a valid buffer, causing them to crash.
2018-07-06Fix swaybar teardown when workspace buttons hiddenBrian Ashworth
2018-07-05Implement mode --pango_markupBrian Ashworth
2018-05-09Swaybar: Respect pango_markup configRyan Dwyer
Makes swaybar respect the user's pango_markup configuration in the workspace buttons and binding mode indicator.
2018-04-10Fix separator height calculationDrew DeVault
Fixes #1796 Also rearranged this code to more closely mirror the similar code above so future discrepancies are easier to spot.
2018-04-11Check height in surface local coordinates and rename some variables.Ryan Dwyer
2018-04-10Fix swaybar not showing all status blocks.Ryan Dwyer
2018-04-08Fix swaybar HiDPI rounding issueemersion
2018-04-08Fixup for #1773Drew DeVault
2018-04-08Use full ws->name in swaybar hotspot callbackdb
If strip_workspace_numbers option is enabled, we must preserve the right workspace name for hotspot.
2018-04-05Handle output removal on swaybarDrew DeVault
2018-04-03Address review feedbackDrew DeVault
2018-04-03Adjust height calculation, namingDrew DeVault
2018-04-03Add hidpi support to swaybarDrew DeVault
2018-04-02Render blocks the correct orderDrew DeVault
2018-04-02Fix use-after-free with block hotspotsDrew DeVault
2018-04-02Send click events for i3bar blocksDrew DeVault
2018-04-02Render i3bar blocksDrew DeVault
2018-03-30Implement workspace switch on clickDrew DeVault
2018-03-29Early return from render functions if necessaryDrew DeVault
2018-03-29Tear down bar when display exitsDrew DeVault
2018-03-29Implement status lineDrew DeVault
Does not yet support i3bar json protocol
2018-03-29Iterate over workspaces backwardsDrew DeVault
2018-03-29Respect user bar height preferenceDrew DeVault
This is an i3-gaps feature we support
2018-03-29Pixel-perfect renderingDrew DeVault
2018-03-29Add binding mode indicatorDrew DeVault
2018-03-29Implement workspace button renderingDrew DeVault
2018-03-29Start port of swaybar to layer shellDrew DeVault
This starts up the event loop and wayland display and shims out the basic top level rendering concepts. Also includes some changes to incorporate pango into the 1.x codebase properly.
2017-08-29styling fixesakokshar@redhat.com
2017-08-29click_events as documented at https://i3wm.org/docs/i3bar-protocol.htmlakokshar@redhat.com
2017-06-07Reorganize Tray CodeCalvin Lee
Remove tray code from bar.c and render.c
2017-06-07Fix cairo blending on tray iconsDrew DeVault
2017-06-07Implement Tray IconsCalvin Lee
This commit implements the StatusNotifierItem protocol, and enables swaybar to show tray icons. It also uses `xembedsniproxy` in order to communicate with xembed applications. The tray is completely optional, and can be disabled on compile time with the `enable-tray` option. Or on runtime with the bar config option `tray_output none`. Overview of changes: In swaybar very little is changed outside the tray subfolder except that all events are now polled in `event_loop.c`, this creates no functional difference. Six bar configuration options were added, these are detailed in sway-bar(5) The tray subfolder is where all protocol implementation takes place and is organised as follows: tray/sni_watcher.c: This file contains the StatusNotifierWatcher. It keeps track of items and hosts and reports when they come or go. tray/tray.c This file contains the StatusNotifierHost. It keeps track of sway's version of the items and represents the tray itself. tray/sni.c This file contains the StatusNotifierItem struct and all communication with individual items. tray/icon.c This file implements the icon theme protocol. It allows for finding icons by name, rather than by pixmap. tray/dbus.c This file allows for asynchronous DBus communication. See #986 #343
2016-11-02add bar colours for focused_(workspace|statusline|separator)D.B
If these aren't defined in config, color settings without 'focused_' prefix are used as a fallback.
2016-10-12Use CAIRO_OPERATOR_SOURCE for swaybarDrew DeVault
2016-10-07parse pango markup in workspace names (and bugfix)D.B
This change allows using numeric character references in workspace names - for example æ which stands for sharp s. A fix was necessary in get_pango_layout, since markup and parsed markup had different width.
2016-09-29Correctly scale swaybarD.B
Fixes #910. There were some missing multiplications with window->scale.
2016-09-05Fix constant scale factor in font codeDrew DeVault