summaryrefslogtreecommitdiff
path: root/swaybar/render.c
AgeCommit message (Collapse)AuthorLines
2018-11-28Implement bar gapsBrian Ashworth-0/+5
Adds the bar subcommand `gaps <amount>|<horizontal> <vertical>|<top> <right> <bottom> <left>` to set gaps for swaybar. Due to restrictions on margins for a layer_surface, only the sides that are anchored to an edge of the screen can have gaps. Since there is support for per-side outer gaps for workspaces, those should be able to be used instead for the last side.
2018-11-17Implement strip_workspace_name.Connor E-20/+2
2018-10-25swaybar: reverse order of workspaces listIan Fan-1/+1
This makes it congruent with its visual appearance, making it easier to reason about.
2018-10-20swaybar: render with minimum height, nominally text heightIan Fan-1/+3
2018-10-14swaybar: when hiding bar, save old height to be restored upon reshowIan Fan-1/+1
Previously, when the bar was hidden, the height would be set to 0. This meant that if the bar was empty upon reshow, it would not render since the height was still 0, which made it seem there was a problem. Now, the height is not reset, but the width is, to indicate upon reshow that the layer surface needed reconfiguring.
2018-10-14swaybar: handle mode/hidden_state changesIan Fan-1/+6
As well as adding the hidden_state property to the bar config struct, this commit handles barconfig_update events when the mode or hidden_state changes, and uses a new function determine_bar_visibility to hide or show the bar as required, using, respectively, destroy_layer_surface, which is also newly added, and add_layer_surface, which has been changed to allow dynamically adding the surface.
2018-10-14swaybar: move mode & mode_pango_markup to bar structIan Fan-5/+9
This distinguishes the binding mode from the distinct config mode, as well as removing mode_pango_markup from the config struct where it should not be present.
2018-10-14swaybar: add free_hotspots helper functionIan Fan-8/+1
2018-09-30swaybar: synchronize rendering to output framesIan Fan-1/+23
2018-09-28swaybar: trim function prototypesIan Fan-58/+51
2018-09-28swaybar: move i3bar definitions into separate fileIan Fan-0/+1
2018-09-22swaybar, swaylock, & tree/container: Set cairo font options to render text ↵Geoff Greer-0/+7
and lines with subpixel hinting (if available).
2018-09-20swaybar: don't wl_display_roundtrip on each frameemersion-2/+0
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-0/+3
Don't kill and respawn swaybars on hotplug.
2018-09-18swaybar: rewrite i3bar protocol handlingIan Fan-1/+1
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-13/+15
2018-09-12i3bar: count references to blocksIan Fan-1/+6
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-7/+7
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-1/+1
Same as #2571 but for 1.0.
2018-07-19swaybar: Fix scroll handling on workspace buttonsminus-3/+7
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-2/+2
2018-07-14swaybar/bg: Fix crash on DPMS offminus-0/+3
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-1/+1
2018-07-05Implement mode --pango_markupBrian Ashworth-2/+3
2018-05-09Swaybar: Respect pango_markup configRyan Dwyer-4/+6
Makes swaybar respect the user's pango_markup configuration in the workspace buttons and binding mode indicator.
2018-04-10Fix separator height calculationDrew DeVault-3/+3
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-3/+4
2018-04-10Fix swaybar not showing all status blocks.Ryan Dwyer-7/+6
2018-04-08Fix swaybar HiDPI rounding issueemersion-18/+21
2018-04-08Fixup for #1773Drew DeVault-2/+1
2018-04-08Use full ws->name in swaybar hotspot callbackdb-1/+2
If strip_workspace_numbers option is enabled, we must preserve the right workspace name for hotspot.
2018-04-05Handle output removal on swaybarDrew DeVault-2/+0
2018-04-03Address review feedbackDrew DeVault-12/+11
2018-04-03Adjust height calculation, namingDrew DeVault-24/+24
2018-04-03Add hidpi support to swaybarDrew DeVault-59/+109
2018-04-02Render blocks the correct orderDrew DeVault-1/+1
2018-04-02Fix use-after-free with block hotspotsDrew DeVault-2/+3
2018-04-02Send click events for i3bar blocksDrew DeVault-12/+30
2018-04-02Render i3bar blocksDrew DeVault-15/+194
2018-03-30Implement workspace switch on clickDrew DeVault-7/+32
2018-03-29Early return from render functions if necessaryDrew DeVault-3/+3
2018-03-29Tear down bar when display exitsDrew DeVault-1/+0
2018-03-29Implement status lineDrew DeVault-0/+56
Does not yet support i3bar json protocol
2018-03-29Iterate over workspaces backwardsDrew DeVault-1/+1
2018-03-29Respect user bar height preferenceDrew DeVault-0/+3
This is an i3-gaps feature we support
2018-03-29Pixel-perfect renderingDrew DeVault-17/+31
2018-03-29Add binding mode indicatorDrew DeVault-23/+54
2018-03-29Implement workspace button renderingDrew DeVault-4/+88
2018-03-29Start port of swaybar to layer shellDrew DeVault-346/+42
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-2/+2