rofi 2.1.0
view.c File Reference
#include <config.h>
#include <locale.h>
#include <signal.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <glib.h>
#include "rofi.h"
#include "settings.h"
#include "timings.h"
#include "display.h"
#include "helper-theme.h"
#include "helper.h"
#include "mode.h"
#include "view-internal.h"
#include "view.h"
#include "theme.h"
#include "xcb-dummy.h"
Include dependency graph for view.c:

Go to the source code of this file.

Data Structures

struct  _thread_state_view
 

Macros

#define G_LOG_DOMAIN   "View"
 

Typedefs

typedef struct _thread_state_view thread_state_view
 

Functions

void view_init (const view_proxy *view_in)
 
static char * get_matching_state (RofiViewState *state)
 
static int lev_sort (const void *p1, const void *p2, void *arg)
 
static int fzf_v2_sort (const void *p1, const void *p2, void *arg)
 
static void screenshot_taken_user_callback (const char *path)
 
void rofi_capture_screenshot (void)
 
static void rofi_view_update_prompt (RofiViewState *state)
 
static void rofi_view_reload_message_bar (RofiViewState *state)
 
static void rofi_view_take_action (const char *name)
 
static gboolean rofi_view_user_timeout (G_GNUC_UNUSED gpointer data)
 
static void rofi_view_set_user_timeout (G_GNUC_UNUSED gpointer data)
 
void rofi_view_restart (RofiViewState *state)
 
RofiViewState * rofi_view_get_active (void)
 
textbox * rofi_view_get_active_text (void)
 
void rofi_view_cancel (RofiViewState *state)
 
void rofi_view_remove_active (RofiViewState *state)
 
void rofi_view_set_active (RofiViewState *state)
 
void rofi_view_set_selected_line (RofiViewState *state, unsigned int selected_line)
 
void rofi_view_free (RofiViewState *state)
 
MenuReturn rofi_view_get_return_value (const RofiViewState *state)
 
unsigned int rofi_view_get_selected_line (const RofiViewState *state)
 
unsigned int rofi_view_get_element_pitch (const RofiViewState *state, RofiOrientation orientation)
 
unsigned int rofi_view_get_next_position (const RofiViewState *state)
 
unsigned int rofi_view_get_completed (const RofiViewState *state)
 
const char * rofi_view_get_user_input (const RofiViewState *state)
 
static RofiViewState * __rofi_view_state_create (void)
 
static void rofi_view_call_thread (gpointer data, gpointer user_data)
 
static void filter_elements (thread_state *ts, G_GNUC_UNUSED gpointer user_data)
 
void input_history_initialize (void)
 
void input_history_save (void)
 
static void rofi_view_nav_row_tab (RofiViewState *state)
 
static void rofi_view_nav_row_select (RofiViewState *state)
 
static void rofi_view_nav_first (RofiViewState *state)
 
static void rofi_view_nav_last (RofiViewState *state)
 
static void selection_changed_user_callback (unsigned int index, RofiViewState *state)
 
static void selection_changed_callback (G_GNUC_UNUSED listview *lv, unsigned int index, void *udata)
 
static void update_callback (textbox *t, icon *ico, unsigned int index, void *udata, TextBoxFontType *type, gboolean full)
 
static void page_changed_callback (void)
 
static void _rofi_view_reload_row (RofiViewState *state)
 
static gboolean rofi_view_refilter_real (RofiViewState *state)
 
void rofi_view_refilter (RofiViewState *state)
 
static void rofi_view_refilter_force (RofiViewState *state)
 
void process_result (RofiViewState *state)
 
void rofi_view_finalize (RofiViewState *state)
 
static void rofi_view_input_changed (void)
 
static void rofi_view_trigger_global_action (KeyBindingAction action)
 
gboolean rofi_view_check_action (RofiViewState *state, BindingsScope scope, guint action)
 
void rofi_view_trigger_action (RofiViewState *state, BindingsScope scope, guint action)
 
void rofi_view_handle_text (RofiViewState *state, const char *text)
 
static RofiCursorType rofi_view_resolve_cursor (RofiViewState *state, gint x, gint y)
 
void rofi_view_handle_mouse_motion (RofiViewState *state, gint x, gint y, gboolean find_mouse_target)
 
static void rofi_quit_user_callback (RofiViewState *state)
 
void rofi_view_maybe_update (RofiViewState *state)
 
WidgetTriggerActionResult textbox_button_trigger_action (widget *wid, MouseBindingMouseDefaultAction action, G_GNUC_UNUSED gint x, G_GNUC_UNUSED gint y, G_GNUC_UNUSED void *user_data)
 
static WidgetTriggerActionResult textbox_sidebar_modes_trigger_action (widget *wid, MouseBindingMouseDefaultAction action, G_GNUC_UNUSED gint x, G_GNUC_UNUSED gint y, G_GNUC_UNUSED void *user_data)
 
static void rofi_view_listview_mouse_activated_cb (listview *lv, gboolean custom, void *udata)
 
static void rofi_view_add_widget (RofiViewState *state, widget *parent_widget, const char *name)
 
RofiViewState * rofi_view_create (Mode *sw, const char *input, MenuFlags menu_flags, void(*finalize)(RofiViewState *))
 
static void rofi_error_user_callback (const char *msg)
 
int rofi_view_error_dialog (const char *msg, int markup)
 
static int rofi_thread_workers_sort (gconstpointer a, gconstpointer b, gpointer data G_GNUC_UNUSED)
 
static void rofi_thread_pool_state_free (gpointer data)
 
void rofi_view_workers_initialize (void)
 
void rofi_view_workers_finalize (void)
 
Mode * rofi_view_get_mode (RofiViewState *state)
 
static gboolean rofi_view_overlay_timeout (G_GNUC_UNUSED gpointer user_data)
 
void rofi_view_set_overlay_timeout (RofiViewState *state, const char *text)
 
void rofi_view_set_overlay (RofiViewState *state, const char *text)
 
void rofi_view_clear_input (RofiViewState *state)
 
void rofi_view_ellipsize_listview (RofiViewState *state, PangoEllipsizeMode mode)
 
void rofi_view_switch_mode (RofiViewState *state, Mode *mode)
 
void rofi_view_update (RofiViewState *state, gboolean qr)
 
void rofi_view_temp_configure_notify (RofiViewState *state, xcb_configure_notify_event_t *xce)
 
void rofi_view_temp_click_to_exit (RofiViewState *state, xcb_window_t target)
 
void rofi_view_frame_callback (void)
 
void rofi_view_queue_redraw (void)
 
void rofi_view_set_window_title (const char *title)
 
void rofi_view_calculate_window_position (RofiViewState *state)
 
void rofi_view_calculate_window_width (struct RofiViewState *state)
 
int rofi_view_calculate_window_height (RofiViewState *state)
 
void rofi_view_window_update_size (RofiViewState *state)
 
void rofi_view_set_cursor (RofiCursorType type)
 
void rofi_view_cleanup (void)
 
void rofi_view_hide (void)
 
void rofi_view_reload (void)
 
void __create_window (MenuFlags menu_flags)
 
xcb_window_t rofi_view_get_window (void)
 
void rofi_view_get_current_monitor (int *width, int *height)
 
void rofi_view_set_size (RofiViewState *state, gint width, gint height)
 
void rofi_view_get_size (RofiViewState *state, gint *width, gint *height)
 
void rofi_view_ping_mouse (RofiViewState *state)
 
void rofi_view_pool_refresh (void)
 
void rofi_view_get_menu_rect (int *x, int *y, int *w, int *h)
 

Variables

static const view_proxy * proxy
 
GThreadPool * tpool = NULL
 
RofiViewState * current_active_menu = NULL
 
struct _rofi_view_cache_state CacheState
 
GList * list_of_warning_msgs
 

Macro Definition Documentation

◆ G_LOG_DOMAIN

#define G_LOG_DOMAIN   "View"

The Rofi View log domain

Definition at line 29 of file view.c.

Typedef Documentation

◆ thread_state_view

Thread state for workers started for the view.

Function Documentation

◆ __rofi_view_state_create()

static RofiViewState * __rofi_view_state_create ( void )
static

Create a new, 0 initialized RofiViewState structure.

Returns
a new 0 initialized RofiViewState

Definition at line 451 of file view.c.

Referenced by rofi_view_create(), and rofi_view_error_dialog().

Here is the caller graph for this function:

◆ _rofi_view_reload_row()

static void _rofi_view_reload_row ( RofiViewState * state)
static

Definition at line 801 of file view.c.

References RofiViewState::distance, RofiViewState::line_map, RofiViewState::list_view, listview_set_max_lines(), mode_get_num_entries(), RofiViewState::num_lines, rofi_view_reload_message_bar(), and RofiViewState::sw.

Referenced by rofi_view_refilter_real().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ filter_elements()

◆ fzf_v2_sort()

static int fzf_v2_sort ( const void * p1,
const void * p2,
void * arg )
static

fzf-v2 sorting: by key, then by input position, which is what fzf compares last (compareRanks in src/result_others.go). The sort cannot be relied on for that, being stable only from glib 2.82. Kept out of lev_sort() so the other methods resolve their ties as before. The values sorted are indices into the unfiltered list, hence already the input positions.

Definition at line 124 of file view.c.

Referenced by rofi_view_refilter_real().

Here is the caller graph for this function:

◆ get_matching_state()

static char * get_matching_state ( RofiViewState * state)
static

Definition at line 91 of file view.c.

References RofiViewState::case_sensitive, and config.

Referenced by rofi_view_add_widget(), rofi_view_refilter_real(), and rofi_view_trigger_global_action().

Here is the caller graph for this function:

◆ lev_sort()

static int lev_sort ( const void * p1,
const void * p2,
void * arg )
static

Levenshtein Sorting.

Definition at line 109 of file view.c.

Referenced by rofi_view_refilter_real().

Here is the caller graph for this function:

◆ page_changed_callback()

static void page_changed_callback ( void )
static

Definition at line 796 of file view.c.

References rofi_view_workers_finalize(), and rofi_view_workers_initialize().

Referenced by rofi_view_add_widget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_result()

void process_result ( RofiViewState * state)
Parameters
stateThe Menu Handle

Check if a finalize function is set, and if sets executes it.

Load in the new mode.

Definition at line 235 of file rofi.c.

◆ rofi_error_user_callback()

static void rofi_error_user_callback ( const char * msg)
static

Definition at line 1968 of file view.c.

References config, helper_execute(), and helper_parse_setup().

Referenced by rofi_view_error_dialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_quit_user_callback()

static void rofi_quit_user_callback ( RofiViewState * state)
static

◆ rofi_thread_pool_state_free()

static void rofi_thread_pool_state_free ( gpointer data)
static

Definition at line 2039 of file view.c.

References _thread_state::free.

Referenced by rofi_view_workers_initialize().

Here is the caller graph for this function:

◆ rofi_thread_workers_sort()

static int rofi_thread_workers_sort ( gconstpointer a,
gconstpointer b,
gpointer data G_GNUC_UNUSED )
static

Definition at line 2031 of file view.c.

References _thread_state::priority.

Referenced by rofi_view_workers_initialize().

Here is the caller graph for this function:

◆ rofi_view_add_widget()

static void rofi_view_add_widget ( RofiViewState * state,
widget * parent_widget,
const char * name )
static

MAINBOX

INPUTBAR

PROMPT

CASE INDICATOR

ENTRY BOX

MESSAGE

LISTVIEW

MODE SWITCHER

Definition at line 1655 of file view.c.

References box_add(), box_create(), RofiViewState::case_indicator, config, container_add(), container_create(), get_matching_state(), HIGHLIGHT, icon_create(), RofiViewState::icon_current_entry, RofiViewState::list_view, listview_create(), listview_set_max_lines(), listview_set_mouse_activated_cb(), listview_set_scroll_type(), listview_set_selection_changed_callback(), RofiViewState::menu_flags, MENU_PASSWORD, RofiViewState::mesg_box, RofiViewState::mesg_tb, mode_get_display_name(), RofiViewState::modes, NORMAL, RofiViewState::num_modes, RofiViewState::overlay, page_changed_callback(), RofiViewState::prompt, rofi_get_mode(), rofi_get_num_enabled_modes(), ROFI_ORIENTATION_HORIZONTAL, ROFI_ORIENTATION_VERTICAL, rofi_theme_get_list_strings(), rofi_theme_get_string(), rofi_view_add_widget(), rofi_view_listview_mouse_activated_cb(), rofi_view_reload_message_bar(), rofi_view_update_prompt(), selection_changed_callback(), RofiViewState::sidebar_bar, RofiViewState::sw, TB_AUTOHEIGHT, TB_AUTOWIDTH, RofiViewState::tb_current_entry, TB_EDITABLE, RofiViewState::tb_filtered_rows, TB_MARKUP, TB_PASSWORD, RofiViewState::tb_total_rows, TB_WRAP, RofiViewState::text, textbox_button_trigger_action(), textbox_create(), textbox_sidebar_modes_trigger_action(), textbox_text(), update_callback(), URGENT, WIDGET, widget_disable(), widget_set_trigger_action_handler(), WIDGET_TYPE_EDITBOX, WIDGET_TYPE_MODE_SWITCHER, and WIDGET_TYPE_TEXTBOX_TEXT.

Referenced by rofi_view_add_widget(), and rofi_view_create().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_calculate_window_height()

int rofi_view_calculate_window_height ( RofiViewState * state)

Definition at line 2207 of file view.c.

References proxy.

Referenced by rofi_view_create(), rofi_view_error_dialog(), and rofi_view_refilter_real().

Here is the caller graph for this function:

◆ rofi_view_calculate_window_width()

void rofi_view_calculate_window_width ( struct RofiViewState * state)

Definition at line 2203 of file view.c.

References proxy.

Referenced by rofi_view_create(), and rofi_view_error_dialog().

Here is the caller graph for this function:

◆ rofi_view_call_thread()

static void rofi_view_call_thread ( gpointer data,
gpointer user_data )
static
Parameters
dataA thread_state object.
user_dataUser data to pass to thread_state callback

Small wrapper function that is internally used to pass a job to a worker.

Definition at line 489 of file view.c.

References _thread_state::callback.

Referenced by rofi_view_refilter_real(), and rofi_view_workers_initialize().

Here is the caller graph for this function:

◆ rofi_view_input_changed()

static void rofi_view_input_changed ( void )
static

This function should be called when the input of the entry is changed. TODO: Evaluate if this needs to be a 'signal' on textbox?

Definition at line 1013 of file view.c.

References CacheState, current_active_menu, rofi_view_take_action(), RofiViewState::text, textbox_get_cursor(), and textbox_get_text().

Referenced by rofi_view_handle_text(), and rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_listview_mouse_activated_cb()

static void rofi_view_listview_mouse_activated_cb ( listview * lv,
gboolean custom,
void * udata )
static

Definition at line 1642 of file view.c.

References RofiViewState::line_map, listview_get_selected(), MENU_CUSTOM_ACTION, MENU_OK, RofiViewState::quit, RofiViewState::retv, RofiViewState::selected_line, and RofiViewState::skip_absorb.

Referenced by rofi_view_add_widget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_nav_first()

static void rofi_view_nav_first ( RofiViewState * state)
inlinestatic
Parameters
stateThe current RofiViewState

Move the selection to first row.

Definition at line 674 of file view.c.

References RofiViewState::list_view, and listview_set_selected().

Referenced by rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_nav_last()

static void rofi_view_nav_last ( RofiViewState * state)
inlinestatic
Parameters
stateThe current RofiViewState

Move the selection to last row.

Definition at line 684 of file view.c.

References RofiViewState::filtered_lines, RofiViewState::list_view, and listview_set_selected().

Referenced by rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_nav_row_select()

static void rofi_view_nav_row_select ( RofiViewState * state)
inlinestatic
Parameters
stateThe current RofiViewState

complete current row.

Definition at line 654 of file view.c.

References RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), mode_get_completion(), MOVE_END, RofiViewState::refilter, RofiViewState::sw, RofiViewState::text, textbox_keybinding(), and textbox_text().

Referenced by rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_nav_row_tab()

static void rofi_view_nav_row_tab ( RofiViewState * state)
static

Nav helper functions, to avoid duplicate code.

Parameters
stateThe current RofiViewState

Tab handling.

Definition at line 630 of file view.c.

References RofiViewState::filtered_lines, RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), listview_nav_down(), MENU_NEXT, MENU_OK, RofiViewState::prev_action, RofiViewState::quit, RofiViewState::retv, ROW_TAB, and RofiViewState::selected_line.

Referenced by rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_overlay_timeout()

static gboolean rofi_view_overlay_timeout ( G_GNUC_UNUSED gpointer user_data)
static

Definition at line 2094 of file view.c.

References CacheState, RofiViewState::overlay, rofi_view_get_active(), rofi_view_queue_redraw(), WIDGET, and widget_disable().

Referenced by rofi_view_set_overlay_timeout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_refilter()

void rofi_view_refilter ( RofiViewState * state)

Definition at line 958 of file view.c.

References CacheState, config, rofi_view_refilter_real(), RofiViewState::text, and textbox::text.

Referenced by rofi_view_create(), rofi_view_maybe_update(), and rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_refilter_force()

static void rofi_view_refilter_force ( RofiViewState * state)
static

Definition at line 988 of file view.c.

References CacheState, RofiViewState::refilter, and rofi_view_refilter_real().

Referenced by rofi_view_switch_mode(), and rofi_view_trigger_global_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_refilter_real()

static gboolean rofi_view_refilter_real ( RofiViewState * state)
static

On long lists it can be beneficial to parallelize. If number of threads is 1, no thread is spawn. If number of threads > 1 and there are enough (> 1000) items, spawn jobs for the thread pool. For large lists with 8 threads I see a factor three speedup of the whole function.

Definition at line 811 of file view.c.

References _rofi_view_reload_row(), _thread_state_view::acount, CacheState, _thread_state::callback, RofiViewState::case_indicator, RofiViewState::case_sensitive, _thread_state_view::cond, config, _thread_state_view::count, count, RofiViewState::distance, filter_elements(), RofiViewState::filtered_lines, _thread_state::free, fzf_v2_sort(), get_matching_state(), RofiViewState::height, helper_tokenize(), helper_tokenize_free(), lev_sort(), RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), listview_set_filtered(), listview_set_num_elements(), MENU_OK, mode_preprocess_input(), _thread_state_view::mutex, RofiViewState::num_lines, parse_case_sensitivity(), _thread_state_view::pattern, _thread_state_view::plen, _thread_state::priority, RofiViewState::quit, RofiViewState::refilter, RofiViewState::reload, RofiViewState::retv, rofi_view_calculate_window_height(), rofi_view_calculate_window_position(), rofi_view_call_thread(), rofi_view_update(), rofi_view_window_update_size(), RofiViewState::selected_line, SORT_FZF_V2, _thread_state_view::st, _thread_state_view::start, _thread_state_view::state, _thread_state_view::stop, RofiViewState::sw, RofiViewState::tb_filtered_rows, RofiViewState::tb_total_rows, RofiViewState::text, textbox::text, textbox_text(), TICK_N, RofiViewState::tokens, and tpool.

Referenced by rofi_view_refilter(), and rofi_view_refilter_force().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_reload_message_bar()

static void rofi_view_reload_message_bar ( RofiViewState * state)
static

we want to popin warning here.

Definition at line 230 of file view.c.

References list_of_warning_msgs, RofiViewState::mesg_box, RofiViewState::mesg_tb, mode_get_message(), RofiViewState::sw, textbox_text(), WIDGET, widget_disable(), and widget_enable().

Referenced by _rofi_view_reload_row(), and rofi_view_add_widget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_resolve_cursor()

static RofiCursorType rofi_view_resolve_cursor ( RofiViewState * state,
gint x,
gint y )
static

Definition at line 1492 of file view.c.

References _widget::cursor_type, RofiViewState::main_window, ROFI_CURSOR_DEFAULT, WIDGET, widget_find_mouse_target(), and WIDGET_TYPE_UNKNOWN.

Referenced by rofi_view_handle_mouse_motion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_set_user_timeout()

static void rofi_view_set_user_timeout ( G_GNUC_UNUSED gpointer data)
static

Find the widget

Check string property

Definition at line 289 of file view.c.

References CacheState, _PropertyValue::f, _PropertyValue::i, P_DOUBLE, P_INTEGER, rofi_config_find_widget(), rofi_theme_find_property(), rofi_view_user_timeout(), Property::type, and Property::value.

Referenced by rofi_view_create(), and rofi_view_trigger_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_take_action()

static void rofi_view_take_action ( const char * name)
static

Check string property

Definition at line 267 of file view.c.

References key_binding_get_action_from_name(), P_STRING, rofi_config_find_widget(), rofi_theme_find_property(), rofi_view_get_active(), rofi_view_trigger_action(), _PropertyValue::s, SCOPE_GLOBAL, Property::type, and Property::value.

Referenced by rofi_view_input_changed(), and rofi_view_user_timeout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_trigger_global_action()

static void rofi_view_trigger_global_action ( KeyBindingAction action)
static

Definition at line 1041 of file view.c.

References ACCEPT_ALT, ACCEPT_CUSTOM, ACCEPT_CUSTOM_ALT, ACCEPT_ENTRY, CacheState, CANCEL, RofiViewState::case_indicator, CHANGE_ELLIPSIZE, CLEAR_LINE, CLIPBOARD_DEFAULT, CLIPBOARD_PRIMARY, config, COPY_SECONDARY, CUSTOM_1, CUSTOM_10, CUSTOM_11, CUSTOM_12, CUSTOM_13, CUSTOM_14, CUSTOM_15, CUSTOM_16, CUSTOM_17, CUSTOM_18, CUSTOM_19, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, DELETE_ENTRY, display_get_clipboard_data(), DISPLAY_WAYLAND, DISPLAY_XCB, ELEMENT_NEXT, ELEMENT_PREV, ENTRY_HISTORY_DOWN, ENTRY_HISTORY_UP, get_matching_state(), helper_get_matching_mode_str(), helper_select_next_matching_mode(), helper_select_previous_matching_mode(), RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), listview_nav_down(), listview_nav_left(), listview_nav_next(), listview_nav_page_next(), listview_nav_page_prev(), listview_nav_prev(), listview_nav_right(), listview_nav_up(), listview_toggle_ellipsizing(), MATCHER_DOWN, MATCHER_UP, MENU_CANCEL, MENU_COMPLETE, MENU_CUSTOM_ACTION, MENU_CUSTOM_COMMAND, MENU_CUSTOM_INPUT, MENU_ENTRY_DELETE, MENU_LOWER_MASK, MENU_NEXT, MENU_OK, MENU_PREVIOUS, MODE_COMPLETE, mode_get_completion(), MODE_NEXT, MODE_PREVIOUS, MOVE_CHAR_BACK, MOVE_CHAR_FORWARD, MOVE_END, MOVE_FRONT, MOVE_WORD_BACK, MOVE_WORD_FORWARD, netatoms, PAGE_NEXT, PAGE_PREV, PASTE_PRIMARY, PASTE_SECONDARY, RofiViewState::quit, RofiViewState::refilter, REMOVE_CHAR_BACK, REMOVE_CHAR_FORWARD, REMOVE_TO_EOL, REMOVE_TO_SOL, REMOVE_WORD_BACK, REMOVE_WORD_FORWARD, RofiViewState::retv, rofi_capture_screenshot(), rofi_view_get_active(), rofi_view_input_changed(), rofi_view_nav_first(), rofi_view_nav_last(), rofi_view_nav_row_select(), rofi_view_nav_row_tab(), rofi_view_refilter(), rofi_view_refilter_force(), rofi_view_set_overlay_timeout(), ROW_DOWN, ROW_FIRST, ROW_LAST, ROW_LEFT, ROW_RIGHT, ROW_SELECT, ROW_TAB, ROW_UP, SCREENSHOT, SELECT_ELEMENT_1, SELECT_ELEMENT_10, SELECT_ELEMENT_2, SELECT_ELEMENT_3, SELECT_ELEMENT_4, SELECT_ELEMENT_5, SELECT_ELEMENT_6, SELECT_ELEMENT_7, SELECT_ELEMENT_8, SELECT_ELEMENT_9, RofiViewState::selected_line, RofiViewState::sw, RofiViewState::text, textbox::text, textbox_cursor(), textbox_get_cursor(), textbox_get_text(), textbox_keybinding(), textbox_text(), TOGGLE_CASE_SENSITIVITY, TOGGLE_SORT, TRANSPOSE_CHARS, xcb, and xcb_stuff_set_clipboard().

Referenced by rofi_view_trigger_action(), and textbox_button_trigger_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_update()

void rofi_view_update ( RofiViewState * state,
gboolean qr )

Definition at line 2178 of file view.c.

References proxy.

Referenced by rofi_view_create(), rofi_view_maybe_update(), rofi_view_refilter_real(), rofi_view_switch_mode(), and xcb_rofi_view_repaint().

Here is the caller graph for this function:

◆ rofi_view_update_prompt()

static void rofi_view_update_prompt ( RofiViewState * state)
static

Definition at line 222 of file view.c.

References mode_get_display_name(), RofiViewState::prompt, RofiViewState::sw, and textbox_text().

Referenced by rofi_view_add_widget(), and rofi_view_switch_mode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_user_timeout()

static gboolean rofi_view_user_timeout ( G_GNUC_UNUSED gpointer data)
static

Definition at line 283 of file view.c.

References CacheState, and rofi_view_take_action().

Referenced by rofi_view_set_user_timeout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_view_window_update_size()

void rofi_view_window_update_size ( RofiViewState * state)

Definition at line 2211 of file view.c.

References proxy.

Referenced by rofi_view_create(), rofi_view_error_dialog(), rofi_view_refilter_real(), and rofi_view_set_active().

Here is the caller graph for this function:

◆ screenshot_taken_user_callback()

static void screenshot_taken_user_callback ( const char * path)
static

Definition at line 139 of file view.c.

References config, helper_execute(), and helper_parse_setup().

Referenced by rofi_capture_screenshot().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ selection_changed_callback()

static void selection_changed_callback ( G_GNUC_UNUSED listview * lv,
unsigned int index,
void * udata )
static

◆ selection_changed_user_callback()

static void selection_changed_user_callback ( unsigned int index,
RofiViewState * state )
static

Definition at line 692 of file view.c.

References config, helper_execute(), helper_parse_setup(), RofiViewState::line_map, mode_get_display_value(), and RofiViewState::sw.

Referenced by selection_changed_callback().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_sidebar_modes_trigger_action()

static WidgetTriggerActionResult textbox_sidebar_modes_trigger_action ( widget * wid,
MouseBindingMouseDefaultAction action,
G_GNUC_UNUSED gint x,
G_GNUC_UNUSED gint y,
G_GNUC_UNUSED void * user_data )
static

◆ update_callback()

static void update_callback ( textbox * t,
icon * ico,
unsigned int index,
void * udata,
TextBoxFontType * type,
gboolean full )
static

◆ view_init()

void view_init ( const view_proxy * view_in)

Definition at line 67 of file view.c.

References proxy.

Referenced by display_init().

Here is the caller graph for this function:

Variable Documentation

◆ CacheState

◆ current_active_menu

RofiViewState* current_active_menu = NULL

Global pointer to the currently active RofiViewState

Definition at line 73 of file view.c.

Referenced by rofi_capture_screenshot(), rofi_view_get_active(), rofi_view_input_changed(), rofi_view_remove_active(), and rofi_view_set_active().

◆ list_of_warning_msgs

GList* list_of_warning_msgs
extern

List of warning messages for the user.

Definition at line 94 of file rofi.c.

Referenced by rofi_add_warning_message(), rofi_clear_warning_messages(), rofi_theme_rasi_validate(), rofi_view_reload_message_bar(), and startup().

◆ proxy

const view_proxy* proxy
static

Definition at line 65 of file view.c.

◆ tpool

GThreadPool* tpool = NULL