Brandon Nason
bad8f334ea
Add omnipresent flag for views
2023-11-28 21:41:30 +00:00
Johan Malm
a105c8781a
menu: use wl_list instead of array
...
...to make it easier to split menu.c into smaller chunks without
exposing nr_menus variable.
2023-10-10 06:17:37 +01:00
Johan Malm
b22722dafa
menu: minor coding style tweaks
2023-10-10 06:13:55 +01:00
Johan Malm
c827c4c9e5
menu: split parse_xml() in readiness for pipemenus
2023-10-10 06:13:55 +01:00
Consolatis
1703b4d6cc
src/menu/menu.c: support keyboard driven selection
...
Fixes : #1058
Requested-by: @stefonarch
2023-09-05 19:57:14 +01:00
Consolatis
a9ab8ebdaf
src/menu/menu.c: convert to wl_list_append()
2023-09-05 19:57:14 +01:00
Consolatis
65b441a0ba
config: validate keybind, mousebind and menu actions
2023-07-05 22:20:18 +02:00
Johan Malm
49dfba1507
menu: support CDATA for <command> element
...
...in order to support obmenu-generator output such as this:
<menu id="root-menu" label="Applications">
<item label="File Manager"><action name="Execute"><command><![CDATA[xdg-open .]]></command></action></item>
<item label="Terminal"><action name="Execute"><command><![CDATA[xterm]]></command></action></item>
<item label="Web Browser"><action name="Execute"><command><![CDATA[xdg-open http://]]></command></action></item>
<item label="Run command"><action name="Execute"><command><![CDATA[gmrun]]></command></action></item>
</menu>
References:
- https://github.com/trizen/obmenu-generator
- https://aur.archlinux.org/packages/obmenu-generator
- https://trizenx.blogspot.com/2012/02/obmenu-generator.html
Fixes: issue #972
2023-07-04 06:01:47 +01:00
Johan Malm
4a31972b6f
menu: print menu.xml nodenames
...
...when LABWC_DEBUG_MENU_NODENAMES is set
2023-07-04 06:01:47 +01:00
Johan Malm
33b98b19aa
action: support SendToDesktop 'follow' option
...
Make follow 'true' by default as per Openbox 3.6 specification.
Note: this is an interface change.
Fixes: issue #841
2023-03-26 19:52:50 +02:00
John Lindgren
3941991505
menu: Compute usable area for the correct output
...
If a menu was opened via keybind while the cursor was on another,
differently-sized output, the wrong usable area was used to
position the menu.
2023-02-09 00:33:56 -05:00
Consolatis
4a8b50603e
src/config/rcxml.c: allow clearing key/mouse bindings
...
Fixes #567
2023-02-03 03:30:10 +01:00
Johan Malm
241e7de2b1
menu: minor refactoring to increase readability
2023-01-01 18:59:16 +00:00
Consolatis
7cc80b7a99
src/action.c: Provide generic parsing of XML action arguments
...
.. and use it within src/config/rcxml.c and src/menu/menu.c.
This fixes being unable to use the `direction` argument in menu entries.
Reported-by: mahk via IRC
2022-12-10 19:55:53 +00:00
Consolatis
d00327bc32
menu: Dynamically adjust menu width based on widest item
...
Adds two new theme vars:
- menu.width.min (menu will never be smaller than this)
- menu.width.max (menu will never be wider than this + padding)
A fixed menu width can be achieved by setting
menu.width.min == menu.width.max.
2022-12-06 21:08:43 +00:00
Consolatis
f0666ba5c9
menu: Convert hardcoded item padding to theme vars
...
Adds two new theme vars:
- menu.items.padding.x
- menu.items.padding.y
2022-12-06 21:08:43 +00:00
Consolatis
3da7cfd8c6
theme: Rename separator_width to separator_line_thickness
2022-12-06 21:08:43 +00:00
Consolatis
ccf68c5950
menu: Add generic menu_init() entry point
2022-12-06 21:08:43 +00:00
Johan Malm
e45e2c7e60
Fix coding style
2022-11-03 23:01:52 +01:00
Consolatis
ec8bc6e2d6
src/menu/menu.c: Add comments
2022-11-01 17:54:02 +01:00
Consolatis
89ad0b808f
s/wl_list_insert(list.prev...)/wl_list_append(list...)/
2022-10-05 19:50:36 +01:00
Consolatis
dcedfee5d1
src/menu.c: Clamp separator width
...
Reported-by: @Flrian
2022-09-20 21:06:31 +01:00
John Lindgren
a54d378e6c
common: Add znew/znew_n() macros
2022-09-18 15:25:19 -04:00
John Lindgren
cb40cdc36c
common: Add additional memory utilities (xzalloc() etc.)
2022-09-17 10:57:30 -04:00
John Lindgren
07a83c19f0
config: Add support for font slant and weight
2022-09-15 21:48:05 +01:00
Johan Malm
429df42a8f
menu: render submenu arrows
2022-08-12 11:16:17 +02:00
Johan Malm
70421b1207
menu: do not require label attribute for highest level menu definition
...
Allow highest level menu definitions - typically used for root-menu and
client-menu - to be defined like this:
<openbox_menu>
<menu id="">
</menu>
</openbox>
Previously this required a label attribute (which was not used for
anything and could be an empty string) as show below:
<openbox_menu>
<menu id="" label="">
</menu>
</openbox>
Closes issue #472
2022-08-11 20:59:57 +01:00
Consolatis
9b49f19a73
src/action.c: Convert action->arg to a list of action_arg
...
In preperation for Actions that require multiple arguments
2022-07-04 16:19:28 +01:00
Johan Malm
437230b3a0
menu: support <separator />
...
Add theme options:
- menu.separator.width
- menu.separator.padding.width
- menu.separator.padding.height
- menu.separator.color
Support separator lines defined by <separator />
Note that separator labels (with text) defined by <separator label="" />
are not supported.
2022-06-25 14:56:35 +02:00
Consolatis
282620589d
workspaces: Hide menu if there is only a single workspace
2022-06-15 22:26:21 +02:00
Consolatis
ff69988347
workspaces: Add default workspace sub menu
2022-06-15 22:26:21 +02:00
Consolatis
c93d625938
workspaces: Add workspace actions
2022-06-15 22:26:21 +02:00
Consolatis
b25965d03e
Convert menu entries to scaled font buffer
2022-06-14 22:03:08 +01:00
Consolatis
f3a685155d
common/font: Add scale argument
2022-06-14 22:03:08 +01:00
Consolatis
2aaf26e87b
src/menu: Handle menu item creation failure
2022-06-14 22:03:08 +01:00
Consolatis
5a4c5de332
src/menu: Attach view to menu and use it when executing actions
...
This fixes #380
2022-06-09 22:09:40 +01:00
Consolatis
08518513cc
Chase wlroots: scene_node.state is now inlined
...
Chases wlroots cb2dbc327e4d695c2a60a386e116a7dc20b29107
wlr_scene: Inline wlr_scene_node_state
2022-06-07 07:13:37 +01:00
Consolatis
2ed7a10779
Chase wlroots: every scene_node parent is now a tree
...
Chases wlroots ccd0f85c2a36308e35b153c7f9653abac7659af3
wlr_scene: Only allow parenting on a wlr_scene_tree
2022-06-07 07:13:37 +01:00
Consolatis
65a5315e42
Chase wlroots: prep work: menu to tree
2022-06-07 07:13:37 +01:00
Consolatis
ccfcd04625
Revert "Fix dynamic output based scaling for menu and SSD"
...
As it turns out the reason for the workaround was a bug
in wlroots which got fixed in the meantime.
So to keep things simple just revert the workaround and
depend on the wlroots fix instead.
To update the wlroots subproject use
meson subprojects update wlroots
This reverts commit e87aa19066 .
2022-05-30 21:27:33 +02:00
Consolatis
e87aa19066
Fix dynamic output based scaling for menu and SSD
...
wlr_scene_buffers need an additional wlr_scene_buffer_set_source_box()
to be scaled correctly by wlroots based on the output scale.
With this commit the buffers are now scaled correctly but, especially
on higher scale factors, may be a bit blurry.
In the future we likely want a dynamic font label generator based
on the maximal scale of all the outputs the specific buffer is currently on.
Some inspiration for that could be
https://github.com/Nefsen402/sway/blob/scene-graph/sway/sway_text_buffer.c
Fixes #348
2022-05-29 22:10:00 +02:00
Consolatis
bda48da68d
Deal with font_buffer_create() failures
2022-05-26 22:19:56 +01:00
Johan Malm
5944813566
menu: support <action name="Execute"> option <execute>
...
<exectue> is a deprecated name for <command>.
See: http://openbox.org/wiki/Help:Actions#Action_syntax
But some openbox3 menu generators still use it, for example
https://wiki.archlinux.org/title/xdg-menu - so let's support it for
backward compatibility.
2022-05-06 21:55:46 +01:00
Johan Malm
9554be0ce7
menu: avoid logging on <item label="" icon="">
...
Labwc does not support menu icons, but we should not log errors if a
menu file contains icons as in the example below:
<item label="" icon="">
<action name="Execute">
<command></command>
</action>
</item>
2022-05-06 21:52:46 +01:00
01micko
cbed8acf01
nls: add native language support
...
- adds labwc.pot and po files for de, es, it and sv
- added notes in NEWS.md and CONTRIBUTING.md
- addresses #269
- conditional upon `msgfmt` being installed
- can be disabled at build time
2022-05-02 10:33:42 +01:00
Johan Malm
edc5338af4
Add command line option -C to specify config directory
...
Also expand usage message to explain what each option means
2022-04-22 17:00:36 +01:00
Consolatis
6b4d9b9383
Add ToggleAlwaysOnTop action
2022-04-09 17:18:39 +01:00
Johan Malm
5b34c81768
Fix trivial coding style breaches
2022-04-04 20:53:36 +01:00
Consolatis
420c0712f8
menu.c: Handle keybinding based Reconfigure while menu is shown
2022-03-16 18:21:32 +00:00
Consolatis
428423cfa9
menu.c: Handle out of screen submenus
...
Fixes #276
2022-03-16 18:21:32 +00:00