aboutsummaryrefslogtreecommitdiff
path: root/swaybar/render.c
AgeCommit message (Collapse)AuthorLines
2018-09-28swaybar: synchronize rendering to output framesFurkan Sahin-1/+23
2018-09-28swaybar: trim function prototypesFurkan Sahin-58/+51
2018-09-24swaybar: move i3bar definitions into separate fileFurkan Sahin-0/+1
2018-09-20swaybar, swaylock, & tree/container: Set cairo font options to render text ↵Furkan Sahin-0/+7
and lines with subpixel hinting (if available).
2018-09-20swaybar: don't wl_display_roundtrip on each frameFurkan Sahin-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-19swaybar: handle hotpluggingFurkan Sahin-0/+3
Don't kill and respawn swaybars on hotplug.
2018-09-17swaybar: rewrite i3bar protocol handlingFurkan Sahin-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-17swaybar: only create i3bar block hotspot if click events are enabledFurkan Sahin-13/+15
2018-09-12i3bar: count references to blocksFurkan Sahin-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 baselineFurkan Sahin-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 logicFurkan Sahin-1/+1
Same as #2571 but for 1.0.
2018-07-19swaybar: Fix scroll handling on workspace buttonsFurkan Sahin-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-15make hotspot callback take an x11 button idFurkan Sahin-2/+2
2018-07-14swaybar/bg: Fix crash on DPMS offFurkan Sahin-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 hiddenFurkan Sahin-1/+1
2018-07-05Implement mode --pango_markupFurkan Sahin-2/+3
2018-05-09Swaybar: Respect pango_markup configFurkan Sahin-4/+6
Makes swaybar respect the user's pango_markup configuration in the workspace buttons and binding mode indicator.
2018-04-10Fix separator height calculationFurkan Sahin-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.Furkan Sahin-3/+4
2018-04-10Fix swaybar not showing all status blocks.Furkan Sahin-7/+6
2018-04-08Fix swaybar HiDPI rounding issueFurkan Sahin-18/+21
2018-04-08Fixup for #1773Furkan Sahin-2/+1
2018-04-08Use full ws->name in swaybar hotspot callbackFurkan Sahin-1/+2
If strip_workspace_numbers option is enabled, we must preserve the right workspace name for hotspot.
2018-04-05Handle output removal on swaybarFurkan Sahin-2/+0
2018-04-03Address review feedbackFurkan Sahin-12/+11
2018-04-03Adjust height calculation, namingFurkan Sahin-24/+24
2018-04-03Add hidpi support to swaybarFurkan Sahin-59/+109
2018-04-02Render blocks the correct orderFurkan Sahin-1/+1
2018-04-02Fix use-after-free with block hotspotsFurkan Sahin-2/+3
2018-03-31Send click events for i3bar blocksFurkan Sahin-12/+30
2018-03-31Render i3bar blocksFurkan Sahin-15/+194
2018-03-30Implement workspace switch on clickFurkan Sahin-7/+32
2018-03-29Early return from render functions if necessaryFurkan Sahin-3/+3
2018-03-29Tear down bar when display exitsFurkan Sahin-1/+0
2018-03-29Implement status lineFurkan Sahin-0/+56
Does not yet support i3bar json protocol
2018-03-29Iterate over workspaces backwardsFurkan Sahin-1/+1
2018-03-29Respect user bar height preferenceFurkan Sahin-0/+3
This is an i3-gaps feature we support
2018-03-29Pixel-perfect renderingFurkan Sahin-17/+31
2018-03-29Add binding mode indicatorFurkan Sahin-23/+54
2018-03-29Implement workspace button renderingFurkan Sahin-4/+88
2018-03-28Start port of swaybar to layer shellFurkan Sahin-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 fixesFurkan Sahin-2/+2
2017-08-29click_events as documented at https://i3wm.org/docs/i3bar-protocol.htmlFurkan Sahin-0/+3
2017-06-07Reorganize Tray CodeFurkan Sahin-65/+2
Remove tray code from bar.c and render.c
2017-06-07Fix cairo blending on tray iconsFurkan Sahin-0/+3
2017-06-07Implement Tray IconsFurkan Sahin-3/+72
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)Furkan Sahin-5/+19
If these aren't defined in config, color settings without 'focused_' prefix are used as a fallback.
2016-10-12Use CAIRO_OPERATOR_SOURCE for swaybarFurkan Sahin-0/+2
2016-10-07parse pango markup in workspace names (and bugfix)Furkan Sahin-2/+2
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 swaybarFurkan Sahin-6/+6
Fixes #910. There were some missing multiplications with window->scale.